[ovs-dev] [patch v5 00/11] Userspace datapath: Add fragmentation support.

Aaron Conole aconole at redhat.com
Fri Feb 9 21:35:53 UTC 2018


Hi Darrell,

Darrell Ball <dlu998 at gmail.com> writes:

> Fragmentation support for userspace datapath conntrack is added; both
> v4 and v6 are supported. See the patches for additional details.

Very pumped about this!

I went to start reviewing this, but found out that 04/ didn't apply
correctly.  No problem, I'll proceed - just figured I'd let you know
that:

  1. I'm looking at it :)
  2. it'll need at least one more spin (but no need to rush that since
     I'll move myself past the error)

Thanks,
-Aaron

> v4->v5: Added a sub-feature to optionally dump fragmentation lists.
>         This is useful for DOS forensics and debugging.
>
>         The testing coverage was also extended including checking
>         more counters and frag list occupancies.
>
>         Fixed a few bugs: 
>         1/ Handle dpdk mempool source restrictions for a batch of
>            packets from multiple sources; this also brings in a purge
>            frag list function to handle pathological cases of stuck frags.
>         2/ ipf_destroy was missing packet frees for frag lists.
>         3/ A setting of CS_INVALID was missing for expired packets -
>            I mentioned this earlier for version 4.
>
>         Some enhancements and coding standards changes for Patch 3.   
>
> v3->v4: Add V6 support to the patches.
>         Fix possible race cleanup bug when the user disables
>            fragmentation and there are list occupancies, not cleaned up
>            yet.
>         Add missed orig tuple fields for copy from reassembled packet
>             to fragments.
>         Fix an fragment list increment check - shoiuld have been "> 0"
>             rather then "!= 0".
>         Fix max frags calculation in case of theoretical corner case.
>         Add proper lock annotations.
>         Made some other improvements while adding V6 support.
>
> v2->v3: Patch 2 was updated:
>         Remove "XXX" todo items by implementing the ones needed,
>         including realloc frag_list contexts to save memory.
>         Fix related bug with max_frag_list_size when min_frag_size is
>         reconfigured.
>
>         Tighten ip_tot_len sanity check for reassembled packets which
>         was more loose than intended.
>
>         Add another sanity check for fragment ip_tot_len; even though
>         it be redundant, add for completeness.
>
> v1->v2: Few fixes, improvements and cleanups.
>
> Darrell Ball (11):
>   dp-packet: Add const qualifiers for checksum apis.
>   flow: Enhance parse_ipv6_ext_hdrs.
>   Userspace datapath: Add fragmentation handling.
>   conntrack: Support fragmentation.
>   ipf: Add command to enable fragmentation handling.
>   ipf: Add set minimum fragment size command.
>   ipf: Add set maximum fragments supported command.
>   ipf: Add command to get fragmentation handling status.
>   ipf: Enhance ipf_get_status.
>   tests: Add missed local stack checks.
>   tests: Enable fragmentation for userspace datapath.
>
>  NEWS                             |   10 +
>  include/sparse/netinet/ip6.h     |    1 +
>  lib/automake.mk                  |    2 +
>  lib/conntrack.c                  |   10 +-
>  lib/ct-dpif.c                    |   69 ++
>  lib/ct-dpif.h                    |   13 +
>  lib/dp-packet.h                  |    4 +-
>  lib/dpctl.c                      |  216 ++++++
>  lib/dpctl.man                    |   32 +
>  lib/dpif-netdev.c                |   83 +++
>  lib/dpif-netlink.c               |    7 +
>  lib/dpif-provider.h              |   18 +
>  lib/flow.c                       |   23 +-
>  lib/flow.h                       |    3 +-
>  lib/ipf.c                        | 1390 ++++++++++++++++++++++++++++++++++++++
>  lib/ipf.h                        |   86 +++
>  tests/system-kmod-macros.at      |   30 +-
>  tests/system-traffic.at          |   45 +-
>  tests/system-userspace-macros.at |  125 +++-
>  19 files changed, 2129 insertions(+), 38 deletions(-)
>  create mode 100644 lib/ipf.c
>  create mode 100644 lib/ipf.h


More information about the dev mailing list