I fixed a bug in V10 and sent V11.
i.e. V10 is superceded
Darrell
On Wed, Feb 6, 2019 at 7:55 PM Darrell Ball wrote:
> Fragmentation support for userspace datapath conntrack is added; both
> v4 and v6 are supported. See the patches for additional details.
>
> Fragmentation tests for the userspace datapath are enabled
> by the patches and other test enhancements are added.
>
> v10: Addressed Ben's review comments.
> Merged patches 6 and onwards per request.
> Note 4 tests are flagged by address santizer, but are an artifact
> of the packet-out test methodology.
>
> v9: Exported ipf status type to dpif-provider.h for code maintenance
> reasons vs datatype info. hiding (code review suggestion;
> Thanks Justin).
>
> Changed counters to 64 bit, per intention (oops) and added a patch
> to support 64 bit atomics (code review; good catch Justin).
>
> Merged code for cleanup thread into patches.
>
> Cleanup dpctl_ct_ipf_get_status() usage; 'verbose' usage vs '-m'.
>
> Added a patch to cleanup opt_dpif_open() and callers.
>
> Enhanced comment for 'ipf-set-min-frag'
>
> Minor cleanups.
>
> Rebase.
>
> v8: Fix argument index (-1 vs -2) for recently added function
> ipf_set_enabled__().
>
> Eliminate spaces around '|' for 'v4 | v6'.
>
> Reduce performance impact for non-fragments to approx zero.
>
> v7: Address review comments (Thanks Justin).
> Rebase.
> Fix a couple bugs.
> Some enhancements.
>
> v6: Rebase
> Folded patch 4 and some test enablement into patch 3 and brought
> an earlier patch forward in sequence
> Enable fragmentation by default
> Cleaup
>
> 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.
>
> 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.
>
> 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.
>
> v2: Few fixes, improvements and cleanups.
>
> Darrell Ball (6):
> dp-packet: Add const qualifiers for checksum apis.
> flow: Enhance parse_ipv6_ext_hdrs.
> tests: Add missed local stack checks.
> conntrack: Reword conntrack_execute() description.
> ovs-atomic: Add 64 bit apis.
> Userspace datapath: Add fragmentation handling.
>
> Documentation/faq/releases.rst | 49 +-
> NEWS | 10 +
> include/sparse/netinet/ip6.h |1 +
> lib/automake.mk |4 +-
> lib/conntrack.c | 24 +-
> lib/conntrack.h |4 +
> lib/ct-dpif.c| 58 +-
> lib/ct-dpif.h| 12 +-
> lib/dp-packet.h | 22 +-
> lib/dpctl.c | 215 +-
> lib/dpctl.man| 36 +
> lib/dpif-netdev.c| 65 +-
> lib/dpif-netlink.c |9 +-
> lib/dpif-provider.h | 53 +-
> lib/flow.c | 44 +-
> lib/flow.h |3 +-
> lib/ipf.c| 1571
> ++
> lib/ipf.h| 60 ++
> lib/ovs-atomic.h | 36 +
> tests/system-kmod-macros.at | 46 +-
> tests/system-traffic.at | 53 +-
> tests/system-userspace-macros.at | 186 -
> 22 files changed,