diff --git a/components/lwip/Kconfig b/components/lwip/Kconfig index 602743446..d4647dbfb 100644 --- a/components/lwip/Kconfig +++ b/components/lwip/Kconfig @@ -16,6 +16,16 @@ menu "LWIP" Please make sure you fully understand the impact of this feature before enabling it. + config ETHARP_SUPPORT_VLAN + bool "Support receiving and sending ethernet packets with VLAN header" + default n + help + ETHARP_SUPPORT_VLAN==1: support receiving and sending ethernet packets with + VLAN header. See the description of LWIP_HOOK_VLAN_CHECK and LWIP_HOOK_VLAN_SET + hooks to check/set VLAN headers. + If ETHARP_VLAN_CHECK is defined, only VLAN-traffic for this VLAN is accepted. + If ETHARP_VLAN_CHECK is not defined, all traffic is accepted. + config LWIP_IRAM_OPTIMIZATION bool "Enable LWIP IRAM optimization" default n diff --git a/components/lwip/port/esp32/include/lwipopts.h b/components/lwip/port/esp32/include/lwipopts.h index 6aa2253dc..e4fee682f 100644 --- a/components/lwip/port/esp32/include/lwipopts.h +++ b/components/lwip/port/esp32/include/lwipopts.h @@ -738,6 +738,17 @@ */ #define ETHARP_TRUST_IP_MAC CONFIG_LWIP_ETHARP_TRUST_IP_MAC +/** + * ETHARP_SUPPORT_VLAN==1: support receiving and sending ethernet packets with + * VLAN header. See the description of LWIP_HOOK_VLAN_CHECK and + * LWIP_HOOK_VLAN_SET hooks to check/set VLAN headers. + * Additionally, you can define ETHARP_VLAN_CHECK to an u16_t VLAN ID to check. + * If ETHARP_VLAN_CHECK is defined, only VLAN-traffic for this VLAN is accepted. + * If ETHARP_VLAN_CHECK is not defined, all traffic is accepted. + * Alternatively, define a function/define ETHARP_VLAN_CHECK_FN(eth_hdr, vlan) + * that returns 1 to accept a packet or 0 to drop a packet. + */ +#define ETHARP_SUPPORT_VLAN CONFIG_ETHARP_SUPPORT_VLAN /** * POSIX I/O functions are mapped to LWIP via the VFS layer