2014-02-10 03:57:06

by Zhao Hongjiang

[permalink] [raw]
Subject: Get multiple ip addresses by dhcp for wireless card

Hello,

Is it possible for one station to get multiple ip addresses from AP/Wireless
router by dhcp? I had tried to add one or more virtual interface for
phy0 (wlan0, wlan1, wlan2,etc), but only wlan0 can get ip address from AP.
the following is the steps:

/bin/wpa_supplicant -ddd -iwlan0 -Dnl80211 -c/wifi/wpa_supplicant.conf -B
/bin/wpa_cli -i wlan0 -p /wlan0
> add_network
> set_network 0 ssid "APabc"
> set_network 0 psk "1111111"
> enable_network 0

iw wlan0 interface add wlan1 type station 4addr on
ip link set wlan1 up
dhcpcd -ABKL wlan0 #works, can get ip
dhcpcd -ABKL wlan1 #cannot work



2014-02-12 03:23:21

by Zhao Hongjiang

[permalink] [raw]
Subject: Re: Get multiple ip addresses by dhcp for wireless card

On 2014/2/11 20:51, Arend van Spriel wrote:
> On 02/11/2014 04:57 AM, Ben Greear wrote:
>> On 02/10/2014 07:53 PM, Zhao Hongjiang wrote:
>>
>>>> What driver are you using? I'm not sure anything other than ath9k
>>>> can do this feature. Ath5k probably works, and definitely worked
>>>> at one time. Ath10k supports this to some degree, and will have more
>>>> support in the future.
>>>>
>>>> You typically have to disable hardware crypt to make this work.
>>>>
>>> I use bcm4329 chipset and it don't have "Disable HW encryption" options.
>>> any suggestion for this is appreciated, thanks very much.
>>
>> I doubt that chipset is going to support multiple stations.
>
> It definitely does not.

the reason of this unsupporting is chipset limitation, firmware limitation or linux driver limitation?

Thanks,
Hongjiang
>
> Gr. AvS
>
>> Use ath9k and you should have more success.
>>
>> Thanks,
>> Ben
>>
>>>
>>>> Thanks,
>>>> Ben
>>>>
>>>
>>
>>
>
>
>



2014-02-10 06:48:58

by Ben Greear

[permalink] [raw]
Subject: Re: Get multiple ip addresses by dhcp for wireless card

On 02/09/2014 07:56 PM, Zhao Hongjiang wrote:
> Hello,
>
> Is it possible for one station to get multiple ip addresses from AP/Wireless
> router by dhcp? I had tried to add one or more virtual interface for
> phy0 (wlan0, wlan1, wlan2,etc), but only wlan0 can get ip address from AP.
> the following is the steps:
>
> /bin/wpa_supplicant -ddd -iwlan0 -Dnl80211 -c/wifi/wpa_supplicant.conf -B
> /bin/wpa_cli -i wlan0 -p /wlan0
>> add_network
>> set_network 0 ssid "APabc"
>> set_network 0 psk "1111111"
>> enable_network 0
>
> iw wlan0 interface add wlan1 type station 4addr on
> ip link set wlan1 up
> dhcpcd -ABKL wlan0 #works, can get ip
> dhcpcd -ABKL wlan1 #cannot work

Virtual stations work just fine for me, though I don't use that '4addr' thing.
...maybe sniff your wlan1 and see if it is sending
out proper DHCP requests (and they are being received by the AP)?

You have to create a new supplicant config for each virtual station,
or run a unique supplicant instance for each station.

To do any useful traffic, between stations, you will have to be careful
about setting up routing rules and use special binding commands for your
traffic types.

Thanks,
Ben

--
Ben Greear <[email protected]>
Candela Technologies Inc http://www.candelatech.com


2014-02-10 08:38:33

by Zhao Hongjiang

[permalink] [raw]
Subject: Re: Get multiple ip addresses by dhcp for wireless card

On 2014/2/10 14:47, Ben Greear wrote:
> On 02/09/2014 07:56 PM, Zhao Hongjiang wrote:
>> Hello,
>>
>> Is it possible for one station to get multiple ip addresses from AP/Wireless
>> router by dhcp? I had tried to add one or more virtual interface for
>> phy0 (wlan0, wlan1, wlan2,etc), but only wlan0 can get ip address from AP.
>> the following is the steps:
>>
>> /bin/wpa_supplicant -ddd -iwlan0 -Dnl80211 -c/wifi/wpa_supplicant.conf -B
>> /bin/wpa_cli -i wlan0 -p /wlan0
>>> add_network
>>> set_network 0 ssid "APabc"
>>> set_network 0 psk "1111111"
>>> enable_network 0
>>
>> iw wlan0 interface add wlan1 type station 4addr on
>> ip link set wlan1 up
>> dhcpcd -ABKL wlan0 #works, can get ip
>> dhcpcd -ABKL wlan1 #cannot work
>
> Virtual stations work just fine for me, though I don't use that '4addr' thing.
> ...maybe sniff your wlan1 and see if it is sending
> out proper DHCP requests (and they are being received by the AP)?
>
> You have to create a new supplicant config for each virtual station,
> or run a unique supplicant instance for each station.

I try to follow the instruction which you give and do the following command, but wlan1
cannot associate with AP.

1. root@local# /bin/wpa_supplicant -ddd -iwlan0 -Dnl80211 -c/wifi/wpa_supplicant.conf -B
2. root@local# iw wlan0 interface add wlan1 type station
3. root@local# /bin/wpa_supplicant -ddd -iwlan1 -Dnl80211 -c/wifi/wpa_supplicant_wlan1.conf -B

wpa_supplicant_wlan1.conf file contains folliwng lines:

ctrl_interface=wlan1
driver_param=use_multi_chan_concurrent=1
update_config=1
config_methods=physical_display virtual_push_button keypad

After this step, when using ifconfig, "ifconfig wlan1" gave a unusual hwaddr, is it a issue?
ifconfig wlan0
wlan0 Link encap:Ethernet HWaddr 00:13:0B:D2:2D:B1
inet6 addr: fe80::213:bff:fed2:2db1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

ifconfig wlan1
wlan1 Link encap:Ethernet HWaddr 02:00:00:00:00:00
inet6 addr: fe80::ff:fe00:0/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1

4. root@local# /system/bin/wpa_cli -i wlan0 -p /wlan0
>add_network
>set_network 2 ssid "APabc"
>set_network 2 psk "11111111"
>enable_network 2

wlan0 can associate with ap.

5. root@local# /bin/wpa_cli -i wlan1 -p /wlan1
> add_network
> set_network 0 ssid "APabc"
> set_network 0 psk "11111111"
> enable_network 0

it will give the following result:
<3>CTRL-EVENT-STATE-CHANGE id=-1 state=3 BSSID=00:00:00:00:00:00 SSID=
<3>CTRL-EVENT-SCAN-RESULTS
<3>Trying to associate with 78:f5:fd:77:e5:a4 (SSID='APabc' freq=2462 MHz)
<3>CTRL-EVENT-STATE-CHANGE id=-1 state=5 BSSID=00:00:00:00:00:00 SSID=
<3>CTRL-EVENT-ASSOC-REJECT status_code=1

so wlan1 cannot associate with ap.

further help is appreciated, thanks.
>
> To do any useful traffic, between stations, you will have to be careful
> about setting up routing rules and use special binding commands for your
> traffic types.
>
> Thanks,
> Ben
>