Name

struct ieee80211_vif — per-interface data

Synopsis

struct ieee80211_vif {
  enum nl80211_iftype type;
  struct ieee80211_bss_conf bss_conf;
  u8 addr[ETH_ALEN];
  bool p2p;
  u8 cab_queue;
  u8 hw_queue[IEEE80211_NUM_ACS];
  struct ieee80211_chanctx_conf __rcu * chanctx_conf;
  u32 driver_flags;
  u8 drv_priv[0] __attribute__((__aligned__(sizeof(void  *))));
};  

Members

type

type of this virtual interface

bss_conf

BSS configuration for this interface, either our own or the BSS we're associated to

addr[ETH_ALEN]

address of this interface

p2p

indicates whether this AP or STA interface is a p2p interface, i.e. a GO or p2p-sta respectively

cab_queue

content-after-beacon (DTIM beacon really) queue, AP mode only

hw_queue[IEEE80211_NUM_ACS]

hardware queue for each AC

chanctx_conf

The channel context this interface is assigned to, or NULL when it is not assigned. This pointer is RCU-protected due to the TX path needing to access it; even though the netdev carrier will always be off when it is NULL there can still be races and packets could be processed after it switches back to NULL.

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[0] __attribute__((__aligned__(sizeof(void *))))

data area for driver use, will always be aligned to sizeof(void *).

Description

Data in this structure is continually present for driver use during the life of a virtual interface.