Lines Matching defs:sdata

88 	struct ieee80211_sub_if_data *sdata = sta->sdata;
89 struct ieee80211_local *local = sdata->local;
95 if (sta->sdata->vif.type == NL80211_IFTYPE_AP ||
96 sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
97 ps = &sdata->bss->ps;
98 else if (ieee80211_vif_is_mesh(&sdata->vif))
99 ps = &sdata->u.mesh.ps;
129 if (ieee80211_vif_is_mesh(&sdata->vif))
152 struct ieee80211_sub_if_data *sdata = sta->sdata;
153 struct ieee80211_local *local = sdata->local;
166 struct sta_info *sta_info_get(struct ieee80211_sub_if_data *sdata,
169 struct ieee80211_local *local = sdata->local;
175 if (sta->sdata == sdata) {
191 struct sta_info *sta_info_get_bss(struct ieee80211_sub_if_data *sdata,
194 struct ieee80211_local *local = sdata->local;
200 if (sta->sdata == sdata ||
201 (sta->sdata->bss && sta->sdata->bss == sdata->bss)) {
220 if (ether_addr_equal(vif_addr, sta->sdata->vif.addr))
227 struct sta_info *sta_info_get_by_idx(struct ieee80211_sub_if_data *sdata,
230 struct ieee80211_local *local = sdata->local;
236 if (sdata != sta->sdata)
282 sta_dbg(sta->sdata, "Destroyed STA %pM\n", sta->sta.addr);
336 struct sta_info *sta_info_alloc(struct ieee80211_sub_if_data *sdata,
339 struct ieee80211_local *local = sdata->local;
361 if (ieee80211_vif_is_mesh(&sdata->vif)) {
367 if (ieee80211_vif_is_mesh(&sdata->vif) &&
368 !sdata->u.mesh.user_mpm)
390 sta->sdata = sdata;
421 ieee80211_txq_init(sdata, sta, txq, i);
484 if (sdata->vif.type == NL80211_IFTYPE_AP ||
485 sdata->vif.type == NL80211_IFTYPE_AP_VLAN) {
489 sband = ieee80211_get_sband(sdata);
521 sta_dbg(sdata, "Allocated STA %pM\n", sta->sta.addr);
539 struct ieee80211_sub_if_data *sdata = sta->sdata;
546 if (unlikely(!ieee80211_sdata_running(sdata)))
549 if (WARN_ON(ether_addr_equal(sta->sta.addr, sdata->vif.addr) ||
558 lockdep_assert_held(&sdata->local->sta_mtx);
559 if (ieee80211_hw_check(&sdata->local->hw, NEEDS_UNIQUE_STA_ADDR) &&
560 ieee80211_find_sta_by_ifaddr(&sdata->local->hw, sta->addr, NULL)) {
570 struct ieee80211_sub_if_data *sdata,
577 err = drv_sta_state(local, sdata, sta, state, state + 1);
592 if (sdata->vif.type == NL80211_IFTYPE_ADHOC) {
593 sdata_info(sdata,
601 WARN_ON(drv_sta_state(local, sdata, sta, state, state - 1));
607 ieee80211_recalc_p2p_go_ps_allowed(struct ieee80211_sub_if_data *sdata)
609 struct ieee80211_local *local = sdata->local;
610 bool allow_p2p_go_ps = sdata->vif.p2p;
615 if (sdata != sta->sdata ||
625 if (allow_p2p_go_ps != sdata->vif.bss_conf.allow_p2p_go_ps) {
626 sdata->vif.bss_conf.allow_p2p_go_ps = allow_p2p_go_ps;
627 ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_P2P_PS);
639 struct ieee80211_sub_if_data *sdata = sta->sdata;
646 if (sta_info_get_bss(sdata, sta->sta.addr)) {
672 err = sta_info_insert_drv_state(local, sdata, sta);
679 ieee80211_recalc_min_chandef(sta->sdata);
681 ieee80211_recalc_p2p_go_ps_allowed(sta->sdata);
691 cfg80211_new_sta(sdata->dev, sta->sta.addr, sinfo, GFP_KERNEL);
694 sta_dbg(sdata, "Inserted STA %pM\n", sta->sta.addr);
700 if (ieee80211_vif_is_mesh(&sdata->vif))
701 mesh_accept_plinks_update(sdata);
803 if (sta->sdata->vif.type == NL80211_IFTYPE_AP ||
804 sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN) {
805 if (WARN_ON_ONCE(!sta->sdata->bss))
808 ps = &sta->sdata->bss->ps;
810 } else if (ieee80211_vif_is_mesh(&sta->sdata->vif)) {
811 ps = &sta->sdata->u.mesh.ps;
893 sta->sdata->vif.bss_conf.beacon_int *
958 ps_dbg(sta->sdata, "Buffered frame expired (STA %pM)\n",
986 if (!sta->sdata->bss &&
987 !ieee80211_vif_is_mesh(&sta->sdata->vif))
1000 struct ieee80211_sub_if_data *sdata;
1009 sdata = sta->sdata;
1038 drv_tdls_cancel_channel_switch(local, sdata, &sta->sta);
1046 drv_sta_pre_rcu_remove(local, sta->sdata, sta);
1048 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN &&
1049 rcu_access_pointer(sdata->u.vlan.sta) == sta)
1050 RCU_INIT_POINTER(sdata->u.vlan.sta, NULL);
1058 struct ieee80211_sub_if_data *sdata = sta->sdata;
1095 ret = drv_sta_state(local, sdata, sta, IEEE80211_STA_NONE,
1100 sta_dbg(sdata, "Removed STA %pM\n", sta->sta.addr);
1105 cfg80211_del_sta_sinfo(sdata->dev, sta->sta.addr, sinfo, GFP_KERNEL);
1129 int sta_info_destroy_addr(struct ieee80211_sub_if_data *sdata, const u8 *addr)
1134 mutex_lock(&sdata->local->sta_mtx);
1135 sta = sta_info_get(sdata, addr);
1137 mutex_unlock(&sdata->local->sta_mtx);
1142 int sta_info_destroy_addr_bss(struct ieee80211_sub_if_data *sdata,
1148 mutex_lock(&sdata->local->sta_mtx);
1149 sta = sta_info_get_bss(sdata, addr);
1151 mutex_unlock(&sdata->local->sta_mtx);
1201 int __sta_info_flush(struct ieee80211_sub_if_data *sdata, bool vlans)
1203 struct ieee80211_local *local = sdata->local;
1210 WARN_ON(vlans && sdata->vif.type != NL80211_IFTYPE_AP);
1211 WARN_ON(vlans && !sdata->bss);
1215 if (sdata == sta->sdata ||
1216 (vlans && sdata->bss == sta->sdata->bss)) {
1233 void ieee80211_sta_expire(struct ieee80211_sub_if_data *sdata,
1236 struct ieee80211_local *local = sdata->local;
1244 if (sdata != sta->sdata)
1248 sta_dbg(sta->sdata, "expiring inactive STA %pM\n",
1251 if (ieee80211_vif_is_mesh(&sdata->vif) &&
1253 atomic_dec(&sdata->u.mesh.ps.num_sta_ps);
1276 !ether_addr_equal(sta->sdata->vif.addr, localaddr))
1309 struct ieee80211_sub_if_data *sdata = sta->sdata;
1310 struct ieee80211_local *local = sdata->local;
1316 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
1317 sdata = container_of(sdata->bss, struct ieee80211_sub_if_data,
1320 if (sdata->vif.type == NL80211_IFTYPE_AP)
1321 ps = &sdata->bss->ps;
1322 else if (ieee80211_vif_is_mesh(&sdata->vif))
1323 ps = &sdata->u.mesh.ps;
1334 drv_sta_notify(local, sdata, STA_NOTIFY_AWAKE, &sta->sta);
1383 ps_dbg(sdata,
1394 struct ieee80211_sub_if_data *sdata = sta->sdata;
1395 struct ieee80211_local *local = sdata->local;
1425 memcpy(nullfunc->addr2, sdata->vif.addr, ETH_ALEN);
1426 memcpy(nullfunc->addr3, sdata->vif.addr, ETH_ALEN);
1461 skb->dev = sdata->dev;
1464 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf);
1472 ieee80211_xmit(sdata, sta, skb);
1526 struct ieee80211_sub_if_data *sdata = sta->sdata;
1527 struct ieee80211_local *local = sdata->local;
1581 struct ieee80211_sub_if_data *sdata = sta->sdata;
1582 struct ieee80211_local *local = sdata->local;
1902 struct ieee80211_local *local = sta->sdata->local;
1989 sta_dbg(sta->sdata, "moving STA %pM to state %d\n",
1997 int err = drv_sta_state(sta->local, sta->sdata, sta,
2015 ieee80211_recalc_min_chandef(sta->sdata);
2017 ieee80211_recalc_p2p_go_ps_allowed(sta->sdata);
2024 ieee80211_recalc_min_chandef(sta->sdata);
2026 ieee80211_recalc_p2p_go_ps_allowed(sta->sdata);
2028 ieee80211_vif_dec_num_mcast(sta->sdata);
2036 ieee80211_vif_inc_num_mcast(sta->sdata);
2041 if (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN ||
2042 sta->sdata->vif.type == NL80211_IFTYPE_AP)
2043 cfg80211_send_layer2_update(sta->sdata->dev,
2257 struct ieee80211_sub_if_data *sdata = sta->sdata;
2258 struct ieee80211_local *local = sdata->local;
2265 sinfo->generation = sdata->local->sta_generation;
2271 if (sdata->vif.type == NL80211_IFTYPE_STATION)
2272 sinfo->rx_beacon = sdata->u.mgd.count_beacon_signal;
2274 drv_sta_statistics(local, sdata, &sta->sta, sinfo);
2282 if (sdata->vif.type == NL80211_IFTYPE_STATION) {
2283 sinfo->beacon_loss_count = sdata->u.mgd.beacon_loss_count;
2373 if (sdata->vif.type == NL80211_IFTYPE_STATION &&
2374 !(sdata->vif.driver_flags & IEEE80211_VIF_BEACON_FILTER)) {
2377 sinfo->rx_beacon_signal_avg = ieee80211_ave_rssi(&sdata->vif);
2432 if (ieee80211_vif_is_mesh(&sdata->vif)) {
2459 if (sdata->vif.bss_conf.use_cts_prot)
2461 if (sdata->vif.bss_conf.use_short_preamble)
2463 if (sdata->vif.bss_conf.use_short_slot)
2465 sinfo->bss_param.dtim_period = sdata->vif.bss_conf.dtim_period;
2466 sinfo->bss_param.beacon_interval = sdata->vif.bss_conf.beacon_int;
2513 if (ieee80211_vif_is_mesh(&sdata->vif)) {
2522 struct ieee80211_sub_if_data *sdata = sta->sdata;
2523 struct ieee80211_local *local = sdata->local;
2551 if (!sta->sdata->local->ops->wake_tx_queue)