From: Antonio Quartulli <[email protected]>
The current behaviour when not finding the cbss in the local
list is to always scan before creating the IBSS. However if
bssid and freq have been provided (and fixed_freq is set) it
is possible to immediately create the cell and avoid wasting
time with the scan operation.
Signed-off-by: Antonio Quartulli <[email protected]>
---
net/mac80211/ibss.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c
index e08387c..811207a 100644
--- a/net/mac80211/ibss.c
+++ b/net/mac80211/ibss.c
@@ -891,6 +891,17 @@ static void ieee80211_sta_find_ibss(struct ieee80211_sub_if_data *sdata)
return;
}
+ /* if a fixed bssid and a fixed freq have been provided create the IBSS
+ * directly and do not waste time scanning
+ */
+ if (!cbss && ifibss->fixed_bssid && ifibss->fixed_channel) {
+ sdata_info(sdata, "Created IBSS using preconfigured BSSID %pM\n",
+ bssid);
+ ieee80211_sta_create_ibss(sdata);
+ return;
+ }
+
+
ibss_dbg(sdata, "sta_find_ibss: did not try to join ibss\n");
/* Selected IBSS not found in current scan results - try to scan */
--
1.8.1.5
From: Antonio Quartulli <[email protected]>
In some cases mac80211 will scan before creating an IBSS
even if bssid and frequency have been forced by the user.
This is not needed and leads only to a delay in the IBSS
establishment phase.
Immediately create the cell if both bssid and frequency
(and fixed_freq is set) have been specified.
Signed-off-by: Antonio Quartulli <[email protected]>
---
net/mac80211/ibss.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c
index e08387c..79e294e 100644
--- a/net/mac80211/ibss.c
+++ b/net/mac80211/ibss.c
@@ -891,6 +891,17 @@ static void ieee80211_sta_find_ibss(struct ieee80211_sub_if_data *sdata)
return;
}
+ /* if a fixed bssid and a fixed freq have been provided create the IBSS
+ * directly and do not waste time scanning
+ */
+ if (ifibss->fixed_bssid && ifibss->fixed_channel) {
+ sdata_info(sdata, "Created IBSS using preconfigured BSSID %pM\n",
+ bssid);
+ ieee80211_sta_create_ibss(sdata);
+ return;
+ }
+
+
ibss_dbg(sdata, "sta_find_ibss: did not try to join ibss\n");
/* Selected IBSS not found in current scan results - try to scan */
--
1.8.1.5
On Fri, 2013-08-09 at 18:58 +0200, Antonio Quartulli wrote:
> From: Antonio Quartulli <[email protected]>
>
> In some cases mac80211 will scan before creating an IBSS
> even if bssid and frequency have been forced by the user.
> This is not needed and leads only to a delay in the IBSS
> establishment phase.
>
> Immediately create the cell if both bssid and frequency
> (and fixed_freq is set) have been specified.
Applied.
johannes