aboutsummaryrefslogtreecommitdiffstats
path: root/wpa_supplicant
diff options
context:
space:
mode:
authorMasashi Honma <masashi.honma@gmail.com>2014-12-19 05:59:52 (GMT)
committerJouni Malinen <j@w1.fi>2014-12-21 21:52:31 (GMT)
commit4b4093686bf0e2ce198e0d66cdae000f6e581013 (patch)
tree9c6419d989ac953c8dce6424bfb63ba4f6d7d871 /wpa_supplicant
parent8b2600329f23ce7e20c8018efc79b52dd8a6e0e5 (diff)
downloadhostap-4b4093686bf0e2ce198e0d66cdae000f6e581013.zip
hostap-4b4093686bf0e2ce198e0d66cdae000f6e581013.tar.gz
hostap-4b4093686bf0e2ce198e0d66cdae000f6e581013.tar.bz2
mesh: Make maximum number of peer links configurable
Maximum number of peer links is maximum number of connecting mesh peers at the same time. This value is 0..255 based on the dot11MeshNumberOfPeerings range. Signed-off-by: Masashi Honma <masashi.honma@gmail.com>
Diffstat (limited to 'wpa_supplicant')
-rw-r--r--wpa_supplicant/config.c2
-rw-r--r--wpa_supplicant/config.h8
-rw-r--r--wpa_supplicant/config_file.c3
-rw-r--r--wpa_supplicant/mesh.c3
-rw-r--r--wpa_supplicant/wpa_supplicant.conf4
5 files changed, 19 insertions, 1 deletions
diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c
index bd80b29..d3a8c86 100644
--- a/wpa_supplicant/config.c
+++ b/wpa_supplicant/config.c
@@ -3450,6 +3450,7 @@ struct wpa_config * wpa_config_alloc_empty(const char *ctrl_interface,
config->eapol_version = DEFAULT_EAPOL_VERSION;
config->ap_scan = DEFAULT_AP_SCAN;
config->user_mpm = DEFAULT_USER_MPM;
+ config->max_peer_links = DEFAULT_MAX_PEER_LINKS;
config->fast_reauth = DEFAULT_FAST_REAUTH;
config->p2p_go_intent = DEFAULT_P2P_GO_INTENT;
config->p2p_intra_bss = DEFAULT_P2P_INTRA_BSS;
@@ -3998,6 +3999,7 @@ static const struct global_parse_data global_fields[] = {
{ FUNC(bgscan), 0 },
#ifdef CONFIG_MESH
{ INT(user_mpm), 0 },
+ { INT_RANGE(max_peer_links, 0, 255), 0 },
#endif /* CONFIG_MESH */
{ INT(disable_scan_offload), 0 },
{ INT(fast_reauth), 0 },
diff --git a/wpa_supplicant/config.h b/wpa_supplicant/config.h
index 2c3d6f5..b3f7eef 100644
--- a/wpa_supplicant/config.h
+++ b/wpa_supplicant/config.h
@@ -16,6 +16,7 @@
#define DEFAULT_AP_SCAN 1
#endif /* CONFIG_NO_SCAN_PROCESSING */
#define DEFAULT_USER_MPM 1
+#define DEFAULT_MAX_PEER_LINKS 99
#define DEFAULT_FAST_REAUTH 1
#define DEFAULT_P2P_GO_INTENT 7
#define DEFAULT_P2P_INTRA_BSS 1
@@ -1111,6 +1112,13 @@ struct wpa_config {
* If AMPE or SAE is enabled, the MPM is always in userspace.
*/
int user_mpm;
+
+ /**
+ * max_peer_links - Maximum number of peer links
+ *
+ * Maximum number of mesh peering currently maintained by the STA.
+ */
+ int max_peer_links;
};
diff --git a/wpa_supplicant/config_file.c b/wpa_supplicant/config_file.c
index cc632b7..5c8b24b 100644
--- a/wpa_supplicant/config_file.c
+++ b/wpa_supplicant/config_file.c
@@ -1216,6 +1216,9 @@ static void wpa_config_write_global(FILE *f, struct wpa_config *config)
if (config->user_mpm != DEFAULT_USER_MPM)
fprintf(f, "user_mpm=%d\n", config->user_mpm);
+
+ if (config->max_peer_links != DEFAULT_MAX_PEER_LINKS)
+ fprintf(f, "max_peer_links=%d\n", config->max_peer_links);
}
#endif /* CONFIG_NO_CONFIG_WRITE */
diff --git a/wpa_supplicant/mesh.c b/wpa_supplicant/mesh.c
index 7adfa63..7a4f3de 100644
--- a/wpa_supplicant/mesh.c
+++ b/wpa_supplicant/mesh.c
@@ -169,7 +169,7 @@ static int wpa_supplicant_mesh_init(struct wpa_supplicant *wpa_s,
bss->iconf = conf;
ifmsh->conf = conf;
- ifmsh->bss[0]->max_plinks = 99;
+ ifmsh->bss[0]->max_plinks = wpa_s->conf->max_peer_links;
os_strlcpy(bss->conf->iface, wpa_s->ifname, sizeof(bss->conf->iface));
mconf = mesh_config_create(ssid);
@@ -323,6 +323,7 @@ int wpa_supplicant_join_mesh(struct wpa_supplicant *wpa_s,
params.beacon_int = ssid->beacon_int;
else if (wpa_s->conf->beacon_int > 0)
params.beacon_int = wpa_s->conf->beacon_int;
+ params.max_peer_links = wpa_s->conf->max_peer_links;
#ifdef CONFIG_IEEE80211N
params.ht_mode = ssid->mesh_ht_mode;
#endif /* CONFIG_IEEE80211N */
diff --git a/wpa_supplicant/wpa_supplicant.conf b/wpa_supplicant/wpa_supplicant.conf
index 95a212d..e78c0dd 100644
--- a/wpa_supplicant/wpa_supplicant.conf
+++ b/wpa_supplicant/wpa_supplicant.conf
@@ -123,6 +123,10 @@ ap_scan=1
# 1: wpa_supplicant provides an MPM which handles peering (default)
#user_mpm=1
+# Maximum number of peer links (0-255; default: 99)
+# Maximum number of mesh peering currently maintained by the STA.
+#max_peer_links=99
+
# EAP fast re-authentication
# By default, fast re-authentication is enabled for all EAP methods that
# support it. This variable can be used to disable fast re-authentication.