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

@ -1 +1 @@
Subproject commit 5c181728c894d8c051070b1cf21c55a6222fc64b
Subproject commit 754b8d5dcb2a2626d81918b60772c18dee41e54e

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 ----------