FreeBSD kernel WLAN code
ieee80211_input.c File Reference
#include <sys/cdefs.h>
#include "opt_wlan.h"
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/mbuf.h>
#include <sys/malloc.h>
#include <sys/endian.h>
#include <sys/kernel.h>
#include <sys/socket.h>
#include <net/ethernet.h>
#include <net/if.h>
#include <net/if_var.h>
#include <net/if_llc.h>
#include <net/if_media.h>
#include <net/if_vlan_var.h>
#include <net80211/ieee80211_var.h>
#include <net80211/ieee80211_input.h>
#include <net/bpf.h>
Include dependency graph for ieee80211_input.c:

Go to the source code of this file.

Macros

#define FF_LLC_SIZE   (sizeof(struct ether_header) + sizeof(struct llc))
 

Functions

 __FBSDID ("$FreeBSD$")
 
static void ieee80211_process_mimo (struct ieee80211_node *ni, struct ieee80211_rx_stats *rx)
 
int ieee80211_input_mimo (struct ieee80211_node *ni, struct mbuf *m)
 
int ieee80211_input_all (struct ieee80211com *ic, struct mbuf *m, int rssi, int nf)
 
int ieee80211_input_mimo_all (struct ieee80211com *ic, struct mbuf *m)
 
struct mbuf * ieee80211_defrag (struct ieee80211_node *ni, struct mbuf *m, int hdrspace, int has_decrypted)
 
void ieee80211_deliver_data (struct ieee80211vap *vap, struct ieee80211_node *ni, struct mbuf *m)
 
struct mbuf * ieee80211_decap (struct ieee80211vap *vap, struct mbuf *m, int hdrlen, uint8_t qos)
 
struct mbuf * ieee80211_decap1 (struct mbuf *m, int *framelen)
 
int ieee80211_setup_rates (struct ieee80211_node *ni, const uint8_t *rates, const uint8_t *xrates, int flags)
 
void ieee80211_send_error (struct ieee80211_node *ni, const uint8_t mac[IEEE80211_ADDR_LEN], int subtype, int arg)
 
int ieee80211_alloc_challenge (struct ieee80211_node *ni)
 
int ieee80211_parse_beacon (struct ieee80211_node *ni, struct mbuf *m, struct ieee80211_channel *rxchan, struct ieee80211_scanparams *scan)
 
int ieee80211_parse_action (struct ieee80211_node *ni, struct mbuf *m)
 

Macro Definition Documentation

◆ FF_LLC_SIZE

#define FF_LLC_SIZE   (sizeof(struct ether_header) + sizeof(struct llc))

Function Documentation

◆ __FBSDID()

__FBSDID ( "$FreeBSD$"  )

◆ ieee80211_alloc_challenge()

int ieee80211_alloc_challenge ( struct ieee80211_node ni)

◆ ieee80211_decap()

◆ ieee80211_decap1()

struct mbuf * ieee80211_decap1 ( struct mbuf *  m,
int *  framelen 
)

Definition at line 380 of file ieee80211_input.c.

References FF_LLC_SIZE.

Referenced by ieee80211_decap_amsdu().

Here is the caller graph for this function:

◆ ieee80211_defrag()

◆ ieee80211_deliver_data()

void ieee80211_deliver_data ( struct ieee80211vap vap,
struct ieee80211_node ni,
struct mbuf *  m 
)

◆ ieee80211_input_all()

int ieee80211_input_all ( struct ieee80211com ic,
struct mbuf *  m,
int  rssi,
int  nf 
)

◆ ieee80211_input_mimo()

int ieee80211_input_mimo ( struct ieee80211_node ni,
struct mbuf *  m 
)

Definition at line 88 of file ieee80211_input.c.

References ieee80211_rx_stats::c_nf, ieee80211_rx_stats::c_rssi, ieee80211_get_rx_params(), ieee80211_process_mimo(), ieee80211vap::iv_input, and ieee80211_node::ni_vap.

Referenced by ieee80211_input_mimo_all().

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

◆ ieee80211_input_mimo_all()

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

Definition at line 120 of file ieee80211_input.c.

References ieee80211_free_node(), ieee80211_input_mimo(), IEEE80211_M_WDS, ieee80211_ref_node(), IEEE80211_S_INIT, ieee80211vap::iv_bss, ieee80211vap::iv_opmode, and ieee80211vap::iv_state.

Referenced by ieee80211_input_all().

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

◆ ieee80211_parse_action()

◆ ieee80211_parse_beacon()

int ieee80211_parse_beacon ( struct ieee80211_node ni,
struct mbuf *  m,
struct ieee80211_channel rxchan,
struct ieee80211_scanparams scan 
)

Definition at line 516 of file ieee80211_input.c.

References ieee80211_scanparams::ath, ieee80211_scanparams::bchan, ieee80211_scanparams::bintval, ieee80211_scanparams::capinfo, ieee80211_scanparams::chan, ieee80211_scanparams::country, ieee80211_scanparams::csa, ieee80211_scanparams::erp, ieee80211_scanparams::fhdwell, ieee80211_scanparams::fhindex, ieee80211_scanparams::htcap, ieee80211_scanparams::htinfo, ieee80211com::ic_phytype, IEEE80211_BINTVAL_MAX, IEEE80211_BPARSE_BADIELEN, IEEE80211_BPARSE_BINTVAL_INVALID, IEEE80211_BPARSE_CSA_INVALID, IEEE80211_BPARSE_OFFCHAN, IEEE80211_BPARSE_RATES_INVALID, IEEE80211_BPARSE_SSID_INVALID, IEEE80211_BPARSE_XRATES_INVALID, ieee80211_chan2ieee(), IEEE80211_DISCARD, IEEE80211_DISCARD_IE, IEEE80211_ELEMID_APCHANREP, IEEE80211_ELEMID_BSSLOAD, IEEE80211_ELEMID_CFPARMS, IEEE80211_ELEMID_COUNTRY, IEEE80211_ELEMID_CSA, IEEE80211_ELEMID_DSPARMS, IEEE80211_ELEMID_ERP, IEEE80211_ELEMID_EXTCAP, IEEE80211_ELEMID_FHPARMS, IEEE80211_ELEMID_HTCAP, IEEE80211_ELEMID_HTINFO, IEEE80211_ELEMID_IBSSPARMS, IEEE80211_ELEMID_MESHCONF, IEEE80211_ELEMID_MESHID, IEEE80211_ELEMID_PWRCNSTR, IEEE80211_ELEMID_QUIET, IEEE80211_ELEMID_RATES, IEEE80211_ELEMID_RSN, IEEE80211_ELEMID_SSID, IEEE80211_ELEMID_TIM, IEEE80211_ELEMID_VENDOR, IEEE80211_ELEMID_VHT_CAP, IEEE80211_ELEMID_VHT_OPMODE, IEEE80211_ELEMID_XRATES, IEEE80211_FH_CHAN, IEEE80211_FHT_HTCOMPAT, IEEE80211_MSG_ELEMID, IEEE80211_MSG_INPUT, IEEE80211_NWID_LEN, IEEE80211_RATE_MAXSIZE, IEEE80211_T_FH, IEEE80211_VERIFY_ELEMENT, IEEE80211_VERIFY_LENGTH, ieee80211_scanparams::ies, ieee80211_scanparams::ies_len, ieee80211_stats::is_rx_badbintval, ieee80211_stats::is_rx_chanmismatch, ieee80211_stats::is_rx_elem_toobig, ieee80211_stats::is_rx_elem_unknown, isatherosoui(), ishtcapoui(), ishtinfooui(), istdmaoui(), iswmeinfo(), iswmeparam(), iswpaoui(), ieee80211vap::iv_flags_ht, ieee80211vap::iv_stats, ieee80211_scanparams::meshconf, ieee80211_scanparams::meshid, ieee80211_node::ni_ic, ieee80211_node::ni_vap, ieee80211_scanparams::quiet, ieee80211_scanparams::rates, ieee80211_scanparams::rsn, ieee80211_scanparams::ssid, ieee80211_scanparams::status, ieee80211_scanparams::tdma, ieee80211_scanparams::tim, ieee80211_scanparams::timoff, ieee80211_scanparams::tstamp, ieee80211_scanparams::vhtcap, ieee80211_scanparams::vhtopmode, ieee80211_scanparams::wme, ieee80211_scanparams::wpa, and ieee80211_scanparams::xrates.

Referenced by adhoc_recv_mgmt(), hostap_recv_mgmt(), mesh_recv_mgmt(), and sta_recv_mgmt().

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

◆ ieee80211_process_mimo()

◆ ieee80211_send_error()

void ieee80211_send_error ( struct ieee80211_node ni,
const uint8_t  mac[IEEE80211_ADDR_LEN],
int  subtype,
int  arg 
)

◆ ieee80211_setup_rates()

int ieee80211_setup_rates ( struct ieee80211_node ni,
const uint8_t *  rates,
const uint8_t *  xrates,
int  flags 
)