[ovs-dev] [PATCH v2 00/15] Userspace (DPDK) connection tracker
Daniele Di Proietto
diproiettod at vmware.com
Wed Apr 27 06:36:10 UTC 2016
Hi Antonio,
great, thank you very much for performing this tests and share the results
On 25/04/2016 07:00, "Fischetti, Antonio" <antonio.fischetti at intel.com> wrote:
>Hi Daniele,
>below are
> - Regression Tests results
> - ALWAYS_INLINE check
>
>
>Regression Tests on Performance
>===============================
>
>I did some regression tests on performance, it looks like there's
>no performance drop.
>
>I've sent mono-directional data with 64-Byte packets at line rate
>on one ixia port (Tx) and read the receiving rate on the other ixia
>port (Rx), regardless of packet loss.
>
>Below the 2 tests I did and then a table with performance figures.
>
>I’ve used OVS master @ Commit ID: d87091c2a1f9d3db1a2352eba1b609405122d15a
>and compared results with and without the ConnTracker v2 patches.
>
>
>Test #1: 'Phy-to-Phy'
>---------------------
>
> +-----+
>-->[ Port 1 (dpdk) ]---| |
> | OVS |
><--[ Port 2 (dpdk) ]---| |
> +-----+
>
>ovs-ofctl add-flow br0 in_port=1,action=output:2
>
>
>
>Test #2: Phy-VM-Phy with vHost-User
>-----------------------------------
>
> +-----+ +--------------+
>-->[ Port 1 (dpdk) ]---| |---[ Port 4 (dpdkvhostuser) ]---| |
> | OVS | | testpmd @ VM |
><--[ Port 3 (dpdk) ]---| |---[ Port 2 (dpdkvhostuser) ]---| |
> +-----+ +--------------+
>
>ovs-ofctl add-flow br0 idle_timeout=0,in_port=1,action=output:4
>ovs-ofctl add-flow br0 idle_timeout=0,in_port=2,action=output:3
>
>
>
>Performance figures
>-------------------
>
> +----------------+-------------------+
> | OVS master | OVS master 2.5 + |
> | | C.T. Patches v2 |
>+------------------+----------------+-------------------+
>| Phy-to-Phy | 13.49 Mpps | 13.46 Mpps |
>+------------------+----------------+-------------------+
>| PVP (vHost-User) | 5.6 Mpps | 5.6 Mpps |
>+------------------+----------------+-------------------+
>
>
>
>ALWAYS_INLINE
>=============
>I've also checked what we already discussed with the patch set v1.
>I applied patches one by one and measured the performance, it seems
>that ALWAYS_INLINE in parse_vlan() and parse_ethertype() has fixed
>the performance regression issue.
>
>
>
>Antonio
>
>
>> -----Original Message-----
>> From: dev [mailto:dev-bounces at openvswitch.org] On Behalf Of Daniele Di
>> Proietto
>> Sent: Saturday, April 16, 2016 1:03 AM
>> To: dev at openvswitch.org
>> Subject: [ovs-dev] [PATCH v2 00/15] Userspace (DPDK) connection tracker
>>
>> 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.
>>
>> On newer kernels the userspace testsuite has some problems with offloads,
>> so a workaround is included.
>>
>> This can also be downloaded at:
>>
>> https://github.com/ddiproietto/ovs/tree/userconntrack_20160415
>>
>> Any feedback is appreciated, thanks.
>>
>> 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 (15):
>> 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.
>> tests: Add test-conntrack pcap test.
>> 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: Disable offloads in userspace tests.
>> system-tests: Add tcp simple test.
>> system-tests: Run conntrack tests with userspace
>>
>> COPYING | 1 +
>> debian/copyright.in | 4 +
>> lib/automake.mk | 5 +
>> lib/conntrack-other.c | 91 ++++
>> lib/conntrack-private.h | 80 ++++
>> lib/conntrack-tcp.c | 510 ++++++++++++++++++++
>> lib/conntrack.c | 997
>> +++++++++++++++++++++++++++++++++++++++
>> lib/conntrack.h | 162 +++++++
>> lib/dpif-netdev.c | 138 +++++-
>> lib/flow.c | 154 +++---
>> lib/flow.h | 4 +
>> lib/packets.h | 14 +-
>> tests/automake.mk | 1 +
>> tests/dpif-netdev.at | 14 +-
>> tests/ofproto-dpif.at | 698 ++++++++++++++++++++++++++-
>> tests/system-common-macros.at | 1 +
>> tests/system-kmod-macros.at | 35 ++
>> tests/system-traffic.at | 69 ++-
>> tests/system-userspace-macros.at | 63 ++-
>> tests/test-conntrack.c | 232 +++++++++
>> 20 files changed, 3164 insertions(+), 109 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 at openvswitch.org
>> http://openvswitch.org/mailman/listinfo/dev
More information about the dev
mailing list