# Copyright 2020 Espressif Systems (Shanghai) PTE LTD

menuconfig WIFI_ESP32
	bool "ESP32 SoC WiFi support"
	default y
	depends on DT_HAS_ESPRESSIF_ESP32_WIFI_ENABLED
	depends on !SMP
	select THREAD_CUSTOM_DATA
	select NET_L2_WIFI_MGMT
	select WIFI_USE_NATIVE_NETWORKING
	select MBEDTLS
	select MBEDTLS_ENTROPY_ENABLED
	select MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
	select MBEDTLS_ECP_ALL_ENABLED
	select MBEDTLS_ECDH_C
	select MBEDTLS_ECDSA_C
	select MBEDTLS_ECP_C
	help
	  Enable ESP32 SoC WiFi support. Only supported in single
	  core mode because the network stack is not aware of SMP
	  stuff.

if WIFI_ESP32

config ESP32_WIFI_STA_AUTO_DHCPV4
	bool "Automatically starts DHCP4 negotiation"
	depends on NET_DHCPV4
	depends on NET_IPV4
	help
	  WiFi driver will automatically initiate DHCPV4 negotiation when connected.

config ESP32_WIFI_STA_RECONNECT
	bool "WiFi connection retry"
	help
	  Set auto WiFI reconnection when disconnected.

config ESP32_WIFI_EVENT_TASK_STACK_SIZE
	int "Event Task Stack Size"
	default 4096

config ESP32_WIFI_EVENT_TASK_PRIO
	int "Event Task Priority"
	default 4

config ESP32_WIFI_STATIC_RX_BUFFER_NUM
	int "Max number of WiFi static RX buffers"
	range 2 25
	default 10
	help
	  Set the number of WiFi static RX buffers. Each buffer takes approximately
	  1.6KB of RAM. The static rx buffers are allocated when esp_wifi_init is
	  called, they are not freed until esp_wifi_deinit is called.

	  WiFi hardware use these buffers to receive all 802.11 frames. A higher
	  number may allow higher throughput but increases memory use.
	  If ESP32_WIFI_AMPDU_RX_ENABLED is enabled, this value is recommended to
	  set equal or bigger than ESP32_WIFI_RX_BA_WIN in order to achieve better
	  throughput and compatibility with both stations and APs.

config ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM
	int "Max number of WiFi dynamic RX buffers"
	range 0 128
	default 32
	help
	  Set the number of WiFi dynamic RX buffers, 0 means unlimited RX buffers
	  will be allocated (provided sufficient free RAM). The size of each dynamic
	  RX buffer depends on the size of the received data frame.

	  For each received data frame, the WiFi driver makes a copy to an RX buffer
	  and then delivers it to the high layer TCP/IP stack. The dynamic RX buffer
	  is freed after the higher layer has successfully received the data frame.

	  For some applications, WiFi data frames may be received faster than the
	  application can process them. In these cases we may run out of memory if
	  RX buffer number is unlimited (0). If a dynamic RX buffer limit is set,
	  it should be at least the number of static RX buffers.

choice ESP32_WIFI_TX_BUFFER
	prompt "Type of WiFi TX buffers"
	default ESP32_WIFI_DYNAMIC_TX_BUFFER
	help
	  Select type of WiFi TX buffers:

	  If "Static" is selected, WiFi TX buffers are allocated when WiFi is
	  initialized and released when WiFi is de-initialized. The size of each
	  static TX buffer is fixed to about 1.6KB.

	  If "Dynamic" is selected, each WiFi TX buffer is allocated as needed
	  when a data frame is delivered to the Wifi driver from the TCP/IP stack.
	  The buffer is freed after the data frame has been sent by the WiFi driver.
	  The size of each dynamic TX buffer depends on the length of each data
	  frame sent by the TCP/IP layer.

	  If PSRAM is enabled, "Static" should be selected to guarantee enough
	  WiFi TX buffers. If PSRAM is disabled, "Dynamic" should be selected
	  to improve the utilization of RAM.

	config ESP32_WIFI_STATIC_TX_BUFFER
		bool "Static"
	config ESP32_WIFI_DYNAMIC_TX_BUFFER
		bool "Dynamic"
endchoice

config ESP32_WIFI_TX_BUFFER_TYPE
	int
	default 0 if ESP32_WIFI_STATIC_TX_BUFFER
	default 1 if ESP32_WIFI_DYNAMIC_TX_BUFFER

config ESP32_WIFI_STATIC_TX_BUFFER_NUM
	int "Max number of WiFi static TX buffers"
	depends on ESP32_WIFI_STATIC_TX_BUFFER
	range 1 64
	default 16
	help
	  Set the number of WiFi static TX buffers. Each buffer takes approximately
	  1.6KB of RAM. The static RX buffers are allocated when esp_wifi_init() is
	  called, they are not released until esp_wifi_deinit() is called.

	  For each transmitted data frame from the higher layer TCP/IP stack,
	  the WiFi driver makes a copy of it in a TX buffer.  For some applications
	  especially UDP applications, the upper layer can deliver frames faster
	  than WiFi layer can transmit.
	  In these cases, we may run out of TX buffers.

config ESP32_WIFI_CACHE_TX_BUFFER_NUM
	int "Max number of WiFi cache TX buffers"
	range 16 128
	default 32
	help
	  Set the number of WiFi cache TX buffer number.

	  For each TX packet from uplayer, such as LWIP etc, WiFi driver needs to
	  allocate a static TX buffer and makes a copy of uplayer packet. If WiFi
	  driver fails to allocate the static TX buffer, it caches the uplayer
	  packets to a dedicated buffer queue, this option is used to configure the
	  size of the cached TX queue.

config ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM
	int "Max number of WiFi dynamic TX buffers"
	depends on ESP32_WIFI_DYNAMIC_TX_BUFFER
	range 1 128
	default 32
	help
	  Set the number of WiFi dynamic TX buffers. The size of each
	  dynamic TXbuffer is not fixed, it depends on the size of each
	  transmitted data frame.

	  For each transmitted frame from the higher layer TCP/IP stack,
	  the WiFi driver makes a copy of it in a TX buffer. For some applications,
	  especially UDP applications, the upper layer can deliver frames faster
	  than WiFi layer can transmit. In these cases, we may run out of TX
	  buffers.

config ESP32_WIFI_CSI_ENABLED
	bool "WiFi CSI(Channel State Information)"
	help
	  Select this option to enable CSI(Channel State Information) feature.
	  CSI takes about CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM KB of RAM.
	  If CSI is not used, it is better to disable this feature in order
	  to save memory.

config ESP32_WIFI_AMPDU_TX_ENABLED
	bool "WiFi AMPDU TX"
	default y
	help
	  Select this option to enable AMPDU TX feature. It improves transmission
	  error checking and overall network performance with the cost of processing
	  speed. Helpful when the device is operating in crowded wireless area.

config ESP32_WIFI_TX_BA_WIN
	int "WiFi AMPDU TX BA window size"
	depends on ESP32_WIFI_AMPDU_TX_ENABLED
	range 2 32
	default 6
	help
	  Set the size of WiFi Block Ack TX window. Generally a bigger value means
	  higher throughput but more memory. Most of time we should NOT change the
	  default value unless special reason, e.g. test the maximum
	  UDP TX throughput with iperf etc. For iperf test in shieldbox,
	  the recommended value is 9~12.

config ESP32_WIFI_AMPDU_RX_ENABLED
	bool "WiFi AMPDU RX"
	default y
	help
	  Select this option to enable AMPDU RX feature. It improves transmission
	  error checking and overall network performance with the cost of processing
	  speed. Helpful when the device is operating in crowded wireless area.

config ESP32_WIFI_RX_BA_WIN
	int "WiFi AMPDU RX BA window size"
	depends on ESP32_WIFI_AMPDU_RX_ENABLED
	range 2 32
	default 6
	help
	  Set the size of WiFi Block Ack RX window. Generally a bigger value means
	  higher throughput and better compatibility but more memory. Most of time
	  we should NOT change the default value unless special reason,
	  e.g. test the maximum UDP RX throughput with iperf etc. For iperf test in
	  shieldbox, the recommended value is 9~12. If PSRAM is used and WiFi memory
	  is preferred to be allocated in PSRAM first, the default and minimum value
	  should be 16 to achieve better throughput and compatibility with both
	  stations and APs.

choice ESP32_WIFI_TASK_CORE_ID
	prompt "WiFi Task Core ID"
	default ESP32_WIFI_TASK_PINNED_TO_CORE_0
	help
	  Pinned WiFi task to core 0 (core 1 not supported yet)

	config ESP32_WIFI_TASK_PINNED_TO_CORE_0
		bool "Core 0"
endchoice

config ESP32_WIFI_SW_COEXIST_ENABLE
	bool
	help
	  Software controls WiFi/Bluetooth coexistence. Not supported yet.

config ESP32_WIFI_IRAM_OPT
	bool "WiFi IRAM speed optimization"
	help
	  Select this option to place frequently called Wi-Fi library functions in IRAM.
	  When this option is disabled, more than 10Kbytes of IRAM memory will be saved
	  but Wi-Fi throughput will be reduced.

config ESP32_WIFI_RX_IRAM_OPT
	bool "WiFi RX IRAM speed optimization"
	help
	  Select this option to place frequently called Wi-Fi library RX functions in IRAM.
	  When this option is disabled, more than 17Kbytes of IRAM memory will be saved
	  but Wi-Fi performance will be reduced.

config ESP32_WIFI_NET_ALLOC_SPIRAM
	bool "Allocate memory of WiFi and NET in SPIRAM"
	depends on ESP_SPIRAM
	help
	  Allocate memory of WiFi and NET stack in SPIRAM, increasing available RAM memory space
	  for application stack.

config ESP_WIFI_SOFTAP_SUPPORT
	bool
	default y
	help
	  Hidden option to enable Wi-Fi SoftAP functions in WPA supplicant and RF libraries.

endif # WIFI_ESP32
