Return-path: Received: from mail-yk0-f176.google.com ([209.85.160.176]:33128 "EHLO mail-yk0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753745AbcBDMqu (ORCPT ); Thu, 4 Feb 2016 07:46:50 -0500 Received: by mail-yk0-f176.google.com with SMTP id z13so40581778ykd.0 for ; Thu, 04 Feb 2016 04:46:49 -0800 (PST) MIME-Version: 1.0 In-Reply-To: References: From: Krishna Chaitanya Date: Thu, 4 Feb 2016 18:16:30 +0530 Message-ID: (sfid-20160204_134654_912586_12F99AF2) Subject: Re: mac80211_hwsim + iperf + netns To: Michal Kazior Cc: linux-wireless Content-Type: text/plain; charset=UTF-8 Sender: linux-wireless-owner@vger.kernel.org List-ID: On Thu, Feb 4, 2016 at 5:57 PM, Krishna Chaitanya wrote: > On Thu, Feb 4, 2016 at 5:23 PM, Michal Kazior wrote: >> On 4 February 2016 at 12:49, Krishna Chaitanya wrote: >>> On Thu, Feb 4, 2016 at 5:02 PM, Michal Kazior wrote: >>>> On 4 February 2016 at 12:22, Krishna Chaitanya wrote: >>>>> Hi All, >>>>> >>>>> I am trying to run some iperf tests using mac80211_hwsim b/w AP and STA. >>>>> Even after tweaking the routing table, the packets are still not going through >>>>> mac80211_hwsim instead they are just looping back. >>>>> >>>>> After a quick search i found that we should use different network namespaces. >>>>> Can anyone tell me the exact procedure for this? I have found a procedure >>>>> in the below link, but i dont have the lxc-unshare for my embedded box. >>>>> Is there any alternate way for this. >>>> >>>> If you have a recent enough iproute2 package you can use: >>> Unfortunately i dont, will try to get the latest. >>>> ip netns add ns1 >>>> ip netns exec ns1 bash # get the PID in the session and don't close it >>>> iw phy phyX set netns $pid_of_that_shell >>>> # you can close the bash now; phyX will remain in ns1 >>>> >>>> Or you could try using ipv6 link-local addresses which will not >>>> require you to use namespaces at all. >>> Tried this but still not able to excite mac80211_hwsim TX path. >>> below are commands and config. >>> >>> wlan0 Link encap:Ethernet HWaddr 02:00:00:00:00:00 >>> inet addr:10.0.0.1 Bcast:10.255.255.255 Mask:255.0.0.0 >>> inet6 addr: fe80::ff:fe00:0/64 Scope:Link >>> UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 >>> RX packets:8 errors:0 dropped:1 overruns:0 frame:0 >>> TX packets:38 errors:0 dropped:0 overruns:0 carrier:0 >>> collisions:0 txqueuelen:1000 >>> RX bytes:648 (648.0 B) TX bytes:3680 (3.5 KiB) >>> >>> wlan1 Link encap:Ethernet HWaddr 02:00:00:00:01:00 >>> inet addr:20.0.0.1 Bcast:20.255.255.255 Mask:255.0.0.0 >>> inet6 addr: fe80::ff:fe00:100/64 Scope:Link >>> UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 >>> RX packets:3 errors:0 dropped:0 overruns:0 frame:0 >>> TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 >>> collisions:0 txqueuelen:1000 >>> RX bytes:126 (126.0 B) TX bytes:808 (808.0 B) >>> >>> iperf -s -B fe80::ff:fe00:0 & >>> iperf -c fe80::ff:fe00:0 -B fe80::ff:fe00:100 -t 60 -i 1 >>> >>> Something wrong? >> >> For link-local addresses you must specify interface you want to use them. >> >> Also, there's an iperf switch to understand ipv6 "-V". >> >> iperf -V -i1 -s >> iperf -V -i1 -c fe80::ff:fe00:0%wlan1 >> iperf -V -i1 -c fe80::ff:fe00:100%wlan0 >> > Thanks a lot Michal. It worked like a charm. Whenever i use the iperf -c, it starts a bi-directional stream, How do i limit it to only for single direction? # iperf -V -i1 -c fe80::ff:fe00:0%wlan1 ------------------------------------------------------------ Client connecting to fe80::ff:fe00:0%wlan1, TCP port 5001 TCP window size: 43.8 KByte (default) ------------------------------------------------------------ [ 3] local fe80::ff:fe00:100 port 34808 connected with fe80::ff:fe00:0 port 5001 [ 5] local fe80::ff:fe00:0 port 5001 connected with fe80::ff:fe00:100 port 34808