From 5e0ba1f79b636d27a0ccf1eda2705d8ef9e7bdbd Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Tue, 6 Aug 2013 17:59:02 +0000 Subject: [PATCH] hostapd: Add an option to disable beaconing Add a patch for hostapd that introduces a config option "start_disabled" which can be used to bring up an AP interface with beaconing disabled. This is useful in a Repeater-AP setup where the Repeater AP has to start beaconing only after the WDS link has been established. Signed-off-by: Sujith Manoharan git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37730 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../patches/454-ap-sta-concurrency.patch | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 package/network/services/hostapd/patches/454-ap-sta-concurrency.patch diff --git a/package/network/services/hostapd/patches/454-ap-sta-concurrency.patch b/package/network/services/hostapd/patches/454-ap-sta-concurrency.patch new file mode 100644 index 0000000000..f481a31544 --- /dev/null +++ b/package/network/services/hostapd/patches/454-ap-sta-concurrency.patch @@ -0,0 +1,45 @@ +--- a/hostapd/config_file.c ++++ b/hostapd/config_file.c +@@ -1781,6 +1781,8 @@ static int hostapd_config_fill(struct ho + } + } else if (os_strcmp(buf, "wds_sta") == 0) { + bss->wds_sta = atoi(pos); ++ } else if (os_strcmp(buf, "start_disabled") == 0) { ++ bss->start_disabled = atoi(pos); + } else if (os_strcmp(buf, "ap_isolate") == 0) { + bss->isolate = atoi(pos); + } else if (os_strcmp(buf, "ap_max_inactivity") == 0) { +--- a/hostapd/hostapd.conf ++++ b/hostapd/hostapd.conf +@@ -389,6 +389,9 @@ wmm_ac_vo_acm=0 + # use a separate bridge. + #wds_bridge=wds-br0 + ++# Start the AP with beaconing disabled by default. ++#start_disabled=0 ++ + # Client isolation can be used to prevent low-level bridging of frames between + # associated stations in the BSS. By default, this bridging is allowed. + #ap_isolate=1 +--- a/src/ap/ap_config.h ++++ b/src/ap/ap_config.h +@@ -243,6 +243,7 @@ struct hostapd_bss_config { + int num_deny_mac; + int wds_sta; + int isolate; ++ int start_disabled; + + int auth_algs; /* bitfield of allowed IEEE 802.11 authentication + * algorithms, WPA_AUTH_ALG_{OPEN,SHARED,LEAP} */ +--- a/src/ap/hostapd.c ++++ b/src/ap/hostapd.c +@@ -819,7 +819,8 @@ static int hostapd_setup_bss(struct host + return -1; + } + +- ieee802_11_set_beacon(hapd); ++ if (!hapd->conf->start_disabled) ++ ieee802_11_set_beacon(hapd); + + if (hapd->wpa_auth && wpa_init_keys(hapd->wpa_auth) < 0) + return -1;