config BR2_PACKAGE_HOSTAPD
	bool "hostapd"
	depends on BR2_USE_MMU # fork()
	help
	  User space daemon for wireless access points.

	  It implements IEEE 802.11 access point management,
	  IEEE 802.1X/WPA/WPA2/EAP authenticators, RADIUS client,
	  EAP server and RADIUS authentication server.

	  http://w1.fi/hostapd/

if BR2_PACKAGE_HOSTAPD

config BR2_PACKAGE_HOSTAPD_DRIVER_HOSTAP
	bool "Enable hostap driver"
	default y
	select BR2_PACKAGE_HOSTAPD_HAS_WIFI_DRIVERS
	help
	  Enable support for Host AP driver.

config BR2_PACKAGE_HOSTAPD_DRIVER_NL80211
	bool "Enable nl80211 driver"
	default y
	depends on BR2_TOOLCHAIN_HAS_THREADS # libnl
	select BR2_PACKAGE_LIBNL
	select BR2_PACKAGE_HOSTAPD_HAS_WIFI_DRIVERS
	help
	  Enable support for drivers using the nl80211 kernel interface.

comment "nl80211 driver needs a toolchain w/ threads"
	depends on !BR2_TOOLCHAIN_HAS_THREADS

config BR2_PACKAGE_HOSTAPD_DRIVER_RTW
	bool "Enable rtl871xdrv driver"
	select BR2_PACKAGE_HOSTAPD_HAS_WIFI_DRIVERS
	help
	  Enable support for Realtek wireless chips.

config BR2_PACKAGE_HOSTAPD_DRIVER_WIRED
	bool "Enable wired driver"
	help
	  Enable support for wired authenticator.

config BR2_PACKAGE_HOSTAPD_DRIVER_NONE
	bool
	default y
	depends on !BR2_PACKAGE_HOSTAPD_DRIVER_HOSTAP
	depends on !BR2_PACKAGE_HOSTAPD_DRIVER_NL80211
	depends on !BR2_PACKAGE_HOSTAPD_DRIVER_RTW
	depends on !BR2_PACKAGE_HOSTAPD_DRIVER_WIRED

config BR2_PACKAGE_HOSTAPD_HAS_WIFI_DRIVERS
	bool

config BR2_PACKAGE_HOSTAPD_ACS
	bool "Enable ACS"
	default y
	depends on BR2_PACKAGE_HOSTAPD_DRIVER_NL80211
	help
	  Enable support for standard ACS (Automatic Channel Selection).
	  Some propietary drivers use a custom algorithm which requires
	  channel to be set to '0' (which enables ACS in the config),
	  causing hostapd to use the standard one which doesn't work
	  for those cases.

comment "ACS is currently only supported through the nl80211 driver"
	depends on !BR2_PACKAGE_HOSTAPD_DRIVER_NL80211

config BR2_PACKAGE_HOSTAPD_EAP
	bool "Enable EAP"
	depends on !BR2_STATIC_LIBS
	help
	  Enable support for EAP and RADIUS.

comment "hostapd EAP needs a toolchain w/ dynamic library"
	depends on BR2_STATIC_LIBS

config BR2_PACKAGE_HOSTAPD_WPS
	bool "Enable WPS"
	help
	  Enable support for Wi-Fi Protected Setup.

config BR2_PACKAGE_HOSTAPD_VLAN
	bool "Enable VLAN support"
	default y
	help
	  Enable support for VLANs.

if BR2_PACKAGE_HOSTAPD_VLAN

config BR2_PACKAGE_HOSTAPD_VLAN_DYNAMIC
	bool "Enable dynamic VLAN support"
	default y
	help
	  Enable support for fully dynamic VLANs.
	  This enables hostapd to automatically create
	  bridge and VLAN interfaces if necessary.

config BR2_PACKAGE_HOSTAPD_VLAN_NETLINK
	bool "Use netlink-based API for VLAN operations"
	default y
	depends on BR2_TOOLCHAIN_HAS_THREADS # libnl
	select BR2_PACKAGE_LIBNL
	help
	  Use netlink-based kernel API for VLAN operations
	  instead of ioctl().

comment "netlink-based VLAN support needs a toolchain w/ threads"
	depends on !BR2_TOOLCHAIN_HAS_THREADS

endif # BR2_PACKAGE_HOSTAPD_VLAN

endif
