Lines Matching refs:beacon

416 	 * the frame is buffered to be sent after DTIM beacon frame.
450 /* device releases frame after DTIM beacon */
4598 struct beacon_data *beacon)
4604 u8 count = beacon->cntdwn_current_counter;
4608 beacon_data = beacon->tail;
4609 beacon_data_len = beacon->tail_len;
4612 beacon_data = beacon->head;
4613 beacon_data_len = beacon->head_len;
4616 beacon_data = beacon->head;
4617 beacon_data_len = beacon->head_len;
4627 if (beacon->cntdwn_counter_offsets[i]) {
4628 if (WARN_ON_ONCE(beacon->cntdwn_counter_offsets[i] >=
4634 beacon_data[beacon->cntdwn_counter_offsets[i]] = count;
4643 static u8 __ieee80211_beacon_update_cntdwn(struct beacon_data *beacon)
4645 beacon->cntdwn_current_counter--;
4648 WARN_ON_ONCE(!beacon->cntdwn_current_counter);
4650 return beacon->cntdwn_current_counter;
4656 struct beacon_data *beacon = NULL;
4662 beacon = rcu_dereference(sdata->u.ap.beacon);
4664 beacon = rcu_dereference(sdata->u.ibss.presp);
4666 beacon = rcu_dereference(sdata->u.mesh.beacon);
4668 if (!beacon)
4671 count = __ieee80211_beacon_update_cntdwn(beacon);
4682 struct beacon_data *beacon = NULL;
4687 beacon = rcu_dereference(sdata->u.ap.beacon);
4689 beacon = rcu_dereference(sdata->u.ibss.presp);
4691 beacon = rcu_dereference(sdata->u.mesh.beacon);
4693 if (!beacon)
4696 if (counter < beacon->cntdwn_current_counter)
4697 beacon->cntdwn_current_counter = counter;
4707 struct beacon_data *beacon = NULL;
4719 beacon = rcu_dereference(ap->beacon);
4720 if (WARN_ON(!beacon || !beacon->tail))
4722 beacon_data = beacon->tail;
4723 beacon_data_len = beacon->tail_len;
4727 beacon = rcu_dereference(ifibss->presp);
4728 if (!beacon)
4731 beacon_data = beacon->head;
4732 beacon_data_len = beacon->head_len;
4736 beacon = rcu_dereference(ifmsh->beacon);
4737 if (!beacon)
4740 beacon_data = beacon->head;
4741 beacon_data_len = beacon->head_len;
4747 if (!beacon->cntdwn_counter_offsets[0])
4750 if (WARN_ON_ONCE(beacon->cntdwn_counter_offsets[0] > beacon_data_len))
4753 if (beacon_data[beacon->cntdwn_counter_offsets[0]] == 1)
4796 struct beacon_data *beacon = NULL;
4819 beacon = rcu_dereference(ap->beacon);
4820 if (beacon) {
4821 if (beacon->cntdwn_counter_offsets[0]) {
4825 ieee80211_set_beacon_cntdwn(sdata, beacon);
4833 beacon->head_len +
4834 beacon->tail_len + 256 +
4840 skb_put_data(skb, beacon->head, beacon->head_len);
4846 offs->tim_offset = beacon->head_len;
4847 offs->tim_length = skb->len - beacon->head_len;
4853 if (beacon->tail)
4854 skb_put_data(skb, beacon->tail,
4855 beacon->tail_len);
4865 beacon = rcu_dereference(ifibss->presp);
4866 if (!beacon)
4869 if (beacon->cntdwn_counter_offsets[0]) {
4871 __ieee80211_beacon_update_cntdwn(beacon);
4873 ieee80211_set_beacon_cntdwn(sdata, beacon);
4876 skb = dev_alloc_skb(local->tx_headroom + beacon->head_len +
4881 skb_put_data(skb, beacon->head, beacon->head_len);
4889 beacon = rcu_dereference(ifmsh->beacon);
4890 if (!beacon)
4893 if (beacon->cntdwn_counter_offsets[0]) {
4900 __ieee80211_beacon_update_cntdwn(beacon);
4902 ieee80211_set_beacon_cntdwn(sdata, beacon);
4906 ifmsh->sync_ops->adjust_tsf(sdata, beacon);
4909 beacon->head_len +
4911 beacon->tail_len +
4916 skb_put_data(skb, beacon->head, beacon->head_len);
4920 offs->tim_offset = beacon->head_len;
4921 offs->tim_length = skb->len - beacon->head_len;
4924 skb_put_data(skb, beacon->tail, beacon->tail_len);
4931 if (offs && beacon) {
4935 u16 csa_off = beacon->cntdwn_counter_offsets[i];
5302 struct beacon_data *beacon =
5303 rcu_dereference(sdata->u.ap.beacon);
5305 if (!beacon || !beacon->head)
5316 goto out; /* send buffered bc/mc only after DTIM beacon */