Lines Matching full:mesh

8 #include "mesh.h"
12 /* mesh PS management */
15 * mps_qos_null_get - create pre-addressed QoS Null frame for mesh powersave
75 * @sdata: local mesh subif
82 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in ieee80211_mps_local_status_update()
95 switch (sta->mesh->plink_state) { in ieee80211_mps_local_status_update()
102 if (sta->mesh->local_pm == NL80211_MESH_POWER_LIGHT_SLEEP) in ieee80211_mps_local_status_update()
104 else if (sta->mesh->local_pm == NL80211_MESH_POWER_DEEP_SLEEP) in ieee80211_mps_local_status_update()
115 * (see IEEE802.11-2012 13.14.8.3). The non-peer mesh power mode is in ieee80211_mps_local_status_update()
117 * least one mesh peer (see 13.14.3.1). Otherwise, set it to the in ieee80211_mps_local_status_update()
145 * ieee80211_mps_set_sta_local_pm - set local PM towards a mesh STA
147 * @sta: mesh STA
156 if (sta->mesh->local_pm == pm) in ieee80211_mps_set_sta_local_pm()
162 sta->mesh->local_pm = pm; in ieee80211_mps_set_sta_local_pm()
168 if (sta->mesh->plink_state == NL80211_PLINK_ESTAB) in ieee80211_mps_set_sta_local_pm()
175 * ieee80211_mps_set_frame_flags - set mesh PS flags in FC (and QoS Control)
177 * @sdata: local mesh subif
178 * @sta: mesh STA
200 sta->mesh->plink_state == NL80211_PLINK_ESTAB) in ieee80211_mps_set_frame_flags()
201 pm = sta->mesh->local_pm; in ieee80211_mps_set_frame_flags()
203 pm = sdata->u.mesh.nonpeer_pm; in ieee80211_mps_set_frame_flags()
218 sdata->u.mesh.ps_peers_deep_sleep > 0)) in ieee80211_mps_set_frame_flags()
227 * @sta: mesh STA
244 if (sta->mesh->plink_state == NL80211_PLINK_ESTAB && in ieee80211_mps_sta_status_update()
245 sta->mesh->peer_pm != NL80211_MESH_POWER_UNKNOWN) in ieee80211_mps_sta_status_update()
246 pm = sta->mesh->peer_pm; in ieee80211_mps_sta_status_update()
248 pm = sta->mesh->nonpeer_pm; in ieee80211_mps_sta_status_update()
253 if (sta->mesh->plink_state != NL80211_PLINK_ESTAB) { in ieee80211_mps_sta_status_update()
266 atomic_inc(&sta->sdata->u.mesh.ps.num_sta_ps); in ieee80211_mps_sta_status_update()
282 * mesh power save level subfield of QoS control field (PSL) in mps_set_sta_peer_pm()
284 * | PM | PSL| Mesh PM | in mps_set_sta_peer_pm()
299 if (sta->mesh->peer_pm == pm) in mps_set_sta_peer_pm()
305 sta->mesh->peer_pm = pm; in mps_set_sta_peer_pm()
320 if (sta->mesh->nonpeer_pm == pm) in mps_set_sta_nonpeer_pm()
326 sta->mesh->nonpeer_pm = pm; in mps_set_sta_nonpeer_pm()
332 * ieee80211_mps_rx_h_sta_process - frame receive handler for mesh powersave
348 /* check for mesh Peer Service Period trigger frames */ in ieee80211_mps_rx_h_sta_process()
361 /* mesh PS frame release */
409 * To properly end a mesh MPSP the last transmitted frame has to set the EOSP
446 * mps_frame_deliver - transmit frames during mesh powersave
529 * ieee80211_mpsp_trigger_process - track status of mesh Peer Service Periods
557 else if (sta->mesh->local_pm != NL80211_MESH_POWER_ACTIVE) in ieee80211_mpsp_trigger_process()
566 * ieee80211_mps_frame_release - release frames buffered due to mesh power save
568 * @sta: mesh STA
582 if (sta->mesh->plink_state == NL80211_PLINK_ESTAB) in ieee80211_mps_frame_release()
584 sta->mesh->aid); in ieee80211_mps_frame_release()
603 if (sta->mesh->plink_state == NL80211_PLINK_ESTAB) in ieee80211_mps_frame_release()