@ -851,6 +851,16 @@ struct ieee80211_channel_switch {
u8 count ;
} ;
/**
* enum ieee80211_vif_flags - virtual interface flags
*
* @ IEEE80211_VIF_BEACON_FILTER : the device performs beacon filtering
* on this virtual interface to avoid unnecessary CPU wakeups
*/
enum ieee80211_vif_flags {
IEEE80211_VIF_BEACON_FILTER = BIT ( 0 ) ,
} ;
/**
* struct ieee80211_vif - per - interface data
*
@ -863,6 +873,10 @@ struct ieee80211_channel_switch {
* @ addr : address of this interface
* @ p2p : indicates whether this AP or STA interface is a p2p
* interface , i . e . a GO or p2p - sta respectively
* @ driver_flags : flags / capabilities the driver has for this interface ,
* these need to be set ( or cleared ) when the interface is added
* or , if supported by the driver , the interface type is changed
* at runtime , mac80211 will never touch this field
* @ drv_priv : data area for driver use , will always be aligned to
* sizeof ( void * ) .
*/
@ -871,6 +885,7 @@ struct ieee80211_vif {
struct ieee80211_bss_conf bss_conf ;
u8 addr [ ETH_ALEN ] ;
bool p2p ;
u32 driver_flags ;
/* must be last */
u8 drv_priv [ 0 ] __attribute__ ( ( __aligned__ ( sizeof ( void * ) ) ) ) ;
} ;
@ -1079,10 +1094,6 @@ enum sta_notify_cmd {
* @ IEEE80211_HW_MFP_CAPABLE :
* Hardware supports management frame protection ( MFP , IEEE 802.11 w ) .
*
* @ IEEE80211_HW_BEACON_FILTER :
* Hardware supports dropping of irrelevant beacon frames to
* avoid waking up cpu .
*
* @ IEEE80211_HW_SUPPORTS_STATIC_SMPS :
* Hardware supports static spatial multiplexing powersave ,
* ie . can turn off all but one chain even on HT connections
@ -1150,7 +1161,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_PS_NULLFUNC_STACK = 1 < < 11 ,
IEEE80211_HW_SUPPORTS_DYNAMIC_PS = 1 < < 12 ,
IEEE80211_HW_MFP_CAPABLE = 1 < < 13 ,
IEEE80211_HW_BEACON_FILTER = 1 < < 14 ,
/* reuse bit 14 */
IEEE80211_HW_SUPPORTS_STATIC_SMPS = 1 < < 15 ,
IEEE80211_HW_SUPPORTS_DYNAMIC_SMPS = 1 < < 16 ,
IEEE80211_HW_SUPPORTS_UAPSD = 1 < < 17 ,
@ -1446,8 +1457,8 @@ void ieee80211_free_txskb(struct ieee80211_hw *hw, struct sk_buff *skb);
* way the host will only receive beacons where some relevant information
* ( for example ERP protection or WMM settings ) have changed .
*
* Beacon filter support is advertised with the % IEEE80211_HW _BEACON_FILTER
* hardwar e capability . The driver needs to enable beacon filter support
* Beacon filter support is advertised with the % IEEE80211_VIF _BEACON_FILTER
* interfac e capability . The driver needs to enable beacon filter support
* whenever power save is enabled , that is % IEEE80211_CONF_PS is set . When
* power save is enabled , the stack will not check for beacon loss and the
* driver needs to notify about loss of beacons with ieee80211_beacon_loss ( ) .
@ -3316,7 +3327,7 @@ struct sk_buff *ieee80211_ap_probereq_get(struct ieee80211_hw *hw,
*
* @ vif : & struct ieee80211_vif pointer from the add_interface callback .
*
* When beacon filtering is enabled with % IEEE80211_HW _BEACON_FILTER and
* When beacon filtering is enabled with % IEEE80211_VIF _BEACON_FILTER and
* % IEEE80211_CONF_PS is set , the driver needs to inform whenever the
* hardware is not receiving beacons with this function .
*/
@ -3327,7 +3338,7 @@ void ieee80211_beacon_loss(struct ieee80211_vif *vif);
*
* @ vif : & struct ieee80211_vif pointer from the add_interface callback .
*
* When beacon filtering is enabled with % IEEE80211_HW _BEACON_FILTER , and
* When beacon filtering is enabled with % IEEE80211_VIF _BEACON_FILTER , and
* % IEEE80211_CONF_PS and % IEEE80211_HW_CONNECTION_MONITOR are set , the driver
* needs to inform if the connection to the AP has been lost .
*