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