Hi Darrell,
I took another look at the series and provided a few comments inline.
Other than those the patches look good to me, but I haven't looked at
every possible corner case :-)
Thanks,
Daniele
2017-03-24 2:15 GMT-07:00 Darrell Ball :
> 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,
> with some added enhancements.
>
> Some NAT options with limited utility (persistent, random) are
> not supported yet, but will be supported in a later patch.
>
> alg and fragmentation support are not included here but are
> being worked on.
>
> I realize patch 3 is big. It may be clearer and easier to keep
> as a single patch, so I have done that after some discussion.
>
> v6->v7: A couple patches were committed.
>
> Three news patches were added, including new
> orig tuple context recovery.
>
> Cleanup residual batch sorting deprecated array.
>
> Fix ICMP potential issue.
>
> Add more complete ICMP related handling, originally
> scoped for another patch series.
>
> Splice out a few functions for easier maintenance.
> There will be slight performance hit due to less
> narrow context.
>
> Use structure assignment vs memcpy in a few places.
> Remove unneeded memset.
> Rate limit a vlog.
> Remove a couple hand-rolled netlink parsings.
>
> v5->v6: Add releases file NAT alert, as pointed out by Flavio.
> Add some missing details in commit message in a couple
> patches as mentioned by Flavio.
> Flushed the bug queue - found a couple bugs in testing
> over the last week.
> a) nat_range_hash was missing the intended conn entry
>address and port fields :-); I guess missed since the
>corresponding nat info address and port fields were
>there.
> b) The netlink parsing math was off for min/max address
>in NAT range.
>
> v4->v5: Remove packet sorting in userspace datapath conntrack.
> Simplify conntrack state code.
> Fix sparse error.
> Address code review comments from Daniele.
>
> v3->v4: Fix rev_key vs key for nat_conn_keys access in a couple
> places; this would have affected cleanup; at same time
> rename some variables and change nat_conn_keys APIs to
> use conn key, rather than conn.
>
> Fix conntrack_flush() CT_CONN_TYPE_DEFAULT flag placement;
> the intention was that it be the same as in sweep_bucket().
>
> Fix nat_ipv6_addrs_delta() max boundary checking logic. I
> also enhanced the conntrack - IPv6 HTTP with NAT test to
> give it more coverage as partial penance.
>
> Rebase
>
> v2->v3: Fix a theoretical resend for closed connection restart.
> Parse out a function to help and also limit
> conn_state_update() to one.
>
> I decided to cap V6 address range delta at 4 billion using
> internal adjustment (user visibility not required).
>
> Some cleanup of deprecated code path.
>
> Parse out some more changes as separate patches.
>
> v1->v2: Updates/fixes that were missed in v1 patches.
>
> Darrell Ball (9):
> dpdk: Parse NAT netlink for userspace datapath.
> dpdk: Remove batch sorting in userspace conntrack.
> dpdk: Userspace Datapath: Introduce NAT Support.
> dpdk: Add more ICMP Related NAT support.
> dpdk: Add orig tuple context recovery.
> System Tests: Enhance NAT tests.
> Add some system test fixes
> dpdk: Enable NAT tests for userspace datapath.
> dpdk: Update feature alert documentation.
>
> Documentation/faq/releases.rst |2 +-
> NEWS |2 +
> lib/conntrack-private.h | 25 +-
> lib/conntrack.c | 1033
> +-
> lib/conntrack.h | 76 ++-
> lib/dpif-netdev.c| 85 +++-
> lib/packets.h|7 +
> tests/atlocal.in |3 +
> tests/system-traffic.at | 113 -
> tests/system-userspace-macros.at |7 +-
> tests/test-conntrack.c |9 +-
> 11 files changed, 1198 insertions(+), 164 deletions(-)
>
> --
> 1.9.1
>
> ___
> dev mailing list
> d...@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev