nuttx/net/devif
Zhe Weng f3b34c84c2 net/nat: Support IPv6 Masquerading (NAT66)
Notes:
1. This version of NAT66 is a stateful one like NAT44, corresponding to Linux's MASQUERADE target of ip6tables.  We can support stateless NAT66 & NPTv6 later by slightly modify the address & port selection logic (maybe just match the rules and skip the entry find).
2. We're using same flag `IFF_NAT` for both NAT44 & NAT66 to make control easier.  Which means, if we enable NAT, both NAT44 & NAT66 will be enabled.  If we don't want one of them, we can just disable that one in Kconfig.
3. Maybe we can accelerate the checksum adjustment by pre-calculate a difference of checksum, and apply it to each packet, instead of calling `net_chksum_adjust` each time.  Just a thought, maybe do it later.
4. IP fragment segments on NAT66 connections are not supported yet.

Signed-off-by: Zhe Weng <wengzhe@xiaomi.com>
2024-04-11 22:23:29 +08:00
..
CMakeLists.txt
devif_callback.c devif_callback: modify the code logic to conform to the comment 2023-09-14 18:21:32 +08:00
devif_filesend.c
devif_forward.c
devif_initialize.c
devif_iobsend.c
devif_loopback.c net: Support multiple IPv6 address per netdev 2023-11-07 19:30:36 +08:00
devif_poll.c
devif_send.c
devif.h
ipv4_input.c net/nat: Support IPv6 Masquerading (NAT66) 2024-04-11 22:23:29 +08:00
ipv6_input.c net/nat: Support IPv6 Masquerading (NAT66) 2024-04-11 22:23:29 +08:00
Make.defs