1<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>struct ieee80211_vif</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="The 802.11 subsystems – for kernel developers"><link rel="up" href="iface-handling.html" title="Chapter 3. Virtual interfaces"><link rel="prev" href="iface-handling.html" title="Chapter 3. Virtual interfaces"><link rel="next" href="rx-tx.html" title="Chapter 4. Receive and transmit processing"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">struct ieee80211_vif</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="iface-handling.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Virtual interfaces</th><td width="20%" align="right"> <a accesskey="n" href="rx-tx.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-struct-ieee80211-vif"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>struct ieee80211_vif — 
2  per-interface data
3 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
4struct ieee80211_vif {
5  enum nl80211_iftype type;
6  struct ieee80211_bss_conf bss_conf;
7  u8 addr[ETH_ALEN];
8  bool p2p;
9  bool csa_active;
10  u8 cab_queue;
11  u8 hw_queue[IEEE80211_NUM_ACS];
12  struct ieee80211_txq * txq;
13  struct ieee80211_chanctx_conf __rcu * chanctx_conf;
14  u32 driver_flags;
15#ifdef CONFIG_MAC80211_DEBUGFS
16  struct dentry * debugfs_dir;
17#endif
18  unsigned int probe_req_reg;
19  u8 drv_priv[0];
20};  </pre></div><div class="refsect1"><a name="id-1.3.3.5.6.5"></a><h2>Members</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term">type</span></dt><dd><p>
21type of this virtual interface
22      </p></dd><dt><span class="term">bss_conf</span></dt><dd><p>
23BSS configuration for this interface, either our own
24or the BSS we're associated to
25      </p></dd><dt><span class="term">addr[ETH_ALEN]</span></dt><dd><p>
26address of this interface
27      </p></dd><dt><span class="term">p2p</span></dt><dd><p>
28indicates whether this AP or STA interface is a p2p
29interface, i.e. a GO or p2p-sta respectively
30      </p></dd><dt><span class="term">csa_active</span></dt><dd><p>
31marks whether a channel switch is going on. Internally it is
32write-protected by sdata_lock and local-&gt;mtx so holding either is fine
33for read access.
34      </p></dd><dt><span class="term">cab_queue</span></dt><dd><p>
35content-after-beacon (DTIM beacon really) queue, AP mode only
36      </p></dd><dt><span class="term">hw_queue[IEEE80211_NUM_ACS]</span></dt><dd><p>
37hardware queue for each AC
38      </p></dd><dt><span class="term">txq</span></dt><dd><p>
39the multicast data TX queue (if driver uses the TXQ abstraction)
40      </p></dd><dt><span class="term">chanctx_conf</span></dt><dd><p>
41The channel context this interface is assigned to, or <code class="constant">NULL</code>
42when it is not assigned. This pointer is RCU-protected due to the TX
43path needing to access it; even though the netdev carrier will always
44be off when it is <code class="constant">NULL</code> there can still be races and packets could be
45processed after it switches back to <code class="constant">NULL</code>.
46      </p></dd><dt><span class="term">driver_flags</span></dt><dd><p>
47flags/capabilities the driver has for this interface,
48these need to be set (or cleared) when the interface is added
49or, if supported by the driver, the interface type is changed
50at runtime, mac80211 will never touch this field
51      </p></dd><dt><span class="term">debugfs_dir</span></dt><dd><p>
52debugfs dentry, can be used by drivers to create own per
53interface debug files. Note that it will be NULL for the virtual
54monitor interface (if that is requested.)
55      </p></dd><dt><span class="term">probe_req_reg</span></dt><dd><p>
56probe requests should be reported to mac80211 for this
57interface.
58      </p></dd><dt><span class="term">drv_priv[0]</span></dt><dd><p>
59data area for driver use, will always be aligned to
60sizeof(void *).
61      </p></dd></dl></div></div><div class="refsect1"><a name="id-1.3.3.5.6.6"></a><h2>Description</h2><p>
62   </p><p>
63
64   Data in this structure is continually present for driver
65   use during the life of a virtual interface.
66</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="iface-handling.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="iface-handling.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="rx-tx.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 3. Virtual interfaces </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 4. Receive and transmit processing</td></tr></table></div></body></html>
67