--- a/hostapd/config_file.c
+++ b/hostapd/config_file.c
-@@ -1957,6 +1957,10 @@ static int hostapd_config_fill(struct ho
+@@ -2495,6 +2495,10 @@ static int hostapd_config_fill(struct ho
"ht_capab", line);
errors++;
}
#endif /* CONFIG_IEEE80211N */
--- a/src/ap/ap_config.h
+++ b/src/ap/ap_config.h
-@@ -434,6 +434,7 @@ struct hostapd_config {
+@@ -501,6 +501,7 @@ struct hostapd_config {
int ieee80211n;
int secondary_channel;
int require_ht;
+ int dynamic_ht40;
- };
-
-
+ u32 vht_capab;
+ int ieee80211ac;
+ int require_vht;
--- a/src/ap/hostapd.c
+++ b/src/ap/hostapd.c
-@@ -21,6 +21,7 @@
+@@ -22,6 +22,7 @@
#include "beacon.h"
#include "iapp.h"
#include "ieee802_1x.h"
#include "ieee802_11_auth.h"
#include "vlan_init.h"
#include "wpa_auth.h"
-@@ -317,6 +318,7 @@ static void hostapd_cleanup_iface_pre(st
+@@ -323,6 +324,7 @@ static void hostapd_cleanup_iface_pre(st
static void hostapd_cleanup_iface_partial(struct hostapd_iface *iface)
{
os_free(iface->current_rates);
--- a/src/ap/hostapd.h
+++ b/src/ap/hostapd.h
-@@ -238,6 +238,9 @@ struct hostapd_iface {
+@@ -251,6 +251,9 @@ struct hostapd_iface {
/* Overlapping BSS information */
int olbc_ht;
+
u16 ht_op_mode;
void (*scan_cb)(struct hostapd_iface *iface);
-
+ };
--- a/src/ap/ieee802_11.c
+++ b/src/ap/ieee802_11.c
-@@ -1205,6 +1205,9 @@ static void handle_beacon(struct hostapd
+@@ -1220,6 +1220,9 @@ static void handle_beacon(struct hostapd
sizeof(mgmt->u.beacon)), &elems,
0);
--- a/src/ap/ieee802_11.h
+++ b/src/ap/ieee802_11.h
-@@ -73,4 +73,17 @@ u8 * hostapd_eid_time_zone(struct hostap
- int hostapd_update_time_adv(struct hostapd_data *hapd);
+@@ -78,4 +78,17 @@ int hostapd_update_time_adv(struct hosta
void hostapd_client_poll_ok(struct hostapd_data *hapd, const u8 *addr);
+ u8 * hostapd_eid_bss_max_idle_period(struct hostapd_data *hapd, u8 *eid);
+#ifdef CONFIG_IEEE80211N
+void hostapd_trigger_20mhz(struct hostapd_iface *iface);