This series reworks the userspace connection tracker in Open vSwitch in
order to introduce an infrastructure that future offload providers could
use to offload connections, similar to facilities provided in the TC offload
path.  The goal is to enable userspace datapath offloads to provide
additional connection tracking offload support.

Patch 1 introduces a new conn private storage and a common initializer that
will be used throughout the connection lifecycle for more modular metadata.
Patch 2 then adds a priority-ordered observer infrastructure for monitoring,
and optionally handling connection state transitions.  Patches 3 + 4 are
restructures of existing code into separate files and prep work for
offloading in the TCP module.

Patches 5-10 are the meat of the offload infrastructure.  They provide the
basic support - add/del/est/update primitives that give enough context into
the userspace connection tracking layers to actually inform the hardware and
keep the userspace updated.  Additionally, we automatically disable tcp
sequence number checking on connections that are 'offloaded'.

Patch 11 provides a dummy offloading implementation.

Patch 12 is Documentation / NEWS updates

This work stops at the connection lifecycle boundary, rather than adding
additional APIs for other types of CT queries.  For example, the dpif layer
may need assistance querying whether a particular match can be offloaded.
That API work is still to be designed.

Aaron Conole (12):
  conntrack: Add per-conn storage for conntrack modules.
  conntrack: Introduce an observer pattern infrastructure as a hook.
  conntrack: Split the FTP and TFTP handling into separate files.
  conntrack-tcp: Convert to using the per-conn storage area.
  ct-offload: Add a new interface as an offload provider.
  ct-offload: Add batching support.
  ct-offload: Add a mark for offloaded connections.
  conntrack: Add calls to ct-offload infrastructure.
  ct-offload: Add configuration infrastructure.
  conntrack: Propagate input netdev pointer to conntrack.
  ct-offload-dummy: Introduce dummy ct offload.
  Documentation: Announce and describe the conntrack offload feature.

 Documentation/automake.mk                     |   1 +
 Documentation/topics/index.rst                |   1 +
 .../topics/userspace-conntrack-offloading.rst | 501 ++++++++++
 NEWS                                          |   7 +
 lib/automake.mk                               |   7 +
 lib/conntrack-ftp.c                           | 689 +++++++++++++
 lib/conntrack-icmp.c                          |   2 +-
 lib/conntrack-other.c                         |   2 +-
 lib/conntrack-private.h                       | 174 +++-
 lib/conntrack-tcp.c                           |  85 +-
 lib/conntrack-tcp.h                           |  59 ++
 lib/conntrack-tftp.c                          |  47 +
 lib/conntrack.c                               | 910 ++++--------------
 lib/conntrack.h                               |  76 +-
 lib/ct-offload-dummy.c                        | 244 +++++
 lib/ct-offload-dummy.h                        |  66 ++
 lib/ct-offload.c                              | 585 +++++++++++
 lib/ct-offload.h                              | 209 ++++
 lib/dpif-netdev.c                             |  17 +-
 lib/dpif-offload-dummy.c                      |  21 +-
 lib/dpif-offload.c                            |  16 +
 lib/dpif-offload.h                            |   1 +
 tests/dpif-netdev.at                          | 205 ++++
 tests/library.at                              |  60 ++
 tests/test-conntrack.c                        | 464 ++++++++-
 utilities/checkpatch_dict.txt                 |   4 +
 26 files changed, 3646 insertions(+), 807 deletions(-)
 create mode 100644 Documentation/topics/userspace-conntrack-offloading.rst
 create mode 100644 lib/conntrack-ftp.c
 create mode 100644 lib/conntrack-tcp.h
 create mode 100644 lib/conntrack-tftp.c
 create mode 100644 lib/ct-offload-dummy.c
 create mode 100644 lib/ct-offload-dummy.h
 create mode 100644 lib/ct-offload.c
 create mode 100644 lib/ct-offload.h

-- 
2.51.0

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to