mac80211: provide SSID in IBSS mode
Some drivers need SSID in AP and IBSS mode. AP SSID is provided through BSS_CHANGED_SSID notification. There was no easy way to do the same for IBSS. In IBSS mode SSID is known but was not stored in BSS configuration. Extend the AP-mode functionality to also work in IBSS mode. Signed-off-by: Marek Puzyniak <marek.puzyniak@tieto.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:

committed by
Johannes Berg

parent
a21a4d3e8a
commit
0ca54f6c5f
@@ -209,6 +209,8 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
|
||||
sdata->vif.bss_conf.enable_beacon = true;
|
||||
sdata->vif.bss_conf.beacon_int = beacon_int;
|
||||
sdata->vif.bss_conf.basic_rates = basic_rates;
|
||||
sdata->vif.bss_conf.ssid_len = ifibss->ssid_len;
|
||||
memcpy(sdata->vif.bss_conf.ssid, ifibss->ssid, ifibss->ssid_len);
|
||||
bss_change = BSS_CHANGED_BEACON_INT;
|
||||
bss_change |= ieee80211_reset_erp_info(sdata);
|
||||
bss_change |= BSS_CHANGED_BSSID;
|
||||
@@ -217,6 +219,7 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
|
||||
bss_change |= BSS_CHANGED_BASIC_RATES;
|
||||
bss_change |= BSS_CHANGED_HT;
|
||||
bss_change |= BSS_CHANGED_IBSS;
|
||||
bss_change |= BSS_CHANGED_SSID;
|
||||
|
||||
/*
|
||||
* In 5 GHz/802.11a, we can always use short slot time.
|
||||
@@ -1159,6 +1162,7 @@ int ieee80211_ibss_leave(struct ieee80211_sub_if_data *sdata)
|
||||
sdata->vif.bss_conf.ibss_joined = false;
|
||||
sdata->vif.bss_conf.ibss_creator = false;
|
||||
sdata->vif.bss_conf.enable_beacon = false;
|
||||
sdata->vif.bss_conf.ssid_len = 0;
|
||||
clear_bit(SDATA_STATE_OFFCHANNEL_BEACON_STOPPED, &sdata->state);
|
||||
ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BEACON_ENABLED |
|
||||
BSS_CHANGED_IBSS);
|
||||
|
Reference in New Issue
Block a user