FreeBSD kernel WLAN code
|
Go to the source code of this file.
Data Structures | |
struct | ieee80211_meshconf_ie |
struct | ieee80211_meshid_ie |
struct | ieee80211_meshlmetric_ie |
struct | ieee80211_meshcngst_ie |
struct | ieee80211_meshpeer_ie |
struct | ieee80211_meshgann_ie |
struct | ieee80211_meshrann_ie |
struct | ieee80211_meshpreq_ie |
struct | ieee80211_meshprep_ie |
struct | ieee80211_meshperr_ie |
struct | ieee80211_meshcntl |
struct | ieee80211_meshcntl_ae01 |
struct | ieee80211_meshcntl_ae10 |
struct | ieee80211_mesh_route |
struct | ieee80211_mesh_gate_route |
struct | ieee80211_mesh_proto_path |
struct | ieee80211_mesh_proto_metric |
struct | ieee80211_mesh_state |
Macros | |
#define | IEEE80211_MESH_DEFAULT_TTL 31 |
#define | IEEE80211_MESH_MAX_NEIGHBORS 15 |
#define | IEEE80211_MESH_CONF_SZ (7) |
#define | IEEE80211_MESHCONF_FORM_GATE 0x01 /* Connected to Gate */ |
#define | IEEE80211_MESHCONF_FORM_NNEIGH_MASK 0x7E /* Number of Neighbours */ |
#define | IEEE80211_MESHCONF_FORM_SA 0xF0 /* indicating 802.1X auth */ |
#define | IEEE80211_MESHCONF_CAP_AP 0x01 /* Accepting Peers */ |
#define | IEEE80211_MESHCONF_CAP_MCCAS 0x02 /* MCCA supported */ |
#define | IEEE80211_MESHCONF_CAP_MCCAE 0x04 /* MCCA enabled */ |
#define | IEEE80211_MESHCONF_CAP_FWRD 0x08 /* forwarding enabled */ |
#define | IEEE80211_MESHCONF_CAP_BTR 0x10 /* Beacon Timing Report Enab */ |
#define | IEEE80211_MESHCONF_CAP_TBTT 0x20 /* TBTT Adjusting */ |
#define | IEEE80211_MESHCONF_CAP_PSL 0x40 /* Power Save Level */ |
#define | IEEE80211_MESH_LMETRIC_FLAGS_REQ 0x01 /* Request */ |
#define | IEEE80211_MESHLMETRIC_INITIALVAL 0 |
#define | IEEE80211_MPM_BASE_SZ (4) |
#define | IEEE80211_MPM_MAX_SZ (8) |
#define | IEEE80211_MESHGANN_BASE_SZ (15) |
#define | IEEE80211_MESHRANN_BASE_SZ (21) |
#define | IEEE80211_MESHRANN_FLAGS_GATE 0x01 /* Mesh Gate */ |
#define | IEEE80211_MESHPREQ_BASE_SZ (26) |
#define | IEEE80211_MESHPREQ_BASE_SZ_AE (32) |
#define | IEEE80211_MESHPREQ_TRGT_SZ (11) |
#define | IEEE80211_MESHPREQ_TCNT_OFFSET (27) |
#define | IEEE80211_MESHPREQ_TCNT_OFFSET_AE (33) |
#define | IEEE80211_MESHPREQ_FLAGS_GATE 0x01 /* Mesh Gate */ |
#define | IEEE80211_MESHPREQ_FLAGS_AM 0x02 /* 0 = bcast / 1 = ucast */ |
#define | IEEE80211_MESHPREQ_FLAGS_PP 0x04 /* Proactive PREP */ |
#define | IEEE80211_MESHPREQ_FLAGS_AE 0x40 /* Address Extension */ |
#define | IEEE80211_MESHPREQ_TFLAGS_TO 0x01 /* Target Only */ |
#define | IEEE80211_MESHPREQ_TFLAGS_USN 0x04 /* Unknown HWMP seq number */ |
#define | IEEE80211_MESHPREP_BASE_SZ (31) |
#define | IEEE80211_MESHPREP_BASE_SZ_AE (37) |
#define | IEEE80211_MESHPREP_FLAGS_AE 0x40 /* Address Extension */ |
#define | IEEE80211_MESHPERR_MAXDEST (19) |
#define | IEEE80211_MESHPERR_NDEST_OFFSET (3) |
#define | IEEE80211_MESHPERR_BASE_SZ (2) |
#define | IEEE80211_MESHPERR_DEST_SZ (13) |
#define | IEEE80211_MESHPERR_DEST_SZ_AE (19) |
#define | IEEE80211_MESHPERR_DFLAGS_USN 0x01 /* XXX: not part of standard */ |
#define | IEEE80211_MESHPERR_DFLAGS_RC 0x02 /* XXX: not part of standard */ |
#define | IEEE80211_MESHPERR_FLAGS_AE 0x40 /* Address Extension */ |
#define | IEEE80211_ACTION_CAT_INTERWORK 15 |
#define | IEEE80211_ACTION_CAT_RESOURCE 16 |
#define | IEEE80211_ACTION_CAT_PROXY 17 |
#define | IEEE80211_MESH_AE_MASK 0x03 |
#define | IEEE80211_MESHRT_FLAGS_DISCOVER 0x01 /* path discovery */ |
#define | IEEE80211_MESHRT_FLAGS_VALID 0x02 /* path discovery complete */ |
#define | IEEE80211_MESHRT_FLAGS_PROXY 0x04 /* proxy entry */ |
#define | IEEE80211_MESHRT_FLAGS_GATE 0x08 /* mesh gate entry */ |
#define | IEEE80211_MESH_ROUTE_PRIV(rt, cast) ((cast *)rt->rt_priv) |
#define | IEEE80211_MESH_PROTO_DSZ 12 /* description size */ |
#define | IEEE80211_MESH_SEQ_LEQ(a, b) ((int32_t)((a)-(b)) <= 0) |
#define | IEEE80211_MESH_SEQ_GEQ(a, b) ((int32_t)((a)-(b)) >= 0) |
#define | IEEE80211_MESHFLAGS_AP 0x01 /* accept peers */ |
#define | IEEE80211_MESHFLAGS_GATE 0x02 /* mesh gate role */ |
#define | IEEE80211_MESHFLAGS_FWD 0x04 /* forward packets */ |
#define | IEEE80211_MESHFLAGS_ROOT 0x08 /* configured as root */ |
Typedefs | |
typedef uint32_t | ieee80211_mesh_seq |
Variables | |
struct ieee80211_meshconf_ie | __packed |
#define IEEE80211_ACTION_CAT_INTERWORK 15 |
Definition at line 335 of file ieee80211_mesh.h.
#define IEEE80211_ACTION_CAT_PROXY 17 |
Definition at line 337 of file ieee80211_mesh.h.
#define IEEE80211_ACTION_CAT_RESOURCE 16 |
Definition at line 336 of file ieee80211_mesh.h.
#define IEEE80211_MESH_AE_MASK 0x03 |
Definition at line 394 of file ieee80211_mesh.h.
#define IEEE80211_MESH_CONF_SZ (7) |
Definition at line 45 of file ieee80211_mesh.h.
#define IEEE80211_MESH_DEFAULT_TTL 31 |
Definition at line 35 of file ieee80211_mesh.h.
#define IEEE80211_MESH_LMETRIC_FLAGS_REQ 0x01 /* Request */ |
Definition at line 126 of file ieee80211_mesh.h.
#define IEEE80211_MESH_MAX_NEIGHBORS 15 |
Definition at line 36 of file ieee80211_mesh.h.
#define IEEE80211_MESH_PROTO_DSZ 12 /* description size */ |
Definition at line 451 of file ieee80211_mesh.h.
#define IEEE80211_MESH_ROUTE_PRIV | ( | rt, | |
cast | |||
) | ((cast *)rt->rt_priv) |
Definition at line 439 of file ieee80211_mesh.h.
#define IEEE80211_MESH_SEQ_GEQ | ( | a, | |
b | |||
) | ((int32_t)((a)-(b)) >= 0) |
Definition at line 505 of file ieee80211_mesh.h.
#define IEEE80211_MESH_SEQ_LEQ | ( | a, | |
b | |||
) | ((int32_t)((a)-(b)) <= 0) |
Definition at line 504 of file ieee80211_mesh.h.
#define IEEE80211_MESHCONF_CAP_AP 0x01 /* Accepting Peers */ |
Definition at line 106 of file ieee80211_mesh.h.
#define IEEE80211_MESHCONF_CAP_BTR 0x10 /* Beacon Timing Report Enab */ |
Definition at line 110 of file ieee80211_mesh.h.
#define IEEE80211_MESHCONF_CAP_FWRD 0x08 /* forwarding enabled */ |
Definition at line 109 of file ieee80211_mesh.h.
#define IEEE80211_MESHCONF_CAP_MCCAE 0x04 /* MCCA enabled */ |
Definition at line 108 of file ieee80211_mesh.h.
#define IEEE80211_MESHCONF_CAP_MCCAS 0x02 /* MCCA supported */ |
Definition at line 107 of file ieee80211_mesh.h.
#define IEEE80211_MESHCONF_CAP_PSL 0x40 /* Power Save Level */ |
Definition at line 112 of file ieee80211_mesh.h.
#define IEEE80211_MESHCONF_CAP_TBTT 0x20 /* TBTT Adjusting */ |
Definition at line 111 of file ieee80211_mesh.h.
#define IEEE80211_MESHCONF_FORM_GATE 0x01 /* Connected to Gate */ |
Definition at line 101 of file ieee80211_mesh.h.
#define IEEE80211_MESHCONF_FORM_NNEIGH_MASK 0x7E /* Number of Neighbours */ |
Definition at line 102 of file ieee80211_mesh.h.
#define IEEE80211_MESHCONF_FORM_SA 0xF0 /* indicating 802.1X auth */ |
Definition at line 103 of file ieee80211_mesh.h.
#define IEEE80211_MESHFLAGS_AP 0x01 /* accept peers */ |
Definition at line 513 of file ieee80211_mesh.h.
#define IEEE80211_MESHFLAGS_FWD 0x04 /* forward packets */ |
Definition at line 515 of file ieee80211_mesh.h.
#define IEEE80211_MESHFLAGS_GATE 0x02 /* mesh gate role */ |
Definition at line 514 of file ieee80211_mesh.h.
#define IEEE80211_MESHFLAGS_ROOT 0x08 /* configured as root */ |
Definition at line 516 of file ieee80211_mesh.h.
#define IEEE80211_MESHGANN_BASE_SZ (15) |
Definition at line 201 of file ieee80211_mesh.h.
#define IEEE80211_MESHLMETRIC_INITIALVAL 0 |
Definition at line 132 of file ieee80211_mesh.h.
#define IEEE80211_MESHPERR_BASE_SZ (2) |
Definition at line 284 of file ieee80211_mesh.h.
#define IEEE80211_MESHPERR_DEST_SZ (13) |
Definition at line 285 of file ieee80211_mesh.h.
#define IEEE80211_MESHPERR_DEST_SZ_AE (19) |
Definition at line 286 of file ieee80211_mesh.h.
#define IEEE80211_MESHPERR_DFLAGS_RC 0x02 /* XXX: not part of standard */ |
Definition at line 295 of file ieee80211_mesh.h.
#define IEEE80211_MESHPERR_DFLAGS_USN 0x01 /* XXX: not part of standard */ |
Definition at line 294 of file ieee80211_mesh.h.
#define IEEE80211_MESHPERR_FLAGS_AE 0x40 /* Address Extension */ |
Definition at line 296 of file ieee80211_mesh.h.
#define IEEE80211_MESHPERR_MAXDEST (19) |
Definition at line 282 of file ieee80211_mesh.h.
#define IEEE80211_MESHPERR_NDEST_OFFSET (3) |
Definition at line 283 of file ieee80211_mesh.h.
#define IEEE80211_MESHPREP_BASE_SZ (31) |
Definition at line 262 of file ieee80211_mesh.h.
#define IEEE80211_MESHPREP_BASE_SZ_AE (37) |
Definition at line 263 of file ieee80211_mesh.h.
#define IEEE80211_MESHPREP_FLAGS_AE 0x40 /* Address Extension */ |
Definition at line 268 of file ieee80211_mesh.h.
#define IEEE80211_MESHPREQ_BASE_SZ (26) |
Definition at line 229 of file ieee80211_mesh.h.
#define IEEE80211_MESHPREQ_BASE_SZ_AE (32) |
Definition at line 230 of file ieee80211_mesh.h.
#define IEEE80211_MESHPREQ_FLAGS_AE 0x40 /* Address Extension */ |
Definition at line 241 of file ieee80211_mesh.h.
#define IEEE80211_MESHPREQ_FLAGS_AM 0x02 /* 0 = bcast / 1 = ucast */ |
Definition at line 239 of file ieee80211_mesh.h.
#define IEEE80211_MESHPREQ_FLAGS_GATE 0x01 /* Mesh Gate */ |
Definition at line 238 of file ieee80211_mesh.h.
#define IEEE80211_MESHPREQ_FLAGS_PP 0x04 /* Proactive PREP */ |
Definition at line 240 of file ieee80211_mesh.h.
#define IEEE80211_MESHPREQ_TCNT_OFFSET (27) |
Definition at line 232 of file ieee80211_mesh.h.
#define IEEE80211_MESHPREQ_TCNT_OFFSET_AE (33) |
Definition at line 233 of file ieee80211_mesh.h.
#define IEEE80211_MESHPREQ_TFLAGS_TO 0x01 /* Target Only */ |
Definition at line 254 of file ieee80211_mesh.h.
#define IEEE80211_MESHPREQ_TFLAGS_USN 0x04 /* Unknown HWMP seq number */ |
Definition at line 255 of file ieee80211_mesh.h.
#define IEEE80211_MESHPREQ_TRGT_SZ (11) |
Definition at line 231 of file ieee80211_mesh.h.
#define IEEE80211_MESHRANN_BASE_SZ (21) |
Definition at line 214 of file ieee80211_mesh.h.
#define IEEE80211_MESHRANN_FLAGS_GATE 0x01 /* Mesh Gate */ |
Definition at line 219 of file ieee80211_mesh.h.
#define IEEE80211_MESHRT_FLAGS_DISCOVER 0x01 /* path discovery */ |
Definition at line 430 of file ieee80211_mesh.h.
#define IEEE80211_MESHRT_FLAGS_GATE 0x08 /* mesh gate entry */ |
Definition at line 433 of file ieee80211_mesh.h.
#define IEEE80211_MESHRT_FLAGS_PROXY 0x04 /* proxy entry */ |
Definition at line 432 of file ieee80211_mesh.h.
#define IEEE80211_MESHRT_FLAGS_VALID 0x02 /* path discovery complete */ |
Definition at line 431 of file ieee80211_mesh.h.
#define IEEE80211_MPM_BASE_SZ (4) |
Definition at line 144 of file ieee80211_mesh.h.
#define IEEE80211_MPM_MAX_SZ (8) |
Definition at line 145 of file ieee80211_mesh.h.
typedef uint32_t ieee80211_mesh_seq |
Definition at line 503 of file ieee80211_mesh.h.
anonymous enum |
Enumerator | |
---|---|
IEEE80211_MESHCONF_PATH_HWMP | |
IEEE80211_MESHCONF_PATH_VENDOR |
Definition at line 59 of file ieee80211_mesh.h.
anonymous enum |
Enumerator | |
---|---|
IEEE80211_MESHCONF_METRIC_AIRTIME | |
IEEE80211_MESHCONF_METRIC_VENDOR |
Definition at line 67 of file ieee80211_mesh.h.
anonymous enum |
Enumerator | |
---|---|
IEEE80211_MESHCONF_CC_DISABLED | |
IEEE80211_MESHCONF_CC_SIG | |
IEEE80211_MESHCONF_CC_VENDOR |
Definition at line 75 of file ieee80211_mesh.h.
anonymous enum |
Enumerator | |
---|---|
IEEE80211_MESHCONF_SYNC_NEIGHOFF | |
IEEE80211_MESHCONF_SYNC_VENDOR |
Definition at line 83 of file ieee80211_mesh.h.
anonymous enum |
Enumerator | |
---|---|
IEEE80211_MESHCONF_AUTH_DISABLED | |
IEEE80211_MESHCONF_AUTH_SEA | |
IEEE80211_MESHCONF_AUTH_8021X | |
IEEE80211_MESHCONF_AUTH_VENDOR |
Definition at line 91 of file ieee80211_mesh.h.
anonymous enum |
Enumerator | |
---|---|
IEEE80211_MPPID_MPM | |
IEEE80211_MPPID_AUTH_MPM |
Definition at line 156 of file ieee80211_mesh.h.
anonymous enum |
Enumerator | |
---|---|
IEEE80211_ACTION_MESHPEERING_OPEN | |
IEEE80211_ACTION_MESHPEERING_CONFIRM | |
IEEE80211_ACTION_MESHPEERING_CLOSE |
Definition at line 342 of file ieee80211_mesh.h.
anonymous enum |
Definition at line 353 of file ieee80211_mesh.h.
anonymous enum |
Enumerator | |
---|---|
IEEE80211_MESH_AE_00 | |
IEEE80211_MESH_AE_01 | |
IEEE80211_MESH_AE_10 | |
IEEE80211_MESH_AE_11 |
Definition at line 395 of file ieee80211_mesh.h.
uint8_t * ieee80211_add_meshconf | ( | uint8_t * | frm, |
struct ieee80211vap * | vap | ||
) |
Definition at line 3207 of file ieee80211_mesh.c.
References IEEE80211_ELEMID_MESHCONF, IEEE80211_M_MBSS, IEEE80211_MESH_CONF_SZ, IEEE80211_MESH_MAX_NEIGHBORS, IEEE80211_MESHCONF_AUTH_DISABLED, IEEE80211_MESHCONF_CAP_AP, IEEE80211_MESHCONF_CAP_FWRD, IEEE80211_MESHCONF_CC_DISABLED, IEEE80211_MESHCONF_FORM_GATE, IEEE80211_MESHCONF_SYNC_NEIGHOFF, IEEE80211_MESHFLAGS_AP, IEEE80211_MESHFLAGS_FWD, IEEE80211_MESHFLAGS_GATE, ieee80211vap::iv_mesh, ieee80211vap::iv_opmode, ieee80211_mesh_proto_metric::mpm_ie, ieee80211_mesh_proto_path::mpp_ie, ieee80211_mesh_state::ms_flags, ieee80211_mesh_state::ms_neighbors, ieee80211_mesh_state::ms_pmetric, and ieee80211_mesh_state::ms_ppath.
Referenced by ieee80211_alloc_proberesp(), ieee80211_beacon_construct(), ieee80211_mesh_update_beacon(), mesh_send_action_meshpeering_confirm(), and mesh_send_action_meshpeering_open().
uint8_t * ieee80211_add_meshgate | ( | uint8_t * | frm, |
struct ieee80211_meshgann_ie * | ie | ||
) |
Definition at line 3338 of file ieee80211_mesh.c.
References ADDSHORT, ADDWORD, ieee80211_meshgann_ie::gann_addr, ieee80211_meshgann_ie::gann_flags, ieee80211_meshgann_ie::gann_hopcount, ieee80211_meshgann_ie::gann_interval, ieee80211_meshgann_ie::gann_seq, ieee80211_meshgann_ie::gann_ttl, IEEE80211_ADDR_COPY, IEEE80211_ELEMID_MESHGANN, and IEEE80211_MESHGANN_BASE_SZ.
Referenced by mesh_send_action_meshgate().
uint8_t * ieee80211_add_meshid | ( | uint8_t * | frm, |
struct ieee80211vap * | vap | ||
) |
Definition at line 3189 of file ieee80211_mesh.c.
References IEEE80211_ELEMID_MESHID, IEEE80211_M_MBSS, ieee80211vap::iv_mesh, ieee80211vap::iv_opmode, ieee80211_mesh_state::ms_id, and ieee80211_mesh_state::ms_idlen.
Referenced by ieee80211_alloc_proberesp(), ieee80211_beacon_construct(), mesh_send_action_meshpeering_close(), mesh_send_action_meshpeering_confirm(), and mesh_send_action_meshpeering_open().
uint8_t * ieee80211_add_meshlmetric | ( | uint8_t * | frm, |
uint8_t | flags, | ||
uint32_t | metric | ||
) |
Definition at line 3325 of file ieee80211_mesh.c.
References ADDWORD, and IEEE80211_ELEMID_MESHLINK.
Referenced by mesh_send_action_meshlmetric().
uint8_t * ieee80211_add_meshpeer | ( | uint8_t * | frm, |
uint8_t | subtype, | ||
uint16_t | localid, | ||
uint16_t | peerid, | ||
uint16_t | reason | ||
) |
Definition at line 3240 of file ieee80211_mesh.c.
References ADDSHORT, IEEE80211_ACTION_MESHPEERING_CLOSE, IEEE80211_ACTION_MESHPEERING_CONFIRM, IEEE80211_ACTION_MESHPEERING_OPEN, IEEE80211_ELEMID_MESHPEER, IEEE80211_MPM_BASE_SZ, IEEE80211_MPM_MAX_SZ, and IEEE80211_MPPID_MPM.
Referenced by mesh_send_action_meshpeering_close(), mesh_send_action_meshpeering_confirm(), and mesh_send_action_meshpeering_open().
void ieee80211_mesh_attach | ( | struct ieee80211com * | ic | ) |
Definition at line 612 of file ieee80211_mesh.c.
References ieee80211com::ic_vattach, IEEE80211_M_MBSS, and mesh_vattach().
Referenced by ieee80211_proto_attach().
void ieee80211_mesh_detach | ( | struct ieee80211com * | ic | ) |
Definition at line 618 of file ieee80211_mesh.c.
Referenced by ieee80211_proto_detach().
|
static |
Definition at line 597 of file ieee80211_mesh.h.
References ieee80211vap::iv_mesh, ieee80211_mesh_proto_path::mpp_discover, and ieee80211_mesh_state::ms_ppath.
Referenced by ieee80211_start_pkt(), mesh_ioctl_set80211(), and mesh_linkchange().
struct ieee80211_node * ieee80211_mesh_find_txnode | ( | struct ieee80211vap * | vap, |
const uint8_t | dest[IEEE80211_ADDR_LEN] | ||
) |
Definition at line 1008 of file ieee80211_mesh.c.
References ieee80211_find_txnode(), ieee80211_mesh_rt_find(), IEEE80211_MESHRT_FLAGS_PROXY, IEEE80211_MESHRT_FLAGS_VALID, IEEE80211_MSG_MESH, IEEE80211_NOTE_MAC, ieee80211_mesh_route::rt_flags, ieee80211_mesh_route::rt_mesh_gate, and ieee80211_mesh_route::rt_nexthop.
Referenced by hwmp_send_action(), mesh_forward(), and mesh_transmit_to_gate().
void ieee80211_mesh_forward_to_gates | ( | struct ieee80211vap * | vap, |
struct ieee80211_mesh_route * | rt_dest | ||
) |
Definition at line 1070 of file ieee80211_mesh.c.
References ieee80211_mesh_gate_route::gr_addr, ieee80211_mesh_gate_route::gr_route, ieee80211com::ic_stageq, IEEE80211_ADDR_COPY, ieee80211_ageq_remove(), ieee80211_mac_hash(), ieee80211_mesh_rt_update(), IEEE80211_MESHRT_FLAGS_DISCOVER, IEEE80211_MESHRT_FLAGS_GATE, IEEE80211_MESHRT_FLAGS_PROXY, IEEE80211_MESHRT_FLAGS_VALID, IEEE80211_MSG_HWMP, IEEE80211_NOTE_MAC, IEEE80211_TX_UNLOCK_ASSERT, ieee80211vap::iv_ic, ieee80211vap::iv_mesh, MESH_RT_LOCK, MESH_RT_UNLOCK, mesh_transmit_to_gate(), ieee80211_mesh_proto_path::mpp_inact, ieee80211_mesh_state::ms_ppath, ieee80211_mesh_route::rt_dest, ieee80211_mesh_route::rt_ext_seq, ieee80211_mesh_route::rt_flags, ieee80211_mesh_route::rt_mesh_gate, ieee80211_mesh_route::rt_metric, ieee80211_mesh_route::rt_nexthop, and ieee80211_mesh_route::rt_nhops.
Referenced by hwmp_rediscover_cb().
void ieee80211_mesh_init_neighbor | ( | struct ieee80211_node * | ni, |
const struct ieee80211_frame * | wh, | ||
const struct ieee80211_scanparams * | sp | ||
) |
Definition at line 3392 of file ieee80211_mesh.c.
References ieee80211_parse_meshid(), and ieee80211_scanparams::meshid.
Referenced by ieee80211_init_neighbor().
|
static |
Definition at line 582 of file ieee80211_mesh.h.
References IEEE80211_MESHFLAGS_AP, IEEE80211_MESHFLAGS_GATE, ieee80211vap::iv_mesh, and ieee80211_mesh_state::ms_flags.
Referenced by ieee80211_start_pkt().
struct ieee80211_mesh_gate_route * ieee80211_mesh_mark_gate | ( | struct ieee80211vap * | vap, |
const uint8_t * | addr, | ||
struct ieee80211_mesh_route * | rt | ||
) |
Definition at line 865 of file ieee80211_mesh.c.
References ieee80211_mesh_gate_route::gr_addr, ieee80211_mesh_gate_route::gr_route, IEEE80211_ADDR_COPY, IEEE80211_ADDR_EQ, IEEE80211_M_NOWAIT, IEEE80211_M_ZERO, IEEE80211_MALLOC, IEEE80211_MSG_MESH, IEEE80211_NOTE_MAC, ieee80211vap::iv_mesh, MESH_RT_LOCK, and MESH_RT_UNLOCK.
Referenced by hwmp_recv_preq(), and hwmp_recv_rann().
void ieee80211_mesh_node_cleanup | ( | struct ieee80211_node * | ni | ) |
Definition at line 3369 of file ieee80211_mesh.c.
References ieee80211vap::iv_mesh, ieee80211_mesh_proto_path::mpp_peerdown, ieee80211_mesh_state::ms_ppath, ieee80211_node::ni_mlhtimer, ieee80211_node::ni_mltimer, and ieee80211_node::ni_vap.
Referenced by node_cleanup().
void ieee80211_mesh_node_init | ( | struct ieee80211vap * | vap, |
struct ieee80211_node * | ni | ||
) |
Definition at line 3358 of file ieee80211_mesh.c.
References IEEE80211_NODE_QOS, ieee80211_node::ni_flags, ieee80211_node::ni_mlhtimer, and ieee80211_node::ni_mltimer.
Referenced by ieee80211_alloc_node().
void ieee80211_mesh_proxy_check | ( | struct ieee80211vap * | vap, |
const uint8_t | dest[IEEE80211_ADDR_LEN] | ||
) |
Definition at line 306 of file ieee80211_mesh.c.
References ieee80211com::ic_stageq, IEEE80211_ADDR_COPY, ieee80211_ageq_drain_node(), ieee80211_mac_hash(), IEEE80211_MESHRT_FLAGS_PROXY, IEEE80211_MESHRT_FLAGS_VALID, IEEE80211_MSG_MESH, IEEE80211_NOTE_MAC, ieee80211_stats::is_mesh_rtaddfailed, ieee80211vap::iv_ic, ieee80211vap::iv_mesh, ieee80211vap::iv_myaddr, ieee80211vap::iv_stats, mesh_rt_add_locked(), mesh_rt_find_locked(), MESH_RT_LOCK, MESH_RT_UNLOCK, ieee80211_mesh_route::rt_flags, ieee80211_mesh_route::rt_mesh_gate, and ieee80211_mesh_route::rt_nexthop.
Referenced by ieee80211_start_pkt().
int ieee80211_mesh_register_proto_metric | ( | const struct ieee80211_mesh_proto_metric * | mpm | ) |
Definition at line 463 of file ieee80211_mesh.c.
References IEEE80211_MESH_PROTO_DSZ, mesh_proto_metrics, ieee80211_mesh_proto_metric::mpm_active, and ieee80211_mesh_proto_metric::mpm_descr.
Referenced by ieee80211_mesh_init().
int ieee80211_mesh_register_proto_path | ( | const struct ieee80211_mesh_proto_path * | mpp | ) |
Definition at line 444 of file ieee80211_mesh.c.
References IEEE80211_MESH_PROTO_DSZ, mesh_proto_paths, ieee80211_mesh_proto_path::mpp_active, and ieee80211_mesh_proto_path::mpp_descr.
Referenced by ieee80211_hwmp_init().
struct ieee80211_mesh_route * ieee80211_mesh_rt_add | ( | struct ieee80211vap * | vap, |
const uint8_t | dest[IEEE80211_ADDR_LEN] | ||
) |
Definition at line 241 of file ieee80211_mesh.c.
References IEEE80211_ADDR_EQ, ieee80211_mesh_rt_find(), ieee80211vap::iv_mesh, ieee80211vap::iv_myaddr, mesh_rt_add_locked(), MESH_RT_LOCK, and MESH_RT_UNLOCK.
Referenced by hwmp_discover(), hwmp_recv_prep(), hwmp_recv_preq(), hwmp_recv_rann(), hwmp_update_transmitter(), and mesh_checkpseq().
void ieee80211_mesh_rt_del | ( | struct ieee80211vap * | vap, |
const uint8_t | dest[IEEE80211_ADDR_LEN] | ||
) |
Definition at line 366 of file ieee80211_mesh.c.
References IEEE80211_ADDR_EQ, IEEE80211_MESHRT_FLAGS_PROXY, IEEE80211_REASON_MESH_PERR_DEST_UNREACH, IEEE80211_REASON_MESH_PERR_NO_PROXY, ieee80211vap::iv_mesh, mesh_rt_del(), MESH_RT_LOCK, MESH_RT_UNLOCK, ieee80211_mesh_proto_path::mpp_senderror, ieee80211_mesh_state::ms_ppath, ieee80211_mesh_route::rt_dest, and ieee80211_mesh_route::rt_flags.
Referenced by mesh_ioctl_set80211().
struct ieee80211_mesh_route * ieee80211_mesh_rt_find | ( | struct ieee80211vap * | vap, |
const uint8_t | dest[IEEE80211_ADDR_LEN] | ||
) |
Definition at line 228 of file ieee80211_mesh.c.
References ieee80211vap::iv_mesh, mesh_rt_find_locked(), MESH_RT_LOCK, and MESH_RT_UNLOCK.
Referenced by hwmp_discover(), hwmp_peerdown(), hwmp_recv_perr(), hwmp_recv_prep(), hwmp_recv_preq(), hwmp_recv_rann(), hwmp_update_transmitter(), ieee80211_encap(), ieee80211_mesh_find_txnode(), ieee80211_mesh_rt_add(), mesh_checkpseq(), mesh_isucastforme(), mesh_recv_indiv_data_to_fwrd(), mesh_recv_indiv_data_to_me(), and mesh_recv_mgmt().
void ieee80211_mesh_rt_flush | ( | struct ieee80211vap * | vap | ) |
Definition at line 391 of file ieee80211_mesh.c.
References ieee80211vap::iv_mesh, mesh_rt_del(), MESH_RT_LOCK, and MESH_RT_UNLOCK.
Referenced by mesh_ioctl_set80211(), mesh_newstate(), and mesh_vdetach().
void ieee80211_mesh_rt_flush_peer | ( | struct ieee80211vap * | vap, |
const uint8_t | peer[IEEE80211_ADDR_LEN] | ||
) |
Definition at line 405 of file ieee80211_mesh.c.
References IEEE80211_ADDR_EQ, ieee80211vap::iv_mesh, mesh_rt_del(), MESH_RT_LOCK, MESH_RT_UNLOCK, and ieee80211_mesh_route::rt_nexthop.
Referenced by hwmp_peerdown(), and hwmp_recv_perr().
int ieee80211_mesh_rt_update | ( | struct ieee80211_mesh_route * | rt, |
int | new_lifetime | ||
) |
Definition at line 264 of file ieee80211_mesh.c.
References IEEE80211_MESHRT_FLAGS_PROXY, MESH_ROUTE_LIFETIME_MAX, MESH_RT_ENTRY_LOCK, MESH_RT_ENTRY_UNLOCK, ieee80211_mesh_route::rt_flags, ieee80211_mesh_route::rt_lifetime, ieee80211_mesh_route::rt_nhops, ieee80211_mesh_route::rt_updtime, and ticks_to_msecs.
Referenced by hwmp_recv_prep(), hwmp_recv_preq(), hwmp_recv_rann(), hwmp_update_transmitter(), ieee80211_mesh_forward_to_gates(), mesh_ioctl_get80211(), mesh_recv_indiv_data_to_fwrd(), mesh_recv_indiv_data_to_me(), mesh_recv_mgmt(), and mesh_rt_flush_invalid().
void ieee80211_mesh_update_beacon | ( | struct ieee80211vap * | vap, |
struct ieee80211_beacon_offsets * | bo | ||
) |
Definition at line 3400 of file ieee80211_mesh.c.
References ieee80211_beacon_offsets::bo_flags, ieee80211_beacon_offsets::bo_meshconf, ieee80211_add_meshconf(), IEEE80211_BEACON_MESHCONF, IEEE80211_M_MBSS, and ieee80211vap::iv_opmode.
Referenced by ieee80211_beacon_update().
void ieee80211_parse_meshid | ( | struct ieee80211_node * | ni, |
const uint8_t * | ie | ||
) |
Definition at line 3382 of file ieee80211_mesh.c.
References ieee80211_node::ni_meshid, and ieee80211_node::ni_meshidlen.
Referenced by ieee80211_mesh_init_neighbor(), and ieee80211_sta_join().
MALLOC_DECLARE | ( | M_80211_MESH_GT_RT | ) |
MALLOC_DECLARE | ( | M_80211_MESH_PERR | ) |
MALLOC_DECLARE | ( | M_80211_MESH_PREP | ) |
MALLOC_DECLARE | ( | M_80211_MESH_PREQ | ) |
MALLOC_DECLARE | ( | M_80211_MESH_RT | ) |
struct ieee80211_meshcntl_ae10 __packed |