[wpa_supplicant] Is there a way to limit peers (to about 12) for IBSS/adhoc?

Xuebing Wang xbing6 at gmail.com
Mon Jun 5 23:10:31 PDT 2017

Hi Community,

There are similar variables in wpa_supplicant to limit peers or stations:
- max_peer_links for 802.11s mesh
- max_num_sta for AP mode (maybe P2P_GO? I do not know)

wpa_supplicant source code and data structures are daunting to me, 
although I worked on its source code for P2P about 1.5 years ago.

Can anyone point to me what functions I can change to add a variable 
(similar to max_peer_links or max_num_sta), with the purpose to limit 
the number of peers for IBSS/adhoc? Probably we do not need to start 
4-way handshake once associated stations reach max_peers for IBSS?

Thanks a lot.

Xuebing Wang

On 2017年06月03日 12:09, Xuebing Wang wrote:
> Hi community,
> This email is mainly addressed to hostap/wpa_supplicant mailing list.
> Descriptions of my issue:
> - I am establishing IBSS/adhoc network using OpenWRT 15.05 + ath9k 
> (AR9331).
> - When nodes are relatively closely placed, the peers (the term is 
> 'neighbors' in batman-adv mesh) reach 40, ath9k driver detects "tx 
> hung, resetting the chip" (for RESET_TYPE_TX_HANG).
> - This ath9k "tx hung" randomly happens among the 40 nodes (in adhoc 
> network), and it happens relatively often (seemingly randomly for 
> nodes), and randomly makes some nodes un-usable.
> - This appears to be an issue with ath9k kernel driver or ath9k 
> hardware that it can not handle ~40 peers.
> - IBSS/adhoc with 20 peers work well.
> Is there a config in wpa_supplicant that we can limit the number of 
> peers?
> In the other words, once the number of peers ('iw wlan0 station dump') 
> reaches a pre-configured number (e.g. 12 or 16), wpa_supplicant does 
> not authenticate any more, for IBSS/adhoc only?
> - A subtle detail: once a new beacon with higher RSSI is detected, the 
> current connection with lowest RSSI will be de-authenticated, and to 
> authenticate this new peer (with higher RSSI in beacon).
> Is this "limiting number of peers for IBSS/adhoc" a good work-around 
> for 40+ peers adhoc network, although the ultimate root cause 
> seemingly is with ath9k kernel driver or ath9k hardware?
> Also, if there are many (like 40+) peers in IBSS/adhoc network, I am 
> not sure how medium access contention and collisions factor in, for 
> management frames?
> Here is my wpa_supplicant conf file:
> ------
> ctrl_interface=/var/run/wpa_supplicant
> # use 'ap_scan=2' on all devices connected to the network
> # this is unnecessary if you only want the network to be created when 
> no other networks are available
> ap_scan=2
> network={
>     ssid="Net-xxxxxxxx"
>     mode=1
>     frequency=2462
>     proto=WPA2
>     key_mgmt=WPA-PSK
>     pairwise=CCMP
>     group=CCMP
>     psk="xxxxxxxx"
> }
> ------
> Another approach could be to use user-space shell script to "iw <dev> 
> ibss leave" for the lower RSSI stations?
> - As I am using batman-adv to build mesh network on the top of 
> IBSS/adhoc, a similar approach can be done at batman-adv level.
> Suggestions?
> Thanks.
> Xuebing Wang

More information about the Hostap mailing list