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
76 * @sdata: local mesh subif
83 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in ieee80211_mps_local_status_update()
96 switch (sta->mesh->plink_state) { in ieee80211_mps_local_status_update()
103 if (sta->mesh->local_pm == NL80211_MESH_POWER_LIGHT_SLEEP) in ieee80211_mps_local_status_update()
105 else if (sta->mesh->local_pm == NL80211_MESH_POWER_DEEP_SLEEP) in ieee80211_mps_local_status_update()
116 * (see IEEE802.11-2012 13.14.8.3). The non-peer mesh power mode is in ieee80211_mps_local_status_update()
118 * least one mesh peer (see 13.14.3.1). Otherwise, set it to the in ieee80211_mps_local_status_update()
146 * ieee80211_mps_set_sta_local_pm - set local PM towards a mesh STA
148 * @sta: mesh STA
157 if (sta->mesh->local_pm == pm) in ieee80211_mps_set_sta_local_pm()
163 sta->mesh->local_pm = pm; in ieee80211_mps_set_sta_local_pm()
169 if (sta->mesh->plink_state == NL80211_PLINK_ESTAB) in ieee80211_mps_set_sta_local_pm()
176 * ieee80211_mps_set_frame_flags - set mesh PS flags in FC (and QoS Control)
178 * @sdata: local mesh subif
179 * @sta: mesh STA
201 sta->mesh->plink_state == NL80211_PLINK_ESTAB) in ieee80211_mps_set_frame_flags()
202 pm = sta->mesh->local_pm; in ieee80211_mps_set_frame_flags()
204 pm = sdata->u.mesh.nonpeer_pm; in ieee80211_mps_set_frame_flags()
219 sdata->u.mesh.ps_peers_deep_sleep > 0)) in ieee80211_mps_set_frame_flags()
228 * @sta: mesh STA
245 if (sta->mesh->plink_state == NL80211_PLINK_ESTAB && in ieee80211_mps_sta_status_update()
246 sta->mesh->peer_pm != NL80211_MESH_POWER_UNKNOWN) in ieee80211_mps_sta_status_update()
247 pm = sta->mesh->peer_pm; in ieee80211_mps_sta_status_update()
249 pm = sta->mesh->nonpeer_pm; in ieee80211_mps_sta_status_update()
254 if (sta->mesh->plink_state != NL80211_PLINK_ESTAB) { in ieee80211_mps_sta_status_update()
267 atomic_inc(&sta->sdata->u.mesh.ps.num_sta_ps); in ieee80211_mps_sta_status_update()
283 * mesh power save level subfield of QoS control field (PSL) in mps_set_sta_peer_pm()
285 * | PM | PSL| Mesh PM | in mps_set_sta_peer_pm()
300 if (sta->mesh->peer_pm == pm) in mps_set_sta_peer_pm()
306 sta->mesh->peer_pm = pm; in mps_set_sta_peer_pm()
321 if (sta->mesh->nonpeer_pm == pm) in mps_set_sta_nonpeer_pm()
327 sta->mesh->nonpeer_pm = pm; in mps_set_sta_nonpeer_pm()
333 * ieee80211_mps_rx_h_sta_process - frame receive handler for mesh powersave
349 /* check for mesh Peer Service Period trigger frames */ in ieee80211_mps_rx_h_sta_process()
362 /* mesh PS frame release */
410 * To properly end a mesh MPSP the last transmitted frame has to set the EOSP
447 * mps_frame_deliver - transmit frames during mesh powersave
530 * ieee80211_mpsp_trigger_process - track status of mesh Peer Service Periods
558 else if (sta->mesh->local_pm != NL80211_MESH_POWER_ACTIVE) in ieee80211_mpsp_trigger_process()
567 * ieee80211_mps_frame_release - release frames buffered due to mesh power save
569 * @sta: mesh STA
583 if (sta->mesh->plink_state == NL80211_PLINK_ESTAB) in ieee80211_mps_frame_release()
585 sta->mesh->aid); in ieee80211_mps_frame_release()
604 if (sta->mesh->plink_state == NL80211_PLINK_ESTAB) in ieee80211_mps_frame_release()