Changeset View
Changeset View
Standalone View
Standalone View
sys/net80211/ieee80211_freebsd.c
Show All 12 Lines | |||||
__func__); | __func__); | ||||
return; | return; | ||||
} | } | ||||
sysctl_ctx_init(ctx); | sysctl_ctx_init(ctx); | ||||
snprintf(num, sizeof(num), "%u", ifp->if_dunit); | snprintf(num, sizeof(num), "%u", ifp->if_dunit); | ||||
oid = SYSCTL_ADD_NODE(ctx, &SYSCTL_NODE_CHILDREN(_net, wlan), | oid = SYSCTL_ADD_NODE(ctx, &SYSCTL_NODE_CHILDREN(_net, wlan), | ||||
OID_AUTO, num, CTLFLAG_RD, NULL, ""); | OID_AUTO, num, CTLFLAG_RD, NULL, ""); | ||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"%parent", CTLTYPE_STRING | CTLFLAG_RD, vap->iv_ic, 0, | "%parent", CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, | ||||
vap->iv_ic, 0, | |||||
ieee80211_sysctl_parent, "A", "parent device"); | ieee80211_sysctl_parent, "A", "parent device"); | ||||
SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"driver_caps", CTLFLAG_RW, &vap->iv_caps, 0, | "driver_caps", CTLFLAG_RW, &vap->iv_caps, 0, | ||||
"driver capabilities"); | "driver capabilities"); | ||||
#ifdef IEEE80211_DEBUG | #ifdef IEEE80211_DEBUG | ||||
vap->iv_debug = ieee80211_debug; | vap->iv_debug = ieee80211_debug; | ||||
SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"debug", CTLFLAG_RW, &vap->iv_debug, 0, | "debug", CTLFLAG_RW, &vap->iv_debug, 0, | ||||
"control debugging printfs"); | "control debugging printfs"); | ||||
#endif | #endif | ||||
SYSCTL_ADD_INT(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_INT(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"bmiss_max", CTLFLAG_RW, &vap->iv_bmiss_max, 0, | "bmiss_max", CTLFLAG_RW, &vap->iv_bmiss_max, 0, | ||||
"consecutive beacon misses before scanning"); | "consecutive beacon misses before scanning"); | ||||
/* XXX inherit from tunables */ | /* XXX inherit from tunables */ | ||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"inact_run", CTLTYPE_INT | CTLFLAG_RW, &vap->iv_inact_run, 0, | "inact_run", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
&vap->iv_inact_run, 0, | |||||
ieee80211_sysctl_inact, "I", | ieee80211_sysctl_inact, "I", | ||||
"station inactivity timeout (sec)"); | "station inactivity timeout (sec)"); | ||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"inact_probe", CTLTYPE_INT | CTLFLAG_RW, &vap->iv_inact_probe, 0, | "inact_probe", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
&vap->iv_inact_probe, 0, | |||||
ieee80211_sysctl_inact, "I", | ieee80211_sysctl_inact, "I", | ||||
"station inactivity probe timeout (sec)"); | "station inactivity probe timeout (sec)"); | ||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"inact_auth", CTLTYPE_INT | CTLFLAG_RW, &vap->iv_inact_auth, 0, | "inact_auth", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
&vap->iv_inact_auth, 0, | |||||
ieee80211_sysctl_inact, "I", | ieee80211_sysctl_inact, "I", | ||||
"station authentication timeout (sec)"); | "station authentication timeout (sec)"); | ||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"inact_init", CTLTYPE_INT | CTLFLAG_RW, &vap->iv_inact_init, 0, | "inact_init", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
&vap->iv_inact_init, 0, | |||||
ieee80211_sysctl_inact, "I", | ieee80211_sysctl_inact, "I", | ||||
"station initial state timeout (sec)"); | "station initial state timeout (sec)"); | ||||
if (vap->iv_htcaps & IEEE80211_HTC_HT) { | if (vap->iv_htcaps & IEEE80211_HTC_HT) { | ||||
SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"ampdu_mintraffic_bk", CTLFLAG_RW, | "ampdu_mintraffic_bk", CTLFLAG_RW, | ||||
&vap->iv_ampdu_mintraffic[WME_AC_BK], 0, | &vap->iv_ampdu_mintraffic[WME_AC_BK], 0, | ||||
"BK traffic tx aggr threshold (pps)"); | "BK traffic tx aggr threshold (pps)"); | ||||
SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"ampdu_mintraffic_be", CTLFLAG_RW, | "ampdu_mintraffic_be", CTLFLAG_RW, | ||||
&vap->iv_ampdu_mintraffic[WME_AC_BE], 0, | &vap->iv_ampdu_mintraffic[WME_AC_BE], 0, | ||||
"BE traffic tx aggr threshold (pps)"); | "BE traffic tx aggr threshold (pps)"); | ||||
SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"ampdu_mintraffic_vo", CTLFLAG_RW, | "ampdu_mintraffic_vo", CTLFLAG_RW, | ||||
&vap->iv_ampdu_mintraffic[WME_AC_VO], 0, | &vap->iv_ampdu_mintraffic[WME_AC_VO], 0, | ||||
"VO traffic tx aggr threshold (pps)"); | "VO traffic tx aggr threshold (pps)"); | ||||
SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"ampdu_mintraffic_vi", CTLFLAG_RW, | "ampdu_mintraffic_vi", CTLFLAG_RW, | ||||
&vap->iv_ampdu_mintraffic[WME_AC_VI], 0, | &vap->iv_ampdu_mintraffic[WME_AC_VI], 0, | ||||
"VI traffic tx aggr threshold (pps)"); | "VI traffic tx aggr threshold (pps)"); | ||||
} | } | ||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"force_restart", CTLTYPE_INT | CTLFLAG_RW, vap, 0, | "force_restart", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, vap, 0, | |||||
ieee80211_sysctl_vap_restart, "I", | ieee80211_sysctl_vap_restart, "I", | ||||
"force a VAP restart"); | "force a VAP restart"); | ||||
if (vap->iv_caps & IEEE80211_C_DFS) { | if (vap->iv_caps & IEEE80211_C_DFS) { | ||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, | ||||
"radar", CTLTYPE_INT | CTLFLAG_RW, vap->iv_ic, 0, | "radar", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | |||||
vap->iv_ic, 0, | |||||
ieee80211_sysctl_radar, "I", "simulate radar event"); | ieee80211_sysctl_radar, "I", "simulate radar event"); | ||||
} | } | ||||
vap->iv_sysctl = ctx; | vap->iv_sysctl = ctx; | ||||
vap->iv_oid = oid; | vap->iv_oid = oid; | ||||
} | } | ||||
void | void | ||||
ieee80211_sysctl_vdetach(struct ieee80211vap *vap) | ieee80211_sysctl_vdetach(struct ieee80211vap *vap) | ||||
Show All 12 Lines |