hostapd: Fix Public Action frame addressing (BSSID field)
authorJouni Malinen <jouni@qca.qualcomm.com>
Fri, 10 Jun 2016 18:30:03 +0000 (21:30 +0300)
committerJouni Malinen <j@w1.fi>
Fri, 10 Jun 2016 18:44:49 +0000 (21:44 +0300)
commit78a36327652673fa182395011420c3151e1e03e8
tree65019c0f7e6cfe7eedf3ebda985fa9c16963eca1
parentc86bef2913a6aa9947d45e8d28bb0539c2d5c25c
hostapd: Fix Public Action frame addressing (BSSID field)

IEEE Std 802.11-2012, 10.19 (Public Action frame addressing) specifies
that the wildcard BSSID value is used in Public Action frames that are
transmitted to a STA that is not a member of the same BSS. hostapd used
to use the actual BSSID value for all such frames regardless of whether
the destination STA is a member of the BSS.

Fix this by using the wildcard BSSID in cases the destination STA is not
a member of the BSS. Leave group addressed case as-is (i.e., the actual
BSSID), since both values are accepted. No such frames are currently
used, though.

This version is still using the AP BSSID value in the Address 3 field
for GAS response frames when replying to a GAS request with AP BSSID
instead of Wildcard BSSID. This is left as a workaround to avoid
interoperability issues with deployed STA implementations that are still
using the non-compliant address and that might be unable to process the
standard compliant case.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
src/ap/ap_drv_ops.c
src/ap/ap_drv_ops.h
src/ap/gas_serv.c