nl80211 and switching between WPS-PIN and WPS-PBC

Jouni Malinen j
Tue Apr 6 08:09:20 PDT 2010

On Thu, Apr 01, 2010 at 10:52:00AM +0530, yogesh powar wrote:
> With nl80211 driver, switching between WPS-PBC & WPS-PIN does not work
> since AP does not advertise the active WPS-PBC/PIN session in beacon.
> Whenever we use WPS-PIN after a WPS-PBC session or vice-e-versa, later
> does not get advertised in the beacon. Reason for this behavior is
> set_ap_wps_ie function pointer in driver_nl80211 is set to null. 

Thanks for reporting this.

> As per my understanding, set_ap_wps_ie function can be set to null if
> kernel driver uses the beacon template from set_beacon(). Whenever WPS
> registrar information is changed, hostapd gives modified WPS IE to the
> driver through this function. But, this information is not reflected in
> the beacons by hostapd when the driver does not provide set_ap_wps_ie
> function.

Your understanding is correct and a call to set_beacon() is indeed
missing in this case.

> Simple solution for this would be calling set_beacon every time WPS-IE
> information is modified/changed whenever set_ap_wps_ie function is NULL.
> Attached is RFC for invoking set_beacon() every time WPS IE is modified.

I prefer to handle this with a call to set_beacon from the actual WPS IE
update function instead of doing this indirectly through the
set_ap_wps_ie handler. This is now in the git repository (0.7.x branch
only at this point; I will merge it into 0.6.x, too).

Jouni Malinen                                            PGP id EFC895FA

More information about the Hostap mailing list