Lines Matching defs:sdata
25 static void ieee80211_offchannel_ps_enable(struct ieee80211_sub_if_data *sdata)
27 struct ieee80211_local *local = sdata->local;
28 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
57 ieee80211_send_nullfunc(local, sdata, true);
61 static void ieee80211_offchannel_ps_disable(struct ieee80211_sub_if_data *sdata)
63 struct ieee80211_local *local = sdata->local;
66 ieee80211_send_nullfunc(local, sdata, false);
74 ieee80211_send_nullfunc(local, sdata, false);
79 ieee80211_sta_reset_beacon_monitor(sdata);
80 ieee80211_sta_reset_conn_monitor(sdata);
85 struct ieee80211_sub_if_data *sdata;
105 list_for_each_entry(sdata, &local->interfaces, list) {
106 if (!ieee80211_sdata_running(sdata))
109 if (sdata->vif.type == NL80211_IFTYPE_P2P_DEVICE ||
110 sdata->vif.type == NL80211_IFTYPE_NAN)
113 if (sdata->vif.type != NL80211_IFTYPE_MONITOR)
114 set_bit(SDATA_STATE_OFFCHANNEL, &sdata->state);
117 if (sdata->vif.bss_conf.enable_beacon) {
119 &sdata->state);
120 sdata->vif.bss_conf.enable_beacon = false;
122 sdata, &sdata->deflink,
126 if (sdata->vif.type == NL80211_IFTYPE_STATION &&
127 sdata->u.mgd.associated)
128 ieee80211_offchannel_ps_enable(sdata);
135 struct ieee80211_sub_if_data *sdata;
141 list_for_each_entry(sdata, &local->interfaces, list) {
142 if (sdata->vif.type == NL80211_IFTYPE_P2P_DEVICE)
145 if (sdata->vif.type != NL80211_IFTYPE_MONITOR)
146 clear_bit(SDATA_STATE_OFFCHANNEL, &sdata->state);
148 if (!ieee80211_sdata_running(sdata))
152 if (sdata->vif.type == NL80211_IFTYPE_STATION &&
153 sdata->u.mgd.associated)
154 ieee80211_offchannel_ps_disable(sdata);
157 &sdata->state)) {
158 sdata->vif.bss_conf.enable_beacon = true;
160 sdata, &sdata->deflink,
175 cfg80211_mgmt_tx_status(&roc->sdata->wdev, roc->mgmt_tx_cookie,
178 ieee80211_free_txskb(&roc->sdata->local->hw, roc->frame);
182 cfg80211_remain_on_channel_expired(&roc->sdata->wdev,
186 cfg80211_tx_mgmt_expired(&roc->sdata->wdev,
248 ieee80211_tx_skb_tid_band(roc->sdata, roc->frame, 7,
253 cfg80211_ready_on_channel(&roc->sdata->wdev, roc->cookie,
316 if (tmp->sdata != roc->sdata || tmp->chan != roc->chan)
324 int ret = drv_remain_on_channel(local, roc->sdata, roc->chan,
335 if (tmp->sdata != roc->sdata ||
347 if (tmp->sdata != roc->sdata || tmp->chan != roc->chan)
376 if (tmp->sdata != roc->sdata || tmp->chan != roc->chan)
530 struct ieee80211_sub_if_data *sdata,
570 roc->sdata = sdata;
595 ret = drv_remain_on_channel(local, sdata, channel,
611 if (tmp->chan != channel || tmp->sdata != sdata)
676 struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev);
677 struct ieee80211_local *local = sdata->local;
681 ret = ieee80211_start_roc_work(local, sdata, chan,
722 ret = drv_cancel_remain_on_channel(local, roc->sdata);
760 struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev);
761 struct ieee80211_local *local = sdata->local;
769 struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev);
770 struct ieee80211_local *local = sdata->local;
790 switch (sdata->vif.type) {
792 if (!sdata->vif.cfg.ibss_joined)
797 if (ieee80211_vif_is_mesh(&sdata->vif) &&
798 !sdata->u.mesh.mesh_id_len)
805 if (sdata->vif.type != NL80211_IFTYPE_ADHOC &&
806 !ieee80211_vif_is_mesh(&sdata->vif) &&
807 !sdata->bss->active)
811 sta = sta_info_get_bss(sdata, mgmt->da);
836 sdata_lock(sdata);
837 if (!sdata->u.mgd.associated ||
840 memcmp(sdata->vif.cfg.ap_addr, mgmt->bssid, ETH_ALEN)))
842 sdata_unlock(sdata);
869 for (i = 0; i < ARRAY_SIZE(sdata->vif.link_conf); i++) {
872 conf = rcu_dereference(sdata->vif.link_conf[i]);
881 ether_addr_equal(sdata->vif.addr, mgmt->sa)) {
917 if (sdata->vif.bss_conf.csa_active &&
918 (sdata->vif.type == NL80211_IFTYPE_AP ||
919 sdata->vif.type == NL80211_IFTYPE_MESH_POINT ||
920 sdata->vif.type == NL80211_IFTYPE_ADHOC) &&
927 if (sdata->vif.type == NL80211_IFTYPE_AP)
928 beacon = rcu_dereference(sdata->deflink.u.ap.beacon);
929 else if (sdata->vif.type == NL80211_IFTYPE_ADHOC)
930 beacon = rcu_dereference(sdata->u.ibss.presp);
931 else if (ieee80211_vif_is_mesh(&sdata->vif))
932 beacon = rcu_dereference(sdata->u.mesh.beacon);
944 skb->dev = sdata->dev;
965 ieee80211_tx_skb_tid(sdata, skb, 7, link_id);
977 ret = ieee80211_start_roc_work(local, sdata, params->chan,
1004 struct ieee80211_sub_if_data *sdata)
1011 if (sdata && roc->sdata != sdata)
1017 drv_cancel_remain_on_channel(local, roc->sdata);