This patch series introduces NAT support for the userspace datapath. The per packet scope of lookups for NAT and un_NAT is at the bucket level rather than global. One hash table is introduced to support create/delete handling. The create/delete events may be further optimized, if the need becomes clear.
The existing NAT tests are enabled for the dpdk datapath. Some NAT options with limited utility (persistent, random) are not supported yet, but will be supported in a later patch. Enforcement of a capping of a max delta of nat ipv6 addresses to 4 billion needs to be done. I have not done it yet as I want to confirm the form of user visibility. One V6 api is exported to facilitate selective editing the V6 header - packet_set_ipv6_addr(). alg and fragmentation support are not included here but are being worked on. NEWS is not updated in this series yet, until confirmation of release. I realize patch 2 is big. It may be clearer and easier to keep as a single patch, so I have done that after some discussion. v1->v2: Updates/fixes that were missed in v1 patches. Darrell Ball (3): Export packet_set_ipv6_addr() for dpdkdatapath. Userspace Datapath: Introduce NAT support. Enable NAT tests for userspace datapath. lib/conntrack-private.h | 25 +- lib/conntrack.c | 724 ++++++++++++++++++++++++++++++++++----- lib/conntrack.h | 81 ++++- lib/dpif-netdev.c | 85 ++++- lib/packets.c | 2 +- lib/packets.h | 4 + tests/system-userspace-macros.at | 7 +- tests/test-conntrack.c | 8 +- 8 files changed, 826 insertions(+), 110 deletions(-) -- 1.9.1 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev