[ovs-dev] [DPDK:patch_v5 0/8] Userspace Datapath: Introduce NAT support.

Flavio Leitner fbl at sysclose.org
Wed Feb 15 18:00:07 UTC 2017


On Wed, Feb 08, 2017 at 12:17:53AM -0800, Darrell Ball wrote:
> This patch series introduces NAT support for the userspace datapath.

Thanks a lot for this work, nice.  I did a quick look at the
patches and provided feedback on the easier ones, but I plan
to go over the long ones too.


> 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 an added enhancement to the V6 NAT test.
> 
> Some NAT options with limited utility (persistent, random) are
> not supported yet, but will be supported in a later patch.
> 
> 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.

If you don't mind, I'd appreciate if you could post RFCs of
what you have already.

Thanks!
Flavio

> 
> I realize patch 4 is big. It may be clearer and easier to keep
> as a single patch, so I have done that after some discussion.
> 
> 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 (8):
>   Export packet_set_ipv6_addr() for DPDK.
>   Parse NAT netlink for userspace datapath.
>   Remove batch sorting in userspace conntrack.
>   Userspace Datapath: Introduce NAT Support.
>   Enhance V6 NAT test.
>   Add missing CHECK_CONNTRACK_ALG guards.
>   Enable NAT tests for userspace datapath.
>   Update NEWS for userspace datapath NAT
> 
>  NEWS                             |   2 +
>  lib/conntrack-private.h          |  25 +-
>  lib/conntrack.c                  | 799 +++++++++++++++++++++++++++++++++------
>  lib/conntrack.h                  |  75 +++-
>  lib/dpif-netdev.c                |  82 +++-
>  lib/packets.c                    |   2 +-
>  lib/packets.h                    |   4 +
>  tests/system-traffic.at          |   7 +-
>  tests/system-userspace-macros.at |   7 +-
>  tests/test-conntrack.c           |   8 +-
>  10 files changed, 867 insertions(+), 144 deletions(-)
> 
> -- 
> 1.9.1
> 
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev

-- 
Flavio



More information about the dev mailing list