[ovs-dev] [patch v10 0/6] Userspace datapath: Add fragmentation support.
dlu998 at gmail.com
Mon Feb 11 01:54:21 UTC 2019
I fixed a bug in V10 and sent V11.
i.e. V10 is superceded
On Wed, Feb 6, 2019 at 7:55 PM Darrell Ball <dlu998 at gmail.com> 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.
> v8: Fix argument index (-1 vs -2) for recently added function
> Eliminate spaces around '|' for 'v4 | v6'.
> Reduce performance impact for non-fragments to approx zero.
> v7: Address review comments (Thanks Justin).
> 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
> 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
> 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
> 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, 2460 insertions(+), 101 deletions(-)
> create mode 100644 lib/ipf.c
> create mode 100644 lib/ipf.h
More information about the dev