FreeBSD kernel iwm device code
if_iwm_sf.c File Reference
#include <sys/cdefs.h>
#include "opt_wlan.h"
#include "opt_iwm.h"
#include <sys/param.h>
#include <sys/bus.h>
#include <sys/conf.h>
#include <sys/endian.h>
#include <sys/firmware.h>
#include <sys/kernel.h>
#include <sys/malloc.h>
#include <sys/mbuf.h>
#include <sys/mutex.h>
#include <sys/module.h>
#include <sys/proc.h>
#include <sys/rman.h>
#include <sys/socket.h>
#include <sys/sockio.h>
#include <sys/sysctl.h>
#include <sys/linker.h>
#include <machine/bus.h>
#include <machine/endian.h>
#include <machine/resource.h>
#include <net/if.h>
#include <net/if_var.h>
#include <net/if_arp.h>
#include <net/if_dl.h>
#include <net/if_media.h>
#include <net/if_types.h>
#include <net/bpf.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
#include <netinet/if_ether.h>
#include <netinet/ip.h>
#include <net80211/ieee80211_var.h>
#include <net80211/ieee80211_regdomain.h>
#include <net80211/ieee80211_ratectl.h>
#include <net80211/ieee80211_radiotap.h>
#include <dev/iwm/if_iwmreg.h>
#include <dev/iwm/if_iwmvar.h>
#include <dev/iwm/if_iwm_config.h>
#include <dev/iwm/if_iwm_debug.h>
#include <dev/iwm/if_iwm_util.h>
#include <dev/iwm/if_iwm_sf.h>
Include dependency graph for if_iwm_sf.c:

Go to the source code of this file.

Functions

 __FBSDID ("$FreeBSD$")
 
static void iwm_fill_sf_command (struct iwm_softc *sc, struct iwm_sf_cfg_cmd *sf_cmd, struct ieee80211_node *ni)
 
static int iwm_sf_config (struct iwm_softc *sc, struct ieee80211_node *ni, enum iwm_sf_state new_state)
 
int iwm_sf_update (struct iwm_softc *sc, struct ieee80211vap *changed_vif, boolean_t remove_vif)
 

Variables

static const uint32_t sf_full_timeout_def [IWM_SF_NUM_SCENARIO][IWM_SF_NUM_TIMEOUT_TYPES]
 
static const uint32_t sf_full_timeout [IWM_SF_NUM_SCENARIO][IWM_SF_NUM_TIMEOUT_TYPES]
 

Function Documentation

◆ __FBSDID()

__FBSDID ( "$FreeBSD$"  )

◆ iwm_fill_sf_command()

static void iwm_fill_sf_command ( struct iwm_softc sc,
struct iwm_sf_cfg_cmd sf_cmd,
struct ieee80211_node *  ni 
)
static

◆ iwm_sf_config()

static int iwm_sf_config ( struct iwm_softc sc,
struct ieee80211_node *  ni,
enum iwm_sf_state  new_state 
)
static

Definition at line 247 of file if_iwm_sf.c.

References iwm_softc::cfg, IWM_CMD_ASYNC, iwm_fill_sf_command(), IWM_REPLY_SF_CFG_CMD, iwm_send_cmd_pdu(), IWM_SF_CFG_DUMMY_NOTIF_OFF, IWM_SF_FULL_ON, IWM_SF_INIT_OFF, IWM_SF_UNINIT, iwm_softc::sc_dev, iwm_softc::sf_state, and iwm_sf_cfg_cmd::state.

Referenced by iwm_sf_update().

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

◆ iwm_sf_update()

int iwm_sf_update ( struct iwm_softc sc,
struct ieee80211vap *  changed_vif,
boolean_t  remove_vif 
)

Definition at line 298 of file if_iwm_sf.c.

References IWM_NODE, iwm_sf_config(), IWM_SF_FULL_ON, IWM_SF_INIT_OFF, and IWM_SF_UNINIT.

Referenced by iwm_binding_add_vif(), iwm_binding_remove_vif(), iwm_bring_down_firmware(), iwm_init_hw(), and iwm_newstate().

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

Variable Documentation

◆ sf_full_timeout

const uint32_t sf_full_timeout[IWM_SF_NUM_SCENARIO][IWM_SF_NUM_TIMEOUT_TYPES]
static
Initial value:
= {
{
},
{
},
{
},
{
},
{
},
}
#define IWM_SF_BA_IDLE_TIMER
Definition: if_iwmreg.h:3777
#define IWM_SF_SINGLE_UNICAST_AGING_TIMER
Definition: if_iwmreg.h:3772
#define IWM_SF_BA_AGING_TIMER
Definition: if_iwmreg.h:3778
#define IWM_SF_TX_RE_AGING_TIMER
Definition: if_iwmreg.h:3780
#define IWM_SF_TX_RE_IDLE_TIMER
Definition: if_iwmreg.h:3779
#define IWM_SF_MCAST_IDLE_TIMER
Definition: if_iwmreg.h:3775
#define IWM_SF_AGG_UNICAST_IDLE_TIMER
Definition: if_iwmreg.h:3773
#define IWM_SF_SINGLE_UNICAST_IDLE_TIMER
Definition: if_iwmreg.h:3771
#define IWM_SF_AGG_UNICAST_AGING_TIMER
Definition: if_iwmreg.h:3774
#define IWM_SF_MCAST_AGING_TIMER
Definition: if_iwmreg.h:3776

Definition at line 175 of file if_iwm_sf.c.

Referenced by iwm_fill_sf_command().

◆ sf_full_timeout_def

const uint32_t sf_full_timeout_def[IWM_SF_NUM_SCENARIO][IWM_SF_NUM_TIMEOUT_TYPES]
static
Initial value:
= {
{
},
{
},
{
},
{
},
{
},
}
#define IWM_SF_BA_IDLE_TIMER_DEF
Definition: if_iwmreg.h:3765
#define IWM_SF_TX_RE_IDLE_TIMER_DEF
Definition: if_iwmreg.h:3767
#define IWM_SF_SINGLE_UNICAST_AGING_TIMER_DEF
Definition: if_iwmreg.h:3760
#define IWM_SF_MCAST_IDLE_TIMER_DEF
Definition: if_iwmreg.h:3763
#define IWM_SF_BA_AGING_TIMER_DEF
Definition: if_iwmreg.h:3766
#define IWM_SF_TX_RE_AGING_TIMER_DEF
Definition: if_iwmreg.h:3768
#define IWM_SF_AGG_UNICAST_AGING_TIMER_DEF
Definition: if_iwmreg.h:3762
#define IWM_SF_AGG_UNICAST_IDLE_TIMER_DEF
Definition: if_iwmreg.h:3761
#define IWM_SF_MCAST_AGING_TIMER_DEF
Definition: if_iwmreg.h:3764
#define IWM_SF_SINGLE_UNICAST_IDLE_TIMER_DEF
Definition: if_iwmreg.h:3759

Definition at line 147 of file if_iwm_sf.c.

Referenced by iwm_fill_sf_command().