Lines Matching defs:sdata
226 static void ieee80211_handle_mu_mimo_mon(struct ieee80211_sub_if_data *sdata,
236 if (!sdata)
245 if (!is_valid_ether_addr(sdata->u.mntr.mu_follow_addr))
259 if (!ether_addr_equal(action.hdr.addr1, sdata->u.mntr.mu_follow_addr))
266 skb_queue_tail(&sdata->skb_queue, skb);
267 ieee80211_queue_work(&sdata->local->hw, &sdata->work);
752 struct ieee80211_sub_if_data *sdata;
823 list_for_each_entry_rcu(sdata, &local->mon_list, u.mntr.list) {
824 bool last_monitor = list_is_last(&sdata->u.mntr.list,
844 skb->dev = sdata->dev;
1037 char *dev_addr = rx->sdata->vif.addr;
1111 static void ieee80211_release_reorder_frame(struct ieee80211_sub_if_data *sdata,
1143 static void ieee80211_release_reorder_frames(struct ieee80211_sub_if_data *sdata,
1154 ieee80211_release_reorder_frame(sdata, tid_agg_rx, index,
1170 static void ieee80211_sta_reorder_release(struct ieee80211_sub_if_data *sdata,
1203 ht_dbg_ratelimited(sdata,
1205 ieee80211_release_reorder_frame(sdata, tid_agg_rx, j,
1217 ieee80211_release_reorder_frame(sdata, tid_agg_rx, index,
1247 static bool ieee80211_sta_manage_reorder_buf(struct ieee80211_sub_if_data *sdata,
1301 ieee80211_release_reorder_frames(sdata, tid_agg_rx,
1335 ieee80211_sta_reorder_release(sdata, tid_agg_rx, frames);
1379 ieee80211_send_delba(rx->sdata, rx->sta->sta.addr, tid,
1402 skb_queue_tail(&rx->sdata->skb_queue, skb);
1403 ieee80211_queue_work(&local->hw, &rx->sdata->work);
1414 if (ieee80211_sta_manage_reorder_buf(rx->sdata, tid_agg_rx, skb,
1473 if (ieee80211_vif_is_mesh(&rx->sdata->vif))
1478 rx->sdata->vif.type != NL80211_IFTYPE_ADHOC &&
1479 rx->sdata->vif.type != NL80211_IFTYPE_WDS &&
1480 rx->sdata->vif.type != NL80211_IFTYPE_OCB &&
1487 if (rx->sta && rx->sdata->vif.type == NL80211_IFTYPE_STATION &&
1498 if (ethertype == rx->sdata->control_port_protocol)
1502 if (rx->sdata->vif.type == NL80211_IFTYPE_AP &&
1503 cfg80211_rx_spurious_frame(rx->sdata->dev,
1543 ieee80211_send_pspoll(local, rx->sdata);
1550 struct ieee80211_sub_if_data *sdata = sta->sdata;
1551 struct ieee80211_local *local = sdata->local;
1555 if (sta->sdata->vif.type == NL80211_IFTYPE_AP ||
1556 sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
1557 ps = &sdata->bss->ps;
1564 drv_sta_notify(local, sdata, STA_NOTIFY_SLEEP, &sta->sta);
1565 ps_dbg(sdata, "STA %pM aid %d enters power save mode\n",
1591 ps_dbg(sta->sdata, "STA %pM aid %d exits power save mode\n",
1602 ps_dbg(sta->sdata, "STA %pM aid %d driver-ps-blocked\n",
1678 struct ieee80211_sub_if_data *sdata = rx->sdata;
1685 if (sdata->vif.type != NL80211_IFTYPE_AP &&
1686 sdata->vif.type != NL80211_IFTYPE_AP_VLAN)
1694 if (ieee80211_hw_check(&sdata->local->hw, AP_LINK_PS))
1746 if (rx->sdata->vif.type == NL80211_IFTYPE_ADHOC) {
1749 if (ether_addr_equal(bssid, rx->sdata->u.ibss.bssid) &&
1757 } else if (rx->sdata->vif.type == NL80211_IFTYPE_OCB) {
1809 (rx->sdata->vif.type == NL80211_IFTYPE_AP ||
1810 rx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN)) {
1821 if (ieee80211_vif_is_mesh(&rx->sdata->vif))
1838 (rx->sdata->vif.type == NL80211_IFTYPE_AP ||
1839 (rx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN &&
1840 !rx->sdata->u.vlan.sta))) {
1843 rx->sdata->dev, sta->sta.addr,
1863 struct ieee80211_sub_if_data *sdata = rx->sdata;
1885 key = rcu_dereference(sdata->keys[idx]);
1889 key = rcu_dereference(sdata->keys[idx2]);
1979 if (rx->sdata->dev)
1980 cfg80211_rx_unprot_mlme_mgmt(rx->sdata->dev,
2006 rx->key = rcu_dereference(rx->sdata->keys[mmie_keyidx]);
2015 struct ieee80211_sub_if_data *sdata = rx->sdata;
2022 key = rcu_dereference(rx->sdata->default_mgmt_key);
2033 key = rcu_dereference(sdata->keys[i]);
2067 rx->key = rcu_dereference(rx->sdata->keys[keyidx]);
2131 rx->sdata->dev))
2132 cfg80211_rx_unprot_mlme_mgmt(rx->sdata->dev,
2237 struct ieee80211_fragment_cache *cache = &rx->sdata->frags;
2416 if (unlikely(rx->sta && ieee80211_vif_is_mesh(&rx->sdata->vif) &&
2423 if (!ether_addr_equal(hdr->addr1, rx->sdata->vif.addr))
2435 ethertype == rx->sdata->control_port_protocol)
2468 cfg80211_rx_unprot_mlme_mgmt(rx->sdata->dev,
2478 cfg80211_rx_unprot_mlme_mgmt(rx->sdata->dev,
2485 cfg80211_rx_unprot_mlme_mgmt(rx->sdata->dev,
2505 struct ieee80211_sub_if_data *sdata = rx->sdata;
2513 sdata->vif.type == NL80211_IFTYPE_AP_VLAN && !sdata->u.vlan.sta)
2516 if (sdata->vif.type == NL80211_IFTYPE_STATION &&
2517 !!sdata->u.mgd.use_4addr != !!ieee80211_has_a4(hdr->frame_control)) {
2519 if (!sdata->u.mgd.use_4addr)
2521 else if (!ether_addr_equal(hdr->addr1, sdata->vif.addr))
2526 sdata->vif.type == NL80211_IFTYPE_AP_VLAN && sdata->u.vlan.sta)
2529 ret = ieee80211_data_to_8023(rx->skb, sdata->vif.addr, sdata->vif.type);
2534 if (ehdr->h_proto == rx->sdata->control_port_protocol)
2556 if (unlikely(ehdr->h_proto == rx->sdata->control_port_protocol))
2557 return ether_addr_equal(ehdr->h_dest, rx->sdata->vif.addr) ||
2570 struct ieee80211_sub_if_data *sdata = rx->sdata;
2571 struct net_device *dev = sdata->dev;
2573 if (unlikely((skb->protocol == sdata->control_port_protocol ||
2575 !sdata->control_port_no_preauth)) &&
2576 sdata->control_port_over_nl80211)) {
2601 if (unlikely(skb->protocol == sdata->control_port_protocol &&
2602 !ether_addr_equal(ehdr->h_dest, sdata->vif.addr)))
2603 ether_addr_copy(ehdr->h_dest, sdata->vif.addr);
2619 struct ieee80211_sub_if_data *sdata = rx->sdata;
2620 struct net_device *dev = sdata->dev;
2641 if ((sdata->vif.type == NL80211_IFTYPE_AP ||
2642 sdata->vif.type == NL80211_IFTYPE_AP_VLAN) &&
2643 !(sdata->flags & IEEE80211_SDATA_DONT_BRIDGE_PACKETS) &&
2644 ehdr->h_proto != rx->sdata->control_port_protocol &&
2645 (sdata->vif.type != NL80211_IFTYPE_AP_VLAN || !sdata->u.vlan.sta)) {
2647 ieee80211_vif_get_num_mcast_if(sdata) != 0) {
2658 dsta = sta_info_get(sdata, ehdr->h_dest);
2720 struct net_device *dev = rx->sdata->dev;
2731 } else switch (rx->sdata->vif.type) {
2752 rx->sdata->vif.addr,
2753 rx->sdata->vif.type,
2758 rx->sdata->vif.type,
2794 switch (rx->sdata->vif.type) {
2796 if (!rx->sdata->u.vlan.sta)
2800 if (!rx->sdata->u.mgd.use_4addr)
2840 struct ieee80211_sub_if_data *sdata = rx->sdata;
2841 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
2869 mesh_rmc_check(rx->sdata, hdr->addr3, mesh_hdr))
2896 mppath = mpp_path_lookup(sdata, proxied_addr);
2898 mpp_path_add(sdata, proxied_addr, mpp_addr);
2911 ether_addr_equal(sdata->vif.addr, hdr->addr3))
2915 q = sdata->vif.hw_queue[ac];
2932 if (sdata->crypto_tx_tailroom_needed_cnt)
2936 sdata->encrypt_headroom,
2946 info->control.vif = &rx->sdata->vif;
2950 memcpy(fwd_hdr->addr2, sdata->vif.addr, ETH_ALEN);
2952 ieee80211_mps_set_frame_flags(sdata, NULL, fwd_hdr);
2953 } else if (!mesh_nexthop_lookup(sdata, fwd_skb)) {
2958 mesh_path_error_tx(sdata, ifmsh->mshcfg.element_ttl,
2979 struct ieee80211_sub_if_data *sdata = rx->sdata;
2981 struct net_device *dev = sdata->dev;
2998 sdata->vif.type == NL80211_IFTYPE_AP) {
3002 rx->sdata->dev, rx->sta->sta.addr, GFP_ATOMIC);
3033 if (rx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN &&
3034 unlikely(port_control) && sdata->bss) {
3035 sdata = container_of(sdata->bss, struct ieee80211_sub_if_data,
3037 dev = sdata->dev;
3038 rx->sdata = sdata;
3048 !test_bit(SDATA_STATE_OFFCHANNEL, &sdata->state)))
3088 ieee80211_send_delba(rx->sdata, rx->sta->sta.addr, tid,
3108 ieee80211_release_reorder_frames(rx->sdata, tid_agg_rx,
3112 drv_event_callback(rx->local, rx->sdata, &event);
3126 static void ieee80211_process_sa_query_req(struct ieee80211_sub_if_data *sdata,
3130 struct ieee80211_local *local = sdata->local;
3134 if (!ether_addr_equal(mgmt->da, sdata->vif.addr)) {
3139 if (!ether_addr_equal(mgmt->sa, sdata->u.mgd.bssid) ||
3140 !ether_addr_equal(mgmt->bssid, sdata->u.mgd.bssid)) {
3157 memcpy(resp->sa, sdata->vif.addr, ETH_ALEN);
3158 memcpy(resp->bssid, sdata->u.mgd.bssid, ETH_ALEN);
3168 ieee80211_tx_skb(sdata, skb);
3191 if (rx->sdata->vif.type == NL80211_IFTYPE_AP &&
3217 struct ieee80211_sub_if_data *sdata = rx->sdata;
3240 if (sdata->vif.type != NL80211_IFTYPE_STATION &&
3241 sdata->vif.type != NL80211_IFTYPE_MESH_POINT &&
3242 sdata->vif.type != NL80211_IFTYPE_AP_VLAN &&
3243 sdata->vif.type != NL80211_IFTYPE_AP &&
3244 sdata->vif.type != NL80211_IFTYPE_ADHOC)
3257 if (sdata->vif.type != NL80211_IFTYPE_AP &&
3258 sdata->vif.type != NL80211_IFTYPE_AP_VLAN)
3288 cfg80211_sta_opmode_change_notify(sdata->dev,
3325 cfg80211_sta_opmode_change_notify(sdata->dev,
3339 if (sdata->vif.type != NL80211_IFTYPE_STATION)
3343 if (!ether_addr_equal(mgmt->bssid, sdata->u.mgd.bssid))
3353 if (sdata->vif.type != NL80211_IFTYPE_STATION &&
3354 sdata->vif.type != NL80211_IFTYPE_MESH_POINT &&
3355 sdata->vif.type != NL80211_IFTYPE_AP_VLAN &&
3356 sdata->vif.type != NL80211_IFTYPE_AP &&
3357 sdata->vif.type != NL80211_IFTYPE_ADHOC)
3381 if (sdata->vif.type != NL80211_IFTYPE_STATION &&
3382 sdata->vif.type != NL80211_IFTYPE_MESH_POINT &&
3383 sdata->vif.type != NL80211_IFTYPE_AP_VLAN &&
3384 sdata->vif.type != NL80211_IFTYPE_AP &&
3385 sdata->vif.type != NL80211_IFTYPE_ADHOC)
3427 if (sdata->vif.type != NL80211_IFTYPE_STATION)
3430 ieee80211_process_measurement_req(sdata, mgmt, len);
3438 if (sdata->vif.type != NL80211_IFTYPE_STATION &&
3439 sdata->vif.type != NL80211_IFTYPE_ADHOC &&
3440 sdata->vif.type != NL80211_IFTYPE_MESH_POINT)
3443 if (sdata->vif.type == NL80211_IFTYPE_STATION)
3444 bssid = sdata->u.mgd.bssid;
3445 else if (sdata->vif.type == NL80211_IFTYPE_ADHOC)
3446 bssid = sdata->u.ibss.bssid;
3447 else if (sdata->vif.type == NL80211_IFTYPE_MESH_POINT)
3468 if (!ieee80211_vif_is_mesh(&sdata->vif))
3470 if (sdata->u.mesh.user_mpm)
3476 if (!ieee80211_vif_is_mesh(&sdata->vif))
3486 if (!ieee80211_vif_is_mesh(&sdata->vif))
3489 !mesh_path_sel_is_hwmp(sdata))
3508 skb_queue_tail(&sdata->skb_queue, rx->skb);
3509 ieee80211_queue_work(&local->hw, &sdata->work);
3536 if (cfg80211_rx_mgmt_khz(&rx->sdata->wdev,
3551 struct ieee80211_sub_if_data *sdata = rx->sdata;
3566 if (sdata->vif.type != NL80211_IFTYPE_STATION)
3568 ieee80211_process_sa_query_req(sdata, mgmt, len);
3589 struct ieee80211_sub_if_data *sdata = rx->sdata;
3606 (sdata->vif.type == NL80211_IFTYPE_AP ||
3607 sdata->vif.type == NL80211_IFTYPE_AP_VLAN))
3624 memcpy(nmgmt->sa, rx->sdata->vif.addr, ETH_ALEN);
3628 if (rx->sdata->vif.type == NL80211_IFTYPE_P2P_DEVICE) {
3639 __ieee80211_tx_skb_tid_band(rx->sdata, nskb, 7,
3649 struct ieee80211_sub_if_data *sdata = rx->sdata;
3655 if (sdata->vif.type != NL80211_IFTYPE_STATION)
3659 skb_queue_tail(&sdata->skb_queue, rx->skb);
3660 ieee80211_queue_work(&rx->local->hw, &sdata->work);
3670 struct ieee80211_sub_if_data *sdata = rx->sdata;
3676 if (!ieee80211_vif_is_mesh(&sdata->vif) &&
3677 sdata->vif.type != NL80211_IFTYPE_ADHOC &&
3678 sdata->vif.type != NL80211_IFTYPE_OCB &&
3679 sdata->vif.type != NL80211_IFTYPE_STATION)
3694 if (sdata->vif.type != NL80211_IFTYPE_STATION &&
3695 sdata->vif.type != NL80211_IFTYPE_ADHOC)
3706 if (sdata->vif.type != NL80211_IFTYPE_STATION)
3711 if (sdata->vif.type != NL80211_IFTYPE_ADHOC &&
3712 sdata->vif.type != NL80211_IFTYPE_MESH_POINT)
3720 skb_queue_tail(&sdata->skb_queue, rx->skb);
3721 ieee80211_queue_work(&rx->local->hw, &sdata->work);
3731 struct ieee80211_sub_if_data *sdata;
3768 list_for_each_entry_rcu(sdata, &local->interfaces, list) {
3769 if (!ieee80211_sdata_running(sdata))
3772 if (sdata->vif.type != NL80211_IFTYPE_MONITOR ||
3773 !(sdata->u.mntr.flags & MONITOR_FLAG_COOK_FRAMES))
3784 prev_dev = sdata->dev;
3785 ieee80211_rx_stats(sdata->dev, skb->len);
3803 I802_DEBUG_INC(rx->sdata->local->rx_handlers_drop);
3822 I802_DEBUG_INC(rx->sdata->local->rx_handlers_drop);
3828 I802_DEBUG_INC(rx->sdata->local->rx_handlers_queued);
3870 if (ieee80211_vif_is_mesh(&rx->sdata->vif))
3935 .sdata = sta->sdata,
3950 ieee80211_sta_reorder_release(sta->sdata, tid_agg_rx, &frames);
3959 drv_event_callback(rx.local, rx.sdata, &event);
3987 rx.sdata = sta->sdata;
4003 ieee80211_release_reorder_frames(sta->sdata, tid_agg_rx,
4008 ieee80211_release_reorder_frames(sta->sdata, tid_agg_rx, ssn,
4032 ieee80211_sta_reorder_release(sta->sdata, tid_agg_rx, &frames);
4048 struct ieee80211_sub_if_data *sdata = rx->sdata;
4052 u8 *bssid = ieee80211_get_bssid(hdr, skb->len, sdata->vif.type);
4056 switch (sdata->vif.type) {
4058 if (!bssid && !sdata->u.mgd.use_4addr)
4064 return ether_addr_equal(sdata->vif.addr, hdr->addr1);
4068 if (ether_addr_equal(sdata->vif.addr, hdr->addr2) ||
4069 ether_addr_equal(sdata->u.ibss.bssid, hdr->addr2) ||
4074 if (!ieee80211_bssid_match(bssid, sdata->u.ibss.bssid))
4077 !ether_addr_equal(sdata->vif.addr, hdr->addr1))
4085 ieee80211_ibss_rx_no_sta(sdata, bssid, hdr->addr2,
4097 !ether_addr_equal(sdata->dev->dev_addr, hdr->addr1))
4105 ieee80211_ocb_rx_no_sta(sdata, bssid, hdr->addr2,
4110 if (ether_addr_equal(sdata->vif.addr, hdr->addr2))
4114 return ether_addr_equal(sdata->vif.addr, hdr->addr1);
4118 return ether_addr_equal(sdata->vif.addr, hdr->addr1);
4120 if (!ieee80211_bssid_match(bssid, sdata->vif.addr)) {
4128 !ether_addr_equal(sdata->vif.addr, hdr->addr1))
4170 return ether_addr_equal(sdata->u.wds.remote_addr, hdr->addr2);
4189 struct ieee80211_sub_if_data *sdata = sta->sdata;
4190 struct ieee80211_local *local = sdata->local;
4193 .dev = sdata->dev,
4194 .vif_type = sdata->vif.type,
4195 .control_port_protocol = sdata->control_port_protocol,
4205 ether_addr_copy(fastrx.vif_addr, sdata->vif.addr);
4214 switch (sdata->vif.type) {
4227 if (sdata->u.mgd.use_4addr && !sta->sta.tdls) {
4234 if (!sdata->u.mgd.powersave)
4256 !(sdata->flags & IEEE80211_SDATA_DONT_BRIDGE_PACKETS) &&
4257 (sdata->vif.type != NL80211_IFTYPE_AP_VLAN ||
4258 !sdata->u.vlan.sta);
4260 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN &&
4261 sdata->u.vlan.sta) {
4279 key = rcu_dereference(sdata->default_unicast_key);
4332 void __ieee80211_check_fast_rx_iface(struct ieee80211_sub_if_data *sdata)
4334 struct ieee80211_local *local = sdata->local;
4340 if (sdata != sta->sdata &&
4341 (!sta->sdata->bss || sta->sdata->bss != sdata->bss))
4347 void ieee80211_check_fast_rx_iface(struct ieee80211_sub_if_data *sdata)
4349 struct ieee80211_local *local = sdata->local;
4352 __ieee80211_check_fast_rx_iface(sdata);
4522 sta_info_get(rx->sdata, addrs.da)) {
4569 struct ieee80211_sub_if_data *sdata = rx->sdata;
4597 sdata->name);
4618 struct ieee80211_sub_if_data *sdata;
4664 rx.sdata = rx.sta->sdata;
4679 rx.sdata = prev_sta->sdata;
4687 rx.sdata = prev_sta->sdata;
4697 list_for_each_entry_rcu(sdata, &local->interfaces, list) {
4698 if (!ieee80211_sdata_running(sdata))
4701 if (sdata->vif.type == NL80211_IFTYPE_MONITOR ||
4702 sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
4712 prev = sdata;
4717 rx.sdata = prev;
4720 prev = sdata;
4725 rx.sdata = prev;