Congrats! This has been a while coming:)

On 27 July 2016 at 23:17, Daniele Di Proietto <diproiet...@vmware.com> wrote:
> Thanks for the reviews, I pushed this to master except for the system tests 
> part.
>
>
>
> On 26/07/2016 17:58, "Daniele Di Proietto" <diproiet...@vmware.com> wrote:
>
>>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 helped 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.
>>
>>This can also be downloaded at:
>>
>>https://github.com/ddiproietto/ovs/tree/userconntrack_20160726
>>
>>Any feedback is appreciated, thanks.
>>
>>v4 -> v5:
>>* Rebase: hmap.h is moved, include ct_* field in some unit tests,
>>  skip and adapt to the new ct dump format the OVN tests.
>>* Style and typo fixes.
>>* Add coverage counter to detect long cleanup.
>>* Use ovs_barrier instead of pthread_barrier in test (fix compilation
>>  on OS X).
>>* Fix dumping tcp state in the reply direction.
>>* Squash together flow_compose improvements (checksum and udp_len).
>>
>>v3 -> v4:
>>* Rebase: use struct dp_packet_batch, add extra ct_ fields in some
>>  new tests, use struct hmap_pos, skip some new system NAT tests.
>>* Style and typo fixes.
>>* Add OVS_NOT_REACHED() in switch in process_one().
>>* New commit: use dl_type from flow or matching megaflow.
>>
>>v2 -> v3:
>>* Rebased.
>>* Squashed commits for flushing (in dpif-netdev and conntrack).
>>* Squashed commits for dumping (in dpif-netdev and conntrack).
>>* Use adaptive mutex instead of spinlock: this prevents livelock
>>  if the cleanup thread is executed on the same CPU as a forwarding
>>  thread.  Performance impact in minimal.
>>* Validate L3 and L4 checksum.
>>* Use proper L3 and L4 checksum in hardcoded packets in system and unit
>>  tests.
>>* Consider ICMPv6 as well as ICMP in l4_protos and conn_key_to_tuple.
>>* Mention conntrack in NEWS and FAQ.md.
>>* Use uint16_t for ct_state.
>>* Fix possible NULL dereference for conn in process_one().
>>* Add OVS_U128_MIN, OVS_U128_ZERO.
>>* Use HMAP_FOR_EACH_POP.
>>* Check that UDP length is valid.
>>* Style fix: prefer 'sizeof *object' instead of 'sizeof type'
>>* Don't accept packets from/to UDP/TCP port 0.
>>* Use defines for timeouts.
>>* Check expiration inside lookup loop in conn_key_lookup().
>>* Limit the number of connections.
>>* Simplify case if tcp_get_wscale().
>>* Introduce general INT_MOD_* macros for comparisons in modular arithmetic.
>>* Improve comments.
>>* New cleanup mechanism: we keep connections in an ordered list and we have
>>  a separate thread to performs the cleanup.  This doesn't block the main
>>  thread for long intervals anymore.
>>* Correctly fill UDP length and UDP/TCP/ICMP checksums in flow_compose():
>>  it's useful to write testcases for the connection tracker.
>>* Added system test with ICMP traffic through the connection tracker.
>>* Track ICMP type and code.
>>
>>v1 -> v2:
>>* Fixed bug in tcp_get_wscale(), related to TCP options parsing.
>>* Changed names of ICMP constants: now they're different from Linux and
>>  FreeBSD.
>>* Fixed bug in parse_ipv6_ext_hdrs().
>>* Used ALWAYS_INLINE in parse_vlan and parse_ethertype, to avoid a
>>  performance regression in miniflow_extract().
>>* Updated copyright info in COPYING and debian/copyright.in.
>>* Rebased.
>>* Changed batching strategy in conntrack_execute() to allow a newly
>>  created connection to be picked up by packets in the same batch.
>>* Added an ovs-test module to throw pcap files at the connection tracker.
>>* Added a workaround for the userspace testsuite on new kernels and a tcp
>>  non-conntrack test.
>>
>>
>>
>>Daniele Di Proietto (16):
>>  packets: Define ICMP types.
>>  flow: Export parse_ipv6_ext_hdrs().
>>  flow: Introduce parse_dl_type().
>>  conntrack: New userspace connection tracker.
>>  conntrack: Periodically delete expired connections.
>>  tests: Add very simple conntrack benchmark.
>>  tests: Add test-conntrack pcap test.
>>  dpif-netdev: Execute conntrack action.
>>  dpif-netdev: Implement conntrack dump functions.
>>  dpif-netdev: Implement conntrack flush interface.
>>  flow: Generate checksum and udp_len in flow_compose().
>>  tests: Add conntrack ofproto-dpif tests.
>>  system-tests: Run conntrack tests with userspace.
>>  system-tests: Add ping through conntrack test.
>>  conntrack: Track ICMP type and code.
>>  conntrack: Add 'dl_type' parameter to conntrack_execute().
>>
>> COPYING                          |    1 +
>> FAQ.md                           |    2 +-
>> NEWS                             |    2 +
>> debian/copyright.in              |    4 +
>> include/openvswitch/types.h      |    4 +
>> lib/automake.mk                  |    6 +
>> lib/conntrack-icmp.c             |  105 ++++
>> lib/conntrack-other.c            |   86 +++
>> lib/conntrack-private.h          |  114 ++++
>> lib/conntrack-tcp.c              |  498 +++++++++++++++
>> lib/conntrack.c                  | 1235 
>> ++++++++++++++++++++++++++++++++++++++
>> lib/conntrack.h                  |  204 +++++++
>> lib/ct-dpif.c                    |   24 +-
>> lib/ct-dpif.h                    |    3 +-
>> lib/dpif-netdev.c                |  150 ++++-
>> lib/flow.c                       |  216 ++++---
>> lib/flow.h                       |    4 +
>> lib/netlink-conntrack.c          |    2 +-
>> lib/packets.h                    |   14 +-
>> lib/util.h                       |    9 +
>> tests/automake.mk                |    1 +
>> tests/dpif-netdev.at             |   16 +-
>> tests/ofproto-dpif.at            |  900 +++++++++++++++++++++++----
>> tests/pmd.at                     |    2 +-
>> tests/system-kmod-macros.at      |   28 +
>> tests/system-ovn.at              |   10 +-
>> tests/system-traffic.at          |  146 ++++-
>> tests/system-userspace-macros.at |   45 +-
>> tests/test-conntrack.c           |  283 +++++++++
>> 29 files changed, 3856 insertions(+), 258 deletions(-)
>> create mode 100644 lib/conntrack-icmp.c
>> 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.8.1
>>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to