All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] mac80211: provide SSID for IBSS vif
@ 2013-04-10 11:19 Marek Puzyniak
  2013-04-10 13:09 ` Johannes Berg
  0 siblings, 1 reply; 2+ messages in thread
From: Marek Puzyniak @ 2013-04-10 11:19 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, johannes, Marek Puzyniak

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. This patch provides functionality
which stores IBSS ssid in BSS conf and expands BSS_CHANGED_SSID
notification to cover also IBSS mode.

Signed-off-by: Marek Puzyniak <marek.puzyniak@tieto.com>
---
 include/net/mac80211.h |    4 ++--
 net/mac80211/ibss.c    |    5 +++++
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index dd73b8c..68330f3 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -209,7 +209,7 @@ struct ieee80211_chanctx_conf {
  * @BSS_CHANGED_QOS: QoS for this association was enabled/disabled. Note
  *	that it is only ever disabled for station mode.
  * @BSS_CHANGED_IDLE: Idle changed for this BSS/interface.
- * @BSS_CHANGED_SSID: SSID changed for this BSS (AP mode)
+ * @BSS_CHANGED_SSID: SSID changed for this BSS (AP and IBSS mode)
  * @BSS_CHANGED_AP_PROBE_RESP: Probe Response changed for this BSS (AP mode)
  * @BSS_CHANGED_PS: PS changed for this BSS (STA mode)
  * @BSS_CHANGED_TXPOWER: TX power setting changed for this interface
@@ -326,7 +326,7 @@ enum ieee80211_rssi_event {
  *	your driver/device needs to do.
  * @ps: power-save mode (STA only). This flag is NOT affected by
  *	offchannel/dynamic_ps operations.
- * @ssid: The SSID of the current vif. Only valid in AP-mode.
+ * @ssid: The SSID of the current vif. Valid in AP and IBSS mode.
  * @ssid_len: Length of SSID given in @ssid.
  * @hidden_ssid: The SSID of the current vif is hidden. Only valid in AP-mode.
  * @txpower: TX power in dBm
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c
index 539d4a1..cab8547 100644
--- a/net/mac80211/ibss.c
+++ b/net/mac80211/ibss.c
@@ -194,6 +194,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;
@@ -202,6 +204,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,8 @@ 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;
+	memset(sdata->vif.bss_conf.ssid, 0, IEEE80211_MAX_SSID_LEN);
 	clear_bit(SDATA_STATE_OFFCHANNEL_BEACON_STOPPED, &sdata->state);
 	ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BEACON_ENABLED |
 						BSS_CHANGED_IBSS);
-- 
1.7.0.4


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v2] mac80211: provide SSID for IBSS vif
  2013-04-10 11:19 [PATCH v2] mac80211: provide SSID for IBSS vif Marek Puzyniak
@ 2013-04-10 13:09 ` Johannes Berg
  0 siblings, 0 replies; 2+ messages in thread
From: Johannes Berg @ 2013-04-10 13:09 UTC (permalink / raw)
  To: Marek Puzyniak; +Cc: linville, linux-wireless

On Wed, 2013-04-10 at 13:19 +0200, Marek Puzyniak wrote:
> 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. This patch provides functionality
> which stores IBSS ssid in BSS conf and expands BSS_CHANGED_SSID
> notification to cover also IBSS mode.

Applied, I also removed the memset here.

johannes


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2013-04-10 13:10 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-10 11:19 [PATCH v2] mac80211: provide SSID for IBSS vif Marek Puzyniak
2013-04-10 13:09 ` Johannes Berg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.