config BR2_PACKAGE_HOSTAPD
	bool "hostapd"
	depends on BR2_USE_MMU # fork()
	select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL
	select BR2_PACKAGE_LIBOPENSSL_ENABLE_MD4 if BR2_PACKAGE_LIBOPENSSL
	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_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_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_WPA3
	bool "Enable WPA3 support"
	select BR2_PACKAGE_OPENSSL
	select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL
	default y
	help
	  Enable WPA3 support including OWE, SAE, DPP

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
