2016-02-04 11:27:59

by Krishna Chaitanya

[permalink] [raw]
Subject: mac80211_hwsim + iperf + netns

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.

https://github.com/bcopeland/wmediumd


--
Thanks,
Regards,
Chaitanya T K.


2016-02-04 12:51:31

by Johannes Berg

[permalink] [raw]
Subject: Re: mac80211_hwsim + iperf + netns

On Thu, 2016-02-04 at 18:13 +0530, Krishna Chaitanya wrote:
> On Thu, Feb 4, 2016 at 6:05 PM, Johannes Berg <johannes@sipsolutions.
> net> wrote:
> > On Thu, 2016-02-04 at 17:58 +0530, Krishna Chaitanya wrote:
> > > On Thu, Feb 4, 2016 at 5:49 PM, Johannes Berg <johannes@sipsoluti
> > > ons.
> > > net> wrote:
> > > > On Thu, 2016-02-04 at 12:32 +0100, Michal Kazior wrote:
> > > > >
> > > > >  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
> > > > >
> > > >
> > > > If you also have a recent enough iw version, you can use
> > > >
> > > > iw phy phyX set netns name ns1
> > > >
> > > My iw has this option, but it throws an error.
> > > Does this command have any prerequisites?
> > >
> > > # iw phy phy1 set netns name ns1
> > > Invalid parameter: nsname(name)
> > >
> >
> > This happens if the ns1 doesn't exist.
> ok, so we need latest iprotue2 to create the
> namespace?

for this way to work, yes. you could hack your own C program to do the
required unshare() call and exec bash and then use the PID ... I used
to have one but can't find it now.

johannes

2016-02-04 12:46:50

by Krishna Chaitanya

[permalink] [raw]
Subject: Re: mac80211_hwsim + iperf + netns

On Thu, Feb 4, 2016 at 5:57 PM, Krishna Chaitanya
<[email protected]> wrote:
> On Thu, Feb 4, 2016 at 5:23 PM, Michal Kazior <[email protected]> wrote:
>> On 4 February 2016 at 12:49, Krishna Chaitanya <[email protected]> wrote:
>>> On Thu, Feb 4, 2016 at 5:02 PM, Michal Kazior <[email protected]> wrote:
>>>> On 4 February 2016 at 12:22, Krishna Chaitanya <[email protected]> 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

2016-02-04 11:49:20

by Krishna Chaitanya

[permalink] [raw]
Subject: Re: mac80211_hwsim + iperf + netns

On Thu, Feb 4, 2016 at 5:02 PM, Michal Kazior <[email protected]> wrote:
> On 4 February 2016 at 12:22, Krishna Chaitanya <[email protected]> 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?

2016-02-04 12:27:38

by Krishna Chaitanya

[permalink] [raw]
Subject: Re: mac80211_hwsim + iperf + netns

On Thu, Feb 4, 2016 at 5:23 PM, Michal Kazior <[email protected]> wrote:
> On 4 February 2016 at 12:49, Krishna Chaitanya <[email protected]> wrote:
>> On Thu, Feb 4, 2016 at 5:02 PM, Michal Kazior <[email protected]> wrote:
>>> On 4 February 2016 at 12:22, Krishna Chaitanya <[email protected]> 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.

2016-02-04 12:35:04

by Johannes Berg

[permalink] [raw]
Subject: Re: mac80211_hwsim + iperf + netns

On Thu, 2016-02-04 at 17:58 +0530, Krishna Chaitanya wrote:
> On Thu, Feb 4, 2016 at 5:49 PM, Johannes Berg <johannes@sipsolutions.
> net> wrote:
> > On Thu, 2016-02-04 at 12:32 +0100, Michal Kazior wrote:
> > >
> > >  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
> > >
> >
> > If you also have a recent enough iw version, you can use
> >
> > iw phy phyX set netns name ns1
> >
> My iw has this option, but it throws an error.
> Does this command have any prerequisites?
>
> # iw phy phy1 set netns name ns1
> Invalid parameter: nsname(name)
>

This happens if the ns1 doesn't exist.

johannes

2016-02-04 12:43:43

by Krishna Chaitanya

[permalink] [raw]
Subject: Re: mac80211_hwsim + iperf + netns

On Thu, Feb 4, 2016 at 6:05 PM, Johannes Berg <[email protected]> wrote:
> On Thu, 2016-02-04 at 17:58 +0530, Krishna Chaitanya wrote:
>> On Thu, Feb 4, 2016 at 5:49 PM, Johannes Berg <johannes@sipsolutions.
>> net> wrote:
>> > On Thu, 2016-02-04 at 12:32 +0100, Michal Kazior wrote:
>> > >
>> > > 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
>> > >
>> >
>> > If you also have a recent enough iw version, you can use
>> >
>> > iw phy phyX set netns name ns1
>> >
>> My iw has this option, but it throws an error.
>> Does this command have any prerequisites?
>>
>> # iw phy phy1 set netns name ns1
>> Invalid parameter: nsname(name)
>>
>
> This happens if the ns1 doesn't exist.
ok, so we need latest iprotue2 to create the
namespace?

2016-02-04 12:51:06

by Michal Kazior

[permalink] [raw]
Subject: Re: mac80211_hwsim + iperf + netns

On 4 February 2016 at 13:46, Krishna Chaitanya <[email protected]> wrote:
> On Thu, Feb 4, 2016 at 5:57 PM, Krishna Chaitanya
> <[email protected]> wrote:
>> On Thu, Feb 4, 2016 at 5:23 PM, Michal Kazior <[email protected]> wrote:
>>> On 4 February 2016 at 12:49, Krishna Chaitanya <[email protected]> wrote:
>>>> On Thu, Feb 4, 2016 at 5:02 PM, Michal Kazior <[email protected]> wrote:
>>>>> On 4 February 2016 at 12:22, Krishna Chaitanya <[email protected]> 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

Hmm.. Are you perhaps running `iperf -V -i1 -s &` (i.e. in the
background) with the same stdout as the client :-) You're probably
just seeing both the server and the client saying a connection has
established at their ends.


Michał

2016-02-04 12:20:00

by Johannes Berg

[permalink] [raw]
Subject: Re: mac80211_hwsim + iperf + netns

On Thu, 2016-02-04 at 12:32 +0100, Michal Kazior wrote:

>  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
>

If you also have a recent enough iw version, you can use 

iw phy phyX set netns name ns1

johannes

2016-02-04 11:32:08

by Michal Kazior

[permalink] [raw]
Subject: Re: mac80211_hwsim + iperf + netns

On 4 February 2016 at 12:22, Krishna Chaitanya <[email protected]> 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:

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.


Michał

2016-02-04 12:29:19

by Krishna Chaitanya

[permalink] [raw]
Subject: Re: mac80211_hwsim + iperf + netns

On Thu, Feb 4, 2016 at 5:49 PM, Johannes Berg <[email protected]> wrote:
> On Thu, 2016-02-04 at 12:32 +0100, Michal Kazior wrote:
>>
>> 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
>>
>
> If you also have a recent enough iw version, you can use
>
> iw phy phyX set netns name ns1
>
My iw has this option, but it throws an error.
Does this command have any prerequisites?

# iw phy phy1 set netns name ns1
Invalid parameter: nsname(name)
Usage: iw [options] phy <phyname> set netns { <pid> | name <nsname> }

Put this wireless device into a different network namespace:
<pid> - change network namespace by process id
<nsname> - change network namespace by name from /var/run/netns
or by absolute path (man ip-netns)


Options:
--debug enable netlink debugging
#

2016-02-04 13:38:37

by Krishna Chaitanya

[permalink] [raw]
Subject: Re: mac80211_hwsim + iperf + netns

On Thu, Feb 4, 2016 at 6:21 PM, Michal Kazior <[email protected]> wrote:
> On 4 February 2016 at 13:46, Krishna Chaitanya <[email protected]> wrote:
>> On Thu, Feb 4, 2016 at 5:57 PM, Krishna Chaitanya
>> <[email protected]> wrote:
>>> On Thu, Feb 4, 2016 at 5:23 PM, Michal Kazior <[email protected]> wrote:
>>>> On 4 February 2016 at 12:49, Krishna Chaitanya <[email protected]> wrote:
>>>>> On Thu, Feb 4, 2016 at 5:02 PM, Michal Kazior <[email protected]> wrote:
>>>>>> On 4 February 2016 at 12:22, Krishna Chaitanya <[email protected]> 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
>
> Hmm.. Are you perhaps running `iperf -V -i1 -s &` (i.e. in the
> background) with the same stdout as the client :-) You're probably
> just seeing both the server and the client saying a connection has
> established at their ends.
>
Ok i understand. Thanks.

2016-02-04 11:53:02

by Michal Kazior

[permalink] [raw]
Subject: Re: mac80211_hwsim + iperf + netns

On 4 February 2016 at 12:49, Krishna Chaitanya <[email protected]> wrote:
> On Thu, Feb 4, 2016 at 5:02 PM, Michal Kazior <[email protected]> wrote:
>> On 4 February 2016 at 12:22, Krishna Chaitanya <[email protected]> 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


Michał