Changeset View
Changeset View
Standalone View
Standalone View
sys/net80211/ieee80211_hwmp.c
Show All 12 Lines | |||||
}; | }; | ||||
static SYSCTL_NODE(_net_wlan, OID_AUTO, hwmp, CTLFLAG_RD, 0, | static SYSCTL_NODE(_net_wlan, OID_AUTO, hwmp, CTLFLAG_RD, 0, | ||||
"IEEE 802.11s HWMP parameters"); | "IEEE 802.11s HWMP parameters"); | ||||
static int ieee80211_hwmp_targetonly = 0; | static int ieee80211_hwmp_targetonly = 0; | ||||
SYSCTL_INT(_net_wlan_hwmp, OID_AUTO, targetonly, CTLFLAG_RW, | SYSCTL_INT(_net_wlan_hwmp, OID_AUTO, targetonly, CTLFLAG_RW, | ||||
&ieee80211_hwmp_targetonly, 0, "Set TO bit on generated PREQs"); | &ieee80211_hwmp_targetonly, 0, "Set TO bit on generated PREQs"); | ||||
static int ieee80211_hwmp_pathtimeout = -1; | static int ieee80211_hwmp_pathtimeout = -1; | ||||
SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, pathlifetime, CTLTYPE_INT | CTLFLAG_RW, | SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, pathlifetime, | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | |||||
&ieee80211_hwmp_pathtimeout, 0, ieee80211_sysctl_msecs_ticks, "I", | &ieee80211_hwmp_pathtimeout, 0, ieee80211_sysctl_msecs_ticks, "I", | ||||
"path entry lifetime (ms)"); | "path entry lifetime (ms)"); | ||||
static int ieee80211_hwmp_maxpreq_retries = -1; | static int ieee80211_hwmp_maxpreq_retries = -1; | ||||
SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, maxpreq_retries, CTLTYPE_INT | CTLFLAG_RW, | SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, maxpreq_retries, | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | |||||
&ieee80211_hwmp_maxpreq_retries, 0, ieee80211_sysctl_msecs_ticks, "I", | &ieee80211_hwmp_maxpreq_retries, 0, ieee80211_sysctl_msecs_ticks, "I", | ||||
"maximum number of preq retries"); | "maximum number of preq retries"); | ||||
static int ieee80211_hwmp_net_diameter_traversaltime = -1; | static int ieee80211_hwmp_net_diameter_traversaltime = -1; | ||||
SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, net_diameter_traversal_time, | SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, net_diameter_traversal_time, | ||||
CTLTYPE_INT | CTLFLAG_RW, &ieee80211_hwmp_net_diameter_traversaltime, 0, | CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
&ieee80211_hwmp_net_diameter_traversaltime, 0, | |||||
ieee80211_sysctl_msecs_ticks, "I", | ieee80211_sysctl_msecs_ticks, "I", | ||||
"estimate travelse time across the MBSS (ms)"); | "estimate travelse time across the MBSS (ms)"); | ||||
static int ieee80211_hwmp_roottimeout = -1; | static int ieee80211_hwmp_roottimeout = -1; | ||||
SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, roottimeout, CTLTYPE_INT | CTLFLAG_RW, | SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, roottimeout, | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | |||||
&ieee80211_hwmp_roottimeout, 0, ieee80211_sysctl_msecs_ticks, "I", | &ieee80211_hwmp_roottimeout, 0, ieee80211_sysctl_msecs_ticks, "I", | ||||
"root PREQ timeout (ms)"); | "root PREQ timeout (ms)"); | ||||
static int ieee80211_hwmp_rootint = -1; | static int ieee80211_hwmp_rootint = -1; | ||||
SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, rootint, CTLTYPE_INT | CTLFLAG_RW, | SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, rootint, | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | |||||
&ieee80211_hwmp_rootint, 0, ieee80211_sysctl_msecs_ticks, "I", | &ieee80211_hwmp_rootint, 0, ieee80211_sysctl_msecs_ticks, "I", | ||||
"root interval (ms)"); | "root interval (ms)"); | ||||
static int ieee80211_hwmp_rannint = -1; | static int ieee80211_hwmp_rannint = -1; | ||||
SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, rannint, CTLTYPE_INT | CTLFLAG_RW, | SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, rannint, | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | |||||
&ieee80211_hwmp_rannint, 0, ieee80211_sysctl_msecs_ticks, "I", | &ieee80211_hwmp_rannint, 0, ieee80211_sysctl_msecs_ticks, "I", | ||||
"root announcement interval (ms)"); | "root announcement interval (ms)"); | ||||
static struct timeval ieee80211_hwmp_rootconfint = { 0, 0 }; | static struct timeval ieee80211_hwmp_rootconfint = { 0, 0 }; | ||||
static int ieee80211_hwmp_rootconfint_internal = -1; | static int ieee80211_hwmp_rootconfint_internal = -1; | ||||
SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, rootconfint, CTLTYPE_INT | CTLFLAG_RD, | SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, rootconfint, | ||||
CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, | |||||
&ieee80211_hwmp_rootconfint_internal, 0, ieee80211_sysctl_msecs_ticks, "I", | &ieee80211_hwmp_rootconfint_internal, 0, ieee80211_sysctl_msecs_ticks, "I", | ||||
"root confirmation interval (ms) (read-only)"); | "root confirmation interval (ms) (read-only)"); | ||||
#define IEEE80211_HWMP_DEFAULT_MAXHOPS 31 | #define IEEE80211_HWMP_DEFAULT_MAXHOPS 31 | ||||
static ieee80211_recv_action_func hwmp_recv_action_meshpath; | static ieee80211_recv_action_func hwmp_recv_action_meshpath; | ||||
static struct ieee80211_mesh_proto_path mesh_proto_hwmp = { | static struct ieee80211_mesh_proto_path mesh_proto_hwmp = { | ||||
.mpp_descr = "HWMP", | .mpp_descr = "HWMP", | ||||
.mpp_ie = IEEE80211_MESHCONF_PATH_HWMP, | .mpp_ie = IEEE80211_MESHCONF_PATH_HWMP, | ||||
.mpp_discover = hwmp_discover, | .mpp_discover = hwmp_discover, | ||||
.mpp_peerdown = hwmp_peerdown, | .mpp_peerdown = hwmp_peerdown, | ||||
.mpp_senderror = hwmp_senderror, | .mpp_senderror = hwmp_senderror, | ||||
.mpp_vattach = hwmp_vattach, | .mpp_vattach = hwmp_vattach, | ||||
.mpp_vdetach = hwmp_vdetach, | .mpp_vdetach = hwmp_vdetach, | ||||
.mpp_newstate = hwmp_newstate, | .mpp_newstate = hwmp_newstate, | ||||
.mpp_privlen = sizeof(struct ieee80211_hwmp_route), | .mpp_privlen = sizeof(struct ieee80211_hwmp_route), | ||||
}; | }; | ||||
SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, inact, CTLTYPE_INT | CTLFLAG_RW, | SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, inact, | ||||
&mesh_proto_hwmp.mpp_inact, 0, ieee80211_sysctl_msecs_ticks, "I", | CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
"mesh route inactivity timeout (ms)"); | &mesh_proto_hwmp.mpp_inact, 0, ieee80211_sysctl_msecs_ticks, "I", | ||||
"mesh route inactivity timeout (ms)"); | |||||
static void | static void | ||||
ieee80211_hwmp_init(void) | ieee80211_hwmp_init(void) | ||||
{ | { | ||||
/* Default values as per amendment */ | /* Default values as per amendment */ | ||||
ieee80211_hwmp_pathtimeout = msecs_to_ticks(5*1000); | ieee80211_hwmp_pathtimeout = msecs_to_ticks(5*1000); | ||||
ieee80211_hwmp_roottimeout = msecs_to_ticks(5*1000); | ieee80211_hwmp_roottimeout = msecs_to_ticks(5*1000); | ||||
Show All 12 Lines |