> + * @random_sa: indicates whether the source address is randomized. > When this is > + * true, the driver needs to transmit the management frame > using the > + * address specified in the SA field (Address 2) in the > buffer and the > + * driver needs to receive and acknowledge the response frame > to this > + * address instead of its permanent MAC address. > */ > struct cfg80211_mgmt_tx_params { > struct ieee80211_channel *chan; > Is this really of much value to the driver - rather than comparing the addresses? > + * @NL80211_ATTR_MGMT_TX_RANDOM_SA: A flag attribute indicating > whether the > + * source address is randomized in frames sent using > %NL80211_CMD_FRAME. > + * If this flag is not set, the source address field is > verified to match > + * local MAC address. Random SA can be used only with Public > Action frames > + * (e.g., GAS/ANQP). Likewise here, is this really of much value? Or is the intent to make sure that userspace *really* intended things to be randomized, and didn't just have a bug? What I mean is more like this: if the driver supports "random SA", that basically means it supports "arbitrary SA". The driver could thus (unconditionally even, or after comparing to the iface address) configure the RX filters appropriately. Therefore, the only thing that would really be needed is the nl80211 extended feature flag to bypass the address check in cfg80211_mlme_mgmt_tx(). What extra value do we get from having the "yes I really did intend it to be random" attribute? johannes