FreeBSD kernel WLAN code
ieee80211_proto.c File Reference
#include <sys/cdefs.h>
#include "opt_inet.h"
#include "opt_wlan.h"
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/malloc.h>
#include <sys/socket.h>
#include <sys/sockio.h>
#include <net/if.h>
#include <net/if_var.h>
#include <net/if_media.h>
#include <net/ethernet.h>
#include <net80211/ieee80211_var.h>
#include <net80211/ieee80211_adhoc.h>
#include <net80211/ieee80211_sta.h>
#include <net80211/ieee80211_hostap.h>
#include <net80211/ieee80211_wds.h>
#include <net80211/ieee80211_monitor.h>
#include <net80211/ieee80211_input.h>
Include dependency graph for ieee80211_proto.c:

Go to the source code of this file.

Data Structures

struct  phyParamType
 

Macros

#define AGGRESSIVE_MODE_SWITCH_HYSTERESIS   3 /* pkts / 100ms */
 
#define HIGH_PRI_SWITCH_THRESH   10 /* pkts / 100ms */
 
#define FREEAPPIE(ie)
 
#define IEEE80211_AUTH_MAX   (IEEE80211_AUTH_WPA+1)
 

Typedefs

typedef struct phyParamType paramType
 

Functions

 __FBSDID ("$FreeBSD$")
 
const char * ieee80211_reason_to_string (uint16_t reason)
 
static void beacon_miss (void *, int)
 
static void beacon_swmiss (void *, int)
 
static void parent_updown (void *, int)
 
static void update_mcast (void *, int)
 
static void update_promisc (void *, int)
 
static void update_channel (void *, int)
 
static void update_chw (void *, int)
 
static void vap_update_wme (void *, int)
 
static void vap_update_slot (void *, int)
 
static void restart_vaps (void *, int)
 
static void vap_update_erp_protmode (void *, int)
 
static void vap_update_preamble (void *, int)
 
static void vap_update_ht_protmode (void *, int)
 
static void ieee80211_newstate_cb (void *, int)
 
static int null_raw_xmit (struct ieee80211_node *ni, struct mbuf *m, const struct ieee80211_bpf_params *params)
 
void ieee80211_proto_attach (struct ieee80211com *ic)
 
void ieee80211_proto_detach (struct ieee80211com *ic)
 
static void null_update_beacon (struct ieee80211vap *vap, int item)
 
void ieee80211_proto_vattach (struct ieee80211vap *vap)
 
void ieee80211_proto_vdetach (struct ieee80211vap *vap)
 
static void ieee80211_auth_setup (void)
 
 SYSINIT (wlan_auth, SI_SUB_DRIVERS, SI_ORDER_FIRST, ieee80211_auth_setup, NULL)
 
const struct ieee80211_authenticatorieee80211_authenticator_get (int auth)
 
void ieee80211_authenticator_register (int type, const struct ieee80211_authenticator *auth)
 
void ieee80211_authenticator_unregister (int type)
 
void ieee80211_aclator_register (const struct ieee80211_aclator *iac)
 
void ieee80211_aclator_unregister (const struct ieee80211_aclator *iac)
 
const struct ieee80211_aclatorieee80211_aclator_get (const char *name)
 
void ieee80211_print_essid (const uint8_t *essid, int len)
 
void ieee80211_dump_pkt (struct ieee80211com *ic, const uint8_t *buf, int len, int rate, int rssi)
 
static __inline int findrix (const struct ieee80211_rateset *rs, int r)
 
int ieee80211_fix_rate (struct ieee80211_node *ni, struct ieee80211_rateset *nrs, int flags)
 
void ieee80211_vap_reset_erp (struct ieee80211vap *vap)
 
void ieee80211_reset_erp (struct ieee80211com *ic)
 
void ieee80211_vap_set_shortslottime (struct ieee80211vap *vap, int onoff)
 
void ieee80211_vap_update_preamble (struct ieee80211vap *vap)
 
void ieee80211_vap_update_erp_protmode (struct ieee80211vap *vap)
 
void ieee80211_vap_update_ht_protmode (struct ieee80211vap *vap)
 
int ieee80211_iserp_rateset (const struct ieee80211_rateset *rs)
 
static void setbasicrates (struct ieee80211_rateset *rs, enum ieee80211_phymode mode, int add)
 
void ieee80211_setbasicrates (struct ieee80211_rateset *rs, enum ieee80211_phymode mode)
 
void ieee80211_addbasicrates (struct ieee80211_rateset *rs, enum ieee80211_phymode mode)
 
static void _setifsparams (struct wmeParams *wmep, const paramType *phy)
 
static void setwmeparams (struct ieee80211vap *vap, const char *type, int ac, struct wmeParams *wmep, const paramType *phy)
 
static void ieee80211_wme_initparams_locked (struct ieee80211vap *vap)
 
void ieee80211_wme_initparams (struct ieee80211vap *vap)
 
void ieee80211_wme_updateparams_locked (struct ieee80211vap *vap)
 
void ieee80211_wme_updateparams (struct ieee80211vap *vap)
 
void ieee80211_wme_vap_getparams (struct ieee80211vap *vap, struct chanAccParams *wp)
 
void ieee80211_wme_ic_getparams (struct ieee80211com *ic, struct chanAccParams *wp)
 
int ieee80211_wme_vap_ac_is_noack (struct ieee80211vap *vap, int ac)
 
void ieee80211_waitfor_parent (struct ieee80211com *ic)
 
static int ieee80211_start_check_reset_chan (struct ieee80211vap *vap)
 
static void ieee80211_start_reset_chan (struct ieee80211vap *vap)
 
void ieee80211_start_locked (struct ieee80211vap *vap)
 
void ieee80211_init (void *arg)
 
void ieee80211_start_all (struct ieee80211com *ic)
 
void ieee80211_stop_locked (struct ieee80211vap *vap)
 
void ieee80211_stop (struct ieee80211vap *vap)
 
void ieee80211_stop_all (struct ieee80211com *ic)
 
void ieee80211_suspend_all (struct ieee80211com *ic)
 
void ieee80211_resume_all (struct ieee80211com *ic)
 
void ieee80211_restart_all (struct ieee80211com *ic)
 
void ieee80211_beacon_miss (struct ieee80211com *ic)
 
void ieee80211_swbmiss (void *arg)
 
void ieee80211_csa_startswitch (struct ieee80211com *ic, struct ieee80211_channel *c, int mode, int count)
 
static void csa_completeswitch (struct ieee80211com *ic)
 
void ieee80211_csa_completeswitch (struct ieee80211com *ic)
 
void ieee80211_csa_cancelswitch (struct ieee80211com *ic)
 
void ieee80211_cac_completeswitch (struct ieee80211vap *vap0)
 
static void markwaiting (struct ieee80211vap *vap0)
 
static void wakeupwaiting (struct ieee80211vap *vap0)
 
int ieee80211_new_state_locked (struct ieee80211vap *vap, enum ieee80211_state nstate, int arg)
 
int ieee80211_new_state (struct ieee80211vap *vap, enum ieee80211_state nstate, int arg)
 

Variables

const char * mgt_subtype_name []
 
const char * ctl_subtype_name []
 
const char * ieee80211_opmode_name [IEEE80211_OPMODE_MAX]
 
const char * ieee80211_state_name [IEEE80211_S_MAX]
 
const char * ieee80211_wme_acnames []
 
static const char * auth_modnames [IEEE80211_AUTH_MAX]
 
static const struct ieee80211_authenticatorauthenticators [IEEE80211_AUTH_MAX]
 
static const struct ieee80211_authenticator auth_internal
 
static const struct ieee80211_aclatoracl = NULL
 
static const struct phyParamType phyParamForAC_BE [IEEE80211_MODE_MAX]
 
static const struct phyParamType phyParamForAC_BK [IEEE80211_MODE_MAX]
 
static const struct phyParamType phyParamForAC_VI [IEEE80211_MODE_MAX]
 
static const struct phyParamType phyParamForAC_VO [IEEE80211_MODE_MAX]
 
static const struct phyParamType bssPhyParamForAC_BE [IEEE80211_MODE_MAX]
 
static const struct phyParamType bssPhyParamForAC_VI [IEEE80211_MODE_MAX]
 
static const struct phyParamType bssPhyParamForAC_VO [IEEE80211_MODE_MAX]
 

Macro Definition Documentation

◆ AGGRESSIVE_MODE_SWITCH_HYSTERESIS

#define AGGRESSIVE_MODE_SWITCH_HYSTERESIS   3 /* pkts / 100ms */

Definition at line 65 of file ieee80211_proto.c.

◆ FREEAPPIE

#define FREEAPPIE (   ie)
Value:
do { \
if (ie != NULL) \
IEEE80211_FREE(ie, M_80211_NODE_IE); \
} while (0)

◆ HIGH_PRI_SWITCH_THRESH

#define HIGH_PRI_SWITCH_THRESH   10 /* pkts / 100ms */

Definition at line 66 of file ieee80211_proto.c.

◆ IEEE80211_AUTH_MAX

#define IEEE80211_AUTH_MAX   (IEEE80211_AUTH_WPA+1)

Definition at line 440 of file ieee80211_proto.c.

Typedef Documentation

◆ paramType

typedef struct phyParamType paramType

Function Documentation

◆ __FBSDID()

__FBSDID ( "$FreeBSD$"  )

◆ _setifsparams()

static void _setifsparams ( struct wmeParams wmep,
const paramType phy 
)
static

◆ beacon_miss()

static void beacon_miss ( void *  arg,
int  npending 
)
static

Definition at line 2210 of file ieee80211_proto.c.

References IEEE80211_LOCK, IEEE80211_M_STA, IEEE80211_S_RUN, IEEE80211_UNLOCK, ieee80211vap::iv_bmiss, ieee80211vap::iv_opmode, and ieee80211vap::iv_state.

Referenced by ieee80211_proto_attach().

Here is the caller graph for this function:

◆ beacon_swmiss()

static void beacon_swmiss ( void *  arg,
int  npending 
)
static

Definition at line 2231 of file ieee80211_proto.c.

References IEEE80211_LOCK, IEEE80211_S_RUN, IEEE80211_UNLOCK, ieee80211vap::iv_bmiss, ieee80211vap::iv_ic, and ieee80211vap::iv_state.

Referenced by ieee80211_proto_vattach().

Here is the caller graph for this function:

◆ csa_completeswitch()

static void csa_completeswitch ( struct ieee80211com ic)
static

Definition at line 2323 of file ieee80211_proto.c.

References ieee80211com::ic_csa_newchan, ieee80211com::ic_flags, ieee80211_new_state_locked(), IEEE80211_S_CSA, IEEE80211_S_RUN, and ieee80211vap::iv_state.

Referenced by ieee80211_csa_cancelswitch(), and ieee80211_csa_completeswitch().

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

◆ findrix()

static __inline int findrix ( const struct ieee80211_rateset rs,
int  r 
)
static

Definition at line 629 of file ieee80211_proto.c.

References IEEE80211_RATE_VAL, ieee80211_rateset::rs_nrates, and ieee80211_rateset::rs_rates.

Referenced by ieee80211_fix_rate().

Here is the caller graph for this function:

◆ ieee80211_aclator_get()

const struct ieee80211_aclator * ieee80211_aclator_get ( const char *  name)

Definition at line 522 of file ieee80211_proto.c.

References acl, and ieee80211_load_module().

Referenced by ieee80211_ioctl_macmac(), and ieee80211_ioctl_setmaccmd().

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

◆ ieee80211_aclator_register()

void ieee80211_aclator_register ( const struct ieee80211_aclator iac)

Definition at line 507 of file ieee80211_proto.c.

References ieee80211_aclator::iac_name.

◆ ieee80211_aclator_unregister()

void ieee80211_aclator_unregister ( const struct ieee80211_aclator iac)

Definition at line 514 of file ieee80211_proto.c.

References ieee80211_aclator::iac_name.

◆ ieee80211_addbasicrates()

void ieee80211_addbasicrates ( struct ieee80211_rateset rs,
enum ieee80211_phymode  mode 
)

Definition at line 1351 of file ieee80211_proto.c.

References setbasicrates().

Referenced by ieee80211_create_ibss().

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

◆ ieee80211_auth_setup()

static void ieee80211_auth_setup ( void  )
static

Definition at line 464 of file ieee80211_proto.c.

References auth_internal, IEEE80211_AUTH_AUTO, IEEE80211_AUTH_OPEN, IEEE80211_AUTH_SHARED, and ieee80211_authenticator_register().

Here is the call graph for this function:

◆ ieee80211_authenticator_get()

const struct ieee80211_authenticator * ieee80211_authenticator_get ( int  auth)

Definition at line 473 of file ieee80211_proto.c.

References auth_modnames, authenticators, IEEE80211_AUTH_MAX, and ieee80211_load_module().

Referenced by ieee80211_ioctl_set80211(), and ieee80211_node_latevattach().

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

◆ ieee80211_authenticator_register()

void ieee80211_authenticator_register ( int  type,
const struct ieee80211_authenticator auth 
)

Definition at line 483 of file ieee80211_proto.c.

References authenticators, and IEEE80211_AUTH_MAX.

Referenced by ieee80211_auth_setup().

Here is the caller graph for this function:

◆ ieee80211_authenticator_unregister()

void ieee80211_authenticator_unregister ( int  type)

Definition at line 492 of file ieee80211_proto.c.

References authenticators, and IEEE80211_AUTH_MAX.

◆ ieee80211_beacon_miss()

void ieee80211_beacon_miss ( struct ieee80211com ic)

Definition at line 2199 of file ieee80211_proto.c.

References ieee80211com::ic_bmiss_task, ieee80211com::ic_flags, IEEE80211_F_SCAN, IEEE80211_LOCK, ieee80211_runtask(), and IEEE80211_UNLOCK.

Here is the call graph for this function:

◆ ieee80211_cac_completeswitch()

void ieee80211_cac_completeswitch ( struct ieee80211vap vap0)

Definition at line 2381 of file ieee80211_proto.c.

References IEEE80211_LOCK, ieee80211_new_state_locked(), IEEE80211_S_CAC, IEEE80211_S_RUN, IEEE80211_UNLOCK, ieee80211vap::iv_ic, and ieee80211vap::iv_state.

Referenced by cac_timeout().

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

◆ ieee80211_csa_cancelswitch()

void ieee80211_csa_cancelswitch ( struct ieee80211com ic)

Definition at line 2369 of file ieee80211_proto.c.

References csa_completeswitch(), and IEEE80211_LOCK_ASSERT.

Referenced by ieee80211_ioctl_chanswitch(), ieee80211_parse_csaparams(), and sta_recv_mgmt().

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

◆ ieee80211_csa_completeswitch()

void ieee80211_csa_completeswitch ( struct ieee80211com ic)

◆ ieee80211_csa_startswitch()

◆ ieee80211_dump_pkt()

◆ ieee80211_fix_rate()

◆ ieee80211_init()

void ieee80211_init ( void *  arg)

Definition at line 2054 of file ieee80211_proto.c.

References IEEE80211_DPRINTF, IEEE80211_LOCK, IEEE80211_MSG_DEBUG, IEEE80211_MSG_STATE, ieee80211_start_locked(), IEEE80211_UNLOCK, and ieee80211vap::iv_ic.

Referenced by bpf_track(), ieee80211_ioctl_set80211(), ieee80211_vap_setup(), and wlan_iflladdr().

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

◆ ieee80211_iserp_rateset()

int ieee80211_iserp_rateset ( const struct ieee80211_rateset rs)

◆ ieee80211_new_state()

int ieee80211_new_state ( struct ieee80211vap vap,
enum ieee80211_state  nstate,
int  arg 
)

◆ ieee80211_new_state_locked()

◆ ieee80211_newstate_cb()

◆ ieee80211_print_essid()

void ieee80211_print_essid ( const uint8_t *  essid,
int  len 
)

Definition at line 530 of file ieee80211_proto.c.

References IEEE80211_NWID_LEN.

Referenced by adhoc_newstate(), hostap_newstate(), match_bss(), mesh_newstate(), and sta_newstate().

Here is the caller graph for this function:

◆ ieee80211_proto_attach()

◆ ieee80211_proto_detach()

void ieee80211_proto_detach ( struct ieee80211com ic)

Definition at line 308 of file ieee80211_proto.c.

References ieee80211_adhoc_detach(), ieee80211_hostap_detach(), ieee80211_mesh_detach(), ieee80211_monitor_detach(), ieee80211_sta_detach(), and ieee80211_wds_detach().

Referenced by ieee80211_ifdetach().

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

◆ ieee80211_proto_vattach()

void ieee80211_proto_vattach ( struct ieee80211vap vap)

Definition at line 326 of file ieee80211_proto.c.

References beacon_swmiss(), ieee80211com::ic_headroom, ieee80211com::ic_modecaps, ieee80211com::ic_sup_rates, ieee80211com::ic_vattach, IEEE80211_BMISS_MAX, ieee80211_deliver_data(), IEEE80211_FIXED_RATE_NONE, IEEE80211_FRAG_DEFAULT, IEEE80211_LOCK_OBJ, IEEE80211_MODE_11A, IEEE80211_MODE_11NA, IEEE80211_MODE_11NG, IEEE80211_MODE_MAX, ieee80211_newstate_cb(), IEEE80211_PROT_CTSONLY, IEEE80211_RATE_MCS, IEEE80211_RATE_VAL, IEEE80211_ROAMING_AUTO, IEEE80211_RTS_DEFAULT, IEEE80211_TXMAX_DEFAULT, IEEE80211_WEP_EXTIVLEN, IEEE80211_WEP_IVLEN, IEEE80211_WEP_KIDLEN, ieee80211vap::iv_bmiss_max, ieee80211vap::iv_deliver_data, ieee80211vap::iv_erp_protmode_task, ieee80211vap::iv_fragthreshold, ieee80211vap::iv_ht_protmode_task, ieee80211vap::iv_ic, ieee80211vap::iv_ifp, ieee80211vap::iv_mgtsend, ieee80211vap::iv_nstate_task, ieee80211vap::iv_opmode, ieee80211vap::iv_preamble_task, ieee80211vap::iv_protmode, ieee80211vap::iv_roaming, ieee80211vap::iv_rtsthreshold, ieee80211vap::iv_slot_task, ieee80211vap::iv_swbmiss, ieee80211vap::iv_swbmiss_task, ieee80211vap::iv_txparms, ieee80211vap::iv_update_beacon, ieee80211vap::iv_wme_task, ieee80211_txparam::maxretry, ieee80211_txparam::mcastrate, ieee80211_txparam::mgmtrate, null_update_beacon(), ieee80211_rateset::rs_rates, ieee80211_txparam::ucastrate, vap_update_erp_protmode(), vap_update_ht_protmode(), vap_update_preamble(), vap_update_slot(), and vap_update_wme().

Referenced by ieee80211_vap_setup().

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

◆ ieee80211_proto_vdetach()

◆ ieee80211_reason_to_string()

const char * ieee80211_reason_to_string ( uint16_t  reason)

Definition at line 112 of file ieee80211_proto.c.

References IEEE80211_REASON_4WAY_HANDSHAKE_TIMEOUT, IEEE80211_REASON_802_1X_AUTH_FAILED, IEEE80211_REASON_AKMP_INVALID, IEEE80211_REASON_ASSOC_EXPIRE, IEEE80211_REASON_ASSOC_LEAVE, IEEE80211_REASON_ASSOC_NOT_AUTHED, IEEE80211_REASON_ASSOC_TOOMANY, IEEE80211_REASON_AUTH_EXPIRE, IEEE80211_REASON_AUTH_LEAVE, IEEE80211_REASON_BAD_MECHANISM, IEEE80211_REASON_CIPHER_SUITE_REJECTED, IEEE80211_REASON_DISASSOC_PWRCAP_BAD, IEEE80211_REASON_DISASSOC_SUPCHAN_BAD, IEEE80211_REASON_GROUP_CIPHER_INVALID, IEEE80211_REASON_GROUP_KEY_UPDATE_TIMEOUT, IEEE80211_REASON_IE_IN_4WAY_DIFFERS, IEEE80211_REASON_IE_INVALID, IEEE80211_REASON_INSUFFICIENT_BW, IEEE80211_REASON_INVALID_RSN_IE_CAP, IEEE80211_REASON_LEAVING_QBSS, IEEE80211_REASON_MESH_CHAN_SWITCH_REG, IEEE80211_REASON_MESH_CHAN_SWITCH_UNSPEC, IEEE80211_REASON_MESH_CLOSE_RCVD, IEEE80211_REASON_MESH_CONFIRM_TIMEOUT, IEEE80211_REASON_MESH_CPVIOLATION, IEEE80211_REASON_MESH_INCONS_PARAMS, IEEE80211_REASON_MESH_INVALID_GTK, IEEE80211_REASON_MESH_INVALID_SECURITY, IEEE80211_REASON_MESH_MAC_ALRDY_EXISTS_MBSS, IEEE80211_REASON_MESH_MAX_PEERS, IEEE80211_REASON_MESH_MAX_RETRIES, IEEE80211_REASON_MESH_PERR_DEST_UNREACH, IEEE80211_REASON_MESH_PERR_NO_FI, IEEE80211_REASON_MESH_PERR_NO_PROXY, IEEE80211_REASON_MIC_FAILURE, IEEE80211_REASON_NOT_ASSOCED, IEEE80211_REASON_NOT_AUTHED, IEEE80211_REASON_OUTSIDE_TXOP, IEEE80211_REASON_PAIRWISE_CIPHER_INVALID, IEEE80211_REASON_PEER_LINK_CANCELED, IEEE80211_REASON_SETUP_NEEDED, IEEE80211_REASON_TIMEOUT, IEEE80211_REASON_TOOMANY_FRAMES, IEEE80211_REASON_UNSPECIFIED, IEEE80211_REASON_UNSPECIFIED_QOS, and IEEE80211_REASON_UNSUPP_RSN_IE_VERSION.

Referenced by hostap_recv_mgmt(), ht_send_action_ba_delba(), ieee80211_ampdu_stop(), ieee80211_send_mgmt(), mesh_send_action_meshpeering_close(), mlmedebug(), and sta_recv_mgmt().

Here is the caller graph for this function:

◆ ieee80211_reset_erp()

void ieee80211_reset_erp ( struct ieee80211com ic)

◆ ieee80211_restart_all()

void ieee80211_restart_all ( struct ieee80211com ic)

Definition at line 2189 of file ieee80211_proto.c.

References ieee80211com::ic_restart_task.

Referenced by ieee80211_sysctl_vap_restart().

Here is the caller graph for this function:

◆ ieee80211_resume_all()

void ieee80211_resume_all ( struct ieee80211com ic)

Definition at line 2169 of file ieee80211_proto.c.

References IEEE80211_FEXT_RESUME, IEEE80211_LOCK, ieee80211_start_locked(), IEEE80211_UNLOCK, IFNET_IS_UP_RUNNING, ieee80211vap::iv_flags_ext, and ieee80211vap::iv_ifp.

Referenced by restart_vaps().

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

◆ ieee80211_setbasicrates()

void ieee80211_setbasicrates ( struct ieee80211_rateset rs,
enum ieee80211_phymode  mode 
)

Definition at line 1341 of file ieee80211_proto.c.

References setbasicrates().

Referenced by ieee80211_create_ibss(), and ieee80211_setmode().

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

◆ ieee80211_start_all()

void ieee80211_start_all ( struct ieee80211com ic)

Definition at line 2070 of file ieee80211_proto.c.

References IEEE80211_LOCK, ieee80211_start_locked(), IEEE80211_UNLOCK, IFNET_IS_UP_RUNNING, and ieee80211vap::iv_ifp.

Here is the call graph for this function:

◆ ieee80211_start_check_reset_chan()

static int ieee80211_start_check_reset_chan ( struct ieee80211vap vap)
static

◆ ieee80211_start_locked()

◆ ieee80211_start_reset_chan()

static void ieee80211_start_reset_chan ( struct ieee80211vap vap)
static

Definition at line 1956 of file ieee80211_proto.c.

References ieee80211com::ic_channels, ieee80211com::ic_curchan, and ieee80211vap::iv_ic.

Referenced by ieee80211_start_locked().

Here is the caller graph for this function:

◆ ieee80211_stop()

void ieee80211_stop ( struct ieee80211vap vap)

Definition at line 2115 of file ieee80211_proto.c.

References IEEE80211_LOCK, ieee80211_stop_locked(), IEEE80211_UNLOCK, and ieee80211vap::iv_ic.

Referenced by ieee80211_vap_detach().

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

◆ ieee80211_stop_all()

void ieee80211_stop_all ( struct ieee80211com ic)

Definition at line 2128 of file ieee80211_proto.c.

References IEEE80211_LOCK, ieee80211_stop_locked(), IEEE80211_UNLOCK, ieee80211_waitfor_parent(), IFNET_IS_UP_RUNNING, and ieee80211vap::iv_ifp.

Here is the call graph for this function:

◆ ieee80211_stop_locked()

◆ ieee80211_suspend_all()

void ieee80211_suspend_all ( struct ieee80211com ic)

Definition at line 2148 of file ieee80211_proto.c.

References IEEE80211_FEXT_RESUME, IEEE80211_LOCK, ieee80211_stop_locked(), IEEE80211_UNLOCK, ieee80211_waitfor_parent(), IFNET_IS_UP_RUNNING, ieee80211vap::iv_flags_ext, and ieee80211vap::iv_ifp.

Referenced by restart_vaps().

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

◆ ieee80211_swbmiss()

◆ ieee80211_vap_reset_erp()

◆ ieee80211_vap_set_shortslottime()

void ieee80211_vap_set_shortslottime ( struct ieee80211vap vap,
int  onoff 
)

Definition at line 1193 of file ieee80211_proto.c.

References IEEE80211_DPRINTF, IEEE80211_F_SHSLOT, IEEE80211_MSG_DEBUG, ieee80211_runtask(), ieee80211vap::iv_flags, ieee80211vap::iv_ic, and ieee80211vap::iv_slot_task.

Referenced by ieee80211_node_join_11g(), ieee80211_node_leave_11g(), ieee80211_vap_reset_erp(), and sta_recv_mgmt().

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

◆ ieee80211_vap_update_erp_protmode()

void ieee80211_vap_update_erp_protmode ( struct ieee80211vap vap)

Definition at line 1240 of file ieee80211_proto.c.

References IEEE80211_DPRINTF, IEEE80211_MSG_DEBUG, ieee80211_runtask(), ieee80211vap::iv_erp_protmode_task, and ieee80211vap::iv_ic.

Referenced by disable_protection(), hostap_recv_mgmt(), ieee80211_ioctl_set80211(), ieee80211_node_join_11g(), and sta_recv_mgmt().

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

◆ ieee80211_vap_update_ht_protmode()

void ieee80211_vap_update_ht_protmode ( struct ieee80211vap vap)

Definition at line 1257 of file ieee80211_proto.c.

References IEEE80211_DPRINTF, IEEE80211_MSG_DEBUG, ieee80211_runtask(), ieee80211vap::iv_ht_protmode_task, and ieee80211vap::iv_ic.

Referenced by htinfo_update(), ieee80211_htprot_update(), and ieee80211_ioctl_set80211().

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

◆ ieee80211_vap_update_preamble()

void ieee80211_vap_update_preamble ( struct ieee80211vap vap)

Definition at line 1223 of file ieee80211_proto.c.

References IEEE80211_DPRINTF, IEEE80211_MSG_DEBUG, ieee80211_runtask(), ieee80211vap::iv_ic, and ieee80211vap::iv_preamble_task.

Referenced by disable_protection(), ieee80211_node_join_11g(), and sta_recv_mgmt().

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

◆ ieee80211_waitfor_parent()

void ieee80211_waitfor_parent ( struct ieee80211com ic)

◆ ieee80211_wme_ic_getparams()

void ieee80211_wme_ic_getparams ( struct ieee80211com ic,
struct chanAccParams wp 
)

◆ ieee80211_wme_initparams()

void ieee80211_wme_initparams ( struct ieee80211vap vap)

Definition at line 1587 of file ieee80211_proto.c.

References IEEE80211_LOCK, IEEE80211_UNLOCK, ieee80211_wme_initparams_locked(), and ieee80211vap::iv_ic.

Referenced by ieee80211_sta_join1().

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

◆ ieee80211_wme_initparams_locked()

◆ ieee80211_wme_updateparams()

void ieee80211_wme_updateparams ( struct ieee80211vap vap)

Definition at line 1759 of file ieee80211_proto.c.

References ieee80211com::ic_caps, IEEE80211_C_WME, IEEE80211_LOCK, IEEE80211_UNLOCK, ieee80211_wme_updateparams_locked(), and ieee80211vap::iv_ic.

Referenced by ieee80211_ioctl_setwmeparam(), ieee80211_wme_initparams_locked(), and sta_recv_mgmt().

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

◆ ieee80211_wme_updateparams_locked()

void ieee80211_wme_updateparams_locked ( struct ieee80211vap vap)

◆ ieee80211_wme_vap_ac_is_noack()

int ieee80211_wme_vap_ac_is_noack ( struct ieee80211vap vap,
int  ac 
)

◆ ieee80211_wme_vap_getparams()

void ieee80211_wme_vap_getparams ( struct ieee80211vap vap,
struct chanAccParams wp 
)

◆ markwaiting()

static void markwaiting ( struct ieee80211vap vap0)
static

◆ null_raw_xmit()

static int null_raw_xmit ( struct ieee80211_node ni,
struct mbuf *  m,
const struct ieee80211_bpf_params params 
)
static

Definition at line 254 of file ieee80211_proto.c.

References ic_printf(), and ieee80211_node::ni_ic.

Referenced by ieee80211_proto_attach().

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

◆ null_update_beacon()

static void null_update_beacon ( struct ieee80211vap vap,
int  item 
)
static

Definition at line 321 of file ieee80211_proto.c.

Referenced by ieee80211_proto_vattach().

Here is the caller graph for this function:

◆ parent_updown()

static void parent_updown ( void *  arg,
int  npending 
)
static

Definition at line 1817 of file ieee80211_proto.c.

References ieee80211com::ic_parent.

Referenced by ieee80211_proto_attach().

Here is the caller graph for this function:

◆ restart_vaps()

static void restart_vaps ( void *  arg,
int  npending 
)
static

Definition at line 1902 of file ieee80211_proto.c.

References ieee80211_resume_all(), and ieee80211_suspend_all().

Referenced by ieee80211_proto_attach().

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

◆ setbasicrates()

◆ setwmeparams()

static void setwmeparams ( struct ieee80211vap vap,
const char *  type,
int  ac,
struct wmeParams wmep,
const paramType phy 
)
static

◆ SYSINIT()

SYSINIT ( wlan_auth  ,
SI_SUB_DRIVERS  ,
SI_ORDER_FIRST  ,
ieee80211_auth_setup  ,
NULL   
)

◆ update_channel()

static void update_channel ( void *  arg,
int  npending 
)
static

Definition at line 1841 of file ieee80211_proto.c.

References ieee80211com::ic_set_channel, and ieee80211_radiotap_chan_change().

Referenced by ieee80211_proto_attach().

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

◆ update_chw()

static void update_chw ( void *  arg,
int  npending 
)
static

Definition at line 1850 of file ieee80211_proto.c.

References ieee80211com::ic_update_chw.

Referenced by ieee80211_proto_attach().

Here is the caller graph for this function:

◆ update_mcast()

static void update_mcast ( void *  arg,
int  npending 
)
static

Definition at line 1825 of file ieee80211_proto.c.

References ieee80211com::ic_update_mcast.

Referenced by ieee80211_proto_attach().

Here is the caller graph for this function:

◆ update_promisc()

static void update_promisc ( void *  arg,
int  npending 
)
static

Definition at line 1833 of file ieee80211_proto.c.

References ieee80211com::ic_update_promisc.

Referenced by ieee80211_proto_attach().

Here is the caller graph for this function:

◆ vap_update_erp_protmode()

static void vap_update_erp_protmode ( void *  arg,
int  npending 
)
static

◆ vap_update_ht_protmode()

◆ vap_update_preamble()

static void vap_update_preamble ( void *  arg,
int  npending 
)
static

◆ vap_update_slot()

static void vap_update_slot ( void *  arg,
int  npending 
)
static

◆ vap_update_wme()

◆ wakeupwaiting()

static void wakeupwaiting ( struct ieee80211vap vap0)
static

Variable Documentation

◆ acl

◆ auth_internal

const struct ieee80211_authenticator auth_internal
static
Initial value:
= {
.ia_name = "wlan_internal",
.ia_attach = NULL,
.ia_detach = NULL,
.ia_node_join = NULL,
.ia_node_leave = NULL,
}

Definition at line 452 of file ieee80211_proto.c.

Referenced by ieee80211_auth_setup().

◆ auth_modnames

const char* auth_modnames[IEEE80211_AUTH_MAX]
static
Initial value:
= {
"wlan_internal",
"wlan_internal",
"wlan_internal",
"wlan_xauth",
"wlan_internal",
"wlan_xauth",
}

Definition at line 442 of file ieee80211_proto.c.

Referenced by ieee80211_authenticator_get().

◆ authenticators

◆ bssPhyParamForAC_BE

const struct phyParamType bssPhyParamForAC_BE[IEEE80211_MODE_MAX]
static
Initial value:
= {
[IEEE80211_MODE_AUTO] = { 3, 4, 10, 0, 0 },
[IEEE80211_MODE_11A] = { 3, 4, 10, 0, 0 },
[IEEE80211_MODE_11B] = { 3, 4, 10, 0, 0 },
[IEEE80211_MODE_11G] = { 3, 4, 10, 0, 0 },
[IEEE80211_MODE_FH] = { 3, 4, 10, 0, 0 },
[IEEE80211_MODE_TURBO_A]= { 2, 3, 10, 0, 0 },
[IEEE80211_MODE_TURBO_G]= { 2, 3, 10, 0, 0 },
[IEEE80211_MODE_STURBO_A]={ 2, 3, 10, 0, 0 },
[IEEE80211_MODE_HALF] = { 3, 4, 10, 0, 0 },
[IEEE80211_MODE_QUARTER]= { 3, 4, 10, 0, 0 },
[IEEE80211_MODE_11NA] = { 3, 4, 10, 0, 0 },
[IEEE80211_MODE_11NG] = { 3, 4, 10, 0, 0 },
}
@ IEEE80211_MODE_11NG
Definition: _ieee80211.h:71
@ IEEE80211_MODE_TURBO_A
Definition: _ieee80211.h:67
@ IEEE80211_MODE_FH
Definition: _ieee80211.h:66
@ IEEE80211_MODE_11NA
Definition: _ieee80211.h:70
@ IEEE80211_MODE_11G
Definition: _ieee80211.h:65
@ IEEE80211_MODE_HALF
Definition: _ieee80211.h:72
@ IEEE80211_MODE_STURBO_A
Definition: _ieee80211.h:69
@ IEEE80211_MODE_TURBO_G
Definition: _ieee80211.h:68
@ IEEE80211_MODE_AUTO
Definition: _ieee80211.h:62
@ IEEE80211_MODE_QUARTER
Definition: _ieee80211.h:73
@ IEEE80211_MODE_11B
Definition: _ieee80211.h:64
@ IEEE80211_MODE_11A
Definition: _ieee80211.h:63

Definition at line 1439 of file ieee80211_proto.c.

Referenced by ieee80211_wme_initparams_locked().

◆ bssPhyParamForAC_VI

const struct phyParamType bssPhyParamForAC_VI[IEEE80211_MODE_MAX]
static
Initial value:
= {
[IEEE80211_MODE_AUTO] = { 2, 3, 4, 94, 0 },
[IEEE80211_MODE_11A] = { 2, 3, 4, 94, 0 },
[IEEE80211_MODE_11B] = { 2, 3, 4, 188, 0 },
[IEEE80211_MODE_11G] = { 2, 3, 4, 94, 0 },
[IEEE80211_MODE_FH] = { 2, 3, 4, 188, 0 },
[IEEE80211_MODE_TURBO_A]= { 2, 2, 3, 94, 0 },
[IEEE80211_MODE_TURBO_G]= { 2, 2, 3, 94, 0 },
[IEEE80211_MODE_STURBO_A]={ 2, 2, 3, 94, 0 },
[IEEE80211_MODE_HALF] = { 2, 3, 4, 94, 0 },
[IEEE80211_MODE_QUARTER]= { 2, 3, 4, 94, 0 },
[IEEE80211_MODE_11NA] = { 2, 3, 4, 94, 0 },
[IEEE80211_MODE_11NG] = { 2, 3, 4, 94, 0 },
}

Definition at line 1453 of file ieee80211_proto.c.

Referenced by ieee80211_wme_initparams_locked().

◆ bssPhyParamForAC_VO

const struct phyParamType bssPhyParamForAC_VO[IEEE80211_MODE_MAX]
static
Initial value:
= {
[IEEE80211_MODE_AUTO] = { 2, 2, 3, 47, 0 },
[IEEE80211_MODE_11A] = { 2, 2, 3, 47, 0 },
[IEEE80211_MODE_11B] = { 2, 2, 3, 102, 0 },
[IEEE80211_MODE_11G] = { 2, 2, 3, 47, 0 },
[IEEE80211_MODE_FH] = { 2, 2, 3, 102, 0 },
[IEEE80211_MODE_TURBO_A]= { 1, 2, 2, 47, 0 },
[IEEE80211_MODE_TURBO_G]= { 1, 2, 2, 47, 0 },
[IEEE80211_MODE_STURBO_A]={ 1, 2, 2, 47, 0 },
[IEEE80211_MODE_HALF] = { 2, 2, 3, 47, 0 },
[IEEE80211_MODE_QUARTER]= { 2, 2, 3, 47, 0 },
[IEEE80211_MODE_11NA] = { 2, 2, 3, 47, 0 },
[IEEE80211_MODE_11NG] = { 2, 2, 3, 47, 0 },
}

Definition at line 1467 of file ieee80211_proto.c.

Referenced by ieee80211_wme_initparams_locked().

◆ ctl_subtype_name

const char* ctl_subtype_name[]
Initial value:
= {
"reserved#0", "reserved#1", "reserved#2", "reserved#3",
"reserved#4", "reserved#5", "reserved#6", "control_wrap",
"bar", "ba", "ps_poll", "rts",
"cts", "ack", "cf_end", "cf_end_ack"
}

Definition at line 74 of file ieee80211_proto.c.

Referenced by ieee80211_ctl_subtype_name().

◆ ieee80211_opmode_name

◆ ieee80211_state_name

◆ ieee80211_wme_acnames

const char* ieee80211_wme_acnames[]
Initial value:
= {
"WME_AC_BE",
"WME_AC_BK",
"WME_AC_VI",
"WME_AC_VO",
"WME_UPSD",
}

Definition at line 99 of file ieee80211_proto.c.

Referenced by ieee80211_ampdu_enable(), ieee80211_wme_updateparams_locked(), and setwmeparams().

◆ mgt_subtype_name

const char* mgt_subtype_name[]
Initial value:
= {
"assoc_req", "assoc_resp", "reassoc_req", "reassoc_resp",
"probe_req", "probe_resp", "timing_adv", "reserved#7",
"beacon", "atim", "disassoc", "auth",
"deauth", "action", "action_noack", "reserved#15"
}

Definition at line 68 of file ieee80211_proto.c.

Referenced by ieee80211_mgt_subtype_name().

◆ phyParamForAC_BE

const struct phyParamType phyParamForAC_BE[IEEE80211_MODE_MAX]
static
Initial value:
= {
[IEEE80211_MODE_AUTO] = { 3, 4, 6, 0, 0 },
[IEEE80211_MODE_11A] = { 3, 4, 6, 0, 0 },
[IEEE80211_MODE_11B] = { 3, 4, 6, 0, 0 },
[IEEE80211_MODE_11G] = { 3, 4, 6, 0, 0 },
[IEEE80211_MODE_FH] = { 3, 4, 6, 0, 0 },
[IEEE80211_MODE_TURBO_A]= { 2, 3, 5, 0, 0 },
[IEEE80211_MODE_TURBO_G]= { 2, 3, 5, 0, 0 },
[IEEE80211_MODE_STURBO_A]={ 2, 3, 5, 0, 0 },
[IEEE80211_MODE_HALF] = { 3, 4, 6, 0, 0 },
[IEEE80211_MODE_QUARTER]= { 3, 4, 6, 0, 0 },
[IEEE80211_MODE_11NA] = { 3, 4, 6, 0, 0 },
[IEEE80211_MODE_11NG] = { 3, 4, 6, 0, 0 },
[IEEE80211_MODE_VHT_2GHZ] = { 3, 4, 6, 0, 0 },
[IEEE80211_MODE_VHT_5GHZ] = { 3, 4, 6, 0, 0 },
}
@ IEEE80211_MODE_VHT_2GHZ
Definition: _ieee80211.h:74
@ IEEE80211_MODE_VHT_5GHZ
Definition: _ieee80211.h:75

Definition at line 1374 of file ieee80211_proto.c.

Referenced by ieee80211_wme_initparams_locked().

◆ phyParamForAC_BK

const struct phyParamType phyParamForAC_BK[IEEE80211_MODE_MAX]
static
Initial value:
= {
[IEEE80211_MODE_AUTO] = { 7, 4, 10, 0, 0 },
[IEEE80211_MODE_11A] = { 7, 4, 10, 0, 0 },
[IEEE80211_MODE_11B] = { 7, 4, 10, 0, 0 },
[IEEE80211_MODE_11G] = { 7, 4, 10, 0, 0 },
[IEEE80211_MODE_FH] = { 7, 4, 10, 0, 0 },
[IEEE80211_MODE_TURBO_A]= { 7, 3, 10, 0, 0 },
[IEEE80211_MODE_TURBO_G]= { 7, 3, 10, 0, 0 },
[IEEE80211_MODE_STURBO_A]={ 7, 3, 10, 0, 0 },
[IEEE80211_MODE_HALF] = { 7, 4, 10, 0, 0 },
[IEEE80211_MODE_QUARTER]= { 7, 4, 10, 0, 0 },
[IEEE80211_MODE_11NA] = { 7, 4, 10, 0, 0 },
[IEEE80211_MODE_11NG] = { 7, 4, 10, 0, 0 },
[IEEE80211_MODE_VHT_2GHZ] = { 7, 4, 10, 0, 0 },
[IEEE80211_MODE_VHT_5GHZ] = { 7, 4, 10, 0, 0 },
}

Definition at line 1390 of file ieee80211_proto.c.

Referenced by ieee80211_wme_initparams_locked().

◆ phyParamForAC_VI

const struct phyParamType phyParamForAC_VI[IEEE80211_MODE_MAX]
static
Initial value:
= {
[IEEE80211_MODE_AUTO] = { 1, 3, 4, 94, 0 },
[IEEE80211_MODE_11A] = { 1, 3, 4, 94, 0 },
[IEEE80211_MODE_11B] = { 1, 3, 4, 188, 0 },
[IEEE80211_MODE_11G] = { 1, 3, 4, 94, 0 },
[IEEE80211_MODE_FH] = { 1, 3, 4, 188, 0 },
[IEEE80211_MODE_TURBO_A]= { 1, 2, 3, 94, 0 },
[IEEE80211_MODE_TURBO_G]= { 1, 2, 3, 94, 0 },
[IEEE80211_MODE_STURBO_A]={ 1, 2, 3, 94, 0 },
[IEEE80211_MODE_HALF] = { 1, 3, 4, 94, 0 },
[IEEE80211_MODE_QUARTER]= { 1, 3, 4, 94, 0 },
[IEEE80211_MODE_11NA] = { 1, 3, 4, 94, 0 },
[IEEE80211_MODE_11NG] = { 1, 3, 4, 94, 0 },
[IEEE80211_MODE_VHT_2GHZ] = { 1, 3, 4, 94, 0 },
[IEEE80211_MODE_VHT_5GHZ] = { 1, 3, 4, 94, 0 },
}

Definition at line 1406 of file ieee80211_proto.c.

Referenced by ieee80211_wme_initparams_locked().

◆ phyParamForAC_VO

const struct phyParamType phyParamForAC_VO[IEEE80211_MODE_MAX]
static
Initial value:
= {
[IEEE80211_MODE_AUTO] = { 1, 2, 3, 47, 0 },
[IEEE80211_MODE_11A] = { 1, 2, 3, 47, 0 },
[IEEE80211_MODE_11B] = { 1, 2, 3, 102, 0 },
[IEEE80211_MODE_11G] = { 1, 2, 3, 47, 0 },
[IEEE80211_MODE_FH] = { 1, 2, 3, 102, 0 },
[IEEE80211_MODE_TURBO_A]= { 1, 2, 2, 47, 0 },
[IEEE80211_MODE_TURBO_G]= { 1, 2, 2, 47, 0 },
[IEEE80211_MODE_STURBO_A]={ 1, 2, 2, 47, 0 },
[IEEE80211_MODE_HALF] = { 1, 2, 3, 47, 0 },
[IEEE80211_MODE_QUARTER]= { 1, 2, 3, 47, 0 },
[IEEE80211_MODE_11NA] = { 1, 2, 3, 47, 0 },
[IEEE80211_MODE_11NG] = { 1, 2, 3, 47, 0 },
[IEEE80211_MODE_VHT_2GHZ] = { 1, 2, 3, 47, 0 },
[IEEE80211_MODE_VHT_5GHZ] = { 1, 2, 3, 47, 0 },
}

Definition at line 1422 of file ieee80211_proto.c.

Referenced by ieee80211_wme_initparams_locked().