diff options
author | Kyeyoon Park <kyeyoonp@qca.qualcomm.com> | 2014-09-26 05:32:55 (GMT) |
---|---|---|
committer | Jouni Malinen <j@w1.fi> | 2014-10-27 23:08:29 (GMT) |
commit | 7d597d461777cd9af5d49dd678e29d0d400c27e1 (patch) | |
tree | 777fe5bcb84780fb125d9e50629cedf5ec1ccf0f /hostapd | |
parent | 6897556455bd18f3e87b56636a06f8dc8a9336f8 (diff) | |
download | hostap-7d597d461777cd9af5d49dd678e29d0d400c27e1.zip hostap-7d597d461777cd9af5d49dd678e29d0d400c27e1.tar.gz hostap-7d597d461777cd9af5d49dd678e29d0d400c27e1.tar.bz2 |
AP: Add support for Proxy ARP, DHCP snooping mechanism
Proxy ARP allows the AP devices to keep track of the hardware address to
IP address mapping of the STA devices within the BSS. When a request for
such information is made (i.e., ARP request, Neighbor Solicitation), the
AP will respond on behalf of the STA device within the BSS. Such
requests could originate from a device within the BSS or also from the
bridge. In the process of the AP replying to the request (i.e., ARP
reply, Neighbor Advertisement), the AP will drop the original request
frame. The relevant STA will not even know that such information was
ever requested.
This feature is a requirement for Hotspot 2.0, and is defined in IEEE
Std 802.11-2012, 10.23.13. While the Proxy ARP support code mainly
resides in the kernel bridge code, in order to optimize the performance
and simplify kernel implementation, the DHCP snooping code was added to
the hostapd.
Signed-off-by: Kyeyoon Park <kyeyoonp@qca.qualcomm.com>
Diffstat (limited to 'hostapd')
-rw-r--r-- | hostapd/Makefile | 10 | ||||
-rw-r--r-- | hostapd/config_file.c | 2 | ||||
-rw-r--r-- | hostapd/hostapd.conf | 5 |
3 files changed, 17 insertions, 0 deletions
diff --git a/hostapd/Makefile b/hostapd/Makefile index dc5eacd..86b6ea5 100644 --- a/hostapd/Makefile +++ b/hostapd/Makefile @@ -188,6 +188,11 @@ endif ifdef CONFIG_HS20 NEED_AES_OMAC1=y +CONFIG_PROXYARP=y +endif + +ifdef CONFIG_PROXYARP +CONFIG_L2_PACKET=y endif ifdef CONFIG_IEEE80211W @@ -840,6 +845,11 @@ OBJS += ../src/common/gas.o OBJS += ../src/ap/gas_serv.o endif +ifdef CONFIG_PROXYARP +CFLAGS += -DCONFIG_PROXYARP +OBJS += ../src/ap/dhcp_snoop.o +endif + OBJS += ../src/drivers/driver_common.o ifdef CONFIG_WPA_CLI_EDIT diff --git a/hostapd/config_file.c b/hostapd/config_file.c index ddebf1f..f98e957 100644 --- a/hostapd/config_file.c +++ b/hostapd/config_file.c @@ -3008,6 +3008,8 @@ static int hostapd_config_fill(struct hostapd_config *conf, bss->hs20 = atoi(pos); } else if (os_strcmp(buf, "disable_dgaf") == 0) { bss->disable_dgaf = atoi(pos); + } else if (os_strcmp(buf, "proxy_arp") == 0) { + bss->proxy_arp = atoi(pos); } else if (os_strcmp(buf, "osen") == 0) { bss->osen = atoi(pos); } else if (os_strcmp(buf, "anqp_domain_id") == 0) { diff --git a/hostapd/hostapd.conf b/hostapd/hostapd.conf index 2e6f841..eaff3dd 100644 --- a/hostapd/hostapd.conf +++ b/hostapd/hostapd.conf @@ -1453,6 +1453,11 @@ own_ip_addr=127.0.0.1 # 1 = enabled #bss_transition=1 +# Proxy ARP +# 0 = disabled (default) +# 1 = enabled +#proxy_arp=1 + ##### IEEE 802.11u-2011 ####################################################### # Enable Interworking service |