--- /dev/null
+Index: hostapd-2019-08-08-ca8c2bd2/hostapd/Makefile
+===================================================================
+--- hostapd-2019-08-08-ca8c2bd2.orig/hostapd/Makefile
++++ hostapd-2019-08-08-ca8c2bd2/hostapd/Makefile
+@@ -215,7 +215,7 @@ ifdef CONFIG_FULL_DYNAMIC_VLAN
+ # Define CONFIG_FULL_DYNAMIC_VLAN to have hostapd manipulate bridges
+ # and VLAN interfaces for the VLAN feature.
+ CFLAGS += -DCONFIG_FULL_DYNAMIC_VLAN
+-OBJS += ../src/ap/vlan_full.o
++OBJS += ../src/ap/vlan_full.o ../src/drivers/linux_ioctl.o
+ ifdef CONFIG_VLAN_NETLINK
+ OBJS += ../src/ap/vlan_util.o
+ else
+Index: hostapd-2019-08-08-ca8c2bd2/src/ap/beacon.c
+===================================================================
+--- hostapd-2019-08-08-ca8c2bd2.orig/src/ap/beacon.c
++++ hostapd-2019-08-08-ca8c2bd2/src/ap/beacon.c
+@@ -33,6 +33,36 @@
+ #include "taxonomy.h"
+ #include "ieee802_11_auth.h"
+
++static struct hostapd_sta_info * sta_track_get(struct hostapd_iface *iface,
++ const u8 *addr)
++{
++ struct hostapd_sta_info *info;
++
++ dl_list_for_each(info, &iface->sta_seen, struct hostapd_sta_info, list)
++ if (os_memcmp(addr, info->addr, ETH_ALEN) == 0)
++ return info;
++
++ return NULL;
++}
++
++
++#ifdef CONFIG_TAXONOMY
++void sta_track_claim_taxonomy_info(struct hostapd_iface *iface, const u8 *addr,
++ struct wpabuf **probe_ie_taxonomy)
++{
++ struct hostapd_sta_info *info;
++
++ info = sta_track_get(iface, addr);
++ if (!info)
++ return;
++
++ wpabuf_free(*probe_ie_taxonomy);
++ *probe_ie_taxonomy = info->probe_ie_taxonomy;
++ info->probe_ie_taxonomy = NULL;
++}
++#endif /* CONFIG_TAXONOMY */
++
++
+
+ #ifdef NEED_AP_MLME
+
+@@ -637,19 +667,6 @@ void sta_track_expire(struct hostapd_ifa
+ }
+
+
+-static struct hostapd_sta_info * sta_track_get(struct hostapd_iface *iface,
+- const u8 *addr)
+-{
+- struct hostapd_sta_info *info;
+-
+- dl_list_for_each(info, &iface->sta_seen, struct hostapd_sta_info, list)
+- if (os_memcmp(addr, info->addr, ETH_ALEN) == 0)
+- return info;
+-
+- return NULL;
+-}
+-
+-
+ void sta_track_add(struct hostapd_iface *iface, const u8 *addr, int ssi_signal)
+ {
+ struct hostapd_sta_info *info;
+@@ -710,23 +727,6 @@ sta_track_seen_on(struct hostapd_iface *
+ }
+
+
+-#ifdef CONFIG_TAXONOMY
+-void sta_track_claim_taxonomy_info(struct hostapd_iface *iface, const u8 *addr,
+- struct wpabuf **probe_ie_taxonomy)
+-{
+- struct hostapd_sta_info *info;
+-
+- info = sta_track_get(iface, addr);
+- if (!info)
+- return;
+-
+- wpabuf_free(*probe_ie_taxonomy);
+- *probe_ie_taxonomy = info->probe_ie_taxonomy;
+- info->probe_ie_taxonomy = NULL;
+-}
+-#endif /* CONFIG_TAXONOMY */
+-
+-
+ void handle_probe_req(struct hostapd_data *hapd,
+ const struct ieee80211_mgmt *mgmt, size_t len,
+ int ssi_signal)