blob: 95dc4e3478d06f3c0faae7c913a20410b93b4d0f [file] [log] [blame]
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001# Example wpa_supplicant build time configuration
2#
3# This file lists the configuration options that are used when building the
Dmitry Shmidtebd93af2017-02-21 13:40:44 -08004# wpa_supplicant binary. All lines starting with # are ignored. Configuration
5# option lines must be commented out complete, if they are not to be included,
6# i.e., just setting VARIABLE=n is not disabling that variable.
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07007#
8# This file is included in Makefile, so variables like CFLAGS and LIBS can also
9# be modified from here. In most cases, these lines should use += in order not
10# to override previous values of the variables.
11
12
13# Uncomment following two lines and fix the paths if you have installed OpenSSL
14# or GnuTLS in non-default location
15#CFLAGS += -I/usr/local/openssl/include
16#LIBS += -L/usr/local/openssl/lib
17
18# Some Red Hat versions seem to include kerberos header files from OpenSSL, but
19# the kerberos files are not in the default include path. Following line can be
20# used to fix build issues on such systems (krb5.h not found).
21#CFLAGS += -I/usr/include/kerberos
22
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070023# Driver interface for generic Linux wireless extensions
24# Note: WEXT is deprecated in the current Linux kernel version and no new
25# functionality is added to it. nl80211-based interface is the new
26# replacement for WEXT and its use allows wpa_supplicant to properly control
27# the driver to improve existing functionality like roaming and to support new
28# functionality.
29CONFIG_DRIVER_WEXT=y
30
31# Driver interface for Linux drivers using the nl80211 kernel interface
32CONFIG_DRIVER_NL80211=y
33
Dmitry Shmidtd80a4012015-11-05 16:35:40 -080034# QCA vendor extensions to nl80211
35#CONFIG_DRIVER_NL80211_QCA=y
36
Dmitry Shmidt344abd32014-01-14 13:17:00 -080037# driver_nl80211.c requires libnl. If you are compiling it yourself
38# you may need to point hostapd to your version of libnl.
39#
40#CFLAGS += -I$<path to libnl include files>
41#LIBS += -L$<path to libnl library files>
42
43# Use libnl v2.0 (or 3.0) libraries.
44#CONFIG_LIBNL20=y
45
46# Use libnl 3.2 libraries (if this is selected, CONFIG_LIBNL20 is ignored)
Hai Shalom74f70d42019-02-11 14:42:39 -080047CONFIG_LIBNL32=y
Dmitry Shmidt344abd32014-01-14 13:17:00 -080048
49
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070050# Driver interface for FreeBSD net80211 layer (e.g., Atheros driver)
51#CONFIG_DRIVER_BSD=y
52#CFLAGS += -I/usr/local/include
53#LIBS += -L/usr/local/lib
54#LIBS_p += -L/usr/local/lib
55#LIBS_c += -L/usr/local/lib
56
57# Driver interface for Windows NDIS
58#CONFIG_DRIVER_NDIS=y
59#CFLAGS += -I/usr/include/w32api/ddk
60#LIBS += -L/usr/local/lib
61# For native build using mingw
62#CONFIG_NATIVE_WINDOWS=y
63# Additional directories for cross-compilation on Linux host for mingw target
64#CFLAGS += -I/opt/mingw/mingw32/include/ddk
65#LIBS += -L/opt/mingw/mingw32/lib
66#CC=mingw32-gcc
67# By default, driver_ndis uses WinPcap for low-level operations. This can be
68# replaced with the following option which replaces WinPcap calls with NDISUIO.
69# However, this requires that WZC is disabled (net stop wzcsvc) before starting
70# wpa_supplicant.
71# CONFIG_USE_NDISUIO=y
72
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070073# Driver interface for wired Ethernet drivers
74CONFIG_DRIVER_WIRED=y
75
Roshan Pius3a1667e2018-07-03 15:17:14 -070076# Driver interface for MACsec capable Qualcomm Atheros drivers
77#CONFIG_DRIVER_MACSEC_QCA=y
78
79# Driver interface for Linux MACsec drivers
Hai Shalomfdcde762020-04-02 11:19:20 -070080CONFIG_DRIVER_MACSEC_LINUX=y
Roshan Pius3a1667e2018-07-03 15:17:14 -070081
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070082# Driver interface for the Broadcom RoboSwitch family
83#CONFIG_DRIVER_ROBOSWITCH=y
84
85# Driver interface for no driver (e.g., WPS ER only)
86#CONFIG_DRIVER_NONE=y
87
88# Solaris libraries
89#LIBS += -lsocket -ldlpi -lnsl
90#LIBS_c += -lsocket
91
Roshan Pius3a1667e2018-07-03 15:17:14 -070092# Enable IEEE 802.1X Supplicant (automatically included if any EAP method or
93# MACsec is included)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070094CONFIG_IEEE8021X_EAPOL=y
95
96# EAP-MD5
97CONFIG_EAP_MD5=y
98
99# EAP-MSCHAPv2
100CONFIG_EAP_MSCHAPV2=y
101
102# EAP-TLS
103CONFIG_EAP_TLS=y
Sunil Ravi59fa4b42022-05-02 22:54:18 -0700104# Enable EAP-TLSv1.3 support by default (currently disabled unless explicitly
105# enabled in network configuration)
106#CONFIG_EAP_TLSV1_3=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700107
108# EAL-PEAP
109CONFIG_EAP_PEAP=y
110
111# EAP-TTLS
112CONFIG_EAP_TTLS=y
113
114# EAP-FAST
Hai Shalom021b0b52019-04-10 11:17:58 -0700115CONFIG_EAP_FAST=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700116
Hai Shalom81f62d82019-07-22 12:10:00 -0700117# EAP-TEAP
118# Note: The current EAP-TEAP implementation is experimental and should not be
119# enabled for production use. The IETF RFC 7170 that defines EAP-TEAP has number
120# of conflicting statements and missing details and the implementation has
121# vendor specific workarounds for those and as such, may not interoperate with
122# any other implementation. This should not be used for anything else than
123# experimentation and interoperability testing until those issues has been
124# resolved.
125#CONFIG_EAP_TEAP=y
126
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700127# EAP-GTC
128CONFIG_EAP_GTC=y
129
130# EAP-OTP
131CONFIG_EAP_OTP=y
132
133# EAP-SIM (enable CONFIG_PCSC, if EAP-SIM is used)
134#CONFIG_EAP_SIM=y
135
Hai Shalom81f62d82019-07-22 12:10:00 -0700136# Enable SIM simulator (Milenage) for EAP-SIM
137#CONFIG_SIM_SIMULATOR=y
138
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700139# EAP-PSK (experimental; this is _not_ needed for WPA-PSK)
140#CONFIG_EAP_PSK=y
141
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800142# EAP-pwd (secure authentication using only a password)
Hai Shalom021b0b52019-04-10 11:17:58 -0700143CONFIG_EAP_PWD=y
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800144
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700145# EAP-PAX
Hai Shalom021b0b52019-04-10 11:17:58 -0700146CONFIG_EAP_PAX=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700147
148# LEAP
149CONFIG_EAP_LEAP=y
150
151# EAP-AKA (enable CONFIG_PCSC, if EAP-AKA is used)
152#CONFIG_EAP_AKA=y
153
154# EAP-AKA' (enable CONFIG_PCSC, if EAP-AKA' is used).
155# This requires CONFIG_EAP_AKA to be enabled, too.
156#CONFIG_EAP_AKA_PRIME=y
157
158# Enable USIM simulator (Milenage) for EAP-AKA
159#CONFIG_USIM_SIMULATOR=y
160
161# EAP-SAKE
Hai Shalom021b0b52019-04-10 11:17:58 -0700162CONFIG_EAP_SAKE=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700163
164# EAP-GPSK
Hai Shalom021b0b52019-04-10 11:17:58 -0700165CONFIG_EAP_GPSK=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700166# Include support for optional SHA256 cipher suite in EAP-GPSK
Hai Shalom021b0b52019-04-10 11:17:58 -0700167CONFIG_EAP_GPSK_SHA256=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700168
169# EAP-TNC and related Trusted Network Connect support (experimental)
Hai Shalom021b0b52019-04-10 11:17:58 -0700170CONFIG_EAP_TNC=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700171
172# Wi-Fi Protected Setup (WPS)
Hai Shalom021b0b52019-04-10 11:17:58 -0700173CONFIG_WPS=y
Jouni Malinen75ecf522011-06-27 15:19:46 -0700174# Enable WPS external registrar functionality
175#CONFIG_WPS_ER=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800176# Disable credentials for an open network by default when acting as a WPS
177# registrar.
178#CONFIG_WPS_REG_DISABLE_OPEN=y
Dmitry Shmidt04949592012-07-19 12:16:46 -0700179# Enable WPS support with NFC config method
180#CONFIG_WPS_NFC=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700181
182# EAP-IKEv2
Hai Shalom021b0b52019-04-10 11:17:58 -0700183CONFIG_EAP_IKEV2=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700184
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700185# EAP-EKE
186#CONFIG_EAP_EKE=y
187
Roshan Pius3a1667e2018-07-03 15:17:14 -0700188# MACsec
Hai Shalomfdcde762020-04-02 11:19:20 -0700189CONFIG_MACSEC=y
Roshan Pius3a1667e2018-07-03 15:17:14 -0700190
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700191# PKCS#12 (PFX) support (used to read private key and certificate file from
192# a file that usually has extension .p12 or .pfx)
193CONFIG_PKCS12=y
194
195# Smartcard support (i.e., private key on a smartcard), e.g., with openssl
196# engine.
197CONFIG_SMARTCARD=y
198
199# PC/SC interface for smartcards (USIM, GSM SIM)
200# Enable this if EAP-SIM or EAP-AKA is included
201#CONFIG_PCSC=y
202
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800203# Support HT overrides (disable HT/HT40, mask MCS rates, etc.)
204#CONFIG_HT_OVERRIDES=y
205
Dmitry Shmidt2f023192013-03-12 12:44:17 -0700206# Support VHT overrides (disable VHT, mask MCS rates, etc.)
207#CONFIG_VHT_OVERRIDES=y
208
Sunil Ravi59fa4b42022-05-02 22:54:18 -0700209# Support HE overrides
210#CONFIG_HE_OVERRIDES=y
211
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700212# Development testing
213#CONFIG_EAPOL_TEST=y
214
215# Select control interface backend for external programs, e.g, wpa_cli:
216# unix = UNIX domain sockets (default for Linux/*BSD)
217# udp = UDP sockets using localhost (127.0.0.1)
Dmitry Shmidtf21452a2014-02-26 10:55:25 -0800218# udp6 = UDP IPv6 sockets using localhost (::1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700219# named_pipe = Windows Named Pipe (default for Windows)
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700220# udp-remote = UDP sockets with remote access (only for tests systems/purpose)
Dmitry Shmidtf21452a2014-02-26 10:55:25 -0800221# udp6-remote = UDP IPv6 sockets with remote access (only for tests purpose)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700222# y = use default (backwards compatibility)
223# If this option is commented out, control interface is not included in the
224# build.
225CONFIG_CTRL_IFACE=y
226
227# Include support for GNU Readline and History Libraries in wpa_cli.
228# When building a wpa_cli binary for distribution, please note that these
229# libraries are licensed under GPL and as such, BSD license may not apply for
230# the resulting binary.
231#CONFIG_READLINE=y
232
233# Include internal line edit mode in wpa_cli. This can be used as a replacement
234# for GNU Readline to provide limited command line editing and history support.
235#CONFIG_WPA_CLI_EDIT=y
236
237# Remove debugging code that is printing out debug message to stdout.
238# This can be used to reduce the size of the wpa_supplicant considerably
239# if debugging code is not needed. The size reduction can be around 35%
240# (e.g., 90 kB).
241#CONFIG_NO_STDOUT_DEBUG=y
242
243# Remove WPA support, e.g., for wired-only IEEE 802.1X supplicant, to save
244# 35-50 kB in code size.
245#CONFIG_NO_WPA=y
246
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700247# Remove IEEE 802.11i/WPA-Personal ASCII passphrase support
248# This option can be used to reduce code size by removing support for
249# converting ASCII passphrases into PSK. If this functionality is removed, the
250# PSK can only be configured as the 64-octet hexstring (e.g., from
251# wpa_passphrase). This saves about 0.5 kB in code size.
252#CONFIG_NO_WPA_PASSPHRASE=y
253
Hai Shalom021b0b52019-04-10 11:17:58 -0700254# Simultaneous Authentication of Equals (SAE), WPA3-Personal
255CONFIG_SAE=y
256
Sunil Ravi59fa4b42022-05-02 22:54:18 -0700257# SAE Public Key, WPA3-Personal
258#CONFIG_SAE_PK=y
259
Hai Shalomfdcde762020-04-02 11:19:20 -0700260# Disable scan result processing (ap_scan=1) to save code size by about 1 kB.
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700261# This can be used if ap_scan=1 mode is never enabled.
262#CONFIG_NO_SCAN_PROCESSING=y
263
264# Select configuration backend:
265# file = text file (e.g., wpa_supplicant.conf; note: the configuration file
266# path is given on command line, not here; this option is just used to
267# select the backend that allows configuration files to be used)
268# winreg = Windows registry (see win_example.reg for an example)
269CONFIG_BACKEND=file
270
271# Remove configuration write functionality (i.e., to allow the configuration
272# file to be updated based on runtime configuration changes). The runtime
273# configuration can still be changed, the changes are just not going to be
274# persistent over restarts. This option can be used to reduce code size by
275# about 3.5 kB.
276#CONFIG_NO_CONFIG_WRITE=y
277
278# Remove support for configuration blobs to reduce code size by about 1.5 kB.
279#CONFIG_NO_CONFIG_BLOBS=y
280
281# Select program entry point implementation:
282# main = UNIX/POSIX like main() function (default)
283# main_winsvc = Windows service (read parameters from registry)
284# main_none = Very basic example (development use only)
285#CONFIG_MAIN=main
286
Dmitry Shmidt50b691d2014-05-21 14:01:45 -0700287# Select wrapper for operating system and C library specific functions
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700288# unix = UNIX/POSIX like systems (default)
289# win32 = Windows systems
290# none = Empty template
291#CONFIG_OS=unix
292
293# Select event loop implementation
294# eloop = select() loop (default)
295# eloop_win = Windows events and WaitForMultipleObject() loop
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700296#CONFIG_ELOOP=eloop
297
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800298# Should we use poll instead of select? Select is used by default.
299#CONFIG_ELOOP_POLL=y
300
Dmitry Shmidt50b691d2014-05-21 14:01:45 -0700301# Should we use epoll instead of select? Select is used by default.
302#CONFIG_ELOOP_EPOLL=y
303
Dmitry Shmidt57c2d392016-02-23 13:40:19 -0800304# Should we use kqueue instead of select? Select is used by default.
305#CONFIG_ELOOP_KQUEUE=y
306
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700307# Select layer 2 packet implementation
308# linux = Linux packet socket (default)
309# pcap = libpcap/libdnet/WinPcap
310# freebsd = FreeBSD libpcap
311# winpcap = WinPcap with receive thread
312# ndis = Windows NDISUIO (note: requires CONFIG_USE_NDISUIO=y)
313# none = Empty template
314#CONFIG_L2_PACKET=linux
315
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800316# Disable Linux packet socket workaround applicable for station interface
317# in a bridge for EAPOL frames. This should be uncommented only if the kernel
318# is known to not have the regression issue in packet socket behavior with
319# bridge interfaces (commit 'bridge: respect RFC2863 operational state')').
320#CONFIG_NO_LINUX_PACKET_SOCKET_WAR=y
321
Hai Shalom74f70d42019-02-11 14:42:39 -0800322# Support Operating Channel Validation
323#CONFIG_OCV=y
324
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700325# Select TLS implementation
326# openssl = OpenSSL (default)
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800327# gnutls = GnuTLS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700328# internal = Internal TLSv1 implementation (experimental)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700329# linux = Linux kernel AF_ALG and internal TLSv1 implementation (experimental)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700330# none = Empty template
331#CONFIG_TLS=openssl
332
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800333# TLS-based EAP methods require at least TLS v1.0. Newer version of TLS (v1.1)
334# can be enabled to get a stronger construction of messages when block ciphers
335# are used. It should be noted that some existing TLS v1.0 -based
336# implementation may not be compatible with TLS v1.1 message (ClientHello is
337# sent prior to negotiating which version will be used)
338#CONFIG_TLSV11=y
339
340# TLS-based EAP methods require at least TLS v1.0. Newer version of TLS (v1.2)
341# can be enabled to enable use of stronger crypto algorithms. It should be
342# noted that some existing TLS v1.0 -based implementation may not be compatible
343# with TLS v1.2 message (ClientHello is sent prior to negotiating which version
344# will be used)
345#CONFIG_TLSV12=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700346
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700347# Select which ciphers to use by default with OpenSSL if the user does not
348# specify them.
349#CONFIG_TLS_DEFAULT_CIPHERS="DEFAULT:!EXP:!LOW"
350
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700351# If CONFIG_TLS=internal is used, additional library and include paths are
352# needed for LibTomMath. Alternatively, an integrated, minimal version of
353# LibTomMath can be used. See beginning of libtommath.c for details on benefits
354# and drawbacks of this option.
355#CONFIG_INTERNAL_LIBTOMMATH=y
356#ifndef CONFIG_INTERNAL_LIBTOMMATH
357#LTM_PATH=/usr/src/libtommath-0.39
358#CFLAGS += -I$(LTM_PATH)
359#LIBS += -L$(LTM_PATH)
360#LIBS_p += -L$(LTM_PATH)
361#endif
362# At the cost of about 4 kB of additional binary size, the internal LibTomMath
363# can be configured to include faster routines for exptmod, sqr, and div to
364# speed up DH and RSA calculation considerably
365#CONFIG_INTERNAL_LIBTOMMATH_FAST=y
366
367# Include NDIS event processing through WMI into wpa_supplicant/wpasvc.
368# This is only for Windows builds and requires WMI-related header files and
369# WbemUuid.Lib from Platform SDK even when building with MinGW.
370#CONFIG_NDIS_EVENTS_INTEGRATED=y
371#PLATFORMSDKLIB="/opt/Program Files/Microsoft Platform SDK/Lib"
372
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700373# Add support for new DBus control interface
Hai Shalomc3565922019-10-28 11:58:20 -0700374# (fi.w1.wpa_supplicant1)
Hai Shalom021b0b52019-04-10 11:17:58 -0700375CONFIG_CTRL_IFACE_DBUS_NEW=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700376
377# Add introspection support for new DBus control interface
Hai Shalom021b0b52019-04-10 11:17:58 -0700378CONFIG_CTRL_IFACE_DBUS_INTRO=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700379
380# Add support for loading EAP methods dynamically as shared libraries.
381# When this option is enabled, each EAP method can be either included
382# statically (CONFIG_EAP_<method>=y) or dynamically (CONFIG_EAP_<method>=dyn).
383# Dynamic EAP methods are build as shared objects (eap_*.so) and they need to
384# be loaded in the beginning of the wpa_supplicant configuration file
385# (see load_dynamic_eap parameter in the example file) before being used in
386# the network blocks.
387#
388# Note that some shared parts of EAP methods are included in the main program
389# and in order to be able to use dynamic EAP methods using these parts, the
390# main program must have been build with the EAP method enabled (=y or =dyn).
391# This means that EAP-TLS/PEAP/TTLS/FAST cannot be added as dynamic libraries
392# unless at least one of them was included in the main build to force inclusion
393# of the shared code. Similarly, at least one of EAP-SIM/AKA must be included
394# in the main build to be able to load these methods dynamically.
395#
396# Please also note that using dynamic libraries will increase the total binary
397# size. Thus, it may not be the best option for targets that have limited
398# amount of memory/flash.
399#CONFIG_DYNAMIC_EAP_METHODS=y
400
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800401# IEEE Std 802.11r-2008 (Fast BSS Transition) for station mode
Hai Shalom021b0b52019-04-10 11:17:58 -0700402CONFIG_IEEE80211R=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700403
404# Add support for writing debug log to a file (/tmp/wpa_supplicant-log-#.txt)
Hai Shalom021b0b52019-04-10 11:17:58 -0700405CONFIG_DEBUG_FILE=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700406
407# Send debug messages to syslog instead of stdout
Hai Shalom021b0b52019-04-10 11:17:58 -0700408CONFIG_DEBUG_SYSLOG=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700409# Set syslog facility for debug messages
410#CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON
411
Dmitry Shmidt04949592012-07-19 12:16:46 -0700412# Add support for sending all debug messages (regardless of debug verbosity)
413# to the Linux kernel tracing facility. This helps debug the entire stack by
414# making it easy to record everything happening from the driver up into the
415# same file, e.g., using trace-cmd.
416#CONFIG_DEBUG_LINUX_TRACING=y
417
Dmitry Shmidt51b6ea82013-05-08 10:42:09 -0700418# Add support for writing debug log to Android logcat instead of standard
419# output
420#CONFIG_ANDROID_LOG=y
421
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700422# Enable privilege separation (see README 'Privilege separation' for details)
423#CONFIG_PRIVSEP=y
424
425# Enable mitigation against certain attacks against TKIP by delaying Michael
426# MIC error reports by a random amount of time between 0 and 60 seconds
427#CONFIG_DELAYED_MIC_ERROR_REPORT=y
428
429# Enable tracing code for developer debugging
430# This tracks use of memory allocations and other registrations and reports
431# incorrect use with a backtrace of call (or allocation) location.
432#CONFIG_WPA_TRACE=y
Dmitry Shmidt04949592012-07-19 12:16:46 -0700433# For BSD, uncomment these.
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700434#LIBS += -lexecinfo
435#LIBS_p += -lexecinfo
436#LIBS_c += -lexecinfo
437
438# Use libbfd to get more details for developer debugging
439# This enables use of libbfd to get more detailed symbols for the backtraces
440# generated by CONFIG_WPA_TRACE=y.
441#CONFIG_WPA_TRACE_BFD=y
Dmitry Shmidt04949592012-07-19 12:16:46 -0700442# For BSD, uncomment these.
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700443#LIBS += -lbfd -liberty -lz
444#LIBS_p += -lbfd -liberty -lz
445#LIBS_c += -lbfd -liberty -lz
446
447# wpa_supplicant depends on strong random number generation being available
448# from the operating system. os_get_random() function is used to fetch random
449# data when needed, e.g., for key generation. On Linux and BSD systems, this
450# works by reading /dev/urandom. It should be noted that the OS entropy pool
451# needs to be properly initialized before wpa_supplicant is started. This is
452# important especially on embedded devices that do not have a hardware random
453# number generator and may by default start up with minimal entropy available
454# for random number generation.
455#
456# As a safety net, wpa_supplicant is by default trying to internally collect
457# additional entropy for generating random data to mix in with the data fetched
458# from the OS. This by itself is not considered to be very strong, but it may
459# help in cases where the system pool is not initialized properly. However, it
460# is very strongly recommended that the system pool is initialized with enough
Jouni Malinen75ecf522011-06-27 15:19:46 -0700461# entropy either by using hardware assisted random number generator or by
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700462# storing state over device reboots.
463#
Jouni Malinen75ecf522011-06-27 15:19:46 -0700464# wpa_supplicant can be configured to maintain its own entropy store over
465# restarts to enhance random number generation. This is not perfect, but it is
466# much more secure than using the same sequence of random numbers after every
467# reboot. This can be enabled with -e<entropy file> command line option. The
468# specified file needs to be readable and writable by wpa_supplicant.
469#
470# If the os_get_random() is known to provide strong random data (e.g., on
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700471# Linux/BSD, the board in question is known to have reliable source of random
472# data from /dev/urandom), the internal wpa_supplicant random pool can be
473# disabled. This will save some in binary size and CPU use. However, this
474# should only be considered for builds that are known to be used on devices
475# that meet the requirements described above.
476#CONFIG_NO_RANDOM_POOL=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800477
Hai Shalom74f70d42019-02-11 14:42:39 -0800478# Should we attempt to use the getrandom(2) call that provides more reliable
479# yet secure randomness source than /dev/random on Linux 3.17 and newer.
480# Requires glibc 2.25 to build, falls back to /dev/random if unavailable.
481#CONFIG_GETRANDOM=y
482
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700483# IEEE 802.11ac (Very High Throughput) support (mainly for AP mode)
Hai Shalom021b0b52019-04-10 11:17:58 -0700484CONFIG_IEEE80211AC=y
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700485
Sunil Ravi59fa4b42022-05-02 22:54:18 -0700486# IEEE 802.11ax HE support (mainly for AP mode)
487CONFIG_IEEE80211AX=y
488
489# IEEE 802.11be EHT support (mainly for AP mode)
490# CONFIG_IEEE80211AX is mandatory for setting CONFIG_IEEE80211BE.
491# Note: This is experimental and work in progress. The definitions are still
492# subject to change and this should not be expected to interoperate with the
493# final IEEE 802.11be version.
494#CONFIG_IEEE80211BE=y
495
Dmitry Shmidt04949592012-07-19 12:16:46 -0700496# Wireless Network Management (IEEE Std 802.11v-2011)
497# Note: This is experimental and not complete implementation.
498#CONFIG_WNM=y
499
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800500# Interworking (IEEE 802.11u)
501# This can be used to enable functionality to improve interworking with
502# external networks (GAS/ANQP to learn more about the networks and network
503# selection based on available credentials).
Hai Shalom021b0b52019-04-10 11:17:58 -0700504CONFIG_INTERWORKING=y
Dmitry Shmidt04949592012-07-19 12:16:46 -0700505
506# Hotspot 2.0
Hai Shalom021b0b52019-04-10 11:17:58 -0700507CONFIG_HS20=y
Dmitry Shmidt04949592012-07-19 12:16:46 -0700508
Dmitry Shmidte4663042016-04-04 10:07:49 -0700509# Enable interface matching in wpa_supplicant
510#CONFIG_MATCH_IFACE=y
511
Dmitry Shmidt51b6ea82013-05-08 10:42:09 -0700512# Disable roaming in wpa_supplicant
513#CONFIG_NO_ROAMING=y
514
Dmitry Shmidt04949592012-07-19 12:16:46 -0700515# AP mode operations with wpa_supplicant
516# This can be used for controlling AP mode operations with wpa_supplicant. It
517# should be noted that this is mainly aimed at simple cases like
518# WPA2-Personal while more complex configurations like WPA2-Enterprise with an
519# external RADIUS server can be supported with hostapd.
Hai Shalom021b0b52019-04-10 11:17:58 -0700520CONFIG_AP=y
Dmitry Shmidt04949592012-07-19 12:16:46 -0700521
522# P2P (Wi-Fi Direct)
523# This can be used to enable P2P support in wpa_supplicant. See README-P2P for
524# more information on P2P operations.
Hai Shalom021b0b52019-04-10 11:17:58 -0700525CONFIG_P2P=y
Dmitry Shmidt04949592012-07-19 12:16:46 -0700526
Dmitry Shmidt51b6ea82013-05-08 10:42:09 -0700527# Enable TDLS support
Hai Shalom4fbc08f2020-05-18 12:37:00 -0700528CONFIG_TDLS=y
Dmitry Shmidt51b6ea82013-05-08 10:42:09 -0700529
Hai Shalom021b0b52019-04-10 11:17:58 -0700530# Wi-Fi Display
531# This can be used to enable Wi-Fi Display extensions for P2P using an external
Dmitry Shmidtfa3fc4a2013-11-21 13:34:38 -0800532# program to control the additional information exchanges in the messages.
Hai Shalom021b0b52019-04-10 11:17:58 -0700533CONFIG_WIFI_DISPLAY=y
Dmitry Shmidtfa3fc4a2013-11-21 13:34:38 -0800534
Dmitry Shmidt04949592012-07-19 12:16:46 -0700535# Autoscan
536# This can be used to enable automatic scan support in wpa_supplicant.
Dmitry Shmidtcce06662013-11-04 18:44:24 -0800537# See wpa_supplicant.conf for more information on autoscan usage.
Dmitry Shmidt04949592012-07-19 12:16:46 -0700538#
539# Enabling directly a module will enable autoscan support.
540# For exponential module:
541#CONFIG_AUTOSCAN_EXPONENTIAL=y
542# For periodic module:
543#CONFIG_AUTOSCAN_PERIODIC=y
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700544
545# Password (and passphrase, etc.) backend for external storage
546# These optional mechanisms can be used to add support for storing passwords
547# and other secrets in external (to wpa_supplicant) location. This allows, for
548# example, operating system specific key storage to be used
549#
550# External password backend for testing purposes (developer use)
551#CONFIG_EXT_PASSWORD_TEST=y
Hai Shalom60840252021-02-19 19:02:11 -0800552# File-based backend to read passwords from an external file.
553#CONFIG_EXT_PASSWORD_FILE=y
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800554
555# Enable Fast Session Transfer (FST)
556#CONFIG_FST=y
557
558# Enable CLI commands for FST testing
559#CONFIG_FST_TEST=y
560
561# OS X builds. This is only for building eapol_test.
562#CONFIG_OSX=y
Dmitry Shmidt014a3ff2015-12-28 13:27:49 -0800563
564# Automatic Channel Selection
565# This will allow wpa_supplicant to pick the channel automatically when channel
566# is set to "0".
567#
568# TODO: Extend parser to be able to parse "channel=acs_survey" as an alternative
569# to "channel=0". This would enable us to eventually add other ACS algorithms in
570# similar way.
571#
572# Automatic selection is currently only done through initialization, later on
573# we hope to do background checks to keep us moving to more ideal channels as
574# time goes by. ACS is currently only supported through the nl80211 driver and
575# your driver must have survey dump capability that is filled by the driver
576# during scanning.
577#
578# TODO: In analogy to hostapd be able to customize the ACS survey algorithm with
579# a newly to create wpa_supplicant.conf variable acs_num_scans.
580#
581# Supported ACS drivers:
582# * ath9k
583# * ath5k
584# * ath10k
585#
586# For more details refer to:
587# http://wireless.kernel.org/en/users/Documentation/acs
588#CONFIG_ACS=y
Dmitry Shmidt57c2d392016-02-23 13:40:19 -0800589
590# Support Multi Band Operation
591#CONFIG_MBO=y
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800592
593# Fast Initial Link Setup (FILS) (IEEE 802.11ai)
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800594#CONFIG_FILS=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700595# FILS shared key authentication with PFS
596#CONFIG_FILS_SK_PFS=y
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800597
598# Support RSN on IBSS networks
599# This is needed to be able to use mode=1 network profile with proto=RSN and
600# key_mgmt=WPA-PSK (i.e., full key management instead of WPA-None).
Hai Shalom021b0b52019-04-10 11:17:58 -0700601CONFIG_IBSS_RSN=y
Dmitry Shmidt29333592017-01-09 12:27:11 -0800602
603# External PMKSA cache control
604# This can be used to enable control interface commands that allow the current
605# PMKSA cache entries to be fetched and new entries to be added.
606#CONFIG_PMKSA_CACHE_EXTERNAL=y
607
608# Mesh Networking (IEEE 802.11s)
609#CONFIG_MESH=y
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800610
611# Background scanning modules
612# These can be used to request wpa_supplicant to perform background scanning
613# operations for roaming within an ESS (same SSID). See the bgscan parameter in
614# the wpa_supplicant.conf file for more details.
615# Periodic background scans based on signal strength
Hai Shalom021b0b52019-04-10 11:17:58 -0700616CONFIG_BGSCAN_SIMPLE=y
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800617# Learn channels used by the network and try to avoid bgscans on other
618# channels (experimental)
619#CONFIG_BGSCAN_LEARN=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700620
621# Opportunistic Wireless Encryption (OWE)
622# Experimental implementation of draft-harkins-owe-07.txt
623#CONFIG_OWE=y
Hai Shalom021b0b52019-04-10 11:17:58 -0700624
Hai Shalomc1a21442022-02-04 13:43:00 -0800625# Device Provisioning Protocol (DPP) (also known as Wi-Fi Easy Connect)
Hai Shalom021b0b52019-04-10 11:17:58 -0700626CONFIG_DPP=y
Hai Shalomc1a21442022-02-04 13:43:00 -0800627# DPP version 2 support
628CONFIG_DPP2=y
629# DPP version 3 support (experimental and still changing; do not enable for
630# production use)
631#CONFIG_DPP3=y
Jimmy Chencaaac072019-09-16 16:36:06 +0800632
633# WLAN Authentication and Privacy Infrastructure (WAPI): interface only.
634# Configure the building of the interface which allows WAPI configuration.
635# Note: does not configure WAPI implementation itself.
636#CONFIG_WAPI_INTERFACE=y
Hai Shalomfdcde762020-04-02 11:19:20 -0700637
638# Wired equivalent privacy (WEP)
639# WEP is an obsolete cryptographic data confidentiality algorithm that is not
640# considered secure. It should not be used for anything anymore. The
641# functionality needed to use WEP is available in the current wpa_supplicant
642# release under this optional build parameter. This functionality is subject to
643# be completely removed in a future release.
644#CONFIG_WEP=y
645
Hai Shalomb755a2a2020-04-23 21:49:02 -0700646# Remove all TKIP functionality
647# TKIP is an old cryptographic data confidentiality algorithm that is not
648# considered secure. It should not be used anymore for anything else than a
649# backwards compatibility option as a group cipher when connecting to APs that
650# use WPA+WPA2 mixed mode. For now, the default wpa_supplicant build includes
651# support for this by default, but that functionality is subject to be removed
652# in the future.
653#CONFIG_NO_TKIP=y
654
Hai Shalom60840252021-02-19 19:02:11 -0800655# Pre-Association Security Negotiation (PASN)
656# Experimental implementation based on IEEE P802.11z/D2.6 and the protocol
657# design is still subject to change. As such, this should not yet be enabled in
658# production use.
659#CONFIG_PASN=y
660