aboutsummaryrefslogtreecommitdiffstats
path: root/hostapd
diff options
context:
space:
mode:
authorMichael Braun <michael-dev@fami-braun.de>2017-04-02 12:52:49 (GMT)
committerJouni Malinen <j@w1.fi>2017-05-03 15:30:31 (GMT)
commit50bd8e0a909fee76eea46a94956cb1fe458b57c4 (patch)
tree81ca7fd5ee541a9fa6b4bb46653fc338403bb73e /hostapd
parent0ed5e9467f0b7ef83158e996eb7e458b72959ef8 (diff)
downloadhostap-50bd8e0a909fee76eea46a94956cb1fe458b57c4.zip
hostap-50bd8e0a909fee76eea46a94956cb1fe458b57c4.tar.gz
hostap-50bd8e0a909fee76eea46a94956cb1fe458b57c4.tar.bz2
FT: Replace inter-AP protocol with use of OUI Extended Ethertype
Replace the previously used extension of IEEE 802.11 managed Ethertype 89-0d (originally added for Remote Request/Response in IEEE 802.11r) with Ethertype 88-b7 (OUI Extended EtherType) for FT inter-AP communication. The new design uses a more properly assigned identifier for the messages. This assigns the OUI 00:13:74 vendor-specific subtype 0x0001 for the new hostapd AP-to-AP communication purposes. Subtypes 1 (PULL), 2 (RESP), and 3 (PUSH) are also assigned in this commit for the R0KH-R1KH protocol. This breaks backward compatibility, i.e., hostapd needs to be updated on all APs at the same time to allow FT to remain functional. Signed-off-by: Michael Braun <michael-dev@fami-braun.de>
Diffstat (limited to 'hostapd')
-rw-r--r--hostapd/Android.mk6
-rw-r--r--hostapd/Makefile6
-rw-r--r--hostapd/main.c3
3 files changed, 15 insertions, 0 deletions
diff --git a/hostapd/Android.mk b/hostapd/Android.mk
index b1940f8..0cea53b 100644
--- a/hostapd/Android.mk
+++ b/hostapd/Android.mk
@@ -252,6 +252,12 @@ OBJS += src/ap/wpa_auth_ft.c
NEED_SHA256=y
NEED_AES_OMAC1=y
NEED_AES_UNWRAP=y
+NEED_ETH_P_OUI=y
+endif
+
+ifdef NEED_ETH_P_OUI
+L_CFLAGS += -DCONFIG_ETH_P_OUI
+OBJS += src/ap/eth_p_oui.c
endif
ifdef CONFIG_SAE
diff --git a/hostapd/Makefile b/hostapd/Makefile
index c443618..298019e 100644
--- a/hostapd/Makefile
+++ b/hostapd/Makefile
@@ -295,6 +295,12 @@ OBJS += ../src/ap/wpa_auth_ft.o
NEED_SHA256=y
NEED_AES_OMAC1=y
NEED_AES_UNWRAP=y
+NEED_ETH_P_OUI=y
+endif
+
+ifdef NEED_ETH_P_OUI
+CFLAGS += -DCONFIG_ETH_P_OUI
+OBJS += ../src/ap/eth_p_oui.o
endif
ifdef CONFIG_SAE
diff --git a/hostapd/main.c b/hostapd/main.c
index 593267c..785b320 100644
--- a/hostapd/main.c
+++ b/hostapd/main.c
@@ -666,6 +666,9 @@ int main(int argc, char *argv[])
interfaces.global_iface_name = NULL;
interfaces.global_ctrl_sock = -1;
dl_list_init(&interfaces.global_ctrl_dst);
+#ifdef CONFIG_ETH_P_OUI
+ dl_list_init(&interfaces.eth_p_oui);
+#endif /* CONFIG_ETH_P_OUI */
for (;;) {
c = getopt(argc, argv, "b:Bde:f:hi:KP:sSTtu:vg:G:");