Lines Matching refs:sdata

123 		if (tx->sdata->vif.bss_conf.basic_rates & BIT(i))  in ieee80211_duration()
129 if (tx->sdata->flags & IEEE80211_SDATA_OPERATING_GMODE) in ieee80211_duration()
157 tx->sdata->vif.bss_conf.use_short_preamble); in ieee80211_duration()
166 tx->sdata->vif.bss_conf.use_short_preamble); in ieee80211_duration()
209 if (tx->sdata->vif.type != NL80211_IFTYPE_STATION) in ieee80211_tx_h_dynamic_ps()
212 ifmgd = &tx->sdata->u.mgd; in ieee80211_tx_h_dynamic_ps()
262 test_bit(SDATA_STATE_OFFCHANNEL, &tx->sdata->state) && in ieee80211_tx_h_check_assoc()
278 if (tx->sdata->vif.type == NL80211_IFTYPE_WDS) in ieee80211_tx_h_check_assoc()
281 if (tx->sdata->vif.type == NL80211_IFTYPE_MESH_POINT) in ieee80211_tx_h_check_assoc()
291 tx->sdata->vif.type != NL80211_IFTYPE_ADHOC && in ieee80211_tx_h_check_assoc()
296 tx->sdata->name, hdr->addr1); in ieee80211_tx_h_check_assoc()
304 tx->sdata->vif.type != NL80211_IFTYPE_ADHOC)) { in ieee80211_tx_h_check_assoc()
325 struct ieee80211_sub_if_data *sdata; in purge_old_ps_buffers() local
333 list_for_each_entry_rcu(sdata, &local->interfaces, list) { in purge_old_ps_buffers()
335 if (sdata->vif.type != NL80211_IFTYPE_AP) in purge_old_ps_buffers()
337 ap = &sdata->u.ap; in purge_old_ps_buffers()
379 if (!tx->sdata->bss) in ieee80211_tx_h_multicast_ps_buf()
387 if (!atomic_read(&tx->sdata->bss->num_sta_ps)) in ieee80211_tx_h_multicast_ps_buf()
400 if (skb_queue_len(&tx->sdata->bss->ps_bc_buf) >= AP_MAX_BC_BUFFER) { in ieee80211_tx_h_multicast_ps_buf()
404 tx->sdata->name); in ieee80211_tx_h_multicast_ps_buf()
406 dev_kfree_skb(skb_dequeue(&tx->sdata->bss->ps_bc_buf)); in ieee80211_tx_h_multicast_ps_buf()
410 skb_queue_tail(&tx->sdata->bss->ps_bc_buf, tx->skb); in ieee80211_tx_h_multicast_ps_buf()
465 tx->sdata->name, sta->sta.addr); in ieee80211_tx_h_unicast_ps_buf()
482 info->control.vif = &tx->sdata->vif; in ieee80211_tx_h_unicast_ps_buf()
496 "set -> send frame\n", tx->sdata->name, in ieee80211_tx_h_unicast_ps_buf()
521 if (unlikely(tx->sdata->control_port_protocol == tx->skb->protocol && in ieee80211_tx_h_check_control_port_protocol()
522 tx->sdata->control_port_no_encrypt)) in ieee80211_tx_h_check_control_port_protocol()
542 (key = rcu_dereference(tx->sdata->default_mgmt_key))) in ieee80211_tx_h_select_key()
545 (key = rcu_dereference(tx->sdata->default_multicast_key))) in ieee80211_tx_h_select_key()
548 (key = rcu_dereference(tx->sdata->default_unicast_key))) in ieee80211_tx_h_select_key()
550 else if (tx->sdata->drop_unencrypted && in ieee80211_tx_h_select_key()
551 (tx->skb->protocol != tx->sdata->control_port_protocol) && in ieee80211_tx_h_select_key()
623 txrc.bss_conf = &tx->sdata->vif.bss_conf; in ieee80211_tx_h_rate_ctrl()
626 txrc.rate_idx_mask = tx->sdata->rc_rateidx_mask[tx->channel->band]; in ieee80211_tx_h_rate_ctrl()
631 txrc.bss = (tx->sdata->vif.type == NL80211_IFTYPE_AP || in ieee80211_tx_h_rate_ctrl()
632 tx->sdata->vif.type == NL80211_IFTYPE_ADHOC); in ieee80211_tx_h_rate_ctrl()
645 if (tx->sdata->vif.bss_conf.use_short_preamble && in ieee80211_tx_h_rate_ctrl()
662 tx->sdata->name, hdr->addr1, in ieee80211_tx_h_rate_ctrl()
670 rate_control_get_rate(tx->sdata, tx->sta, &txrc); in ieee80211_tx_h_rate_ctrl()
709 if (!(tx->sdata->vif.bss_conf.basic_rates & BIT(i))) in ieee80211_tx_h_rate_ctrl()
768 if (!rts && tx->sdata->vif.bss_conf.use_cts_prot && in ieee80211_tx_h_rate_ctrl()
809 hdr->seq_ctrl = cpu_to_le16(tx->sdata->sequence_number); in ieee80211_tx_h_sequence()
810 tx->sdata->sequence_number += 0x10; in ieee80211_tx_h_sequence()
1165 info->control.vif = &tx->sdata->vif; in ieee80211_tx_prep_agg()
1179 ieee80211_tx_prepare(struct ieee80211_sub_if_data *sdata, in ieee80211_tx_prepare() argument
1183 struct ieee80211_local *local = sdata->local; in ieee80211_tx_prepare()
1192 tx->sdata = sdata; in ieee80211_tx_prepare()
1224 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { in ieee80211_tx_prepare()
1225 tx->sta = rcu_dereference(sdata->u.vlan.sta); in ieee80211_tx_prepare()
1226 if (!tx->sta && sdata->dev->ieee80211_ptr->use_4addr) in ieee80211_tx_prepare()
1229 tx->sta = sta_info_get_bss(sdata, hdr->addr1); in ieee80211_tx_prepare()
1232 tx->sta = sta_info_get(sdata, hdr->addr1); in ieee80211_tx_prepare()
1296 struct ieee80211_sub_if_data *sdata; in __ieee80211_tx() local
1350 sdata = vif_to_sdata(info->control.vif); in __ieee80211_tx()
1352 switch (sdata->vif.type) { in __ieee80211_tx()
1357 info->control.vif = &container_of(sdata->bss, in __ieee80211_tx()
1442 static bool ieee80211_tx(struct ieee80211_sub_if_data *sdata, in ieee80211_tx() argument
1445 struct ieee80211_local *local = sdata->local; in ieee80211_tx()
1462 res_prepare = ieee80211_tx_prepare(sdata, &tx, skb); in ieee80211_tx()
1524 static void ieee80211_xmit(struct ieee80211_sub_if_data *sdata, in ieee80211_xmit() argument
1527 struct ieee80211_local *local = sdata->local; in ieee80211_xmit()
1536 if (unlikely(sdata->vif.type == NL80211_IFTYPE_MONITOR)) { in ieee80211_xmit()
1572 sdata = tmp_sdata; in ieee80211_xmit()
1594 info->control.vif = &sdata->vif; in ieee80211_xmit()
1596 if (ieee80211_vif_is_mesh(&sdata->vif) && in ieee80211_xmit()
1599 if (mesh_nexthop_lookup(skb, sdata)) { in ieee80211_xmit()
1606 ieee80211_tx(sdata, skb, false); in ieee80211_xmit()
1700 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); in ieee80211_subif_start_xmit() local
1701 struct ieee80211_local *local = sdata->local; in ieee80211_subif_start_xmit()
1726 switch (sdata->vif.type) { in ieee80211_subif_start_xmit()
1729 sta = rcu_dereference(sdata->u.vlan.sta); in ieee80211_subif_start_xmit()
1734 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN); in ieee80211_subif_start_xmit()
1748 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN); in ieee80211_subif_start_xmit()
1755 memcpy(hdr.addr1, sdata->u.wds.remote_addr, ETH_ALEN); in ieee80211_subif_start_xmit()
1756 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN); in ieee80211_subif_start_xmit()
1763 if (!sdata->u.mesh.mshcfg.dot11MeshTTL) { in ieee80211_subif_start_xmit()
1765 sdata->u.mesh.mshstats.dropped_frames_ttl++; in ieee80211_subif_start_xmit()
1770 mppath = mpp_path_lookup(skb->data, sdata); in ieee80211_subif_start_xmit()
1778 if (compare_ether_addr(sdata->vif.addr, in ieee80211_subif_start_xmit()
1784 sdata, NULL, NULL); in ieee80211_subif_start_xmit()
1806 mesh_da, sdata->vif.addr); in ieee80211_subif_start_xmit()
1811 sdata, in ieee80211_subif_start_xmit()
1817 sdata, in ieee80211_subif_start_xmit()
1825 memcpy(hdr.addr1, sdata->u.mgd.bssid, ETH_ALEN); in ieee80211_subif_start_xmit()
1826 if (sdata->u.mgd.use_4addr && in ieee80211_subif_start_xmit()
1827 cpu_to_be16(ethertype) != sdata->control_port_protocol) { in ieee80211_subif_start_xmit()
1830 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN); in ieee80211_subif_start_xmit()
1846 memcpy(hdr.addr3, sdata->u.ibss.bssid, ETH_ALEN); in ieee80211_subif_start_xmit()
1861 sta = sta_info_get(sdata, hdr.addr1); in ieee80211_subif_start_xmit()
1877 if (!ieee80211_vif_is_mesh(&sdata->vif) && in ieee80211_subif_start_xmit()
1880 !(cpu_to_be16(ethertype) == sdata->control_port_protocol && in ieee80211_subif_start_xmit()
1881 compare_ether_addr(sdata->vif.addr, in ieee80211_subif_start_xmit()
2001 ieee80211_xmit(sdata, skb); in ieee80211_subif_start_xmit()
2034 struct ieee80211_sub_if_data *sdata; in ieee80211_tx_pending_skb() local
2039 sdata = vif_to_sdata(info->control.vif); in ieee80211_tx_pending_skb()
2042 result = ieee80211_tx(sdata, skb, true); in ieee80211_tx_pending_skb()
2045 sta = sta_info_get(sdata, hdr->addr1); in ieee80211_tx_pending_skb()
2059 struct ieee80211_sub_if_data *sdata; in ieee80211_tx_pending() local
2096 list_for_each_entry_rcu(sdata, &local->interfaces, list) in ieee80211_tx_pending()
2097 netif_wake_subqueue(sdata->dev, i); in ieee80211_tx_pending()
2177 struct ieee80211_sub_if_data *sdata = NULL; in ieee80211_beacon_get_tim() local
2188 sdata = vif_to_sdata(vif); in ieee80211_beacon_get_tim()
2190 if (!ieee80211_sdata_running(sdata)) in ieee80211_beacon_get_tim()
2198 if (sdata->vif.type == NL80211_IFTYPE_AP) { in ieee80211_beacon_get_tim()
2199 ap = &sdata->u.ap; in ieee80211_beacon_get_tim()
2243 } else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) { in ieee80211_beacon_get_tim()
2244 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_beacon_get_tim()
2258 } else if (ieee80211_vif_is_mesh(&sdata->vif)) { in ieee80211_beacon_get_tim()
2263 if (!sdata->u.mesh.mesh_id_len) in ieee80211_beacon_get_tim()
2269 sdata->u.mesh.vendor_ie_len); in ieee80211_beacon_get_tim()
2280 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); in ieee80211_beacon_get_tim()
2281 memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); in ieee80211_beacon_get_tim()
2283 cpu_to_le16(sdata->vif.bss_conf.beacon_int); in ieee80211_beacon_get_tim()
2290 mesh_mgmt_ies_add(skb, sdata); in ieee80211_beacon_get_tim()
2305 txrc.bss_conf = &sdata->vif.bss_conf; in ieee80211_beacon_get_tim()
2308 txrc.rate_idx_mask = sdata->rc_rateidx_mask[band]; in ieee80211_beacon_get_tim()
2314 rate_control_get_rate(sdata, NULL, &txrc); in ieee80211_beacon_get_tim()
2330 struct ieee80211_sub_if_data *sdata; in ieee80211_pspoll_get() local
2339 sdata = vif_to_sdata(vif); in ieee80211_pspoll_get()
2340 ifmgd = &sdata->u.mgd; in ieee80211_pspoll_get()
2341 local = sdata->local; in ieee80211_pspoll_get()
2346 "pspoll template\n", sdata->name); in ieee80211_pspoll_get()
2371 struct ieee80211_sub_if_data *sdata; in ieee80211_nullfunc_get() local
2379 sdata = vif_to_sdata(vif); in ieee80211_nullfunc_get()
2380 ifmgd = &sdata->u.mgd; in ieee80211_nullfunc_get()
2381 local = sdata->local; in ieee80211_nullfunc_get()
2386 "template\n", sdata->name); in ieee80211_nullfunc_get()
2410 struct ieee80211_sub_if_data *sdata; in ieee80211_probereq_get() local
2417 sdata = vif_to_sdata(vif); in ieee80211_probereq_get()
2418 local = sdata->local; in ieee80211_probereq_get()
2425 "request template\n", sdata->name); in ieee80211_probereq_get()
2494 struct ieee80211_sub_if_data *sdata; in ieee80211_get_buffered_bc() local
2499 sdata = vif_to_sdata(vif); in ieee80211_get_buffered_bc()
2500 bss = &sdata->u.ap; in ieee80211_get_buffered_bc()
2505 if (sdata->vif.type != NL80211_IFTYPE_AP || !beacon || !beacon->head) in ieee80211_get_buffered_bc()
2527 if (!ieee80211_tx_prepare(sdata, &tx, skb)) in ieee80211_get_buffered_bc()
2548 void ieee80211_tx_skb(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb) in ieee80211_tx_skb() argument
2563 ieee80211_xmit(sdata, skb); in ieee80211_tx_skb()