Lines Matching refs:beacon
5086 struct beacon_data *beacon, in ieee80211_set_beacon_cntdwn() argument
5097 beacon_data = beacon->tail; in ieee80211_set_beacon_cntdwn()
5098 beacon_data_len = beacon->tail_len; in ieee80211_set_beacon_cntdwn()
5101 beacon_data = beacon->head; in ieee80211_set_beacon_cntdwn()
5102 beacon_data_len = beacon->head_len; in ieee80211_set_beacon_cntdwn()
5105 beacon_data = beacon->head; in ieee80211_set_beacon_cntdwn()
5106 beacon_data_len = beacon->head_len; in ieee80211_set_beacon_cntdwn()
5114 bcn_offsets = beacon->cntdwn_counter_offsets; in ieee80211_set_beacon_cntdwn()
5115 count = beacon->cntdwn_current_counter; in ieee80211_set_beacon_cntdwn()
5135 struct beacon_data *beacon) in __ieee80211_beacon_update_cntdwn() argument
5137 if (beacon->cntdwn_current_counter == 1) { in __ieee80211_beacon_update_cntdwn()
5152 beacon->cntdwn_current_counter--; in __ieee80211_beacon_update_cntdwn()
5154 return beacon->cntdwn_current_counter; in __ieee80211_beacon_update_cntdwn()
5161 struct beacon_data *beacon = NULL; in ieee80211_beacon_update_cntdwn() local
5174 beacon = rcu_dereference(link->u.ap.beacon); in ieee80211_beacon_update_cntdwn()
5176 beacon = rcu_dereference(sdata->u.ibss.presp); in ieee80211_beacon_update_cntdwn()
5178 beacon = rcu_dereference(sdata->u.mesh.beacon); in ieee80211_beacon_update_cntdwn()
5180 if (!beacon) in ieee80211_beacon_update_cntdwn()
5183 count = __ieee80211_beacon_update_cntdwn(link, beacon); in ieee80211_beacon_update_cntdwn()
5194 struct beacon_data *beacon = NULL; in ieee80211_beacon_set_cntdwn() local
5199 beacon = rcu_dereference(sdata->deflink.u.ap.beacon); in ieee80211_beacon_set_cntdwn()
5201 beacon = rcu_dereference(sdata->u.ibss.presp); in ieee80211_beacon_set_cntdwn()
5203 beacon = rcu_dereference(sdata->u.mesh.beacon); in ieee80211_beacon_set_cntdwn()
5205 if (!beacon) in ieee80211_beacon_set_cntdwn()
5208 if (counter < beacon->cntdwn_current_counter) in ieee80211_beacon_set_cntdwn()
5209 beacon->cntdwn_current_counter = counter; in ieee80211_beacon_set_cntdwn()
5221 struct beacon_data *beacon = NULL; in ieee80211_beacon_cntdwn_is_complete() local
5239 beacon = rcu_dereference(link->u.ap.beacon); in ieee80211_beacon_cntdwn_is_complete()
5240 if (WARN_ON(!beacon || !beacon->tail)) in ieee80211_beacon_cntdwn_is_complete()
5242 beacon_data = beacon->tail; in ieee80211_beacon_cntdwn_is_complete()
5243 beacon_data_len = beacon->tail_len; in ieee80211_beacon_cntdwn_is_complete()
5247 beacon = rcu_dereference(ifibss->presp); in ieee80211_beacon_cntdwn_is_complete()
5248 if (!beacon) in ieee80211_beacon_cntdwn_is_complete()
5251 beacon_data = beacon->head; in ieee80211_beacon_cntdwn_is_complete()
5252 beacon_data_len = beacon->head_len; in ieee80211_beacon_cntdwn_is_complete()
5256 beacon = rcu_dereference(ifmsh->beacon); in ieee80211_beacon_cntdwn_is_complete()
5257 if (!beacon) in ieee80211_beacon_cntdwn_is_complete()
5260 beacon_data = beacon->head; in ieee80211_beacon_cntdwn_is_complete()
5261 beacon_data_len = beacon->head_len; in ieee80211_beacon_cntdwn_is_complete()
5267 if (!beacon->cntdwn_counter_offsets[0]) in ieee80211_beacon_cntdwn_is_complete()
5270 if (WARN_ON_ONCE(beacon->cntdwn_counter_offsets[0] > beacon_data_len)) in ieee80211_beacon_cntdwn_is_complete()
5273 if (beacon_data[beacon->cntdwn_counter_offsets[0]] == 1) in ieee80211_beacon_cntdwn_is_complete()
5325 struct beacon_data *beacon, in ieee80211_beacon_get_finish() argument
5337 if (offs && beacon) { in ieee80211_beacon_get_finish()
5341 u16 csa_off = beacon->cntdwn_counter_offsets[i]; in ieee80211_beacon_get_finish()
5378 ieee80211_beacon_add_mbssid(struct sk_buff *skb, struct beacon_data *beacon, in ieee80211_beacon_add_mbssid() argument
5381 if (!beacon->mbssid_ies || !beacon->mbssid_ies->cnt || in ieee80211_beacon_add_mbssid()
5382 i > beacon->mbssid_ies->cnt) in ieee80211_beacon_add_mbssid()
5385 if (i < beacon->mbssid_ies->cnt) { in ieee80211_beacon_add_mbssid()
5386 skb_put_data(skb, beacon->mbssid_ies->elem[i].data, in ieee80211_beacon_add_mbssid()
5387 beacon->mbssid_ies->elem[i].len); in ieee80211_beacon_add_mbssid()
5389 if (beacon->rnr_ies && beacon->rnr_ies->cnt) { in ieee80211_beacon_add_mbssid()
5390 skb_put_data(skb, beacon->rnr_ies->elem[i].data, in ieee80211_beacon_add_mbssid()
5391 beacon->rnr_ies->elem[i].len); in ieee80211_beacon_add_mbssid()
5393 for (i = beacon->mbssid_ies->cnt; i < beacon->rnr_ies->cnt; i++) in ieee80211_beacon_add_mbssid()
5394 skb_put_data(skb, beacon->rnr_ies->elem[i].data, in ieee80211_beacon_add_mbssid()
5395 beacon->rnr_ies->elem[i].len); in ieee80211_beacon_add_mbssid()
5401 for (i = 0; i < beacon->mbssid_ies->cnt; i++) in ieee80211_beacon_add_mbssid()
5402 skb_put_data(skb, beacon->mbssid_ies->elem[i].data, in ieee80211_beacon_add_mbssid()
5403 beacon->mbssid_ies->elem[i].len); in ieee80211_beacon_add_mbssid()
5412 struct beacon_data *beacon, in __ieee80211_beacon_get_ap() argument
5423 if (beacon->cntdwn_counter_offsets[0]) { in __ieee80211_beacon_get_ap()
5427 ieee80211_set_beacon_cntdwn(sdata, beacon, link); in __ieee80211_beacon_get_ap()
5433 mbssid_len = ieee80211_get_mbssid_beacon_len(beacon->mbssid_ies, in __ieee80211_beacon_get_ap()
5434 beacon->rnr_ies, in __ieee80211_beacon_get_ap()
5437 skb = dev_alloc_skb(local->tx_headroom + beacon->head_len + in __ieee80211_beacon_get_ap()
5438 beacon->tail_len + 256 + in __ieee80211_beacon_get_ap()
5444 skb_put_data(skb, beacon->head, beacon->head_len); in __ieee80211_beacon_get_ap()
5449 offs->tim_offset = beacon->head_len; in __ieee80211_beacon_get_ap()
5450 offs->tim_length = skb->len - beacon->head_len; in __ieee80211_beacon_get_ap()
5451 offs->cntdwn_counter_offs[0] = beacon->cntdwn_counter_offsets[0]; in __ieee80211_beacon_get_ap()
5454 ieee80211_beacon_add_mbssid(skb, beacon, ema_index); in __ieee80211_beacon_get_ap()
5462 if (beacon->tail) in __ieee80211_beacon_get_ap()
5463 skb_put_data(skb, beacon->tail, beacon->tail_len); in __ieee80211_beacon_get_ap()
5470 ieee80211_beacon_get_finish(hw, vif, link, offs, beacon, skb, in __ieee80211_beacon_get_ap()
5524 bool is_template, struct beacon_data *beacon, in ieee80211_beacon_get_ap() argument
5533 is_template, beacon, in ieee80211_beacon_get_ap()
5545 bool is_template, struct beacon_data *beacon, in ieee80211_beacon_get_ap_ema_list() argument
5550 if (!beacon->mbssid_ies || !beacon->mbssid_ies->cnt) in ieee80211_beacon_get_ap_ema_list()
5553 ema = kzalloc_flex(*ema, bcn, beacon->mbssid_ies->cnt, GFP_ATOMIC); in ieee80211_beacon_get_ap_ema_list()
5557 for (ema->cnt = 0; ema->cnt < beacon->mbssid_ies->cnt; ema->cnt++) { in ieee80211_beacon_get_ap_ema_list()
5561 is_template, beacon, in ieee80211_beacon_get_ap_ema_list()
5567 if (ema->cnt == beacon->mbssid_ies->cnt) in ieee80211_beacon_get_ap_ema_list()
5586 struct beacon_data *beacon = NULL; in __ieee80211_beacon_get() local
5609 beacon = rcu_dereference(link->u.ap.beacon); in __ieee80211_beacon_get()
5610 if (!beacon) in __ieee80211_beacon_get()
5625 beacon, in __ieee80211_beacon_get()
5628 if (beacon->mbssid_ies && beacon->mbssid_ies->cnt) { in __ieee80211_beacon_get()
5629 if (ema_index >= beacon->mbssid_ies->cnt) in __ieee80211_beacon_get()
5633 ema_index = beacon->mbssid_ies->cnt; in __ieee80211_beacon_get()
5639 is_template, beacon, in __ieee80211_beacon_get()
5647 beacon = rcu_dereference(ifibss->presp); in __ieee80211_beacon_get()
5648 if (!beacon) in __ieee80211_beacon_get()
5651 if (beacon->cntdwn_counter_offsets[0]) { in __ieee80211_beacon_get()
5653 __ieee80211_beacon_update_cntdwn(link, beacon); in __ieee80211_beacon_get()
5655 ieee80211_set_beacon_cntdwn(sdata, beacon, link); in __ieee80211_beacon_get()
5658 skb = dev_alloc_skb(local->tx_headroom + beacon->head_len + in __ieee80211_beacon_get()
5663 skb_put_data(skb, beacon->head, beacon->head_len); in __ieee80211_beacon_get()
5669 ieee80211_beacon_get_finish(hw, vif, link, offs, beacon, skb, in __ieee80211_beacon_get()
5674 beacon = rcu_dereference(ifmsh->beacon); in __ieee80211_beacon_get()
5675 if (!beacon) in __ieee80211_beacon_get()
5678 if (beacon->cntdwn_counter_offsets[0]) { in __ieee80211_beacon_get()
5685 __ieee80211_beacon_update_cntdwn(link, beacon); in __ieee80211_beacon_get()
5687 ieee80211_set_beacon_cntdwn(sdata, beacon, link); in __ieee80211_beacon_get()
5691 ifmsh->sync_ops->adjust_tsf(sdata, beacon); in __ieee80211_beacon_get()
5694 beacon->head_len + in __ieee80211_beacon_get()
5696 beacon->tail_len + in __ieee80211_beacon_get()
5701 skb_put_data(skb, beacon->head, beacon->head_len); in __ieee80211_beacon_get()
5706 offs->tim_offset = beacon->head_len; in __ieee80211_beacon_get()
5707 offs->tim_length = skb->len - beacon->head_len; in __ieee80211_beacon_get()
5710 skb_put_data(skb, beacon->tail, beacon->tail_len); in __ieee80211_beacon_get()
5711 ieee80211_beacon_get_finish(hw, vif, link, offs, beacon, skb, in __ieee80211_beacon_get()
6093 struct beacon_data *beacon = in ieee80211_get_buffered_bc() local
6094 rcu_dereference(sdata->deflink.u.ap.beacon); in ieee80211_get_buffered_bc()
6096 if (!beacon || !beacon->head) in ieee80211_get_buffered_bc()