incubator-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 build: add initial cmake build system 2023-07-08 13:50:48 +08:00
Make.defs net/sendfile: adapt sendfile() to support new driver model 2023-02-14 11:21:09 +08:00
devif.h net: Fix task block when devif_send fails. 2023-06-01 17:05:54 +08:00
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 mm/iob: Add support for increasing length in iob_update_pktlen 2023-08-22 16:34:21 +09:00
devif_forward.c net/ipfwd: fix `devif_forward` after IOB offload. 2022-12-06 17:03:47 +08:00
devif_initialize.c tcp: Remove incomplete support for TCP reassembly 2020-12-09 07:25:26 -08:00
devif_iobsend.c net: Fix task block when devif_send fails. 2023-06-01 17:05:54 +08:00
devif_loopback.c net: Support multiple IPv6 address per netdev 2023-11-07 19:30:36 +08:00
devif_poll.c mm/iob: Add support for increasing length in iob_update_pktlen 2023-08-22 16:34:21 +09:00
devif_send.c mm/iob: Add support for increasing length in iob_update_pktlen 2023-08-22 16:34:21 +09:00
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