LwIP: NAPT functionality

Adds Kconfig option to enable experimental NAPT feature for IP packet
forwarding across interfaces.

Closes https://github.com/espressif/esp-idf/issues/1527
This commit is contained in:
David Cermak
2020-02-19 11:37:36 +01:00
parent d85d3d969f
commit 94d320473c
4 changed files with 30 additions and 1 deletions

View File

@@ -46,6 +46,7 @@ set(srcs
"lwip/src/core/ipv4/icmp.c"
"lwip/src/core/ipv4/igmp.c"
"lwip/src/core/ipv4/ip4.c"
"lwip/src/core/ipv4/ip4_napt.c"
"lwip/src/core/ipv4/ip4_addr.c"
"lwip/src/core/ipv4/ip4_frag.c"
"lwip/src/core/ipv6/dhcp6.c"

View File

@@ -122,6 +122,20 @@ menu "LWIP"
help
Enabling this option allows reassemblying incoming fragmented IP packets.
config LWIP_IP_FORWARD
bool "Enable IP forwarding"
default n
help
Enabling this option allows packets forwarding across multiple interfaces.
config LWIP_IPV4_NAPT
bool "Enable NAT (new/experimental)"
depends on LWIP_IP_FORWARD
select LWIP_L2_TO_L3_COPY
default n
help
Enabling this option allows Network Address and Port Translation.
config LWIP_STATS
bool "Enable LWIP statistics"
default n

View File

@@ -185,6 +185,20 @@
*/
#define IP_REASS_MAX_PBUFS 10
/**
* IP_FORWARD==1: Enables the ability to forward IP packets across network
* interfaces. If you are going to run lwIP on a device with only one network
* interface, define this to 0.
*/
#define IP_FORWARD CONFIG_LWIP_IP_FORWARD
/**
* IP_NAPT==1: Enables IPv4 Network Address and Port Translation.
* Note that both CONFIG_LWIP_IP_FORWARD and CONFIG_LWIP_L2_TO_L3_COPY options
* need to be enabled in system configuration for the NAPT to work on ESP platform
*/
#define IP_NAPT CONFIG_LWIP_IPV4_NAPT
/*
----------------------------------
---------- ICMP options ----------