Wi-Fi direct concurrent connection

Dan Williams dcbw at redhat.com
Tue Oct 11 09:56:33 PDT 2016


On Tue, 2016-10-11 at 14:28 +0100, Taceant Omnes wrote:
> Wi-Fi direct allows concurrent connection of a P2P device to a router
> and to a P2P network as a group owner or P2P client. Using
> wpa_supplicant v. 2.5 I managed to create a group with p2p_group_add
> and then connect with an Android tablet. Separately I also managed to
> connect to a wireless router. I did not succeed in having the two
> connections simultaneously, with neither a Raspberry PI USB dongle
> nor
> with a Netgear one.
> 
> Question 1: does wpa_supplicant support concurrent P2P connection as
> described above?

Yes, within the limitations of the driver and hardware.  For example,
your iw phy output shows that the driver supports both 'managed' (eg,
STA) and P2P operations at the same time, *on the same channel*.  See
the "supported interface combinations" section of the command output
you pasted into your mail, specifically the "#channels <= 1" parts.

eg, the hardware/driver are not capable of connecting to an AP on one
channel while simultaneously being connected to a p2p device/group on
another channel.

So I would at least expect that it could be a STA and a P2P group owner
at the same time, as long as the P2P stuff is using the same channel as
the AP is on.

What does your P2P config look like?  Are you setting any of the
p2p_*_channel options?  If you aren't specifying one, then it looks
like the supplicant picks a random one, which won't work on your
hardware.  That could be considered a bug in the supplicant, that it
picks a random channel when the hardware/driver is already associated
and cannot support more than one channel for concurrent operations.

Question 2: With a Google search I came across some blog/forum
> accounts of people that managed to have concurrent connections to a
> router (as a client) and to devices (as an AP) with the same Wi-Fi
> dongle. To achieve this they run simultaneously hostapd (to create an
> AP) and wpa_supplicant (to connect to a router). I have not tried
> this
> yet. My question is what are the advantages/disadvantages of this
> approach as compared with using P2P as I described above?

This would still be subject to the limitations for your hardware, eg
that the AP you'd create and the AP/router you would connect to would
have to be on the same channel.

Dan

> 
> -----------
> P. S. “iw list” and “dmesg” output for a Raspberry PI USB dongle
> based
> on a Broadcom chipset is below.
> 
> # iw list
> Wiphy phy3
>         max # scan SSIDs: 10
>         max scan IEs length: 2048 bytes
>         max # sched scan SSIDs: 0
>         max # match sets: 0
>         Retry short limit: 7
>         Retry long limit: 4
>         Coverage class: 0 (up to 0m)
>         Device supports roaming.
>         Supported Ciphers:
>                 * WEP40 (00-0f-ac:1)
>                 * WEP104 (00-0f-ac:5)
>                 * TKIP (00-0f-ac:2)
>                 * CCMP (00-0f-ac:4)
>         Available Antennas: TX 0 RX 0
>         Supported interface modes:
>                  * IBSS
>                  * managed
>                  * AP
>                  * P2P-client
>                  * P2P-GO
>                  * P2P-device
>         Band 1:
>                 Capabilities: 0x1022
>                         HT20/HT40
>                         Static SM Power Save
>                         RX HT20 SGI
>                         No RX STBC
>                         Max AMSDU length: 3839 bytes
>                         DSSS/CCK HT40
>                 Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
>                 Minimum RX AMPDU time spacing: 16 usec (0x07)
>                 HT TX/RX MCS rate indexes supported: 0-7
>                 Bitrates (non-HT):
>                         * 1.0 Mbps
>                         * 2.0 Mbps (short preamble supported)
>                         * 5.5 Mbps (short preamble supported)
>                         * 11.0 Mbps (short preamble supported)
>                         * 6.0 Mbps
>                         * 9.0 Mbps
>                         * 12.0 Mbps
>                         * 18.0 Mbps
>                         * 24.0 Mbps
>                         * 36.0 Mbps
>                         * 48.0 Mbps
>                         * 54.0 Mbps
>                 Frequencies:
>                         * 2412 MHz [1] (20.0 dBm)
>                         * 2417 MHz [2] (20.0 dBm)
>                         * 2422 MHz [3] (20.0 dBm)
>                         * 2427 MHz [4] (20.0 dBm)
>                         * 2432 MHz [5] (20.0 dBm)
>                         * 2437 MHz [6] (20.0 dBm)
>                         * 2442 MHz [7] (20.0 dBm)
>                         * 2447 MHz [8] (20.0 dBm)
>                         * 2452 MHz [9] (20.0 dBm)
>                         * 2457 MHz [10] (20.0 dBm)
>                         * 2462 MHz [11] (20.0 dBm)
>                         * 2467 MHz [12] (disabled)
>                         * 2472 MHz [13] (disabled)
>                         * 2484 MHz [14] (disabled)
>         Supported commands:
>                  * new_interface
>                  * set_interface
>                  * new_key
>                  * start_ap
>                  * join_ibss
>                  * set_pmksa
>                  * del_pmksa
>                  * flush_pmksa
>                  * remain_on_channel
>                  * frame
>                  * set_channel
>                  * start_p2p_device
>                  * crit_protocol_start
>                  * crit_protocol_stop
>                  * connect
>                  * disconnect
>         Supported TX frame types:
>                  * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70
> 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
>                  * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60
> 0x70
> 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
>                  * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70
> 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
>                  * P2P-device: 0x00 0x10 0x20 0x30 0x40 0x50 0x60
> 0x70
> 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
>         Supported RX frame types:
>                  * managed: 0x40 0xd0
>                  * P2P-client: 0x40 0xd0
>                  * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
>                  * P2P-device: 0x40 0xd0
>         software interface modes (can always be added):
>         valid interface combinations:
>                  * #{ managed } <= 1, #{ P2P-device } <= 1, #{
> P2P-client, P2P-GO } <= 1,
>                    total <= 3, #channels <= 1
>                  * #{ managed } <= 1, #{ AP } <= 1, #{ P2P-client }
> <=
> 1, #{ P2P-device } <= 1,
>                    total <= 4, #channels <= 1
>         Device supports scan flush.
> 
> # dmesg
> 
> [32471.157026] usb 1-3: new high-speed USB device number 4 using
> ehci-pci
> [32471.273873] usb 1-3: New USB device found, idVendor=0a5c,
> idProduct=bd1e
> [32471.273882] usb 1-3: New USB device strings: Mfr=1, Product=2,
> SerialNumber=3
> [32471.273888] usb 1-3: Product: Remote Download Wireless Adapter
> [32471.273892] usb 1-3: Manufacturer: Broadcom
> [32471.273895] usb 1-3: SerialNumber: 000000000001
> [32471.551505] brcmfmac: brcmf_c_preinit_dcmds: Firmware version =
> wl0: Apr  3 2014 04:43:32 version 6.10.198.66 (r467479) FWID
> 01-32bd010e
> [32496.612576] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
> [32497.762949] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes
> ready
> [33813.857788] brcmfmac: brcmf_inetaddr_changed: fail to get arp ip
> table err:-23
> 
> _______________________________________________
> Hostap mailing list
> Hostap at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/hostap



More information about the Hostap mailing list