FreeBSD kernel WLAN code
ieee80211_freebsd.c File Reference
#include <sys/cdefs.h>
#include "opt_wlan.h"
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/eventhandler.h>
#include <sys/kernel.h>
#include <sys/linker.h>
#include <sys/malloc.h>
#include <sys/mbuf.h>
#include <sys/module.h>
#include <sys/priv.h>
#include <sys/proc.h>
#include <sys/sysctl.h>
#include <sys/socket.h>
#include <net/bpf.h>
#include <net/debugnet.h>
#include <net/if.h>
#include <net/if_var.h>
#include <net/if_dl.h>
#include <net/if_clone.h>
#include <net/if_media.h>
#include <net/if_types.h>
#include <net/ethernet.h>
#include <net/route.h>
#include <net/vnet.h>
#include <net80211/ieee80211_var.h>
#include <net80211/ieee80211_input.h>
#include <sys/libkern.h>
Include dependency graph for ieee80211_freebsd.c:

Go to the source code of this file.

Macros

#define MC_ALIGN(m, len)
 

Functions

 __FBSDID ("$FreeBSD$")
 
 DEBUGNET_DEFINE (ieee80211)
 
 SYSCTL_NODE (_net, OID_AUTO, wlan, CTLFLAG_RD|CTLFLAG_MPSAFE, 0, "IEEE 80211 parameters")
 
int ieee80211_priv_check_vap_getkey (u_long cmd __unused, struct ieee80211vap *vap __unused, struct ifnet *ifp __unused)
 
int ieee80211_priv_check_vap_manage (u_long cmd __unused, struct ieee80211vap *vap __unused, struct ifnet *ifp __unused)
 
int ieee80211_priv_check_vap_setmac (u_long cmd __unused, struct ieee80211vap *vap __unused, struct ifnet *ifp __unused)
 
int ieee80211_priv_check_create_vap (u_long cmd __unused, struct ieee80211vap *vap __unused, struct ifnet *ifp __unused)
 
static int wlan_clone_create (struct if_clone *ifc, int unit, caddr_t params)
 
static void wlan_clone_destroy (struct ifnet *ifp)
 
void ieee80211_vap_destroy (struct ieee80211vap *vap)
 
int ieee80211_sysctl_msecs_ticks (SYSCTL_HANDLER_ARGS)
 
static int ieee80211_sysctl_inact (SYSCTL_HANDLER_ARGS)
 
static int ieee80211_sysctl_parent (SYSCTL_HANDLER_ARGS)
 
static int ieee80211_sysctl_radar (SYSCTL_HANDLER_ARGS)
 
static int ieee80211_sysctl_vap_restart (SYSCTL_HANDLER_ARGS)
 
void ieee80211_sysctl_attach (struct ieee80211com *ic)
 
void ieee80211_sysctl_detach (struct ieee80211com *ic)
 
void ieee80211_sysctl_vattach (struct ieee80211vap *vap)
 
void ieee80211_sysctl_vdetach (struct ieee80211vap *vap)
 
int ieee80211_com_vincref (struct ieee80211vap *vap)
 
void ieee80211_com_vdecref (struct ieee80211vap *vap)
 
void ieee80211_com_vdetach (struct ieee80211vap *vap)
 
int ieee80211_node_dectestref (struct ieee80211_node *ni)
 
void ieee80211_drain_ifq (struct ifqueue *ifq)
 
void ieee80211_flush_ifq (struct ifqueue *ifq, struct ieee80211vap *vap)
 
struct mbuf * ieee80211_getmgtframe (uint8_t **frm, int headroom, int pktlen)
 
struct mbuf * ieee80211_realign (struct ieee80211vap *vap, struct mbuf *m, size_t align)
 
int ieee80211_add_callback (struct mbuf *m, void(*func)(struct ieee80211_node *, void *, int), void *arg)
 
int ieee80211_add_xmit_params (struct mbuf *m, const struct ieee80211_bpf_params *params)
 
int ieee80211_get_xmit_params (struct mbuf *m, struct ieee80211_bpf_params *params)
 
void ieee80211_process_callback (struct ieee80211_node *ni, struct mbuf *m, int status)
 
int ieee80211_add_rx_params (struct mbuf *m, const struct ieee80211_rx_stats *rxs)
 
int ieee80211_get_rx_params (struct mbuf *m, struct ieee80211_rx_stats *rxs)
 
const struct ieee80211_rx_statsieee80211_get_rx_params_ptr (struct mbuf *m)
 
int ieee80211_add_toa_params (struct mbuf *m, const struct ieee80211_toa_params *p)
 
int ieee80211_get_toa_params (struct mbuf *m, struct ieee80211_toa_params *p)
 
int ieee80211_parent_xmitpkt (struct ieee80211com *ic, struct mbuf *m)
 
int ieee80211_vap_xmitpkt (struct ieee80211vap *vap, struct mbuf *m)
 
void net80211_get_random_bytes (void *p, size_t n)
 
static void notify_macaddr (struct ifnet *ifp, int op, const uint8_t mac[IEEE80211_ADDR_LEN])
 
void ieee80211_notify_node_join (struct ieee80211_node *ni, int newassoc)
 
void ieee80211_notify_node_leave (struct ieee80211_node *ni)
 
void ieee80211_notify_scan_done (struct ieee80211vap *vap)
 
void ieee80211_notify_replay_failure (struct ieee80211vap *vap, const struct ieee80211_frame *wh, const struct ieee80211_key *k, u_int64_t rsc, int tid)
 
void ieee80211_notify_michael_failure (struct ieee80211vap *vap, const struct ieee80211_frame *wh, u_int keyix)
 
void ieee80211_notify_wds_discover (struct ieee80211_node *ni)
 
void ieee80211_notify_csa (struct ieee80211com *ic, const struct ieee80211_channel *c, int mode, int count)
 
void ieee80211_notify_radar (struct ieee80211com *ic, const struct ieee80211_channel *c)
 
void ieee80211_notify_cac (struct ieee80211com *ic, const struct ieee80211_channel *c, enum ieee80211_notify_cac_event type)
 
void ieee80211_notify_node_deauth (struct ieee80211_node *ni)
 
void ieee80211_notify_node_auth (struct ieee80211_node *ni)
 
void ieee80211_notify_country (struct ieee80211vap *vap, const uint8_t bssid[IEEE80211_ADDR_LEN], const uint8_t cc[2])
 
void ieee80211_notify_radio (struct ieee80211com *ic, int state)
 
void ieee80211_notify_ifnet_change (struct ieee80211vap *vap)
 
void ieee80211_load_module (const char *modname)
 
static void bpf_track (void *arg, struct ifnet *ifp, int dlt, int attach)
 
static void wlan_iflladdr (void *arg __unused, struct ifnet *ifp)
 
const char * ieee80211_get_vap_ifname (struct ieee80211vap *vap)
 
static int wlan_modevent (module_t mod, int type, void *unused)
 
 DECLARE_MODULE (wlan, wlan_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST)
 
 MODULE_VERSION (wlan, 1)
 
 MODULE_DEPEND (wlan, ether, 1, 1, 1)
 

Variables

static const char wlanname [] = "wlan"
 
static struct if_clone * wlan_cloner
 
static eventhandler_tag wlan_bpfevent
 
static eventhandler_tag wlan_ifllevent
 
static moduledata_t wlan_mod
 

Macro Definition Documentation

◆ MC_ALIGN

#define MC_ALIGN (   m,
  len 
)
Value:
do { \
(m)->m_data += rounddown2(MCLBYTES - (len), sizeof(long)); \
} while (/* CONSTCOND */ 0)

Definition at line 463 of file ieee80211_freebsd.c.

Function Documentation

◆ __FBSDID()

__FBSDID ( "$FreeBSD$"  )

◆ bpf_track()

static void bpf_track ( void *  arg,
struct ifnet *  ifp,
int  dlt,
int  attach 
)
static

Definition at line 1045 of file ieee80211_freebsd.c.

References DLT_IEEE802_11_RADIO, ieee80211com::ic_montaps, IEEE80211_FEXT_BPF, ieee80211_init(), IEEE80211_M_MONITOR, ieee80211_syncflag_ext(), ieee80211vap::iv_ic, ieee80211vap::iv_opmode, and ieee80211vap::iv_rawbpf.

Referenced by wlan_modevent().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DEBUGNET_DEFINE()

DEBUGNET_DEFINE ( ieee80211  )

◆ DECLARE_MODULE()

DECLARE_MODULE ( wlan  ,
wlan_mod  ,
SI_SUB_DRIVERS  ,
SI_ORDER_FIRST   
)

◆ ieee80211_add_callback()

int ieee80211_add_callback ( struct mbuf *  m,
void(*)(struct ieee80211_node *, void *, int)  func,
void *  arg 
)

Definition at line 551 of file ieee80211_freebsd.c.

References ieee80211_cb::arg, ieee80211_cb::func, M_TXCB, MTAG_ABI_NET80211, and NET80211_TAG_CALLBACK.

Referenced by ieee80211_send_bar(), ieee80211_send_mgmt(), and ieee80211_send_nulldata().

Here is the caller graph for this function:

◆ ieee80211_add_rx_params()

int ieee80211_add_rx_params ( struct mbuf *  m,
const struct ieee80211_rx_stats rxs 
)

Definition at line 623 of file ieee80211_freebsd.c.

References MTAG_ABI_NET80211, NET80211_TAG_RECV_PARAMS, and ieee80211_rx_params::params.

Referenced by ieee80211_input_all().

Here is the caller graph for this function:

◆ ieee80211_add_toa_params()

int ieee80211_add_toa_params ( struct mbuf *  m,
const struct ieee80211_toa_params p 
)

Definition at line 672 of file ieee80211_freebsd.c.

References MTAG_ABI_NET80211, and NET80211_TAG_TOA_PARAMS.

◆ ieee80211_add_xmit_params()

int ieee80211_add_xmit_params ( struct mbuf *  m,
const struct ieee80211_bpf_params params 
)

Definition at line 571 of file ieee80211_freebsd.c.

References MTAG_ABI_NET80211, NET80211_TAG_XMIT_PARAMS, and ieee80211_tx_params::params.

Referenced by ieee80211_raw_output().

Here is the caller graph for this function:

◆ ieee80211_com_vdecref()

void ieee80211_com_vdecref ( struct ieee80211vap vap)

Definition at line 380 of file ieee80211_freebsd.c.

References _IEEE80211_MASKSHIFT, IEEE80211_COM_REF, IEEE80211_COM_REF_ADD, and ieee80211vap::iv_com_state.

Referenced by ieee80211_ioctl().

Here is the caller graph for this function:

◆ ieee80211_com_vdetach()

void ieee80211_com_vdetach ( struct ieee80211vap vap)

Definition at line 393 of file ieee80211_freebsd.c.

References _IEEE80211_MASKSHIFT, IEEE80211_COM_DETACHED, IEEE80211_COM_REF, ieee80211vap::iv_com_state, and msecs_to_ticks.

Referenced by ieee80211_ifdetach().

Here is the caller graph for this function:

◆ ieee80211_com_vincref()

int ieee80211_com_vincref ( struct ieee80211vap vap)

Definition at line 359 of file ieee80211_freebsd.c.

References _IEEE80211_MASKSHIFT, IEEE80211_COM_DETACHED, IEEE80211_COM_REF, IEEE80211_COM_REF_ADD, IEEE80211_COM_REF_MAX, and ieee80211vap::iv_com_state.

Referenced by ieee80211_ioctl().

Here is the caller graph for this function:

◆ ieee80211_drain_ifq()

void ieee80211_drain_ifq ( struct ifqueue *  ifq)

Definition at line 413 of file ieee80211_freebsd.c.

References ieee80211_free_node().

Here is the call graph for this function:

◆ ieee80211_flush_ifq()

void ieee80211_flush_ifq ( struct ifqueue *  ifq,
struct ieee80211vap vap 
)

Definition at line 433 of file ieee80211_freebsd.c.

References ieee80211_free_node(), and ieee80211_node::ni_vap.

Here is the call graph for this function:

◆ ieee80211_get_rx_params()

int ieee80211_get_rx_params ( struct mbuf *  m,
struct ieee80211_rx_stats rxs 
)

Definition at line 640 of file ieee80211_freebsd.c.

References MTAG_ABI_NET80211, NET80211_TAG_RECV_PARAMS, and ieee80211_rx_params::params.

Referenced by ieee80211_input_mimo().

Here is the caller graph for this function:

◆ ieee80211_get_rx_params_ptr()

const struct ieee80211_rx_stats * ieee80211_get_rx_params_ptr ( struct mbuf *  m)

◆ ieee80211_get_toa_params()

int ieee80211_get_toa_params ( struct mbuf *  m,
struct ieee80211_toa_params p 
)

Definition at line 689 of file ieee80211_freebsd.c.

References MTAG_ABI_NET80211, and NET80211_TAG_TOA_PARAMS.

◆ ieee80211_get_vap_ifname()

const char * ieee80211_get_vap_ifname ( struct ieee80211vap vap)

Definition at line 1092 of file ieee80211_freebsd.c.

References ieee80211vap::iv_ifp.

Referenced by vap_update_ht_protmode().

Here is the caller graph for this function:

◆ ieee80211_get_xmit_params()

int ieee80211_get_xmit_params ( struct mbuf *  m,
struct ieee80211_bpf_params params 
)

◆ ieee80211_getmgtframe()

◆ ieee80211_load_module()

void ieee80211_load_module ( const char *  modname)

Definition at line 1031 of file ieee80211_freebsd.c.

Referenced by ieee80211_aclator_get(), ieee80211_authenticator_get(), ieee80211_crypto_newkey(), ieee80211_ratectl_set(), and ieee80211_scanner_get().

Here is the caller graph for this function:

◆ ieee80211_node_dectestref()

int ieee80211_node_dectestref ( struct ieee80211_node ni)

Definition at line 405 of file ieee80211_freebsd.c.

References ieee80211_node::ni_refcnt.

Referenced by ieee80211_free_node(), and node_reclaim().

Here is the caller graph for this function:

◆ ieee80211_notify_cac()

◆ ieee80211_notify_country()

void ieee80211_notify_country ( struct ieee80211vap vap,
const uint8_t  bssid[IEEE80211_ADDR_LEN],
const uint8_t  cc[2] 
)

Definition at line 985 of file ieee80211_freebsd.c.

References IEEE80211_ADDR_COPY, ieee80211_country_event::iev_addr, ieee80211_country_event::iev_cc, ieee80211vap::iv_ifp, and RTM_IEEE80211_COUNTRY.

Referenced by sta_add().

Here is the caller graph for this function:

◆ ieee80211_notify_csa()

◆ ieee80211_notify_ifnet_change()

void ieee80211_notify_ifnet_change ( struct ieee80211vap vap)

Definition at line 1018 of file ieee80211_freebsd.c.

References IEEE80211_DPRINTF, IEEE80211_MSG_DEBUG, and ieee80211vap::iv_ifp.

Referenced by ieee80211_start_locked(), and ieee80211_stop_locked().

Here is the caller graph for this function:

◆ ieee80211_notify_michael_failure()

◆ ieee80211_notify_node_auth()

void ieee80211_notify_node_auth ( struct ieee80211_node ni)

Definition at line 974 of file ieee80211_freebsd.c.

References IEEE80211_MSG_NODE, IEEE80211_NOTE, ieee80211vap::iv_ifp, ieee80211_node::ni_macaddr, ieee80211_node::ni_vap, notify_macaddr(), and RTM_IEEE80211_AUTH.

Referenced by hostap_auth_open(), and hostap_auth_shared().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ieee80211_notify_node_deauth()

void ieee80211_notify_node_deauth ( struct ieee80211_node ni)

◆ ieee80211_notify_node_join()

void ieee80211_notify_node_join ( struct ieee80211_node ni,
int  newassoc 
)

◆ ieee80211_notify_node_leave()

void ieee80211_notify_node_leave ( struct ieee80211_node ni)

Definition at line 801 of file ieee80211_freebsd.c.

References IEEE80211_MSG_NODE, IEEE80211_NOTE, ieee80211vap::iv_bss, ieee80211vap::iv_ifp, ieee80211_node::ni_macaddr, ieee80211_node::ni_vap, notify_macaddr(), RTM_IEEE80211_DISASSOC, and RTM_IEEE80211_LEAVE.

Referenced by ieee80211_sta_leave().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ieee80211_notify_radar()

◆ ieee80211_notify_radio()

void ieee80211_notify_radio ( struct ieee80211com ic,
int  state 
)

◆ ieee80211_notify_replay_failure()

◆ ieee80211_notify_scan_done()

void ieee80211_notify_scan_done ( struct ieee80211vap vap)

Definition at line 821 of file ieee80211_freebsd.c.

References IEEE80211_DPRINTF, IEEE80211_MSG_SCAN, ieee80211vap::iv_ifp, and RTM_IEEE80211_SCAN.

Referenced by ieee80211_swscan_check_scan(), and scan_done().

Here is the caller graph for this function:

◆ ieee80211_notify_wds_discover()

void ieee80211_notify_wds_discover ( struct ieee80211_node ni)

Definition at line 891 of file ieee80211_freebsd.c.

References ieee80211vap::iv_ifp, ieee80211_node::ni_macaddr, ieee80211_node::ni_vap, notify_macaddr(), and RTM_IEEE80211_WDS.

Referenced by ieee80211_dwds_discover().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ieee80211_parent_xmitpkt()

int ieee80211_parent_xmitpkt ( struct ieee80211com ic,
struct mbuf *  m 
)

◆ ieee80211_priv_check_create_vap()

int ieee80211_priv_check_create_vap ( u_long cmd  __unused,
struct ieee80211vap *vap  __unused,
struct ifnet *ifp  __unused 
)

Definition at line 107 of file ieee80211_freebsd.c.

Referenced by wlan_clone_create().

Here is the caller graph for this function:

◆ ieee80211_priv_check_vap_getkey()

int ieee80211_priv_check_vap_getkey ( u_long cmd  __unused,
struct ieee80211vap *vap  __unused,
struct ifnet *ifp  __unused 
)

Definition at line 83 of file ieee80211_freebsd.c.

Referenced by ieee80211_ioctl_get80211(), and ieee80211_ioctl_getkey().

Here is the caller graph for this function:

◆ ieee80211_priv_check_vap_manage()

int ieee80211_priv_check_vap_manage ( u_long cmd  __unused,
struct ieee80211vap *vap  __unused,
struct ifnet *ifp  __unused 
)

Definition at line 91 of file ieee80211_freebsd.c.

Referenced by ieee80211_ioctl().

Here is the caller graph for this function:

◆ ieee80211_priv_check_vap_setmac()

int ieee80211_priv_check_vap_setmac ( u_long cmd  __unused,
struct ieee80211vap *vap  __unused,
struct ifnet *ifp  __unused 
)

Definition at line 99 of file ieee80211_freebsd.c.

Referenced by ieee80211_ioctl().

Here is the caller graph for this function:

◆ ieee80211_process_callback()

void ieee80211_process_callback ( struct ieee80211_node ni,
struct mbuf *  m,
int  status 
)

Definition at line 605 of file ieee80211_freebsd.c.

References ieee80211_cb::arg, ieee80211_cb::func, MTAG_ABI_NET80211, and NET80211_TAG_CALLBACK.

Referenced by ieee80211_tx_complete().

Here is the caller graph for this function:

◆ ieee80211_realign()

struct mbuf * ieee80211_realign ( struct ieee80211vap vap,
struct mbuf *  m,
size_t  align 
)

Definition at line 517 of file ieee80211_freebsd.c.

References IEEE80211_DISCARD, IEEE80211_MSG_ANY, ieee80211_stats::is_rx_badalign, and ieee80211vap::iv_stats.

Referenced by ieee80211_decap(), and mesh_decap().

Here is the caller graph for this function:

◆ ieee80211_sysctl_attach()

void ieee80211_sysctl_attach ( struct ieee80211com ic)

Definition at line 254 of file ieee80211_freebsd.c.

Referenced by ieee80211_ifattach().

Here is the caller graph for this function:

◆ ieee80211_sysctl_detach()

void ieee80211_sysctl_detach ( struct ieee80211com ic)

Definition at line 259 of file ieee80211_freebsd.c.

Referenced by ieee80211_ifdetach().

Here is the caller graph for this function:

◆ ieee80211_sysctl_inact()

static int ieee80211_sysctl_inact ( SYSCTL_HANDLER_ARGS  )
static

Definition at line 198 of file ieee80211_freebsd.c.

References IEEE80211_INACT_WAIT.

Referenced by ieee80211_sysctl_vattach().

Here is the caller graph for this function:

◆ ieee80211_sysctl_msecs_ticks()

int ieee80211_sysctl_msecs_ticks ( SYSCTL_HANDLER_ARGS  )

Definition at line 185 of file ieee80211_freebsd.c.

References msecs_to_ticks, and ticks_to_msecs.

◆ ieee80211_sysctl_parent()

static int ieee80211_sysctl_parent ( SYSCTL_HANDLER_ARGS  )
static

Definition at line 211 of file ieee80211_freebsd.c.

References ieee80211com::ic_name.

Referenced by ieee80211_sysctl_vattach().

Here is the caller graph for this function:

◆ ieee80211_sysctl_radar()

static int ieee80211_sysctl_radar ( SYSCTL_HANDLER_ARGS  )
static

Definition at line 219 of file ieee80211_freebsd.c.

References ieee80211com::ic_curchan, ieee80211_dfs_notify_radar(), IEEE80211_LOCK, and IEEE80211_UNLOCK.

Referenced by ieee80211_sysctl_vattach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ieee80211_sysctl_vap_restart()

static int ieee80211_sysctl_vap_restart ( SYSCTL_HANDLER_ARGS  )
static

Definition at line 240 of file ieee80211_freebsd.c.

References ieee80211_restart_all(), and ieee80211vap::iv_ic.

Referenced by ieee80211_sysctl_vattach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ieee80211_sysctl_vattach()

◆ ieee80211_sysctl_vdetach()

void ieee80211_sysctl_vdetach ( struct ieee80211vap vap)

Definition at line 348 of file ieee80211_freebsd.c.

References IEEE80211_FREE, and ieee80211vap::iv_sysctl.

Referenced by ieee80211_vap_detach().

Here is the caller graph for this function:

◆ ieee80211_vap_destroy()

void ieee80211_vap_destroy ( struct ieee80211vap vap)

Definition at line 177 of file ieee80211_freebsd.c.

References ieee80211vap::iv_ifp, and wlan_cloner.

Referenced by ieee80211_ifdetach().

Here is the caller graph for this function:

◆ ieee80211_vap_xmitpkt()

int ieee80211_vap_xmitpkt ( struct ieee80211vap vap,
struct mbuf *  m 
)

Definition at line 735 of file ieee80211_freebsd.c.

References IEEE80211_TX_UNLOCK_ASSERT, ieee80211vap::iv_ic, and ieee80211vap::iv_ifp.

Referenced by hostap_deliver_data(), hwmp_recv_prep(), ieee80211_recv_pspoll(), and pwrsave_flushq().

Here is the caller graph for this function:

◆ MODULE_DEPEND()

MODULE_DEPEND ( wlan  ,
ether  ,
,
,
 
)

◆ MODULE_VERSION()

MODULE_VERSION ( wlan  ,
 
)

◆ net80211_get_random_bytes()

void net80211_get_random_bytes ( void *  p,
size_t  n 
)

Definition at line 752 of file ieee80211_freebsd.c.

Referenced by hostap_auth_shared(), ieee80211_create_ibss(), ieee80211_dfs_pickchannel(), mesh_generateid(), and wep_attach().

Here is the caller graph for this function:

◆ notify_macaddr()

static void notify_macaddr ( struct ifnet *  ifp,
int  op,
const uint8_t  mac[IEEE80211_ADDR_LEN] 
)
static

◆ SYSCTL_NODE()

SYSCTL_NODE ( _net  ,
OID_AUTO  ,
wlan  ,
CTLFLAG_RD|  CTLFLAG_MPSAFE,
,
"IEEE 80211 parameters"   
)

◆ wlan_clone_create()

◆ wlan_clone_destroy()

static void wlan_clone_destroy ( struct ifnet *  ifp)
static

Definition at line 168 of file ieee80211_freebsd.c.

References ieee80211com::ic_vap_delete, and ieee80211vap::iv_ic.

Referenced by wlan_modevent().

Here is the caller graph for this function:

◆ wlan_iflladdr()

static void wlan_iflladdr ( void *arg  __unused,
struct ifnet *  ifp 
)
static

Definition at line 1074 of file ieee80211_freebsd.c.

References IEEE80211_ADDR_COPY, ieee80211_init(), and ieee80211vap::iv_myaddr.

Referenced by wlan_modevent().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ wlan_modevent()

static int wlan_modevent ( module_t  mod,
int  type,
void *  unused 
)
static

Definition at line 1153 of file ieee80211_freebsd.c.

References bpf_track(), wlan_bpfevent, wlan_clone_create(), wlan_clone_destroy(), wlan_cloner, wlan_iflladdr(), wlan_ifllevent, and wlanname.

Here is the call graph for this function:

Variable Documentation

◆ wlan_bpfevent

eventhandler_tag wlan_bpfevent
static

Definition at line 1041 of file ieee80211_freebsd.c.

Referenced by wlan_modevent().

◆ wlan_cloner

struct if_clone* wlan_cloner
static

Definition at line 76 of file ieee80211_freebsd.c.

Referenced by ieee80211_vap_destroy(), and wlan_modevent().

◆ wlan_ifllevent

eventhandler_tag wlan_ifllevent
static

Definition at line 1042 of file ieee80211_freebsd.c.

Referenced by wlan_modevent().

◆ wlan_mod

moduledata_t wlan_mod
static
Initial value:
= {
0
}
static int wlan_modevent(module_t mod, int type, void *unused)
static const char wlanname[]

Definition at line 1175 of file ieee80211_freebsd.c.

◆ wlanname

const char wlanname[] = "wlan"
static

Definition at line 75 of file ieee80211_freebsd.c.

Referenced by wlan_clone_create(), and wlan_modevent().