Lines Matching full:mesh
9 #include "mesh.h"
13 /* mesh PS management */
16 * mps_qos_null_get - create pre-addressed QoS Null frame for mesh powersave
78 * @sdata: local mesh subif
87 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in ieee80211_mps_local_status_update()
100 switch (sta->mesh->plink_state) { in ieee80211_mps_local_status_update()
107 if (sta->mesh->local_pm == NL80211_MESH_POWER_LIGHT_SLEEP) in ieee80211_mps_local_status_update()
109 else if (sta->mesh->local_pm == NL80211_MESH_POWER_DEEP_SLEEP) in ieee80211_mps_local_status_update()
120 * (see IEEE802.11-2012 13.14.8.3). The non-peer mesh power mode is in ieee80211_mps_local_status_update()
122 * least one mesh peer (see 13.14.3.1). Otherwise, set it to the in ieee80211_mps_local_status_update()
150 * ieee80211_mps_set_sta_local_pm - set local PM towards a mesh STA
152 * @sta: mesh STA
161 if (sta->mesh->local_pm == pm) in ieee80211_mps_set_sta_local_pm()
167 sta->mesh->local_pm = pm; in ieee80211_mps_set_sta_local_pm()
173 if (sta->mesh->plink_state == NL80211_PLINK_ESTAB) in ieee80211_mps_set_sta_local_pm()
180 * ieee80211_mps_set_frame_flags - set mesh PS flags in FC (and QoS Control)
182 * @sdata: local mesh subif
183 * @sta: mesh STA
205 sta->mesh->plink_state == NL80211_PLINK_ESTAB) in ieee80211_mps_set_frame_flags()
206 pm = sta->mesh->local_pm; in ieee80211_mps_set_frame_flags()
208 pm = sdata->u.mesh.nonpeer_pm; in ieee80211_mps_set_frame_flags()
223 sdata->u.mesh.ps_peers_deep_sleep > 0)) in ieee80211_mps_set_frame_flags()
232 * @sta: mesh STA
249 if (sta->mesh->plink_state == NL80211_PLINK_ESTAB && in ieee80211_mps_sta_status_update()
250 sta->mesh->peer_pm != NL80211_MESH_POWER_UNKNOWN) in ieee80211_mps_sta_status_update()
251 pm = sta->mesh->peer_pm; in ieee80211_mps_sta_status_update()
253 pm = sta->mesh->nonpeer_pm; in ieee80211_mps_sta_status_update()
258 if (sta->mesh->plink_state != NL80211_PLINK_ESTAB) { in ieee80211_mps_sta_status_update()
271 atomic_inc(&sta->sdata->u.mesh.ps.num_sta_ps); in ieee80211_mps_sta_status_update()
287 * mesh power save level subfield of QoS control field (PSL) in mps_set_sta_peer_pm()
289 * | PM | PSL| Mesh PM | in mps_set_sta_peer_pm()
304 if (sta->mesh->peer_pm == pm) in mps_set_sta_peer_pm()
310 sta->mesh->peer_pm = pm; in mps_set_sta_peer_pm()
325 if (sta->mesh->nonpeer_pm == pm) in mps_set_sta_nonpeer_pm()
331 sta->mesh->nonpeer_pm = pm; in mps_set_sta_nonpeer_pm()
337 * ieee80211_mps_rx_h_sta_process - frame receive handler for mesh powersave
353 /* check for mesh Peer Service Period trigger frames */ in ieee80211_mps_rx_h_sta_process()
366 /* mesh PS frame release */
414 * To properly end a mesh MPSP the last transmitted frame has to set the EOSP
451 * mps_frame_deliver - transmit frames during mesh powersave
534 * ieee80211_mpsp_trigger_process - track status of mesh Peer Service Periods
562 else if (sta->mesh->local_pm != NL80211_MESH_POWER_ACTIVE) in ieee80211_mpsp_trigger_process()
571 * ieee80211_mps_frame_release - release frames buffered due to mesh power save
573 * @sta: mesh STA
587 if (sta->mesh->plink_state == NL80211_PLINK_ESTAB) in ieee80211_mps_frame_release()
589 sta->mesh->aid); in ieee80211_mps_frame_release()
608 if (sta->mesh->plink_state == NL80211_PLINK_ESTAB) in ieee80211_mps_frame_release()