This series aims to implement the ct() action for the dpif-netdev datapath.
The bulk of the code is in the new conntrack module: it contains some packet
parsing code, some lookup tables and the logic to implements all the ct bits.

The conntrack module is helper by conntrack-tcp, for TCP window and flags
tracking: the bulk of the code of this submodule is from the FreeBSD's pf
subsystem, therefore is BSD licensed.

The rest of the series integrates the connection tracker with the rest of
OVS: the ct() action is implemented in dpif-netdev, and the debugging
interfaces required by dpctl/{dump,flush}-conntrack are implemented.

Besides adding some unit tests, this series ports the existing conntrack
system test to the userspace datapath.  Some small modifications are
required to pass the testsuite, and some tests still have to be skipped.

Note: this series is based on top of this other series:

http://openvswitch.org/pipermail/dev/2015-November/061869.html

A combination of the two can also be downloaded from:

https://github.com/ddiproietto/ovs/tree/userconntrack_20151115

Any feedback is appreciated, thanks.

Daniele Di Proietto (12):
  packets: Define ICMP types.
  flow: Export parse_ipv6_ext_hdrs().
  flow: Introduce parse_dl_type().
  conntrack: New userspace connection tracker.
  tests: Add very simple conntrack benchmark.
  conntrack: Implement flush function.
  conntrack: Implement dumping to ct_entry.
  dpif-netdev: Execute conntrack action.
  dpif-netdev: Implement conntrack dump functions.
  dpif-netdev: Implement conntrack flush interface.
  tests: Add conntrack ofproto-dpif tests.
  system-tests: Run conntrack tests with userspace

 lib/automake.mk                  |    5 +
 lib/conntrack-other.c            |   91 ++++
 lib/conntrack-private.h          |   80 +++
 lib/conntrack-tcp.c              |  509 +++++++++++++++++++
 lib/conntrack.c                  | 1000 ++++++++++++++++++++++++++++++++++++++
 lib/conntrack.h                  |  161 ++++++
 lib/dpif-netdev.c                |  135 ++++-
 lib/flow.c                       |  150 +++---
 lib/flow.h                       |    4 +
 lib/packets.h                    |   14 +-
 tests/automake.mk                |    1 +
 tests/dpif-netdev.at             |   14 +-
 tests/ofproto-dpif.at            |  697 +++++++++++++++++++++++++-
 tests/system-kmod-macros.at      |   21 +
 tests/system-traffic.at          |   36 +-
 tests/system-userspace-macros.at |   35 +-
 tests/test-conntrack.c           |  167 +++++++
 17 files changed, 3009 insertions(+), 111 deletions(-)
 create mode 100644 lib/conntrack-other.c
 create mode 100644 lib/conntrack-private.h
 create mode 100644 lib/conntrack-tcp.c
 create mode 100644 lib/conntrack.c
 create mode 100644 lib/conntrack.h
 create mode 100644 tests/test-conntrack.c

-- 
2.1.4

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to