mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
feat(esp_wifi):static buf for management,control,qos null,null data rx packet
This commit is contained in:
parent
24e208eca1
commit
e31f8581a2
@ -3,8 +3,8 @@ ESP32C3 ECO3 ROM address table
|
|||||||
Version 3 API's imported from the ROM
|
Version 3 API's imported from the ROM
|
||||||
*/
|
*/
|
||||||
|
|
||||||
esf_buf_alloc_dynamic = 0x400015c0;
|
/*esf_buf_alloc_dynamic = 0x400015c0;*/
|
||||||
esf_buf_recycle = 0x400015c4;
|
/*esf_buf_recycle = 0x400015c4;*/
|
||||||
/*lmacTxDone = 0x4000162c;*/
|
/*lmacTxDone = 0x4000162c;*/
|
||||||
ppMapTxQueue = 0x400016d8;
|
ppMapTxQueue = 0x400016d8;
|
||||||
/*rcGetSched = 0x40001764;*/
|
/*rcGetSched = 0x40001764;*/
|
||||||
|
@ -1503,7 +1503,7 @@ r_sch_plan_offset_req_hook = 0x40001ce4;
|
|||||||
esp_pp_rom_version_get = 0x400015b0;
|
esp_pp_rom_version_get = 0x400015b0;
|
||||||
RC_GetBlockAckTime = 0x400015b4;
|
RC_GetBlockAckTime = 0x400015b4;
|
||||||
ebuf_list_remove = 0x400015b8;
|
ebuf_list_remove = 0x400015b8;
|
||||||
esf_buf_alloc = 0x400015bc;
|
/*esf_buf_alloc = 0x400015bc;*/
|
||||||
GetAccess = 0x400015c8;
|
GetAccess = 0x400015c8;
|
||||||
hal_mac_is_low_rate_enabled = 0x400015cc;
|
hal_mac_is_low_rate_enabled = 0x400015cc;
|
||||||
hal_mac_tx_get_blockack = 0x400015d0;
|
hal_mac_tx_get_blockack = 0x400015d0;
|
||||||
@ -1627,7 +1627,7 @@ wDev_AppendRxBlocks = 0x400017b8;
|
|||||||
wDev_DiscardFrame = 0x400017bc;
|
wDev_DiscardFrame = 0x400017bc;
|
||||||
wDev_GetNoiseFloor = 0x400017c0;
|
wDev_GetNoiseFloor = 0x400017c0;
|
||||||
wDev_IndicateAmpdu = 0x400017c4;
|
wDev_IndicateAmpdu = 0x400017c4;
|
||||||
wDev_IndicateFrame = 0x400017c8;
|
/*wDev_IndicateFrame = 0x400017c8;*/
|
||||||
wdev_bank_store = 0x400017cc;
|
wdev_bank_store = 0x400017cc;
|
||||||
wdev_bank_load = 0x400017d0;
|
wdev_bank_load = 0x400017d0;
|
||||||
wdev_mac_reg_load = 0x400017d4;
|
wdev_mac_reg_load = 0x400017d4;
|
||||||
@ -1637,8 +1637,8 @@ wdev_mac_special_reg_store = 0x400017e0;
|
|||||||
wdev_mac_wakeup = 0x400017e4;
|
wdev_mac_wakeup = 0x400017e4;
|
||||||
wdev_mac_sleep = 0x400017e8;
|
wdev_mac_sleep = 0x400017e8;
|
||||||
hal_mac_is_dma_enable = 0x400017ec;
|
hal_mac_is_dma_enable = 0x400017ec;
|
||||||
/* wDev_ProcessFiq = 0x400017f0; */
|
/*wDev_ProcessFiq = 0x400017f0;*/
|
||||||
wDev_ProcessRxSucData = 0x400017f4;
|
/*wDev_ProcessRxSucData = 0x400017f4;*/
|
||||||
wdevProcessRxSucDataAll = 0x400017f8;
|
wdevProcessRxSucDataAll = 0x400017f8;
|
||||||
wdev_csi_len_align = 0x400017fc;
|
wdev_csi_len_align = 0x400017fc;
|
||||||
ppDequeueTxDone_Locked = 0x40001800;
|
ppDequeueTxDone_Locked = 0x40001800;
|
||||||
|
@ -122,6 +122,40 @@ menu "Wi-Fi"
|
|||||||
can deliver frames faster than WiFi layer can transmit. In these cases, we may run out of TX
|
can deliver frames faster than WiFi layer can transmit. In these cases, we may run out of TX
|
||||||
buffers.
|
buffers.
|
||||||
|
|
||||||
|
choice ESP_WIFI_MGMT_RX_BUFFER
|
||||||
|
prompt "Type of WiFi RX MGMT buffers"
|
||||||
|
default ESP_WIFI_STATIC_RX_MGMT_BUFFER
|
||||||
|
help
|
||||||
|
Select type of WiFi RX MGMT buffers:
|
||||||
|
|
||||||
|
If "Static" is selected, WiFi RX MGMT buffers are allocated when WiFi is initialized and released
|
||||||
|
when WiFi is de-initialized. The size of each static RX MGMT buffer is fixed to about 500 Bytes.
|
||||||
|
|
||||||
|
If "Dynamic" is selected, each WiFi RX MGMT buffer is allocated as needed when a MGMT data frame is
|
||||||
|
received. The MGMT buffer is freed after the MGMT data frame has been processed by the WiFi driver.
|
||||||
|
|
||||||
|
|
||||||
|
config ESP_WIFI_STATIC_RX_MGMT_BUFFER
|
||||||
|
bool "Static"
|
||||||
|
config ESP_WIFI_DYNAMIC_RX_MGMT_BUFFER
|
||||||
|
bool "Dynamic"
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
config ESP_WIFI_DYNAMIC_RX_MGMT_BUF
|
||||||
|
int
|
||||||
|
default 0 if ESP_WIFI_STATIC_RX_MGMT_BUFFER
|
||||||
|
default 1 if ESP_WIFI_DYNAMIC_RX_MGMT_BUFFER
|
||||||
|
|
||||||
|
config ESP_WIFI_RX_MGMT_BUF_NUM_DEF
|
||||||
|
int "Max number of WiFi RX MGMT buffers"
|
||||||
|
range 1 10
|
||||||
|
default 5
|
||||||
|
help
|
||||||
|
Set the number of WiFi RX_MGMT buffers.
|
||||||
|
|
||||||
|
For Management buffers, the number of dynamic and static management buffers is the same.
|
||||||
|
In order to prevent memory fragmentation, the management buffer type should be set to static first.
|
||||||
|
|
||||||
config ESP32_WIFI_CSI_ENABLED
|
config ESP32_WIFI_CSI_ENABLED
|
||||||
bool "WiFi CSI(Channel State Information)"
|
bool "WiFi CSI(Channel State Information)"
|
||||||
default n
|
default n
|
||||||
|
@ -95,6 +95,8 @@ typedef struct {
|
|||||||
int tx_buf_type; /**< WiFi TX buffer type */
|
int tx_buf_type; /**< WiFi TX buffer type */
|
||||||
int static_tx_buf_num; /**< WiFi static TX buffer number */
|
int static_tx_buf_num; /**< WiFi static TX buffer number */
|
||||||
int dynamic_tx_buf_num; /**< WiFi dynamic TX buffer number */
|
int dynamic_tx_buf_num; /**< WiFi dynamic TX buffer number */
|
||||||
|
int rx_mgmt_buf_type; /**< WiFi RX MGMT buffer type */
|
||||||
|
int rx_mgmt_buf_num; /**< WiFi RX MGMT buffer number */
|
||||||
int cache_tx_buf_num; /**< WiFi TX cache buffer number */
|
int cache_tx_buf_num; /**< WiFi TX cache buffer number */
|
||||||
int csi_enable; /**< WiFi channel state information enable flag */
|
int csi_enable; /**< WiFi channel state information enable flag */
|
||||||
int ampdu_rx_enable; /**< WiFi AMPDU RX feature enable flag */
|
int ampdu_rx_enable; /**< WiFi AMPDU RX feature enable flag */
|
||||||
@ -130,6 +132,12 @@ typedef struct {
|
|||||||
#define WIFI_DYNAMIC_TX_BUFFER_NUM 0
|
#define WIFI_DYNAMIC_TX_BUFFER_NUM 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_ESP_WIFI_RX_MGMT_BUF_NUM_DEF
|
||||||
|
#define WIFI_RX_MGMT_BUF_NUM_DEF CONFIG_ESP_WIFI_RX_MGMT_BUF_NUM_DEF
|
||||||
|
#else
|
||||||
|
#define WIFI_RX_MGMT_BUF_NUM_DEF 0
|
||||||
|
#endif
|
||||||
|
|
||||||
#if CONFIG_ESP32_WIFI_CSI_ENABLED
|
#if CONFIG_ESP32_WIFI_CSI_ENABLED
|
||||||
#define WIFI_CSI_ENABLED 1
|
#define WIFI_CSI_ENABLED 1
|
||||||
#else
|
#else
|
||||||
@ -215,6 +223,8 @@ extern uint64_t g_wifi_feature_caps;
|
|||||||
.tx_buf_type = CONFIG_ESP32_WIFI_TX_BUFFER_TYPE,\
|
.tx_buf_type = CONFIG_ESP32_WIFI_TX_BUFFER_TYPE,\
|
||||||
.static_tx_buf_num = WIFI_STATIC_TX_BUFFER_NUM,\
|
.static_tx_buf_num = WIFI_STATIC_TX_BUFFER_NUM,\
|
||||||
.dynamic_tx_buf_num = WIFI_DYNAMIC_TX_BUFFER_NUM,\
|
.dynamic_tx_buf_num = WIFI_DYNAMIC_TX_BUFFER_NUM,\
|
||||||
|
.rx_mgmt_buf_type = CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUF,\
|
||||||
|
.rx_mgmt_buf_num = WIFI_RX_MGMT_BUF_NUM_DEF,\
|
||||||
.cache_tx_buf_num = WIFI_CACHE_TX_BUFFER_NUM,\
|
.cache_tx_buf_num = WIFI_CACHE_TX_BUFFER_NUM,\
|
||||||
.csi_enable = WIFI_CSI_ENABLED,\
|
.csi_enable = WIFI_CSI_ENABLED,\
|
||||||
.ampdu_rx_enable = WIFI_AMPDU_RX_ENABLED,\
|
.ampdu_rx_enable = WIFI_AMPDU_RX_ENABLED,\
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 80782b71525cb9543a664e65fdd576332cde622b
|
Subproject commit c5a5c931cab8ad88e719c803b255b05fc900a524
|
Loading…
x
Reference in New Issue
Block a user