mirror of
https://codeberg.org/opentrafficmap/its-g5-receiver-firmware.git
synced 2026-06-14 18:20:31 +00:00
De-struct sniffer; make writing pcap optional; don't delete queue and semaphore when stopping sniffer; add .gitignore; use same queue/task for MQTT and pcap writing; update sdkconfig for new esp-idf; add used esp-idf version as submodule
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
/build/
|
||||
/managed_components/
|
||||
/.qtcreator/
|
||||
/dependencies.lock
|
||||
/sdkconfig.old
|
||||
*.pcap
|
||||
@@ -0,0 +1,3 @@
|
||||
[submodule "esp-idf"]
|
||||
path = esp-idf
|
||||
url = https://github.com/espressif/esp-idf.git
|
||||
Submodule
+1
Submodule esp-idf added at 12f36a021f
+99
-126
@@ -20,6 +20,7 @@
|
||||
#include "esp_check.h"
|
||||
|
||||
#include "events.h"
|
||||
#include "mqtt.h"
|
||||
|
||||
#define SNIFFER_DEFAULT_CHANNEL (1)
|
||||
#define SNIFFER_PAYLOAD_FCS_LEN (4)
|
||||
@@ -36,21 +37,18 @@ typedef struct {
|
||||
uint32_t filter_val;
|
||||
} wlan_filter_table_t;
|
||||
|
||||
typedef struct {
|
||||
bool is_running;
|
||||
sniffer_intf_t interf;
|
||||
uint32_t interf_num;
|
||||
uint32_t channel;
|
||||
uint32_t filter;
|
||||
int32_t packets_to_sniff;
|
||||
TaskHandle_t task;
|
||||
QueueHandle_t work_queue;
|
||||
SemaphoreHandle_t sem_task_over;
|
||||
esp_eth_handle_t eth_handles[SNIFFER_MAX_ETH_INTFS];
|
||||
} sniffer_runtime_t;
|
||||
static bool is_running;
|
||||
static bool write_pcap;
|
||||
static sniffer_intf_t interf;
|
||||
static uint32_t interf_num;
|
||||
static uint32_t channel;
|
||||
static uint32_t filter;
|
||||
static TaskHandle_t task;
|
||||
static QueueHandle_t work_queue;
|
||||
static SemaphoreHandle_t sem_task_over;
|
||||
static esp_eth_handle_t eth_handles[SNIFFER_MAX_ETH_INTFS];
|
||||
|
||||
static sniffer_runtime_t snf_rt = {0};
|
||||
static esp_err_t sniffer_stop(sniffer_runtime_t *sniffer);
|
||||
static esp_err_t sniffer_stop();
|
||||
|
||||
static void queue_packet(void *recv_packet, sniffer_packet_info_t *packet_info)
|
||||
{
|
||||
@@ -59,9 +57,9 @@ static void queue_packet(void *recv_packet, sniffer_packet_info_t *packet_info)
|
||||
if (packet_to_queue) {
|
||||
memcpy(packet_to_queue, recv_packet, packet_info->length);
|
||||
packet_info->payload = packet_to_queue;
|
||||
if (snf_rt.work_queue) {
|
||||
if (work_queue) {
|
||||
/* send packet_info */
|
||||
if (xQueueSend(snf_rt.work_queue, packet_info, pdMS_TO_TICKS(SNIFFER_PROCESS_PACKET_TIMEOUT_MS)) != pdTRUE) {
|
||||
if (xQueueSend(work_queue, packet_info, pdMS_TO_TICKS(SNIFFER_PROCESS_PACKET_TIMEOUT_MS)) != pdTRUE) {
|
||||
ESP_LOGE(TAG, "sniffer work queue full");
|
||||
free(packet_info->payload);
|
||||
}
|
||||
@@ -71,28 +69,6 @@ static void queue_packet(void *recv_packet, sniffer_packet_info_t *packet_info)
|
||||
}
|
||||
}
|
||||
|
||||
static void send_packet_event(void *recv_packet, sniffer_packet_info_t *packet_info)
|
||||
{
|
||||
/* Copy a packet from Link Layer driver and queue the copy to be processed by sniffer task */
|
||||
size_t combined_length = sizeof(sniffer_combined_info_t) + packet_info->length;
|
||||
sniffer_combined_info_t *info_to_queue = malloc(combined_length);
|
||||
if (info_to_queue) {
|
||||
info_to_queue->info = *packet_info;
|
||||
// TODO: This is one more copy than would be nice. Can we send shared_ptr over some sort of queue?
|
||||
memcpy(info_to_queue->payload, recv_packet, packet_info->length);
|
||||
info_to_queue->info.payload = NULL;
|
||||
|
||||
int result = esp_event_post(SNIFFER_EVENT_BASE, SNIFFER_GOT_FRAME, info_to_queue, combined_length, 0);
|
||||
if (result != ESP_OK)
|
||||
{
|
||||
ESP_LOGW(TAG, "Could not post event SNIFFER_GOT_FRAME: %s", esp_err_to_name(result));
|
||||
}
|
||||
free(info_to_queue);
|
||||
} else {
|
||||
ESP_LOGE(TAG, "No enough memory for promiscuous packet");
|
||||
}
|
||||
}
|
||||
|
||||
static void wifi_sniffer_cb(void *recv_buf, wifi_promiscuous_pkt_type_t type)
|
||||
{
|
||||
sniffer_packet_info_t packet_info;
|
||||
@@ -100,13 +76,16 @@ static void wifi_sniffer_cb(void *recv_buf, wifi_promiscuous_pkt_type_t type)
|
||||
/* prepare packet_info */
|
||||
packet_info.seconds = packet->rx_ctrl.timestamp / 1000000U;
|
||||
packet_info.microseconds = packet->rx_ctrl.timestamp % 1000000U;
|
||||
packet_info.length = packet->rx_ctrl.sig_len;
|
||||
|
||||
#if CONFIG_SOC_WIFI_HE_SUPPORT
|
||||
packet_info.length = packet->rx_ctrl.dump_len;
|
||||
#else
|
||||
packet_info.length = packet->rx_ctrl.sig_len - SNIFFER_PAYLOAD_FCS_LEN;
|
||||
#endif
|
||||
|
||||
/* For now, the sniffer only dumps the length of the MISC type frame */
|
||||
if (type != WIFI_PKT_MISC && !packet->rx_ctrl.rx_state) {
|
||||
packet_info.length -= SNIFFER_PAYLOAD_FCS_LEN;
|
||||
//queue_packet(sniffer->payload, &packet_info);
|
||||
send_packet_event(packet->payload, &packet_info);
|
||||
queue_packet(packet->payload, &packet_info);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -130,45 +109,37 @@ static esp_err_t eth_sniffer_cb(esp_eth_handle_t eth_handle, uint8_t *buffer, ui
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
static void sniffer_task(void *parameters)
|
||||
static void sniffer_task(void *)
|
||||
{
|
||||
sniffer_packet_info_t packet_info;
|
||||
sniffer_runtime_t *sniffer = (sniffer_runtime_t *)parameters;
|
||||
|
||||
while (sniffer->is_running) {
|
||||
if (sniffer->packets_to_sniff == 0) {
|
||||
sniffer_stop(sniffer);
|
||||
break;
|
||||
}
|
||||
while (is_running) {
|
||||
/* receive packet info from queue */
|
||||
if (xQueueReceive(sniffer->work_queue, &packet_info, pdMS_TO_TICKS(SNIFFER_PROCESS_PACKET_TIMEOUT_MS)) != pdTRUE) {
|
||||
if (xQueueReceive(work_queue, &packet_info, pdMS_TO_TICKS(SNIFFER_PROCESS_PACKET_TIMEOUT_MS)) != pdTRUE) {
|
||||
continue;
|
||||
}
|
||||
if (packet_capture(packet_info.payload, packet_info.length, packet_info.seconds,
|
||||
packet_info.microseconds) != ESP_OK) {
|
||||
if (write_pcap && packet_capture(packet_info.payload, packet_info.length, packet_info.seconds,
|
||||
packet_info.microseconds) != ESP_OK) {
|
||||
ESP_LOGW(TAG, "save captured packet failed");
|
||||
}
|
||||
free(packet_info.payload);
|
||||
if (sniffer->packets_to_sniff > 0) {
|
||||
sniffer->packets_to_sniff--;
|
||||
}
|
||||
|
||||
mqtt_handle_packet(&packet_info);
|
||||
|
||||
free(packet_info.payload);
|
||||
}
|
||||
/* notify that sniffer task is over */
|
||||
if (sniffer->packets_to_sniff != 0) {
|
||||
xSemaphoreGive(sniffer->sem_task_over);
|
||||
}
|
||||
xSemaphoreGive(sem_task_over);
|
||||
vTaskDelete(NULL);
|
||||
}
|
||||
|
||||
static esp_err_t sniffer_stop(sniffer_runtime_t *sniffer)
|
||||
static esp_err_t sniffer_stop()
|
||||
{
|
||||
bool eth_set_promiscuous;
|
||||
esp_err_t ret = ESP_OK;
|
||||
|
||||
ESP_GOTO_ON_FALSE(sniffer->is_running, ESP_ERR_INVALID_STATE, err, TAG, "sniffer is already stopped");
|
||||
ESP_GOTO_ON_FALSE(is_running, ESP_ERR_INVALID_STATE, err, TAG, "sniffer is already stopped");
|
||||
|
||||
switch (sniffer->interf) {
|
||||
switch (interf) {
|
||||
case SNIFFER_INTF_WLAN:
|
||||
/* Disable wifi promiscuous mode */
|
||||
ESP_GOTO_ON_ERROR(esp_wifi_set_promiscuous(false), err, TAG, "stop wifi promiscuous failed");
|
||||
@@ -176,9 +147,9 @@ static esp_err_t sniffer_stop(sniffer_runtime_t *sniffer)
|
||||
case SNIFFER_INTF_ETH:
|
||||
/* Disable Ethernet Promiscuous Mode */
|
||||
eth_set_promiscuous = false;
|
||||
ESP_GOTO_ON_ERROR(esp_eth_ioctl(sniffer->eth_handles[sniffer->interf_num], ETH_CMD_S_PROMISCUOUS, ð_set_promiscuous),
|
||||
ESP_GOTO_ON_ERROR(esp_eth_ioctl(eth_handles[interf_num], ETH_CMD_S_PROMISCUOUS, ð_set_promiscuous),
|
||||
err, TAG, "stop Ethernet promiscuous failed");
|
||||
esp_eth_update_input_path(sniffer->eth_handles[sniffer->interf_num], NULL, NULL);
|
||||
esp_eth_update_input_path(eth_handles[interf_num], NULL, NULL);
|
||||
break;
|
||||
default:
|
||||
ESP_GOTO_ON_FALSE(false, ESP_ERR_INVALID_ARG, err, TAG, "unsupported interface");
|
||||
@@ -187,27 +158,22 @@ static esp_err_t sniffer_stop(sniffer_runtime_t *sniffer)
|
||||
ESP_LOGI(TAG, "stop promiscuous ok");
|
||||
|
||||
/* stop sniffer local task */
|
||||
sniffer->is_running = false;
|
||||
is_running = false;
|
||||
/* wait for task over */
|
||||
if (sniffer->packets_to_sniff != 0) {
|
||||
xSemaphoreTake(sniffer->sem_task_over, portMAX_DELAY);
|
||||
}
|
||||
xSemaphoreTake(sem_task_over, portMAX_DELAY);
|
||||
|
||||
vSemaphoreDelete(sniffer->sem_task_over);
|
||||
sniffer->sem_task_over = NULL;
|
||||
/* make sure to free all resources in the left items */
|
||||
UBaseType_t left_items = uxQueueMessagesWaiting(sniffer->work_queue);
|
||||
UBaseType_t left_items = uxQueueMessagesWaiting(work_queue);
|
||||
|
||||
sniffer_packet_info_t packet_info;
|
||||
while (left_items--) {
|
||||
xQueueReceive(sniffer->work_queue, &packet_info, pdMS_TO_TICKS(SNIFFER_PROCESS_PACKET_TIMEOUT_MS));
|
||||
xQueueReceive(work_queue, &packet_info, pdMS_TO_TICKS(SNIFFER_PROCESS_PACKET_TIMEOUT_MS));
|
||||
free(packet_info.payload);
|
||||
}
|
||||
vQueueDelete(sniffer->work_queue);
|
||||
sniffer->work_queue = NULL;
|
||||
|
||||
/* stop pcap session */
|
||||
sniff_packet_stop();
|
||||
if (write_pcap)
|
||||
sniff_packet_stop();
|
||||
err:
|
||||
return ret;
|
||||
}
|
||||
@@ -215,16 +181,16 @@ err:
|
||||
void phy_change_channel(int,int,int,int);
|
||||
void phy_11p_set(int,int);
|
||||
|
||||
static esp_err_t sniffer_start(sniffer_runtime_t *sniffer)
|
||||
static esp_err_t sniffer_start()
|
||||
{
|
||||
esp_err_t ret = ESP_OK;
|
||||
pcap_link_type_t link_type;
|
||||
wifi_promiscuous_filter_t wifi_filter;
|
||||
bool eth_set_promiscuous;
|
||||
|
||||
ESP_GOTO_ON_FALSE(!(sniffer->is_running), ESP_ERR_INVALID_STATE, err, TAG, "sniffer is already running");
|
||||
ESP_GOTO_ON_FALSE(!is_running, ESP_ERR_INVALID_STATE, err, TAG, "sniffer is already running");
|
||||
|
||||
switch (sniffer->interf) {
|
||||
switch (interf) {
|
||||
case SNIFFER_INTF_WLAN:
|
||||
link_type = PCAP_LINK_TYPE_802_11;
|
||||
break;
|
||||
@@ -237,39 +203,36 @@ static esp_err_t sniffer_start(sniffer_runtime_t *sniffer)
|
||||
}
|
||||
|
||||
/* init a pcap session */
|
||||
ESP_GOTO_ON_ERROR(sniff_packet_start(link_type), err, TAG, "init pcap session failed");
|
||||
if (write_pcap)
|
||||
ESP_GOTO_ON_ERROR(sniff_packet_start(link_type), err, TAG, "init pcap session failed");
|
||||
|
||||
sniffer->is_running = true;
|
||||
sniffer->work_queue = xQueueCreate(CONFIG_SNIFFER_WORK_QUEUE_LEN, sizeof(sniffer_packet_info_t));
|
||||
ESP_GOTO_ON_FALSE(sniffer->work_queue, ESP_FAIL, err_queue, TAG, "create work queue failed");
|
||||
sniffer->sem_task_over = xSemaphoreCreateBinary();
|
||||
ESP_GOTO_ON_FALSE(sniffer->sem_task_over, ESP_FAIL, err_sem, TAG, "create work queue failed");
|
||||
is_running = true;
|
||||
ESP_GOTO_ON_FALSE(xTaskCreate(sniffer_task, "snifferT", CONFIG_SNIFFER_TASK_STACK_SIZE,
|
||||
sniffer, CONFIG_SNIFFER_TASK_PRIORITY, &sniffer->task), ESP_FAIL,
|
||||
NULL, CONFIG_SNIFFER_TASK_PRIORITY, &task), ESP_FAIL,
|
||||
err_task, TAG, "create task failed");
|
||||
|
||||
switch (sniffer->interf) {
|
||||
switch (interf) {
|
||||
case SNIFFER_INTF_WLAN:
|
||||
/* Start WiFi Promiscuous Mode */
|
||||
wifi_filter.filter_mask = sniffer->filter;
|
||||
wifi_filter.filter_mask = filter;
|
||||
esp_wifi_set_promiscuous_filter(&wifi_filter);
|
||||
esp_wifi_set_promiscuous_rx_cb(wifi_sniffer_cb);
|
||||
ESP_GOTO_ON_ERROR(esp_wifi_set_promiscuous(true), err_start, TAG, "set promis failed");
|
||||
//ESP_GOTO_ON_ERROR(esp_wifi_set_channel(sniffer->channel, WIFI_SECOND_CHAN_NONE), err_start, TAG, "set channel failed");
|
||||
//ESP_GOTO_ON_ERROR(esp_wifi_set_channel(channel, WIFI_SECOND_CHAN_NONE), err_start, TAG, "set channel failed");
|
||||
// enable 802.11p mode (enable, unknown (must be 0))
|
||||
phy_11p_set(1, 0);
|
||||
// set a channel with a frequency close to our desired frequency (not sure if strictly needed)
|
||||
ESP_GOTO_ON_ERROR(esp_wifi_set_channel(140, WIFI_SECOND_CHAN_NONE), err_start, TAG, "set channel failed");
|
||||
// switch channel (channel, ignored, ignored, ht_mode?)
|
||||
phy_change_channel(sniffer->channel, 1, 0, 0);
|
||||
phy_change_channel(channel, 1, 0, 0);
|
||||
ESP_LOGI(TAG, "start WiFi promiscuous ok");
|
||||
break;
|
||||
case SNIFFER_INTF_ETH:
|
||||
/* Start Ethernet Promiscuous Mode */
|
||||
eth_set_promiscuous = true;
|
||||
ESP_GOTO_ON_ERROR(esp_eth_ioctl(sniffer->eth_handles[sniffer->interf_num], ETH_CMD_S_PROMISCUOUS, ð_set_promiscuous),
|
||||
ESP_GOTO_ON_ERROR(esp_eth_ioctl(eth_handles[interf_num], ETH_CMD_S_PROMISCUOUS, ð_set_promiscuous),
|
||||
err_start, TAG, "start Ethernet promiscuous failed");
|
||||
esp_eth_update_input_path(sniffer->eth_handles[sniffer->interf_num], eth_sniffer_cb, NULL);
|
||||
esp_eth_update_input_path(eth_handles[interf_num], eth_sniffer_cb, NULL);
|
||||
ESP_LOGI(TAG, "start Ethernet promiscuous ok");
|
||||
break;
|
||||
default:
|
||||
@@ -277,16 +240,14 @@ static esp_err_t sniffer_start(sniffer_runtime_t *sniffer)
|
||||
}
|
||||
return ret;
|
||||
err_start:
|
||||
vTaskDelete(sniffer->task);
|
||||
sniffer->task = NULL;
|
||||
// task was already started, need to shut it down gracefully
|
||||
is_running = false;
|
||||
xSemaphoreTake(sem_task_over, portMAX_DELAY);
|
||||
task = NULL;
|
||||
err_task:
|
||||
vSemaphoreDelete(sniffer->sem_task_over);
|
||||
sniffer->sem_task_over = NULL;
|
||||
err_sem:
|
||||
vQueueDelete(sniffer->work_queue);
|
||||
sniffer->work_queue = NULL;
|
||||
err_queue:
|
||||
sniffer->is_running = false;
|
||||
is_running = false;
|
||||
if (write_pcap)
|
||||
sniff_packet_stop();
|
||||
err:
|
||||
return ret;
|
||||
}
|
||||
@@ -295,8 +256,8 @@ static struct {
|
||||
struct arg_str *interface;
|
||||
struct arg_lit *fcsfail;
|
||||
struct arg_int *channel;
|
||||
struct arg_lit *pcap;
|
||||
struct arg_lit *stop;
|
||||
struct arg_int *number;
|
||||
struct arg_end *end;
|
||||
} sniffer_args;
|
||||
|
||||
@@ -304,11 +265,11 @@ esp_err_t sniffer_reg_eth_intf(esp_eth_handle_t eth_handle)
|
||||
{
|
||||
esp_err_t ret = ESP_OK;
|
||||
int32_t i = 0;
|
||||
while ((snf_rt.eth_handles[i] != NULL) && (i < SNIFFER_MAX_ETH_INTFS)) {
|
||||
while ((eth_handles[i] != NULL) && (i < SNIFFER_MAX_ETH_INTFS)) {
|
||||
i++;
|
||||
}
|
||||
ESP_GOTO_ON_FALSE(i < SNIFFER_MAX_ETH_INTFS, ESP_FAIL, err, TAG, "maximum num. of eth interfaces registered");
|
||||
snf_rt.eth_handles[i] = eth_handle;
|
||||
eth_handles[i] = eth_handle;
|
||||
|
||||
err:
|
||||
return ret;
|
||||
@@ -326,14 +287,14 @@ static int do_sniffer_cmd(int argc, char **argv)
|
||||
/* Check whether or not to stop sniffer: "--stop" option */
|
||||
if (sniffer_args.stop->count) {
|
||||
/* stop sniffer */
|
||||
sniffer_stop(&snf_rt);
|
||||
sniffer_stop();
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Check interface: "-i" option */
|
||||
if (sniffer_args.interface->count) {
|
||||
if (!strncmp(sniffer_args.interface->sval[0], "wlan", 4)) {
|
||||
snf_rt.interf = SNIFFER_INTF_WLAN;
|
||||
interf = SNIFFER_INTF_WLAN;
|
||||
} else if (!strncmp(sniffer_args.interface->sval[0], "eth", 3)
|
||||
&& strlen(sniffer_args.interface->sval[0]) >= 4) {
|
||||
char *end_ptr = NULL;
|
||||
@@ -341,9 +302,9 @@ static int do_sniffer_cmd(int argc, char **argv)
|
||||
int32_t eth_intf_num = strtol(eth_num_str_start, &end_ptr, SNIFFER_DECIMAL_NUM);
|
||||
|
||||
if ((eth_intf_num >= 0) && (eth_intf_num < SNIFFER_MAX_ETH_INTFS)
|
||||
&& (eth_num_str_start != end_ptr) && (snf_rt.eth_handles[eth_intf_num] != NULL)) {
|
||||
snf_rt.interf = SNIFFER_INTF_ETH;
|
||||
snf_rt.interf_num = eth_intf_num;
|
||||
&& (eth_num_str_start != end_ptr) && (eth_handles[eth_intf_num] != NULL)) {
|
||||
interf = SNIFFER_INTF_ETH;
|
||||
interf_num = eth_intf_num;
|
||||
} else {
|
||||
ESP_LOGE(TAG, "interface %s not found", sniffer_args.interface->sval[0]);
|
||||
return 1;
|
||||
@@ -353,16 +314,16 @@ static int do_sniffer_cmd(int argc, char **argv)
|
||||
return 1;
|
||||
}
|
||||
} else {
|
||||
snf_rt.interf = SNIFFER_INTF_WLAN;
|
||||
ESP_LOGW(TAG, "sniffing interface set to wlan by default");
|
||||
interf = SNIFFER_INTF_WLAN;
|
||||
ESP_LOGI(TAG, "sniffing interface set to wlan by default");
|
||||
}
|
||||
|
||||
/* Check channel: "-c" option */
|
||||
switch (snf_rt.interf) {
|
||||
switch (interf) {
|
||||
case SNIFFER_INTF_WLAN:
|
||||
snf_rt.channel = SNIFFER_DEFAULT_CHANNEL;
|
||||
channel = SNIFFER_DEFAULT_CHANNEL;
|
||||
if (sniffer_args.channel->count) {
|
||||
snf_rt.channel = sniffer_args.channel->ival[0];
|
||||
channel = sniffer_args.channel->ival[0];
|
||||
}
|
||||
break;
|
||||
case SNIFFER_INTF_ETH:
|
||||
@@ -375,11 +336,11 @@ static int do_sniffer_cmd(int argc, char **argv)
|
||||
}
|
||||
|
||||
/* Check filter setting: "-F" option */
|
||||
switch (snf_rt.interf) {
|
||||
switch (interf) {
|
||||
case SNIFFER_INTF_WLAN:
|
||||
snf_rt.filter = WIFI_PROMIS_FILTER_MASK_ALL;
|
||||
filter = WIFI_PROMIS_FILTER_MASK_ALL;
|
||||
if (!sniffer_args.fcsfail->count)
|
||||
snf_rt.filter &= ~WIFI_PROMIS_FILTER_MASK_FCSFAIL;
|
||||
filter &= ~WIFI_PROMIS_FILTER_MASK_FCSFAIL;
|
||||
break;
|
||||
case SNIFFER_INTF_ETH:
|
||||
if (sniffer_args.fcsfail->count) {
|
||||
@@ -389,26 +350,24 @@ static int do_sniffer_cmd(int argc, char **argv)
|
||||
break;
|
||||
}
|
||||
|
||||
/* Check the number of captured packages: "-n" option */
|
||||
snf_rt.packets_to_sniff = -1;
|
||||
if (sniffer_args.number->count) {
|
||||
snf_rt.packets_to_sniff = sniffer_args.number->ival[0];
|
||||
ESP_LOGI(TAG, "%" PRIi32 " packages will be captured", snf_rt.packets_to_sniff);
|
||||
if (sniffer_args.pcap->count) {
|
||||
write_pcap = true;
|
||||
} else {
|
||||
write_pcap = false;
|
||||
}
|
||||
|
||||
/* start sniffer */
|
||||
sniffer_start(&snf_rt);
|
||||
sniffer_start();
|
||||
return 0;
|
||||
}
|
||||
|
||||
void register_sniffer_cmd(void)
|
||||
{
|
||||
sniffer_args.number = arg_int0("n", "number", "<num>",
|
||||
"the number of the packets to be captured");
|
||||
sniffer_args.interface = arg_str0("i", "interface", "<wlan|eth0|eth1|...>",
|
||||
sniffer_args.interface = arg_str0("i", "interface", "wlan|eth0|eth1|...",
|
||||
"which interface to capture packet");
|
||||
sniffer_args.fcsfail = arg_lit0("F", "fcsfail", "include corrupted packets with wrong FCS");
|
||||
sniffer_args.channel = arg_int0("c", "channel", "<channel>", "communication channel to use");
|
||||
sniffer_args.channel = arg_int0("c", "channel", "<channel freq>", "frequency of communication channel to use (G5CC = 5900, G5SC2 = 5890, G5SC1 = 5880, G5SC3 = 5870, G5SC4 = 5860)");
|
||||
sniffer_args.pcap = arg_lit0("P", "pcap", "write pcap to configured backend");
|
||||
sniffer_args.stop = arg_lit0(NULL, "stop", "stop running sniffer");
|
||||
sniffer_args.end = arg_end(1);
|
||||
const esp_console_cmd_t sniffer_cmd = {
|
||||
@@ -420,3 +379,17 @@ void register_sniffer_cmd(void)
|
||||
};
|
||||
ESP_ERROR_CHECK(esp_console_cmd_register(&sniffer_cmd));
|
||||
}
|
||||
|
||||
void sniffer_init(void)
|
||||
{
|
||||
esp_err_t ret = ESP_OK;
|
||||
|
||||
sem_task_over = xSemaphoreCreateBinary();
|
||||
ESP_GOTO_ON_FALSE(sem_task_over, ESP_FAIL, err, TAG, "create semaphore failed");
|
||||
|
||||
work_queue = xQueueCreate(CONFIG_SNIFFER_WORK_QUEUE_LEN, sizeof(sniffer_packet_info_t));
|
||||
ESP_GOTO_ON_FALSE(work_queue, ESP_FAIL, err, TAG, "create work queue failed");
|
||||
|
||||
err:
|
||||
ESP_ERROR_CHECK(ret);
|
||||
}
|
||||
|
||||
+1
-5
@@ -21,11 +21,6 @@ typedef struct {
|
||||
uint32_t microseconds;
|
||||
} sniffer_packet_info_t;
|
||||
|
||||
typedef struct {
|
||||
sniffer_packet_info_t info;
|
||||
uint8_t payload[];
|
||||
} sniffer_combined_info_t;
|
||||
|
||||
/**
|
||||
* @brief Supported Sniffer Interface
|
||||
*
|
||||
@@ -51,6 +46,7 @@ typedef enum {
|
||||
SNIFFER_WLAN_FILTER_MAX
|
||||
} sniffer_wlan_filter_t;
|
||||
|
||||
void sniffer_init(void);
|
||||
void register_sniffer_cmd(void);
|
||||
esp_err_t sniffer_reg_eth_intf(esp_eth_handle_t eth_handle);
|
||||
|
||||
|
||||
@@ -5,5 +5,3 @@
|
||||
#include "events.h"
|
||||
|
||||
ESP_EVENT_DEFINE_BASE(APP_EVENT_BASE);
|
||||
|
||||
ESP_EVENT_DEFINE_BASE(SNIFFER_EVENT_BASE);
|
||||
|
||||
@@ -9,11 +9,3 @@ enum AppEvent
|
||||
APP_ETHERNET_MGMT_INTERFACE_CONNECTED,
|
||||
APP_ETHERNET_MGMT_INTERFACE_DISCONNECTED
|
||||
};
|
||||
|
||||
|
||||
ESP_EVENT_DECLARE_BASE(SNIFFER_EVENT_BASE);
|
||||
|
||||
enum SnifferEvent
|
||||
{
|
||||
SNIFFER_GOT_FRAME
|
||||
};
|
||||
|
||||
@@ -128,6 +128,8 @@ void app_main(void)
|
||||
/*--- Initialize Console ---*/
|
||||
console_init();
|
||||
|
||||
sniffer_init();
|
||||
|
||||
/* Register commands */
|
||||
#if CONFIG_ENABLE_SD
|
||||
sdcard_register_commands();
|
||||
|
||||
+2
-8
@@ -152,21 +152,15 @@ static void app_event_handler(void *handler_args, esp_event_base_t base, int32_t
|
||||
}
|
||||
}
|
||||
|
||||
static void sniffer_event_handler(void *handler_args, esp_event_base_t base, int32_t event_id, void *event_data)
|
||||
void mqtt_handle_packet(sniffer_packet_info_t *packet)
|
||||
{
|
||||
if (!client)
|
||||
return;
|
||||
|
||||
switch (event_id)
|
||||
{
|
||||
case SNIFFER_GOT_FRAME:
|
||||
sniffer_combined_info_t *info = event_data;
|
||||
esp_mqtt_client_publish(client, packet_topic, (const char *)info->payload, info->info.length, 0, 0);
|
||||
}
|
||||
esp_mqtt_client_publish(client, packet_topic, (const char *)packet->payload, packet->length, 0, 0);
|
||||
}
|
||||
|
||||
void mqtt_init(void)
|
||||
{
|
||||
esp_event_handler_register(APP_EVENT_BASE, ESP_EVENT_ANY_ID, app_event_handler, NULL);
|
||||
esp_event_handler_register(SNIFFER_EVENT_BASE, ESP_EVENT_ANY_ID, sniffer_event_handler, NULL);
|
||||
}
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
struct sniffer_packet_info_t;
|
||||
|
||||
void mqtt_init(void);
|
||||
void mqtt_handle_packet(sniffer_packet_info_t *packet);
|
||||
|
||||
@@ -99,9 +99,11 @@ CONFIG_SOC_APM_SUPPORTED=y
|
||||
# default:
|
||||
CONFIG_SOC_PMU_SUPPORTED=y
|
||||
# default:
|
||||
CONFIG_SOC_PMU_PVT_SUPPORTED=y
|
||||
# default:
|
||||
CONFIG_SOC_PAU_SUPPORTED=y
|
||||
# default:
|
||||
CONFIG_SOC_RTC_TIMER_V2_SUPPORTED=y
|
||||
CONFIG_SOC_RTC_TIMER_SUPPORTED=y
|
||||
# default:
|
||||
CONFIG_SOC_LP_AON_SUPPORTED=y
|
||||
# default:
|
||||
@@ -283,7 +285,7 @@ CONFIG_SOC_GPIO_SUPPORT_PIN_HYS_FILTER=y
|
||||
# default:
|
||||
CONFIG_SOC_GPIO_SUPPORT_ETM=y
|
||||
# default:
|
||||
CONFIG_SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP=y
|
||||
CONFIG_SOC_GPIO_SUPPORT_HP_PERIPH_PD_SLEEP_WAKEUP=y
|
||||
# default:
|
||||
CONFIG_SOC_LP_IO_CLOCK_IS_INDEPENDENT=y
|
||||
# default:
|
||||
@@ -291,9 +293,9 @@ CONFIG_SOC_GPIO_IN_RANGE_MAX=28
|
||||
# default:
|
||||
CONFIG_SOC_GPIO_OUT_RANGE_MAX=28
|
||||
# default:
|
||||
CONFIG_SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK=0
|
||||
CONFIG_SOC_GPIO_HP_PERIPH_PD_SLEEP_WAKEABLE_MASK=0
|
||||
# default:
|
||||
CONFIG_SOC_GPIO_DEEP_SLEEP_WAKE_SUPPORTED_PIN_CNT=7
|
||||
CONFIG_SOC_GPIO_HP_PERIPH_PD_SLEEP_WAKEABLE_PIN_CNT=7
|
||||
# default:
|
||||
CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0x0000000001FFFF80
|
||||
# default:
|
||||
@@ -505,43 +507,19 @@ CONFIG_SOC_SPI_MEM_SUPPORT_CHECK_SUS=y
|
||||
# default:
|
||||
CONFIG_SOC_SPI_MEM_SUPPORT_WRAP=y
|
||||
# default:
|
||||
CONFIG_SOC_SPI_MEM_SUPPORT_WB_MODE_INDEPENDENT_CONTROL=y
|
||||
# default:
|
||||
CONFIG_SOC_SPI_MEM_SUPPORT_CACHE_32BIT_ADDR_MAP=y
|
||||
# default:
|
||||
CONFIG_SOC_SPI_MEM_SUPPORT_TIMING_TUNING=y
|
||||
# default:
|
||||
CONFIG_SOC_SPI_MEM_SUPPORT_TSUS_TRES_SEPERATE_CTR=y
|
||||
# default:
|
||||
CONFIG_SOC_SPI_MEM_PSRAM_FREQ_AXI_CONSTRAINED=y
|
||||
# default:
|
||||
CONFIG_SOC_MEMSPI_TIMING_TUNING_BY_MSPI_DELAY=y
|
||||
# default:
|
||||
CONFIG_SOC_MEMSPI_IS_INDEPENDENT=y
|
||||
# default:
|
||||
CONFIG_SOC_MEMSPI_SRC_FREQ_120M_SUPPORTED=y
|
||||
CONFIG_SOC_SPI_MEM_FLASH_SUPPORT_HPM=y
|
||||
# default:
|
||||
CONFIG_SOC_MEMSPI_SRC_FREQ_80M_SUPPORTED=y
|
||||
# default:
|
||||
CONFIG_SOC_MEMSPI_SRC_FREQ_40M_SUPPORTED=y
|
||||
# default:
|
||||
CONFIG_SOC_MEMSPI_SRC_FREQ_20M_SUPPORTED=y
|
||||
# default:
|
||||
CONFIG_SOC_SYSTIMER_COUNTER_NUM=2
|
||||
# default:
|
||||
CONFIG_SOC_SYSTIMER_ALARM_NUM=3
|
||||
# default:
|
||||
CONFIG_SOC_SYSTIMER_BIT_WIDTH_LO=32
|
||||
# default:
|
||||
CONFIG_SOC_SYSTIMER_BIT_WIDTH_HI=20
|
||||
# default:
|
||||
CONFIG_SOC_SYSTIMER_FIXED_DIVIDER=y
|
||||
# default:
|
||||
CONFIG_SOC_SYSTIMER_SUPPORT_RC_FAST=y
|
||||
# default:
|
||||
CONFIG_SOC_SYSTIMER_INT_LEVEL=y
|
||||
# default:
|
||||
CONFIG_SOC_SYSTIMER_ALARM_MISS_COMPENSATE=y
|
||||
CONFIG_SOC_MEMSPI_ENCRYPTION_ALIGNMENT=16
|
||||
# default:
|
||||
CONFIG_SOC_SYSTIMER_SUPPORT_ETM=y
|
||||
# default:
|
||||
@@ -549,6 +527,8 @@ CONFIG_SOC_LP_TIMER_BIT_WIDTH_LO=32
|
||||
# default:
|
||||
CONFIG_SOC_LP_TIMER_BIT_WIDTH_HI=16
|
||||
# default:
|
||||
CONFIG_SOC_RTC_TIMER_V2=y
|
||||
# default:
|
||||
CONFIG_SOC_TIMER_SUPPORT_ETM=y
|
||||
# default:
|
||||
CONFIG_SOC_TIMER_SUPPORT_SLEEP_RETENTION=y
|
||||
@@ -561,6 +541,8 @@ CONFIG_SOC_TWAI_MASK_FILTER_NUM=3
|
||||
# default:
|
||||
CONFIG_SOC_TWAI_RANGE_FILTER_NUM=1
|
||||
# default:
|
||||
CONFIG_SOC_TWAI_SUPPORT_SLEEP_RETENTION=y
|
||||
# default:
|
||||
CONFIG_SOC_EFUSE_DIS_PAD_JTAG=y
|
||||
# default:
|
||||
CONFIG_SOC_EFUSE_DIS_USB_JTAG=y
|
||||
@@ -717,6 +699,8 @@ CONFIG_SOC_PM_SUPPORT_PMU_MODEM_STATE=y
|
||||
# default:
|
||||
CONFIG_SOC_PM_SUPPORT_PMU_CLK_ICG=y
|
||||
# default:
|
||||
CONFIG_SOC_PM_SUPPORT_MODEM_CLOCK_DOMAIN_ICG=y
|
||||
# default:
|
||||
CONFIG_SOC_PM_SUPPORT_DEEPSLEEP_CHECK_STUB_ONLY=y
|
||||
# default:
|
||||
CONFIG_SOC_PM_CPU_RETENTION_BY_SW=y
|
||||
@@ -789,6 +773,8 @@ CONFIG_SOC_WIFI_NAN_SUPPORT=y
|
||||
# default:
|
||||
CONFIG_SOC_BLE_SUPPORTED=y
|
||||
# default:
|
||||
CONFIG_SOC_BLE_MESH_SUPPORTED=y
|
||||
# default:
|
||||
CONFIG_SOC_ESP_NIMBLE_CONTROLLER=y
|
||||
# default:
|
||||
CONFIG_SOC_BLE_50_SUPPORTED=y
|
||||
@@ -797,10 +783,12 @@ CONFIG_SOC_BLE_DEVICE_PRIVACY_SUPPORTED=y
|
||||
# default:
|
||||
CONFIG_SOC_BLE_POWER_CONTROL_SUPPORTED=y
|
||||
# default:
|
||||
CONFIG_SOC_BLE_MULTI_CONN_OPTIMIZATION=y
|
||||
# default:
|
||||
CONFIG_SOC_BLE_PERIODIC_ADV_ENH_SUPPORTED=y
|
||||
# default:
|
||||
CONFIG_SOC_BLUFI_SUPPORTED=y
|
||||
# default:
|
||||
CONFIG_SOC_BLE_MULTI_CONN_OPTIMIZATION=y
|
||||
# default:
|
||||
CONFIG_SOC_BLE_CTE_SUPPORTED=y
|
||||
# default:
|
||||
CONFIG_SOC_BLE_SUBRATE_SUPPORTED=y
|
||||
@@ -1092,6 +1080,8 @@ CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y
|
||||
# default:
|
||||
CONFIG_ESPTOOLPY_FLASHMODE="dio"
|
||||
# default:
|
||||
CONFIG_ESPTOOLPY_FLASHMODE_VAL=1
|
||||
# default:
|
||||
# CONFIG_ESPTOOLPY_FLASHFREQ_120M is not set
|
||||
# default:
|
||||
CONFIG_ESPTOOLPY_FLASHFREQ_80M=y
|
||||
@@ -1445,6 +1435,8 @@ CONFIG_EFUSE_MAX_BLK_LEN=256
|
||||
# default:
|
||||
CONFIG_ESP_TLS_USING_MBEDTLS=y
|
||||
# default:
|
||||
# CONFIG_ESP_TLS_CUSTOM_STACK is not set
|
||||
# default:
|
||||
# CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set
|
||||
# default:
|
||||
CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y
|
||||
@@ -1519,6 +1511,19 @@ CONFIG_ANA_CMPR_OBJ_CACHE_SAFE=y
|
||||
# CONFIG_BITSCRAMBLER_CTRL_FUNC_IN_IRAM is not set
|
||||
# end of ESP-Driver:BitScrambler Configurations
|
||||
|
||||
#
|
||||
# GDMA Configurations
|
||||
#
|
||||
# default:
|
||||
CONFIG_GDMA_CTRL_FUNC_IN_IRAM=y
|
||||
# default:
|
||||
CONFIG_GDMA_ISR_HANDLER_IN_IRAM=y
|
||||
# default:
|
||||
CONFIG_GDMA_OBJ_DRAM_SAFE=y
|
||||
# default:
|
||||
# CONFIG_GDMA_ENABLE_DEBUG_LOG is not set
|
||||
# end of GDMA Configurations
|
||||
|
||||
#
|
||||
# ESP-Driver:GPIO Configurations
|
||||
#
|
||||
@@ -1783,6 +1788,8 @@ CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y
|
||||
CONFIG_ESP_HTTP_CLIENT_EVENT_POST_TIMEOUT=2000
|
||||
# default:
|
||||
CONFIG_ESP_HTTP_CLIENT_PSA_CRYPTO_MIGRATE=y
|
||||
# default:
|
||||
# CONFIG_ESP_HTTP_CLIENT_SAVE_RESPONSE_HEADERS is not set
|
||||
# end of ESP HTTP client
|
||||
|
||||
#
|
||||
@@ -1821,6 +1828,8 @@ CONFIG_HTTPD_SERVER_PSA_CRYPTO_MIGRATE=y
|
||||
CONFIG_ESP_HTTPS_OTA_EVENT_POST_TIMEOUT=2000
|
||||
# default:
|
||||
# CONFIG_ESP_HTTPS_OTA_ENABLE_PARTIAL_DOWNLOAD is not set
|
||||
# default:
|
||||
CONFIG_ESP_HTTPS_OTA_VERIFY_SPI_MODE=y
|
||||
# end of ESP HTTPS OTA
|
||||
|
||||
#
|
||||
@@ -1945,21 +1954,10 @@ CONFIG_RTC_TIME_FUNC_IN_IRAM=y
|
||||
CONFIG_ESP_PERIPH_CTRL_FUNC_IN_IRAM=y
|
||||
# default:
|
||||
CONFIG_ESP_REGI2C_CTRL_FUNC_IN_IRAM=y
|
||||
# default:
|
||||
# CONFIG_ESP_MODEM_CLOCK_ENABLE_CHECKING is not set
|
||||
# end of Peripheral Control
|
||||
|
||||
#
|
||||
# GDMA Configurations
|
||||
#
|
||||
# default:
|
||||
CONFIG_GDMA_CTRL_FUNC_IN_IRAM=y
|
||||
# default:
|
||||
CONFIG_GDMA_ISR_HANDLER_IN_IRAM=y
|
||||
# default:
|
||||
CONFIG_GDMA_OBJ_DRAM_SAFE=y
|
||||
# default:
|
||||
# CONFIG_GDMA_ENABLE_DEBUG_LOG is not set
|
||||
# end of GDMA Configurations
|
||||
|
||||
#
|
||||
# Event Task Matrix (ETM) Configurations
|
||||
#
|
||||
@@ -2009,6 +2007,8 @@ CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y
|
||||
# default:
|
||||
CONFIG_ESP_CLK_RC32K_NOT_TO_USE=y
|
||||
# default:
|
||||
CONFIG_ESP_ENABLE_PVT=y
|
||||
# default:
|
||||
CONFIG_ESP_INTR_IN_IRAM=y
|
||||
# end of Hardware Settings
|
||||
|
||||
@@ -2157,6 +2157,10 @@ CONFIG_PM_CPU_RETENTION_DYNAMIC=y
|
||||
CONFIG_PM_ESP_SLEEP_POWER_DOWN_CPU=y
|
||||
# default:
|
||||
CONFIG_PM_WORKAROUND_FREQ_LIMIT_ENABLED=y
|
||||
# default:
|
||||
CONFIG_PM_SLP_SPIRAM_HALFSLEEP_ENABLED=y
|
||||
# default:
|
||||
CONFIG_PM_SLP_SPIRAM_HALFSLEEP_EXIT_WAIT_DELAY=150
|
||||
# end of Power Management
|
||||
|
||||
#
|
||||
@@ -2572,6 +2576,173 @@ CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT=y
|
||||
# CONFIG_ESP_WIFI_ENT_FREE_DYNAMIC_BUFFER is not set
|
||||
# end of Wi-Fi
|
||||
|
||||
#
|
||||
# Wi-Fi Remote
|
||||
#
|
||||
# default:
|
||||
CONFIG_ESP_WIFI_REMOTE_IN_IDF=y
|
||||
# default:
|
||||
CONFIG_ESP_WIFI_REMOTE_ENABLED=y
|
||||
# default:
|
||||
CONFIG_SLAVE_IDF_TARGET_ESP32=y
|
||||
# default:
|
||||
# CONFIG_SLAVE_IDF_TARGET_ESP32S2 is not set
|
||||
# default:
|
||||
# CONFIG_SLAVE_IDF_TARGET_ESP32C3 is not set
|
||||
# default:
|
||||
# CONFIG_SLAVE_IDF_TARGET_ESP32S3 is not set
|
||||
# default:
|
||||
# CONFIG_SLAVE_IDF_TARGET_ESP32C2 is not set
|
||||
# default:
|
||||
# CONFIG_SLAVE_IDF_TARGET_ESP32C6 is not set
|
||||
# default:
|
||||
# CONFIG_SLAVE_IDF_TARGET_ESP32C5 is not set
|
||||
# default:
|
||||
# CONFIG_SLAVE_IDF_TARGET_ESP32C61 is not set
|
||||
# default:
|
||||
CONFIG_SLAVE_SOC_WIFI_SUPPORTED=y
|
||||
# default:
|
||||
CONFIG_SLAVE_SOC_WIFI_WAPI_SUPPORT=y
|
||||
# default:
|
||||
CONFIG_SLAVE_SOC_WIFI_CSI_SUPPORT=y
|
||||
# default:
|
||||
CONFIG_SLAVE_SOC_WIFI_MESH_SUPPORT=y
|
||||
# default:
|
||||
CONFIG_SLAVE_SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW=y
|
||||
# default:
|
||||
CONFIG_SLAVE_SOC_WIFI_NAN_SUPPORT=y
|
||||
# default:
|
||||
CONFIG_SLAVE_IDF_TARGET_ARCH_XTENSA=y
|
||||
|
||||
#
|
||||
# Wi-Fi configuration
|
||||
#
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_STATIC_RX_BUFFER_NUM=10
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_DYNAMIC_RX_BUFFER_NUM=32
|
||||
# default:
|
||||
# CONFIG_WIFI_RMT_STATIC_TX_BUFFER is not set
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_DYNAMIC_TX_BUFFER=y
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_TX_BUFFER_TYPE=1
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_DYNAMIC_TX_BUFFER_NUM=32
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_STATIC_RX_MGMT_BUFFER=y
|
||||
# default:
|
||||
# CONFIG_WIFI_RMT_DYNAMIC_RX_MGMT_BUFFER is not set
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_DYNAMIC_RX_MGMT_BUF=0
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_RX_MGMT_BUF_NUM_DEF=5
|
||||
# default:
|
||||
# CONFIG_WIFI_RMT_CSI_ENABLED is not set
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_AMPDU_TX_ENABLED=y
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_TX_BA_WIN=6
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_AMPDU_RX_ENABLED=y
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_RX_BA_WIN=6
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_NVS_ENABLED=y
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_TASK_PINNED_TO_CORE_0=y
|
||||
# default:
|
||||
# CONFIG_WIFI_RMT_TASK_PINNED_TO_CORE_1 is not set
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_SOFTAP_BEACON_MAX_LEN=752
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_MGMT_SBUF_NUM=32
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_IRAM_OPT=y
|
||||
# default:
|
||||
# CONFIG_WIFI_RMT_EXTRA_IRAM_OPT is not set
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_RX_IRAM_OPT=y
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_ENABLE_WPA3_SAE=y
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_ENABLE_SAE_H2E=y
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_ENABLE_SAE_PK=y
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_SOFTAP_SAE_SUPPORT=y
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_ENABLE_WPA3_OWE_STA=y
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_WPA3_COMPATIBLE_SUPPORT=y
|
||||
# default:
|
||||
# CONFIG_WIFI_RMT_SLP_IRAM_OPT is not set
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_SLP_DEFAULT_MIN_ACTIVE_TIME=50
|
||||
# default:
|
||||
# CONFIG_WIFI_RMT_BSS_MAX_IDLE_SUPPORT is not set
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_SLP_DEFAULT_MAX_ACTIVE_TIME=10
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME=15
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_STA_DISCONNECTED_PM_ENABLE=y
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_GMAC_SUPPORT=y
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_SOFTAP_SUPPORT=y
|
||||
# default:
|
||||
# CONFIG_WIFI_RMT_SLP_BEACON_LOST_OPT is not set
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_ESPNOW_MAX_ENCRYPT_NUM=7
|
||||
# default:
|
||||
# CONFIG_WIFI_RMT_NAN_SYNC_ENABLE is not set
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_MBEDTLS_CRYPTO=y
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_MBEDTLS_TLS_CLIENT=y
|
||||
# default:
|
||||
# CONFIG_WIFI_RMT_WAPI_PSK is not set
|
||||
# default:
|
||||
# CONFIG_WIFI_RMT_11KV_SUPPORT is not set
|
||||
# default:
|
||||
# CONFIG_WIFI_RMT_MBO_SUPPORT is not set
|
||||
# default:
|
||||
# CONFIG_WIFI_RMT_DPP_SUPPORT is not set
|
||||
# default:
|
||||
# CONFIG_WIFI_RMT_11R_SUPPORT is not set
|
||||
# default:
|
||||
# CONFIG_WIFI_RMT_WPS_SOFTAP_REGISTRAR is not set
|
||||
|
||||
#
|
||||
# WPS Configuration Options
|
||||
#
|
||||
# default:
|
||||
# CONFIG_WIFI_RMT_WPS_STRICT is not set
|
||||
# default:
|
||||
# CONFIG_WIFI_RMT_WPS_PASSPHRASE is not set
|
||||
# default:
|
||||
# CONFIG_WIFI_RMT_WPS_RECONNECT_ON_FAIL is not set
|
||||
# end of WPS Configuration Options
|
||||
|
||||
# default:
|
||||
# CONFIG_WIFI_RMT_DEBUG_PRINT is not set
|
||||
# default:
|
||||
CONFIG_WIFI_RMT_ENTERPRISE_SUPPORT=y
|
||||
# default:
|
||||
# CONFIG_WIFI_RMT_ENT_FREE_DYNAMIC_BUFFER is not set
|
||||
# end of Wi-Fi configuration
|
||||
|
||||
# default:
|
||||
CONFIG_ESP_WIFI_REMOTE_LIBRARY_HOSTED=y
|
||||
# default:
|
||||
# CONFIG_ESP_WIFI_REMOTE_LIBRARY_EPPP is not set
|
||||
# default:
|
||||
# CONFIG_ESP_WIFI_REMOTE_LIBRARY_CUSTOM is not set
|
||||
# default:
|
||||
CONFIG_ESP_WIFI_REMOTE_EAP_ENABLED=y
|
||||
# end of Wi-Fi Remote
|
||||
|
||||
#
|
||||
# Core dump
|
||||
#
|
||||
@@ -2655,6 +2826,8 @@ CONFIG_FATFS_PER_FILE_CACHE=y
|
||||
# default:
|
||||
CONFIG_FATFS_ALLOC_PREFER_EXTRAM=y
|
||||
# default:
|
||||
# CONFIG_FATFS_ALLOC_PREFER_ALIGNED_WORK_BUFFERS is not set
|
||||
# default:
|
||||
# CONFIG_FATFS_USE_FASTSEEK is not set
|
||||
# default:
|
||||
CONFIG_FATFS_USE_STRFUNC_NONE=y
|
||||
@@ -2691,8 +2864,6 @@ CONFIG_FATFS_DONT_TRUST_LAST_ALLOC=0
|
||||
# Kernel
|
||||
#
|
||||
# default:
|
||||
# CONFIG_FREERTOS_SMP is not set
|
||||
# default:
|
||||
CONFIG_FREERTOS_UNICORE=y
|
||||
# default:
|
||||
CONFIG_FREERTOS_HZ=100
|
||||
@@ -2812,10 +2983,10 @@ CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y
|
||||
# default:
|
||||
CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2
|
||||
# default:
|
||||
CONFIG_HAL_SYSTIMER_USE_ROM_IMPL=y
|
||||
# default:
|
||||
CONFIG_HAL_WDT_USE_ROM_IMPL=y
|
||||
# default:
|
||||
CONFIG_HAL_SYSTIMER_USE_ROM_IMPL=y
|
||||
# default:
|
||||
CONFIG_HAL_GPIO_USE_ROM_IMPL=y
|
||||
# end of Hardware Abstraction Layer (HAL) and Low Level (LL)
|
||||
|
||||
@@ -2875,8 +3046,6 @@ CONFIG_IEEE802154_INTERFACE_NUM=1
|
||||
CONFIG_IEEE802154_TIMING_OPTIMIZATION=y
|
||||
# default:
|
||||
# CONFIG_IEEE802154_DEBUG is not set
|
||||
# default:
|
||||
# CONFIG_IEEE802154_DEBUG_ASSERT_MONITOR is not set
|
||||
# end of IEEE 802.15.4
|
||||
|
||||
#
|
||||
@@ -3566,8 +3735,6 @@ CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y
|
||||
# Hash functions
|
||||
#
|
||||
# default:
|
||||
# CONFIG_MBEDTLS_POLY1305_C is not set
|
||||
# default:
|
||||
# CONFIG_MBEDTLS_RIPEMD160_C is not set
|
||||
# default:
|
||||
CONFIG_MBEDTLS_MD_C=y
|
||||
@@ -3628,6 +3795,8 @@ CONFIG_MBEDTLS_AES_HW_SMALL_DATA_LEN_OPTIM=y
|
||||
# CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set
|
||||
# default:
|
||||
# CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set
|
||||
# default:
|
||||
CONFIG_MBEDTLS_HARDWARE_RSA_DS_PERIPHERAL=y
|
||||
# end of Hardware Acceleration
|
||||
|
||||
#
|
||||
@@ -4154,6 +4323,34 @@ CONFIG_WPA_MBEDTLS_TLS_CLIENT=y
|
||||
# CONFIG_WPA_WPS_SOFTAP_REGISTRAR is not set
|
||||
# CONFIG_WPA_WPS_STRICT is not set
|
||||
# CONFIG_WPA_DEBUG_PRINT is not set
|
||||
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10
|
||||
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32
|
||||
CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1
|
||||
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32
|
||||
# CONFIG_ESP32_WIFI_CSI_ENABLED is not set
|
||||
CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y
|
||||
CONFIG_ESP32_WIFI_TX_BA_WIN=6
|
||||
CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
|
||||
CONFIG_ESP32_WIFI_RX_BA_WIN=6
|
||||
CONFIG_ESP32_WIFI_NVS_ENABLED=y
|
||||
CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752
|
||||
CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32
|
||||
CONFIG_ESP32_WIFI_IRAM_OPT=y
|
||||
CONFIG_ESP32_WIFI_RX_IRAM_OPT=y
|
||||
CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y
|
||||
CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=y
|
||||
# CONFIG_ESP_WIFI_NAN_ENABLE is not set
|
||||
CONFIG_WPA_MBEDTLS_CRYPTO=y
|
||||
CONFIG_WPA_MBEDTLS_TLS_CLIENT=y
|
||||
# CONFIG_WPA_WAPI_PSK is not set
|
||||
# CONFIG_WPA_SUITE_B_192 is not set
|
||||
# CONFIG_WPA_11KV_SUPPORT is not set
|
||||
# CONFIG_WPA_MBO_SUPPORT is not set
|
||||
# CONFIG_WPA_DPP_SUPPORT is not set
|
||||
# CONFIG_WPA_11R_SUPPORT is not set
|
||||
# CONFIG_WPA_WPS_SOFTAP_REGISTRAR is not set
|
||||
# CONFIG_WPA_WPS_STRICT is not set
|
||||
# CONFIG_WPA_DEBUG_PRINT is not set
|
||||
# CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set
|
||||
# CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set
|
||||
CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y
|
||||
|
||||
Reference in New Issue
Block a user