1*03f9172cSAndroid Build Coastguard Worker# Example wpa_supplicant build time configuration 2*03f9172cSAndroid Build Coastguard Worker# 3*03f9172cSAndroid Build Coastguard Worker# This file lists the configuration options that are used when building the 4*03f9172cSAndroid Build Coastguard Worker# wpa_supplicant binary. All lines starting with # are ignored. Configuration 5*03f9172cSAndroid Build Coastguard Worker# option lines must be commented out complete, if they are not to be included, 6*03f9172cSAndroid Build Coastguard Worker# i.e., just setting VARIABLE=n is not disabling that variable. 7*03f9172cSAndroid Build Coastguard Worker# 8*03f9172cSAndroid Build Coastguard Worker# This file is included in Makefile, so variables like CFLAGS and LIBS can also 9*03f9172cSAndroid Build Coastguard Worker# be modified from here. In most cases, these lines should use += in order not 10*03f9172cSAndroid Build Coastguard Worker# to override previous values of the variables. 11*03f9172cSAndroid Build Coastguard Worker 12*03f9172cSAndroid Build Coastguard Worker 13*03f9172cSAndroid Build Coastguard Worker# Uncomment following two lines and fix the paths if you have installed OpenSSL 14*03f9172cSAndroid Build Coastguard Worker# or GnuTLS in non-default location 15*03f9172cSAndroid Build Coastguard Worker#CFLAGS += -I/usr/local/openssl/include 16*03f9172cSAndroid Build Coastguard Worker#LIBS += -L/usr/local/openssl/lib 17*03f9172cSAndroid Build Coastguard Worker 18*03f9172cSAndroid Build Coastguard Worker# Some Red Hat versions seem to include kerberos header files from OpenSSL, but 19*03f9172cSAndroid Build Coastguard Worker# the kerberos files are not in the default include path. Following line can be 20*03f9172cSAndroid Build Coastguard Worker# used to fix build issues on such systems (krb5.h not found). 21*03f9172cSAndroid Build Coastguard Worker#CFLAGS += -I/usr/include/kerberos 22*03f9172cSAndroid Build Coastguard Worker 23*03f9172cSAndroid Build Coastguard Worker# Driver interface for generic Linux wireless extensions 24*03f9172cSAndroid Build Coastguard Worker# Note: WEXT is deprecated in the current Linux kernel version and no new 25*03f9172cSAndroid Build Coastguard Worker# functionality is added to it. nl80211-based interface is the new 26*03f9172cSAndroid Build Coastguard Worker# replacement for WEXT and its use allows wpa_supplicant to properly control 27*03f9172cSAndroid Build Coastguard Worker# the driver to improve existing functionality like roaming and to support new 28*03f9172cSAndroid Build Coastguard Worker# functionality. 29*03f9172cSAndroid Build Coastguard WorkerCONFIG_DRIVER_WEXT=y 30*03f9172cSAndroid Build Coastguard Worker 31*03f9172cSAndroid Build Coastguard Worker# Driver interface for Linux drivers using the nl80211 kernel interface 32*03f9172cSAndroid Build Coastguard WorkerCONFIG_DRIVER_NL80211=y 33*03f9172cSAndroid Build Coastguard Worker 34*03f9172cSAndroid Build Coastguard Worker# QCA vendor extensions to nl80211 35*03f9172cSAndroid Build Coastguard Worker#CONFIG_DRIVER_NL80211_QCA=y 36*03f9172cSAndroid Build Coastguard Worker 37*03f9172cSAndroid Build Coastguard Worker# driver_nl80211.c requires libnl. If you are compiling it yourself 38*03f9172cSAndroid Build Coastguard Worker# you may need to point hostapd to your version of libnl. 39*03f9172cSAndroid Build Coastguard Worker# 40*03f9172cSAndroid Build Coastguard Worker#CFLAGS += -I$<path to libnl include files> 41*03f9172cSAndroid Build Coastguard Worker#LIBS += -L$<path to libnl library files> 42*03f9172cSAndroid Build Coastguard Worker 43*03f9172cSAndroid Build Coastguard Worker# Use libnl v2.0 (or 3.0) libraries. 44*03f9172cSAndroid Build Coastguard Worker#CONFIG_LIBNL20=y 45*03f9172cSAndroid Build Coastguard Worker 46*03f9172cSAndroid Build Coastguard Worker# Use libnl 3.2 libraries (if this is selected, CONFIG_LIBNL20 is ignored) 47*03f9172cSAndroid Build Coastguard WorkerCONFIG_LIBNL32=y 48*03f9172cSAndroid Build Coastguard Worker 49*03f9172cSAndroid Build Coastguard Worker 50*03f9172cSAndroid Build Coastguard Worker# Driver interface for FreeBSD net80211 layer (e.g., Atheros driver) 51*03f9172cSAndroid Build Coastguard Worker#CONFIG_DRIVER_BSD=y 52*03f9172cSAndroid Build Coastguard Worker#CFLAGS += -I/usr/local/include 53*03f9172cSAndroid Build Coastguard Worker#LIBS += -L/usr/local/lib 54*03f9172cSAndroid Build Coastguard Worker#LIBS_p += -L/usr/local/lib 55*03f9172cSAndroid Build Coastguard Worker#LIBS_c += -L/usr/local/lib 56*03f9172cSAndroid Build Coastguard Worker 57*03f9172cSAndroid Build Coastguard Worker# Driver interface for Windows NDIS 58*03f9172cSAndroid Build Coastguard Worker#CONFIG_DRIVER_NDIS=y 59*03f9172cSAndroid Build Coastguard Worker#CFLAGS += -I/usr/include/w32api/ddk 60*03f9172cSAndroid Build Coastguard Worker#LIBS += -L/usr/local/lib 61*03f9172cSAndroid Build Coastguard Worker# For native build using mingw 62*03f9172cSAndroid Build Coastguard Worker#CONFIG_NATIVE_WINDOWS=y 63*03f9172cSAndroid Build Coastguard Worker# Additional directories for cross-compilation on Linux host for mingw target 64*03f9172cSAndroid Build Coastguard Worker#CFLAGS += -I/opt/mingw/mingw32/include/ddk 65*03f9172cSAndroid Build Coastguard Worker#LIBS += -L/opt/mingw/mingw32/lib 66*03f9172cSAndroid Build Coastguard Worker#CC=mingw32-gcc 67*03f9172cSAndroid Build Coastguard Worker# By default, driver_ndis uses WinPcap for low-level operations. This can be 68*03f9172cSAndroid Build Coastguard Worker# replaced with the following option which replaces WinPcap calls with NDISUIO. 69*03f9172cSAndroid Build Coastguard Worker# However, this requires that WZC is disabled (net stop wzcsvc) before starting 70*03f9172cSAndroid Build Coastguard Worker# wpa_supplicant. 71*03f9172cSAndroid Build Coastguard Worker# CONFIG_USE_NDISUIO=y 72*03f9172cSAndroid Build Coastguard Worker 73*03f9172cSAndroid Build Coastguard Worker# Driver interface for wired Ethernet drivers 74*03f9172cSAndroid Build Coastguard WorkerCONFIG_DRIVER_WIRED=y 75*03f9172cSAndroid Build Coastguard Worker 76*03f9172cSAndroid Build Coastguard Worker# Driver interface for MACsec capable Qualcomm Atheros drivers 77*03f9172cSAndroid Build Coastguard Worker#CONFIG_DRIVER_MACSEC_QCA=y 78*03f9172cSAndroid Build Coastguard Worker 79*03f9172cSAndroid Build Coastguard Worker# Driver interface for Linux MACsec drivers 80*03f9172cSAndroid Build Coastguard WorkerCONFIG_DRIVER_MACSEC_LINUX=y 81*03f9172cSAndroid Build Coastguard Worker 82*03f9172cSAndroid Build Coastguard Worker# Driver interface for the Broadcom RoboSwitch family 83*03f9172cSAndroid Build Coastguard Worker#CONFIG_DRIVER_ROBOSWITCH=y 84*03f9172cSAndroid Build Coastguard Worker 85*03f9172cSAndroid Build Coastguard Worker# Driver interface for no driver (e.g., WPS ER only) 86*03f9172cSAndroid Build Coastguard Worker#CONFIG_DRIVER_NONE=y 87*03f9172cSAndroid Build Coastguard Worker 88*03f9172cSAndroid Build Coastguard Worker# Solaris libraries 89*03f9172cSAndroid Build Coastguard Worker#LIBS += -lsocket -ldlpi -lnsl 90*03f9172cSAndroid Build Coastguard Worker#LIBS_c += -lsocket 91*03f9172cSAndroid Build Coastguard Worker 92*03f9172cSAndroid Build Coastguard Worker# Enable IEEE 802.1X Supplicant (automatically included if any EAP method or 93*03f9172cSAndroid Build Coastguard Worker# MACsec is included) 94*03f9172cSAndroid Build Coastguard WorkerCONFIG_IEEE8021X_EAPOL=y 95*03f9172cSAndroid Build Coastguard Worker 96*03f9172cSAndroid Build Coastguard Worker# EAP-MD5 97*03f9172cSAndroid Build Coastguard WorkerCONFIG_EAP_MD5=y 98*03f9172cSAndroid Build Coastguard Worker 99*03f9172cSAndroid Build Coastguard Worker# EAP-MSCHAPv2 100*03f9172cSAndroid Build Coastguard WorkerCONFIG_EAP_MSCHAPV2=y 101*03f9172cSAndroid Build Coastguard Worker 102*03f9172cSAndroid Build Coastguard Worker# EAP-TLS 103*03f9172cSAndroid Build Coastguard WorkerCONFIG_EAP_TLS=y 104*03f9172cSAndroid Build Coastguard Worker# Enable EAP-TLSv1.3 support by default (currently disabled unless explicitly 105*03f9172cSAndroid Build Coastguard Worker# enabled in network configuration) 106*03f9172cSAndroid Build Coastguard Worker#CONFIG_EAP_TLSV1_3=y 107*03f9172cSAndroid Build Coastguard Worker 108*03f9172cSAndroid Build Coastguard Worker# EAL-PEAP 109*03f9172cSAndroid Build Coastguard WorkerCONFIG_EAP_PEAP=y 110*03f9172cSAndroid Build Coastguard Worker 111*03f9172cSAndroid Build Coastguard Worker# EAP-TTLS 112*03f9172cSAndroid Build Coastguard WorkerCONFIG_EAP_TTLS=y 113*03f9172cSAndroid Build Coastguard Worker 114*03f9172cSAndroid Build Coastguard Worker# EAP-FAST 115*03f9172cSAndroid Build Coastguard WorkerCONFIG_EAP_FAST=y 116*03f9172cSAndroid Build Coastguard Worker 117*03f9172cSAndroid Build Coastguard Worker# EAP-TEAP 118*03f9172cSAndroid Build Coastguard Worker# Note: The current EAP-TEAP implementation is experimental and should not be 119*03f9172cSAndroid Build Coastguard Worker# enabled for production use. The IETF RFC 7170 that defines EAP-TEAP has number 120*03f9172cSAndroid Build Coastguard Worker# of conflicting statements and missing details and the implementation has 121*03f9172cSAndroid Build Coastguard Worker# vendor specific workarounds for those and as such, may not interoperate with 122*03f9172cSAndroid Build Coastguard Worker# any other implementation. This should not be used for anything else than 123*03f9172cSAndroid Build Coastguard Worker# experimentation and interoperability testing until those issues has been 124*03f9172cSAndroid Build Coastguard Worker# resolved. 125*03f9172cSAndroid Build Coastguard Worker#CONFIG_EAP_TEAP=y 126*03f9172cSAndroid Build Coastguard Worker 127*03f9172cSAndroid Build Coastguard Worker# EAP-GTC 128*03f9172cSAndroid Build Coastguard WorkerCONFIG_EAP_GTC=y 129*03f9172cSAndroid Build Coastguard Worker 130*03f9172cSAndroid Build Coastguard Worker# EAP-OTP 131*03f9172cSAndroid Build Coastguard WorkerCONFIG_EAP_OTP=y 132*03f9172cSAndroid Build Coastguard Worker 133*03f9172cSAndroid Build Coastguard Worker# EAP-SIM (enable CONFIG_PCSC, if EAP-SIM is used) 134*03f9172cSAndroid Build Coastguard Worker#CONFIG_EAP_SIM=y 135*03f9172cSAndroid Build Coastguard Worker 136*03f9172cSAndroid Build Coastguard Worker# Enable SIM simulator (Milenage) for EAP-SIM 137*03f9172cSAndroid Build Coastguard Worker#CONFIG_SIM_SIMULATOR=y 138*03f9172cSAndroid Build Coastguard Worker 139*03f9172cSAndroid Build Coastguard Worker# EAP-PSK (experimental; this is _not_ needed for WPA-PSK) 140*03f9172cSAndroid Build Coastguard Worker#CONFIG_EAP_PSK=y 141*03f9172cSAndroid Build Coastguard Worker 142*03f9172cSAndroid Build Coastguard Worker# EAP-pwd (secure authentication using only a password) 143*03f9172cSAndroid Build Coastguard WorkerCONFIG_EAP_PWD=y 144*03f9172cSAndroid Build Coastguard Worker 145*03f9172cSAndroid Build Coastguard Worker# EAP-PAX 146*03f9172cSAndroid Build Coastguard WorkerCONFIG_EAP_PAX=y 147*03f9172cSAndroid Build Coastguard Worker 148*03f9172cSAndroid Build Coastguard Worker# LEAP 149*03f9172cSAndroid Build Coastguard WorkerCONFIG_EAP_LEAP=y 150*03f9172cSAndroid Build Coastguard Worker 151*03f9172cSAndroid Build Coastguard Worker# EAP-AKA (enable CONFIG_PCSC, if EAP-AKA is used) 152*03f9172cSAndroid Build Coastguard Worker#CONFIG_EAP_AKA=y 153*03f9172cSAndroid Build Coastguard Worker 154*03f9172cSAndroid Build Coastguard Worker# EAP-AKA' (enable CONFIG_PCSC, if EAP-AKA' is used). 155*03f9172cSAndroid Build Coastguard Worker# This requires CONFIG_EAP_AKA to be enabled, too. 156*03f9172cSAndroid Build Coastguard Worker#CONFIG_EAP_AKA_PRIME=y 157*03f9172cSAndroid Build Coastguard Worker 158*03f9172cSAndroid Build Coastguard Worker# Enable USIM simulator (Milenage) for EAP-AKA 159*03f9172cSAndroid Build Coastguard Worker#CONFIG_USIM_SIMULATOR=y 160*03f9172cSAndroid Build Coastguard Worker 161*03f9172cSAndroid Build Coastguard Worker# EAP-SAKE 162*03f9172cSAndroid Build Coastguard WorkerCONFIG_EAP_SAKE=y 163*03f9172cSAndroid Build Coastguard Worker 164*03f9172cSAndroid Build Coastguard Worker# EAP-GPSK 165*03f9172cSAndroid Build Coastguard WorkerCONFIG_EAP_GPSK=y 166*03f9172cSAndroid Build Coastguard Worker# Include support for optional SHA256 cipher suite in EAP-GPSK 167*03f9172cSAndroid Build Coastguard WorkerCONFIG_EAP_GPSK_SHA256=y 168*03f9172cSAndroid Build Coastguard Worker 169*03f9172cSAndroid Build Coastguard Worker# EAP-TNC and related Trusted Network Connect support (experimental) 170*03f9172cSAndroid Build Coastguard WorkerCONFIG_EAP_TNC=y 171*03f9172cSAndroid Build Coastguard Worker 172*03f9172cSAndroid Build Coastguard Worker# Wi-Fi Protected Setup (WPS) 173*03f9172cSAndroid Build Coastguard WorkerCONFIG_WPS=y 174*03f9172cSAndroid Build Coastguard Worker# Enable WPS external registrar functionality 175*03f9172cSAndroid Build Coastguard Worker#CONFIG_WPS_ER=y 176*03f9172cSAndroid Build Coastguard Worker# Disable credentials for an open network by default when acting as a WPS 177*03f9172cSAndroid Build Coastguard Worker# registrar. 178*03f9172cSAndroid Build Coastguard Worker#CONFIG_WPS_REG_DISABLE_OPEN=y 179*03f9172cSAndroid Build Coastguard Worker# Enable WPS support with NFC config method 180*03f9172cSAndroid Build Coastguard Worker#CONFIG_WPS_NFC=y 181*03f9172cSAndroid Build Coastguard Worker 182*03f9172cSAndroid Build Coastguard Worker# EAP-IKEv2 183*03f9172cSAndroid Build Coastguard WorkerCONFIG_EAP_IKEV2=y 184*03f9172cSAndroid Build Coastguard Worker 185*03f9172cSAndroid Build Coastguard Worker# EAP-EKE 186*03f9172cSAndroid Build Coastguard Worker#CONFIG_EAP_EKE=y 187*03f9172cSAndroid Build Coastguard Worker 188*03f9172cSAndroid Build Coastguard Worker# MACsec 189*03f9172cSAndroid Build Coastguard WorkerCONFIG_MACSEC=y 190*03f9172cSAndroid Build Coastguard Worker 191*03f9172cSAndroid Build Coastguard Worker# PKCS#12 (PFX) support (used to read private key and certificate file from 192*03f9172cSAndroid Build Coastguard Worker# a file that usually has extension .p12 or .pfx) 193*03f9172cSAndroid Build Coastguard WorkerCONFIG_PKCS12=y 194*03f9172cSAndroid Build Coastguard Worker 195*03f9172cSAndroid Build Coastguard Worker# Smartcard support (i.e., private key on a smartcard), e.g., with openssl 196*03f9172cSAndroid Build Coastguard Worker# engine. 197*03f9172cSAndroid Build Coastguard WorkerCONFIG_SMARTCARD=y 198*03f9172cSAndroid Build Coastguard Worker 199*03f9172cSAndroid Build Coastguard Worker# PC/SC interface for smartcards (USIM, GSM SIM) 200*03f9172cSAndroid Build Coastguard Worker# Enable this if EAP-SIM or EAP-AKA is included 201*03f9172cSAndroid Build Coastguard Worker#CONFIG_PCSC=y 202*03f9172cSAndroid Build Coastguard Worker 203*03f9172cSAndroid Build Coastguard Worker# Support HT overrides (disable HT/HT40, mask MCS rates, etc.) 204*03f9172cSAndroid Build Coastguard Worker#CONFIG_HT_OVERRIDES=y 205*03f9172cSAndroid Build Coastguard Worker 206*03f9172cSAndroid Build Coastguard Worker# Support VHT overrides (disable VHT, mask MCS rates, etc.) 207*03f9172cSAndroid Build Coastguard Worker#CONFIG_VHT_OVERRIDES=y 208*03f9172cSAndroid Build Coastguard Worker 209*03f9172cSAndroid Build Coastguard Worker# Support HE overrides 210*03f9172cSAndroid Build Coastguard Worker#CONFIG_HE_OVERRIDES=y 211*03f9172cSAndroid Build Coastguard Worker 212*03f9172cSAndroid Build Coastguard Worker# Development testing 213*03f9172cSAndroid Build Coastguard Worker#CONFIG_EAPOL_TEST=y 214*03f9172cSAndroid Build Coastguard Worker 215*03f9172cSAndroid Build Coastguard Worker# Support IPv6 216*03f9172cSAndroid Build Coastguard WorkerCONFIG_IPV6=y 217*03f9172cSAndroid Build Coastguard Worker 218*03f9172cSAndroid Build Coastguard Worker# Select control interface backend for external programs, e.g, wpa_cli: 219*03f9172cSAndroid Build Coastguard Worker# unix = UNIX domain sockets (default for Linux/*BSD) 220*03f9172cSAndroid Build Coastguard Worker# udp = UDP sockets using localhost (127.0.0.1) 221*03f9172cSAndroid Build Coastguard Worker# udp6 = UDP IPv6 sockets using localhost (::1) 222*03f9172cSAndroid Build Coastguard Worker# named_pipe = Windows Named Pipe (default for Windows) 223*03f9172cSAndroid Build Coastguard Worker# udp-remote = UDP sockets with remote access (only for tests systems/purpose) 224*03f9172cSAndroid Build Coastguard Worker# udp6-remote = UDP IPv6 sockets with remote access (only for tests purpose) 225*03f9172cSAndroid Build Coastguard Worker# y = use default (backwards compatibility) 226*03f9172cSAndroid Build Coastguard Worker# If this option is commented out, control interface is not included in the 227*03f9172cSAndroid Build Coastguard Worker# build. 228*03f9172cSAndroid Build Coastguard WorkerCONFIG_CTRL_IFACE=y 229*03f9172cSAndroid Build Coastguard Worker 230*03f9172cSAndroid Build Coastguard Worker# Include support for GNU Readline and History Libraries in wpa_cli. 231*03f9172cSAndroid Build Coastguard Worker# When building a wpa_cli binary for distribution, please note that these 232*03f9172cSAndroid Build Coastguard Worker# libraries are licensed under GPL and as such, BSD license may not apply for 233*03f9172cSAndroid Build Coastguard Worker# the resulting binary. 234*03f9172cSAndroid Build Coastguard Worker#CONFIG_READLINE=y 235*03f9172cSAndroid Build Coastguard Worker 236*03f9172cSAndroid Build Coastguard Worker# Include internal line edit mode in wpa_cli. This can be used as a replacement 237*03f9172cSAndroid Build Coastguard Worker# for GNU Readline to provide limited command line editing and history support. 238*03f9172cSAndroid Build Coastguard Worker#CONFIG_WPA_CLI_EDIT=y 239*03f9172cSAndroid Build Coastguard Worker 240*03f9172cSAndroid Build Coastguard Worker# Remove debugging code that is printing out debug message to stdout. 241*03f9172cSAndroid Build Coastguard Worker# This can be used to reduce the size of the wpa_supplicant considerably 242*03f9172cSAndroid Build Coastguard Worker# if debugging code is not needed. The size reduction can be around 35% 243*03f9172cSAndroid Build Coastguard Worker# (e.g., 90 kB). 244*03f9172cSAndroid Build Coastguard Worker#CONFIG_NO_STDOUT_DEBUG=y 245*03f9172cSAndroid Build Coastguard Worker 246*03f9172cSAndroid Build Coastguard Worker# Remove WPA support, e.g., for wired-only IEEE 802.1X supplicant, to save 247*03f9172cSAndroid Build Coastguard Worker# 35-50 kB in code size. 248*03f9172cSAndroid Build Coastguard Worker#CONFIG_NO_WPA=y 249*03f9172cSAndroid Build Coastguard Worker 250*03f9172cSAndroid Build Coastguard Worker# Remove IEEE 802.11i/WPA-Personal ASCII passphrase support 251*03f9172cSAndroid Build Coastguard Worker# This option can be used to reduce code size by removing support for 252*03f9172cSAndroid Build Coastguard Worker# converting ASCII passphrases into PSK. If this functionality is removed, the 253*03f9172cSAndroid Build Coastguard Worker# PSK can only be configured as the 64-octet hexstring (e.g., from 254*03f9172cSAndroid Build Coastguard Worker# wpa_passphrase). This saves about 0.5 kB in code size. 255*03f9172cSAndroid Build Coastguard Worker#CONFIG_NO_WPA_PASSPHRASE=y 256*03f9172cSAndroid Build Coastguard Worker 257*03f9172cSAndroid Build Coastguard Worker# Simultaneous Authentication of Equals (SAE), WPA3-Personal 258*03f9172cSAndroid Build Coastguard WorkerCONFIG_SAE=y 259*03f9172cSAndroid Build Coastguard Worker 260*03f9172cSAndroid Build Coastguard Worker# SAE Public Key, WPA3-Personal 261*03f9172cSAndroid Build Coastguard Worker#CONFIG_SAE_PK=y 262*03f9172cSAndroid Build Coastguard Worker 263*03f9172cSAndroid Build Coastguard Worker# Disable scan result processing (ap_scan=1) to save code size by about 1 kB. 264*03f9172cSAndroid Build Coastguard Worker# This can be used if ap_scan=1 mode is never enabled. 265*03f9172cSAndroid Build Coastguard Worker#CONFIG_NO_SCAN_PROCESSING=y 266*03f9172cSAndroid Build Coastguard Worker 267*03f9172cSAndroid Build Coastguard Worker# Select configuration backend: 268*03f9172cSAndroid Build Coastguard Worker# file = text file (e.g., wpa_supplicant.conf; note: the configuration file 269*03f9172cSAndroid Build Coastguard Worker# path is given on command line, not here; this option is just used to 270*03f9172cSAndroid Build Coastguard Worker# select the backend that allows configuration files to be used) 271*03f9172cSAndroid Build Coastguard Worker# winreg = Windows registry (see win_example.reg for an example) 272*03f9172cSAndroid Build Coastguard WorkerCONFIG_BACKEND=file 273*03f9172cSAndroid Build Coastguard Worker 274*03f9172cSAndroid Build Coastguard Worker# Remove configuration write functionality (i.e., to allow the configuration 275*03f9172cSAndroid Build Coastguard Worker# file to be updated based on runtime configuration changes). The runtime 276*03f9172cSAndroid Build Coastguard Worker# configuration can still be changed, the changes are just not going to be 277*03f9172cSAndroid Build Coastguard Worker# persistent over restarts. This option can be used to reduce code size by 278*03f9172cSAndroid Build Coastguard Worker# about 3.5 kB. 279*03f9172cSAndroid Build Coastguard Worker#CONFIG_NO_CONFIG_WRITE=y 280*03f9172cSAndroid Build Coastguard Worker 281*03f9172cSAndroid Build Coastguard Worker# Remove support for configuration blobs to reduce code size by about 1.5 kB. 282*03f9172cSAndroid Build Coastguard Worker#CONFIG_NO_CONFIG_BLOBS=y 283*03f9172cSAndroid Build Coastguard Worker 284*03f9172cSAndroid Build Coastguard Worker# Select program entry point implementation: 285*03f9172cSAndroid Build Coastguard Worker# main = UNIX/POSIX like main() function (default) 286*03f9172cSAndroid Build Coastguard Worker# main_winsvc = Windows service (read parameters from registry) 287*03f9172cSAndroid Build Coastguard Worker# main_none = Very basic example (development use only) 288*03f9172cSAndroid Build Coastguard Worker#CONFIG_MAIN=main 289*03f9172cSAndroid Build Coastguard Worker 290*03f9172cSAndroid Build Coastguard Worker# Select wrapper for operating system and C library specific functions 291*03f9172cSAndroid Build Coastguard Worker# unix = UNIX/POSIX like systems (default) 292*03f9172cSAndroid Build Coastguard Worker# win32 = Windows systems 293*03f9172cSAndroid Build Coastguard Worker# none = Empty template 294*03f9172cSAndroid Build Coastguard Worker#CONFIG_OS=unix 295*03f9172cSAndroid Build Coastguard Worker 296*03f9172cSAndroid Build Coastguard Worker# Select event loop implementation 297*03f9172cSAndroid Build Coastguard Worker# eloop = select() loop (default) 298*03f9172cSAndroid Build Coastguard Worker# eloop_win = Windows events and WaitForMultipleObject() loop 299*03f9172cSAndroid Build Coastguard Worker#CONFIG_ELOOP=eloop 300*03f9172cSAndroid Build Coastguard Worker 301*03f9172cSAndroid Build Coastguard Worker# Should we use poll instead of select? Select is used by default. 302*03f9172cSAndroid Build Coastguard Worker#CONFIG_ELOOP_POLL=y 303*03f9172cSAndroid Build Coastguard Worker 304*03f9172cSAndroid Build Coastguard Worker# Should we use epoll instead of select? Select is used by default. 305*03f9172cSAndroid Build Coastguard Worker#CONFIG_ELOOP_EPOLL=y 306*03f9172cSAndroid Build Coastguard Worker 307*03f9172cSAndroid Build Coastguard Worker# Should we use kqueue instead of select? Select is used by default. 308*03f9172cSAndroid Build Coastguard Worker#CONFIG_ELOOP_KQUEUE=y 309*03f9172cSAndroid Build Coastguard Worker 310*03f9172cSAndroid Build Coastguard Worker# Select layer 2 packet implementation 311*03f9172cSAndroid Build Coastguard Worker# linux = Linux packet socket (default) 312*03f9172cSAndroid Build Coastguard Worker# pcap = libpcap/libdnet/WinPcap 313*03f9172cSAndroid Build Coastguard Worker# freebsd = FreeBSD libpcap 314*03f9172cSAndroid Build Coastguard Worker# winpcap = WinPcap with receive thread 315*03f9172cSAndroid Build Coastguard Worker# ndis = Windows NDISUIO (note: requires CONFIG_USE_NDISUIO=y) 316*03f9172cSAndroid Build Coastguard Worker# none = Empty template 317*03f9172cSAndroid Build Coastguard Worker#CONFIG_L2_PACKET=linux 318*03f9172cSAndroid Build Coastguard Worker 319*03f9172cSAndroid Build Coastguard Worker# Disable Linux packet socket workaround applicable for station interface 320*03f9172cSAndroid Build Coastguard Worker# in a bridge for EAPOL frames. This should be uncommented only if the kernel 321*03f9172cSAndroid Build Coastguard Worker# is known to not have the regression issue in packet socket behavior with 322*03f9172cSAndroid Build Coastguard Worker# bridge interfaces (commit 'bridge: respect RFC2863 operational state')'). 323*03f9172cSAndroid Build Coastguard Worker#CONFIG_NO_LINUX_PACKET_SOCKET_WAR=y 324*03f9172cSAndroid Build Coastguard Worker 325*03f9172cSAndroid Build Coastguard Worker# Support Operating Channel Validation 326*03f9172cSAndroid Build Coastguard Worker#CONFIG_OCV=y 327*03f9172cSAndroid Build Coastguard Worker 328*03f9172cSAndroid Build Coastguard Worker# Select TLS implementation 329*03f9172cSAndroid Build Coastguard Worker# openssl = OpenSSL (default) 330*03f9172cSAndroid Build Coastguard Worker# gnutls = GnuTLS 331*03f9172cSAndroid Build Coastguard Worker# internal = Internal TLSv1 implementation (experimental) 332*03f9172cSAndroid Build Coastguard Worker# linux = Linux kernel AF_ALG and internal TLSv1 implementation (experimental) 333*03f9172cSAndroid Build Coastguard Worker# none = Empty template 334*03f9172cSAndroid Build Coastguard Worker#CONFIG_TLS=openssl 335*03f9172cSAndroid Build Coastguard Worker 336*03f9172cSAndroid Build Coastguard Worker# TLS-based EAP methods require at least TLS v1.0. Newer version of TLS (v1.1) 337*03f9172cSAndroid Build Coastguard Worker# can be enabled to get a stronger construction of messages when block ciphers 338*03f9172cSAndroid Build Coastguard Worker# are used. It should be noted that some existing TLS v1.0 -based 339*03f9172cSAndroid Build Coastguard Worker# implementation may not be compatible with TLS v1.1 message (ClientHello is 340*03f9172cSAndroid Build Coastguard Worker# sent prior to negotiating which version will be used) 341*03f9172cSAndroid Build Coastguard Worker#CONFIG_TLSV11=y 342*03f9172cSAndroid Build Coastguard Worker 343*03f9172cSAndroid Build Coastguard Worker# TLS-based EAP methods require at least TLS v1.0. Newer version of TLS (v1.2) 344*03f9172cSAndroid Build Coastguard Worker# can be enabled to enable use of stronger crypto algorithms. It should be 345*03f9172cSAndroid Build Coastguard Worker# noted that some existing TLS v1.0 -based implementation may not be compatible 346*03f9172cSAndroid Build Coastguard Worker# with TLS v1.2 message (ClientHello is sent prior to negotiating which version 347*03f9172cSAndroid Build Coastguard Worker# will be used) 348*03f9172cSAndroid Build Coastguard Worker#CONFIG_TLSV12=y 349*03f9172cSAndroid Build Coastguard Worker 350*03f9172cSAndroid Build Coastguard Worker# Select which ciphers to use by default with OpenSSL if the user does not 351*03f9172cSAndroid Build Coastguard Worker# specify them. 352*03f9172cSAndroid Build Coastguard Worker#CONFIG_TLS_DEFAULT_CIPHERS="DEFAULT:!EXP:!LOW" 353*03f9172cSAndroid Build Coastguard Worker 354*03f9172cSAndroid Build Coastguard Worker# If CONFIG_TLS=internal is used, additional library and include paths are 355*03f9172cSAndroid Build Coastguard Worker# needed for LibTomMath. Alternatively, an integrated, minimal version of 356*03f9172cSAndroid Build Coastguard Worker# LibTomMath can be used. See beginning of libtommath.c for details on benefits 357*03f9172cSAndroid Build Coastguard Worker# and drawbacks of this option. 358*03f9172cSAndroid Build Coastguard Worker#CONFIG_INTERNAL_LIBTOMMATH=y 359*03f9172cSAndroid Build Coastguard Worker#ifndef CONFIG_INTERNAL_LIBTOMMATH 360*03f9172cSAndroid Build Coastguard Worker#LTM_PATH=/usr/src/libtommath-0.39 361*03f9172cSAndroid Build Coastguard Worker#CFLAGS += -I$(LTM_PATH) 362*03f9172cSAndroid Build Coastguard Worker#LIBS += -L$(LTM_PATH) 363*03f9172cSAndroid Build Coastguard Worker#LIBS_p += -L$(LTM_PATH) 364*03f9172cSAndroid Build Coastguard Worker#endif 365*03f9172cSAndroid Build Coastguard Worker# At the cost of about 4 kB of additional binary size, the internal LibTomMath 366*03f9172cSAndroid Build Coastguard Worker# can be configured to include faster routines for exptmod, sqr, and div to 367*03f9172cSAndroid Build Coastguard Worker# speed up DH and RSA calculation considerably 368*03f9172cSAndroid Build Coastguard Worker#CONFIG_INTERNAL_LIBTOMMATH_FAST=y 369*03f9172cSAndroid Build Coastguard Worker 370*03f9172cSAndroid Build Coastguard Worker# Include NDIS event processing through WMI into wpa_supplicant/wpasvc. 371*03f9172cSAndroid Build Coastguard Worker# This is only for Windows builds and requires WMI-related header files and 372*03f9172cSAndroid Build Coastguard Worker# WbemUuid.Lib from Platform SDK even when building with MinGW. 373*03f9172cSAndroid Build Coastguard Worker#CONFIG_NDIS_EVENTS_INTEGRATED=y 374*03f9172cSAndroid Build Coastguard Worker#PLATFORMSDKLIB="/opt/Program Files/Microsoft Platform SDK/Lib" 375*03f9172cSAndroid Build Coastguard Worker 376*03f9172cSAndroid Build Coastguard Worker# Add support for new DBus control interface 377*03f9172cSAndroid Build Coastguard Worker# (fi.w1.wpa_supplicant1) 378*03f9172cSAndroid Build Coastguard WorkerCONFIG_CTRL_IFACE_DBUS_NEW=y 379*03f9172cSAndroid Build Coastguard Worker 380*03f9172cSAndroid Build Coastguard Worker# Add introspection support for new DBus control interface 381*03f9172cSAndroid Build Coastguard WorkerCONFIG_CTRL_IFACE_DBUS_INTRO=y 382*03f9172cSAndroid Build Coastguard Worker 383*03f9172cSAndroid Build Coastguard Worker# Add support for loading EAP methods dynamically as shared libraries. 384*03f9172cSAndroid Build Coastguard Worker# When this option is enabled, each EAP method can be either included 385*03f9172cSAndroid Build Coastguard Worker# statically (CONFIG_EAP_<method>=y) or dynamically (CONFIG_EAP_<method>=dyn). 386*03f9172cSAndroid Build Coastguard Worker# Dynamic EAP methods are build as shared objects (eap_*.so) and they need to 387*03f9172cSAndroid Build Coastguard Worker# be loaded in the beginning of the wpa_supplicant configuration file 388*03f9172cSAndroid Build Coastguard Worker# (see load_dynamic_eap parameter in the example file) before being used in 389*03f9172cSAndroid Build Coastguard Worker# the network blocks. 390*03f9172cSAndroid Build Coastguard Worker# 391*03f9172cSAndroid Build Coastguard Worker# Note that some shared parts of EAP methods are included in the main program 392*03f9172cSAndroid Build Coastguard Worker# and in order to be able to use dynamic EAP methods using these parts, the 393*03f9172cSAndroid Build Coastguard Worker# main program must have been build with the EAP method enabled (=y or =dyn). 394*03f9172cSAndroid Build Coastguard Worker# This means that EAP-TLS/PEAP/TTLS/FAST cannot be added as dynamic libraries 395*03f9172cSAndroid Build Coastguard Worker# unless at least one of them was included in the main build to force inclusion 396*03f9172cSAndroid Build Coastguard Worker# of the shared code. Similarly, at least one of EAP-SIM/AKA must be included 397*03f9172cSAndroid Build Coastguard Worker# in the main build to be able to load these methods dynamically. 398*03f9172cSAndroid Build Coastguard Worker# 399*03f9172cSAndroid Build Coastguard Worker# Please also note that using dynamic libraries will increase the total binary 400*03f9172cSAndroid Build Coastguard Worker# size. Thus, it may not be the best option for targets that have limited 401*03f9172cSAndroid Build Coastguard Worker# amount of memory/flash. 402*03f9172cSAndroid Build Coastguard Worker#CONFIG_DYNAMIC_EAP_METHODS=y 403*03f9172cSAndroid Build Coastguard Worker 404*03f9172cSAndroid Build Coastguard Worker# Dynamic library loading 405*03f9172cSAndroid Build Coastguard Worker 406*03f9172cSAndroid Build Coastguard Worker# Add the ability to configure libraries to load at compile time. 407*03f9172cSAndroid Build Coastguard Worker# If set, these disable dynamic configuration. 408*03f9172cSAndroid Build Coastguard Worker#CONFIG_PKCS11_ENGINE_PATH - pkcs11_engine library location. 409*03f9172cSAndroid Build Coastguard Worker#CONFIG_PKCS11_MODULE_PATH - pkcs11_module library location. 410*03f9172cSAndroid Build Coastguard Worker#CONFIG_OPENSC_ENGINE_PATH - opensc_engine library location. 411*03f9172cSAndroid Build Coastguard Worker# 412*03f9172cSAndroid Build Coastguard Worker# Prevent library loading at runtime 413*03f9172cSAndroid Build Coastguard Worker#CONFIG_NO_PKCS11_ENGINE_PATH=y # prevents loading pkcs11_engine library. 414*03f9172cSAndroid Build Coastguard Worker#CONFIG_NO_PKCS11_MODULE_PATH=y # prevents loading pkcs11_module library. 415*03f9172cSAndroid Build Coastguard Worker# CONFIG_NO_OPENSC_ENGINE_PATH=y # prevents loading opensc_engine library. 416*03f9172cSAndroid Build Coastguard Worker 417*03f9172cSAndroid Build Coastguard Worker# Prevents loading EAP libraries at runtime 418*03f9172cSAndroid Build Coastguard Worker#CONFIG_NO_LOAD_DYNAMIC_EAP=y 419*03f9172cSAndroid Build Coastguard Worker 420*03f9172cSAndroid Build Coastguard Worker# IEEE Std 802.11r-2008 (Fast BSS Transition) for station mode 421*03f9172cSAndroid Build Coastguard WorkerCONFIG_IEEE80211R=y 422*03f9172cSAndroid Build Coastguard Worker 423*03f9172cSAndroid Build Coastguard Worker# Add support for writing debug log to a file (/tmp/wpa_supplicant-log-#.txt) 424*03f9172cSAndroid Build Coastguard WorkerCONFIG_DEBUG_FILE=y 425*03f9172cSAndroid Build Coastguard Worker 426*03f9172cSAndroid Build Coastguard Worker# Send debug messages to syslog instead of stdout 427*03f9172cSAndroid Build Coastguard WorkerCONFIG_DEBUG_SYSLOG=y 428*03f9172cSAndroid Build Coastguard Worker# Set syslog facility for debug messages 429*03f9172cSAndroid Build Coastguard Worker#CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON 430*03f9172cSAndroid Build Coastguard Worker 431*03f9172cSAndroid Build Coastguard Worker# Add support for sending all debug messages (regardless of debug verbosity) 432*03f9172cSAndroid Build Coastguard Worker# to the Linux kernel tracing facility. This helps debug the entire stack by 433*03f9172cSAndroid Build Coastguard Worker# making it easy to record everything happening from the driver up into the 434*03f9172cSAndroid Build Coastguard Worker# same file, e.g., using trace-cmd. 435*03f9172cSAndroid Build Coastguard Worker#CONFIG_DEBUG_LINUX_TRACING=y 436*03f9172cSAndroid Build Coastguard Worker 437*03f9172cSAndroid Build Coastguard Worker# Add support for writing debug log to Android logcat instead of standard 438*03f9172cSAndroid Build Coastguard Worker# output 439*03f9172cSAndroid Build Coastguard Worker#CONFIG_ANDROID_LOG=y 440*03f9172cSAndroid Build Coastguard Worker 441*03f9172cSAndroid Build Coastguard Worker# Enable privilege separation (see README 'Privilege separation' for details) 442*03f9172cSAndroid Build Coastguard Worker#CONFIG_PRIVSEP=y 443*03f9172cSAndroid Build Coastguard Worker 444*03f9172cSAndroid Build Coastguard Worker# Enable mitigation against certain attacks against TKIP by delaying Michael 445*03f9172cSAndroid Build Coastguard Worker# MIC error reports by a random amount of time between 0 and 60 seconds 446*03f9172cSAndroid Build Coastguard Worker#CONFIG_DELAYED_MIC_ERROR_REPORT=y 447*03f9172cSAndroid Build Coastguard Worker 448*03f9172cSAndroid Build Coastguard Worker# Enable tracing code for developer debugging 449*03f9172cSAndroid Build Coastguard Worker# This tracks use of memory allocations and other registrations and reports 450*03f9172cSAndroid Build Coastguard Worker# incorrect use with a backtrace of call (or allocation) location. 451*03f9172cSAndroid Build Coastguard Worker#CONFIG_WPA_TRACE=y 452*03f9172cSAndroid Build Coastguard Worker# For BSD, uncomment these. 453*03f9172cSAndroid Build Coastguard Worker#LIBS += -lexecinfo 454*03f9172cSAndroid Build Coastguard Worker#LIBS_p += -lexecinfo 455*03f9172cSAndroid Build Coastguard Worker#LIBS_c += -lexecinfo 456*03f9172cSAndroid Build Coastguard Worker 457*03f9172cSAndroid Build Coastguard Worker# Use libbfd to get more details for developer debugging 458*03f9172cSAndroid Build Coastguard Worker# This enables use of libbfd to get more detailed symbols for the backtraces 459*03f9172cSAndroid Build Coastguard Worker# generated by CONFIG_WPA_TRACE=y. 460*03f9172cSAndroid Build Coastguard Worker#CONFIG_WPA_TRACE_BFD=y 461*03f9172cSAndroid Build Coastguard Worker# For BSD, uncomment these. 462*03f9172cSAndroid Build Coastguard Worker#LIBS += -lbfd -liberty -lz 463*03f9172cSAndroid Build Coastguard Worker#LIBS_p += -lbfd -liberty -lz 464*03f9172cSAndroid Build Coastguard Worker#LIBS_c += -lbfd -liberty -lz 465*03f9172cSAndroid Build Coastguard Worker 466*03f9172cSAndroid Build Coastguard Worker# wpa_supplicant depends on strong random number generation being available 467*03f9172cSAndroid Build Coastguard Worker# from the operating system. os_get_random() function is used to fetch random 468*03f9172cSAndroid Build Coastguard Worker# data when needed, e.g., for key generation. On Linux and BSD systems, this 469*03f9172cSAndroid Build Coastguard Worker# works by reading /dev/urandom. It should be noted that the OS entropy pool 470*03f9172cSAndroid Build Coastguard Worker# needs to be properly initialized before wpa_supplicant is started. This is 471*03f9172cSAndroid Build Coastguard Worker# important especially on embedded devices that do not have a hardware random 472*03f9172cSAndroid Build Coastguard Worker# number generator and may by default start up with minimal entropy available 473*03f9172cSAndroid Build Coastguard Worker# for random number generation. 474*03f9172cSAndroid Build Coastguard Worker# 475*03f9172cSAndroid Build Coastguard Worker# As a safety net, wpa_supplicant is by default trying to internally collect 476*03f9172cSAndroid Build Coastguard Worker# additional entropy for generating random data to mix in with the data fetched 477*03f9172cSAndroid Build Coastguard Worker# from the OS. This by itself is not considered to be very strong, but it may 478*03f9172cSAndroid Build Coastguard Worker# help in cases where the system pool is not initialized properly. However, it 479*03f9172cSAndroid Build Coastguard Worker# is very strongly recommended that the system pool is initialized with enough 480*03f9172cSAndroid Build Coastguard Worker# entropy either by using hardware assisted random number generator or by 481*03f9172cSAndroid Build Coastguard Worker# storing state over device reboots. 482*03f9172cSAndroid Build Coastguard Worker# 483*03f9172cSAndroid Build Coastguard Worker# wpa_supplicant can be configured to maintain its own entropy store over 484*03f9172cSAndroid Build Coastguard Worker# restarts to enhance random number generation. This is not perfect, but it is 485*03f9172cSAndroid Build Coastguard Worker# much more secure than using the same sequence of random numbers after every 486*03f9172cSAndroid Build Coastguard Worker# reboot. This can be enabled with -e<entropy file> command line option. The 487*03f9172cSAndroid Build Coastguard Worker# specified file needs to be readable and writable by wpa_supplicant. 488*03f9172cSAndroid Build Coastguard Worker# 489*03f9172cSAndroid Build Coastguard Worker# If the os_get_random() is known to provide strong random data (e.g., on 490*03f9172cSAndroid Build Coastguard Worker# Linux/BSD, the board in question is known to have reliable source of random 491*03f9172cSAndroid Build Coastguard Worker# data from /dev/urandom), the internal wpa_supplicant random pool can be 492*03f9172cSAndroid Build Coastguard Worker# disabled. This will save some in binary size and CPU use. However, this 493*03f9172cSAndroid Build Coastguard Worker# should only be considered for builds that are known to be used on devices 494*03f9172cSAndroid Build Coastguard Worker# that meet the requirements described above. 495*03f9172cSAndroid Build Coastguard Worker#CONFIG_NO_RANDOM_POOL=y 496*03f9172cSAndroid Build Coastguard Worker 497*03f9172cSAndroid Build Coastguard Worker# Should we attempt to use the getrandom(2) call that provides more reliable 498*03f9172cSAndroid Build Coastguard Worker# yet secure randomness source than /dev/random on Linux 3.17 and newer. 499*03f9172cSAndroid Build Coastguard Worker# Requires glibc 2.25 to build, falls back to /dev/random if unavailable. 500*03f9172cSAndroid Build Coastguard Worker#CONFIG_GETRANDOM=y 501*03f9172cSAndroid Build Coastguard Worker 502*03f9172cSAndroid Build Coastguard Worker# IEEE 802.11ac (Very High Throughput) support (mainly for AP mode) 503*03f9172cSAndroid Build Coastguard WorkerCONFIG_IEEE80211AC=y 504*03f9172cSAndroid Build Coastguard Worker 505*03f9172cSAndroid Build Coastguard Worker# IEEE 802.11ax HE support (mainly for AP mode) 506*03f9172cSAndroid Build Coastguard WorkerCONFIG_IEEE80211AX=y 507*03f9172cSAndroid Build Coastguard Worker 508*03f9172cSAndroid Build Coastguard Worker# IEEE 802.11be EHT support (mainly for AP mode) 509*03f9172cSAndroid Build Coastguard Worker# CONFIG_IEEE80211AX is mandatory for setting CONFIG_IEEE80211BE. 510*03f9172cSAndroid Build Coastguard Worker# Note: This is experimental and work in progress. The definitions are still 511*03f9172cSAndroid Build Coastguard Worker# subject to change and this should not be expected to interoperate with the 512*03f9172cSAndroid Build Coastguard Worker# final IEEE 802.11be version. 513*03f9172cSAndroid Build Coastguard Worker#CONFIG_IEEE80211BE=y 514*03f9172cSAndroid Build Coastguard Worker 515*03f9172cSAndroid Build Coastguard Worker# Wireless Network Management (IEEE Std 802.11v-2011) 516*03f9172cSAndroid Build Coastguard Worker# Note: This is experimental and not complete implementation. 517*03f9172cSAndroid Build Coastguard Worker#CONFIG_WNM=y 518*03f9172cSAndroid Build Coastguard Worker 519*03f9172cSAndroid Build Coastguard Worker# Interworking (IEEE 802.11u) 520*03f9172cSAndroid Build Coastguard Worker# This can be used to enable functionality to improve interworking with 521*03f9172cSAndroid Build Coastguard Worker# external networks (GAS/ANQP to learn more about the networks and network 522*03f9172cSAndroid Build Coastguard Worker# selection based on available credentials). 523*03f9172cSAndroid Build Coastguard WorkerCONFIG_INTERWORKING=y 524*03f9172cSAndroid Build Coastguard Worker 525*03f9172cSAndroid Build Coastguard Worker# Hotspot 2.0 526*03f9172cSAndroid Build Coastguard WorkerCONFIG_HS20=y 527*03f9172cSAndroid Build Coastguard Worker 528*03f9172cSAndroid Build Coastguard Worker# Enable interface matching in wpa_supplicant 529*03f9172cSAndroid Build Coastguard Worker#CONFIG_MATCH_IFACE=y 530*03f9172cSAndroid Build Coastguard Worker 531*03f9172cSAndroid Build Coastguard Worker# Disable roaming in wpa_supplicant 532*03f9172cSAndroid Build Coastguard Worker#CONFIG_NO_ROAMING=y 533*03f9172cSAndroid Build Coastguard Worker 534*03f9172cSAndroid Build Coastguard Worker# AP mode operations with wpa_supplicant 535*03f9172cSAndroid Build Coastguard Worker# This can be used for controlling AP mode operations with wpa_supplicant. It 536*03f9172cSAndroid Build Coastguard Worker# should be noted that this is mainly aimed at simple cases like 537*03f9172cSAndroid Build Coastguard Worker# WPA2-Personal while more complex configurations like WPA2-Enterprise with an 538*03f9172cSAndroid Build Coastguard Worker# external RADIUS server can be supported with hostapd. 539*03f9172cSAndroid Build Coastguard WorkerCONFIG_AP=y 540*03f9172cSAndroid Build Coastguard Worker 541*03f9172cSAndroid Build Coastguard Worker# P2P (Wi-Fi Direct) 542*03f9172cSAndroid Build Coastguard Worker# This can be used to enable P2P support in wpa_supplicant. See README-P2P for 543*03f9172cSAndroid Build Coastguard Worker# more information on P2P operations. 544*03f9172cSAndroid Build Coastguard WorkerCONFIG_P2P=y 545*03f9172cSAndroid Build Coastguard Worker 546*03f9172cSAndroid Build Coastguard Worker# Enable TDLS support 547*03f9172cSAndroid Build Coastguard WorkerCONFIG_TDLS=y 548*03f9172cSAndroid Build Coastguard Worker 549*03f9172cSAndroid Build Coastguard Worker# Wi-Fi Display 550*03f9172cSAndroid Build Coastguard Worker# This can be used to enable Wi-Fi Display extensions for P2P using an external 551*03f9172cSAndroid Build Coastguard Worker# program to control the additional information exchanges in the messages. 552*03f9172cSAndroid Build Coastguard WorkerCONFIG_WIFI_DISPLAY=y 553*03f9172cSAndroid Build Coastguard Worker 554*03f9172cSAndroid Build Coastguard Worker# Autoscan 555*03f9172cSAndroid Build Coastguard Worker# This can be used to enable automatic scan support in wpa_supplicant. 556*03f9172cSAndroid Build Coastguard Worker# See wpa_supplicant.conf for more information on autoscan usage. 557*03f9172cSAndroid Build Coastguard Worker# 558*03f9172cSAndroid Build Coastguard Worker# Enabling directly a module will enable autoscan support. 559*03f9172cSAndroid Build Coastguard Worker# For exponential module: 560*03f9172cSAndroid Build Coastguard Worker#CONFIG_AUTOSCAN_EXPONENTIAL=y 561*03f9172cSAndroid Build Coastguard Worker# For periodic module: 562*03f9172cSAndroid Build Coastguard Worker#CONFIG_AUTOSCAN_PERIODIC=y 563*03f9172cSAndroid Build Coastguard Worker 564*03f9172cSAndroid Build Coastguard Worker# Password (and passphrase, etc.) backend for external storage 565*03f9172cSAndroid Build Coastguard Worker# These optional mechanisms can be used to add support for storing passwords 566*03f9172cSAndroid Build Coastguard Worker# and other secrets in external (to wpa_supplicant) location. This allows, for 567*03f9172cSAndroid Build Coastguard Worker# example, operating system specific key storage to be used 568*03f9172cSAndroid Build Coastguard Worker# 569*03f9172cSAndroid Build Coastguard Worker# External password backend for testing purposes (developer use) 570*03f9172cSAndroid Build Coastguard Worker#CONFIG_EXT_PASSWORD_TEST=y 571*03f9172cSAndroid Build Coastguard Worker# File-based backend to read passwords from an external file. 572*03f9172cSAndroid Build Coastguard Worker#CONFIG_EXT_PASSWORD_FILE=y 573*03f9172cSAndroid Build Coastguard Worker 574*03f9172cSAndroid Build Coastguard Worker# Enable Fast Session Transfer (FST) 575*03f9172cSAndroid Build Coastguard Worker#CONFIG_FST=y 576*03f9172cSAndroid Build Coastguard Worker 577*03f9172cSAndroid Build Coastguard Worker# Enable CLI commands for FST testing 578*03f9172cSAndroid Build Coastguard Worker#CONFIG_FST_TEST=y 579*03f9172cSAndroid Build Coastguard Worker 580*03f9172cSAndroid Build Coastguard Worker# OS X builds. This is only for building eapol_test. 581*03f9172cSAndroid Build Coastguard Worker#CONFIG_OSX=y 582*03f9172cSAndroid Build Coastguard Worker 583*03f9172cSAndroid Build Coastguard Worker# Automatic Channel Selection 584*03f9172cSAndroid Build Coastguard Worker# This will allow wpa_supplicant to pick the channel automatically when channel 585*03f9172cSAndroid Build Coastguard Worker# is set to "0". 586*03f9172cSAndroid Build Coastguard Worker# 587*03f9172cSAndroid Build Coastguard Worker# TODO: Extend parser to be able to parse "channel=acs_survey" as an alternative 588*03f9172cSAndroid Build Coastguard Worker# to "channel=0". This would enable us to eventually add other ACS algorithms in 589*03f9172cSAndroid Build Coastguard Worker# similar way. 590*03f9172cSAndroid Build Coastguard Worker# 591*03f9172cSAndroid Build Coastguard Worker# Automatic selection is currently only done through initialization, later on 592*03f9172cSAndroid Build Coastguard Worker# we hope to do background checks to keep us moving to more ideal channels as 593*03f9172cSAndroid Build Coastguard Worker# time goes by. ACS is currently only supported through the nl80211 driver and 594*03f9172cSAndroid Build Coastguard Worker# your driver must have survey dump capability that is filled by the driver 595*03f9172cSAndroid Build Coastguard Worker# during scanning. 596*03f9172cSAndroid Build Coastguard Worker# 597*03f9172cSAndroid Build Coastguard Worker# TODO: In analogy to hostapd be able to customize the ACS survey algorithm with 598*03f9172cSAndroid Build Coastguard Worker# a newly to create wpa_supplicant.conf variable acs_num_scans. 599*03f9172cSAndroid Build Coastguard Worker# 600*03f9172cSAndroid Build Coastguard Worker# Supported ACS drivers: 601*03f9172cSAndroid Build Coastguard Worker# * ath9k 602*03f9172cSAndroid Build Coastguard Worker# * ath5k 603*03f9172cSAndroid Build Coastguard Worker# * ath10k 604*03f9172cSAndroid Build Coastguard Worker# 605*03f9172cSAndroid Build Coastguard Worker# For more details refer to: 606*03f9172cSAndroid Build Coastguard Worker# http://wireless.kernel.org/en/users/Documentation/acs 607*03f9172cSAndroid Build Coastguard Worker#CONFIG_ACS=y 608*03f9172cSAndroid Build Coastguard Worker 609*03f9172cSAndroid Build Coastguard Worker# Support Multi Band Operation 610*03f9172cSAndroid Build Coastguard Worker#CONFIG_MBO=y 611*03f9172cSAndroid Build Coastguard Worker 612*03f9172cSAndroid Build Coastguard Worker# Fast Initial Link Setup (FILS) (IEEE 802.11ai) 613*03f9172cSAndroid Build Coastguard Worker#CONFIG_FILS=y 614*03f9172cSAndroid Build Coastguard Worker# FILS shared key authentication with PFS 615*03f9172cSAndroid Build Coastguard Worker#CONFIG_FILS_SK_PFS=y 616*03f9172cSAndroid Build Coastguard Worker 617*03f9172cSAndroid Build Coastguard Worker# Support RSN on IBSS networks 618*03f9172cSAndroid Build Coastguard Worker# This is needed to be able to use mode=1 network profile with proto=RSN and 619*03f9172cSAndroid Build Coastguard Worker# key_mgmt=WPA-PSK (i.e., full key management instead of WPA-None). 620*03f9172cSAndroid Build Coastguard WorkerCONFIG_IBSS_RSN=y 621*03f9172cSAndroid Build Coastguard Worker 622*03f9172cSAndroid Build Coastguard Worker# External PMKSA cache control 623*03f9172cSAndroid Build Coastguard Worker# This can be used to enable control interface commands that allow the current 624*03f9172cSAndroid Build Coastguard Worker# PMKSA cache entries to be fetched and new entries to be added. 625*03f9172cSAndroid Build Coastguard Worker#CONFIG_PMKSA_CACHE_EXTERNAL=y 626*03f9172cSAndroid Build Coastguard Worker 627*03f9172cSAndroid Build Coastguard Worker# Mesh Networking (IEEE 802.11s) 628*03f9172cSAndroid Build Coastguard Worker#CONFIG_MESH=y 629*03f9172cSAndroid Build Coastguard Worker 630*03f9172cSAndroid Build Coastguard Worker# Background scanning modules 631*03f9172cSAndroid Build Coastguard Worker# These can be used to request wpa_supplicant to perform background scanning 632*03f9172cSAndroid Build Coastguard Worker# operations for roaming within an ESS (same SSID). See the bgscan parameter in 633*03f9172cSAndroid Build Coastguard Worker# the wpa_supplicant.conf file for more details. 634*03f9172cSAndroid Build Coastguard Worker# Periodic background scans based on signal strength 635*03f9172cSAndroid Build Coastguard WorkerCONFIG_BGSCAN_SIMPLE=y 636*03f9172cSAndroid Build Coastguard Worker# Learn channels used by the network and try to avoid bgscans on other 637*03f9172cSAndroid Build Coastguard Worker# channels (experimental) 638*03f9172cSAndroid Build Coastguard Worker#CONFIG_BGSCAN_LEARN=y 639*03f9172cSAndroid Build Coastguard Worker 640*03f9172cSAndroid Build Coastguard Worker# Opportunistic Wireless Encryption (OWE) 641*03f9172cSAndroid Build Coastguard Worker# Experimental implementation of draft-harkins-owe-07.txt 642*03f9172cSAndroid Build Coastguard Worker#CONFIG_OWE=y 643*03f9172cSAndroid Build Coastguard Worker 644*03f9172cSAndroid Build Coastguard Worker# Device Provisioning Protocol (DPP) (also known as Wi-Fi Easy Connect) 645*03f9172cSAndroid Build Coastguard WorkerCONFIG_DPP=y 646*03f9172cSAndroid Build Coastguard Worker# DPP version 2 support 647*03f9172cSAndroid Build Coastguard WorkerCONFIG_DPP2=y 648*03f9172cSAndroid Build Coastguard Worker# DPP version 3 support (experimental and still changing; do not enable for 649*03f9172cSAndroid Build Coastguard Worker# production use) 650*03f9172cSAndroid Build Coastguard Worker#CONFIG_DPP3=y 651*03f9172cSAndroid Build Coastguard Worker 652*03f9172cSAndroid Build Coastguard Worker# WLAN Authentication and Privacy Infrastructure (WAPI): interface only. 653*03f9172cSAndroid Build Coastguard Worker# Configure the building of the interface which allows WAPI configuration. 654*03f9172cSAndroid Build Coastguard Worker# Note: does not configure WAPI implementation itself. 655*03f9172cSAndroid Build Coastguard Worker#CONFIG_WAPI_INTERFACE=y 656*03f9172cSAndroid Build Coastguard Worker 657*03f9172cSAndroid Build Coastguard Worker# Wired equivalent privacy (WEP) 658*03f9172cSAndroid Build Coastguard Worker# WEP is an obsolete cryptographic data confidentiality algorithm that is not 659*03f9172cSAndroid Build Coastguard Worker# considered secure. It should not be used for anything anymore. The 660*03f9172cSAndroid Build Coastguard Worker# functionality needed to use WEP is available in the current wpa_supplicant 661*03f9172cSAndroid Build Coastguard Worker# release under this optional build parameter. This functionality is subject to 662*03f9172cSAndroid Build Coastguard Worker# be completely removed in a future release. 663*03f9172cSAndroid Build Coastguard Worker#CONFIG_WEP=y 664*03f9172cSAndroid Build Coastguard Worker 665*03f9172cSAndroid Build Coastguard Worker# Remove all TKIP functionality 666*03f9172cSAndroid Build Coastguard Worker# TKIP is an old cryptographic data confidentiality algorithm that is not 667*03f9172cSAndroid Build Coastguard Worker# considered secure. It should not be used anymore for anything else than a 668*03f9172cSAndroid Build Coastguard Worker# backwards compatibility option as a group cipher when connecting to APs that 669*03f9172cSAndroid Build Coastguard Worker# use WPA+WPA2 mixed mode. For now, the default wpa_supplicant build includes 670*03f9172cSAndroid Build Coastguard Worker# support for this by default, but that functionality is subject to be removed 671*03f9172cSAndroid Build Coastguard Worker# in the future. 672*03f9172cSAndroid Build Coastguard Worker#CONFIG_NO_TKIP=y 673*03f9172cSAndroid Build Coastguard Worker 674*03f9172cSAndroid Build Coastguard Worker# Pre-Association Security Negotiation (PASN) 675*03f9172cSAndroid Build Coastguard Worker# Experimental implementation based on IEEE P802.11z/D2.6 and the protocol 676*03f9172cSAndroid Build Coastguard Worker# design is still subject to change. As such, this should not yet be enabled in 677*03f9172cSAndroid Build Coastguard Worker# production use. 678*03f9172cSAndroid Build Coastguard Worker#CONFIG_PASN=y 679*03f9172cSAndroid Build Coastguard Worker 680*03f9172cSAndroid Build Coastguard Worker# Disable support for Radio Measurement (IEEE 802.11k) and supported operating 681*03f9172cSAndroid Build Coastguard Worker# class indication. Removing these is not recommended since they can help the 682*03f9172cSAndroid Build Coastguard Worker# AP manage the network and STA steering. 683*03f9172cSAndroid Build Coastguard Worker#CONFIG_NO_RRM=y 684*03f9172cSAndroid Build Coastguard Worker 685*03f9172cSAndroid Build Coastguard Worker# Disable support for Robust AV streaming for consumer and enterprise Wi-Fi 686*03f9172cSAndroid Build Coastguard Worker# applications; IEEE Std 802.11-2020, 4.3.24; SCS, MSCS, QoS Management 687*03f9172cSAndroid Build Coastguard Worker#CONFIG_NO_ROBUST_AV=y 688*03f9172cSAndroid Build Coastguard Worker 689*03f9172cSAndroid Build Coastguard Worker# Disable support for WMM admission control 690*03f9172cSAndroid Build Coastguard Worker#CONFIG_NO_WMM_AC=y 691*03f9172cSAndroid Build Coastguard Worker 692*03f9172cSAndroid Build Coastguard Worker# Wi-Fi Aware unsynchronized service discovery (NAN USD) 693*03f9172cSAndroid Build Coastguard Worker#CONFIG_NAN_USD=y 694