[ovs-dev] [PATCHv10 0/2] datapath: Packet truncation backports.

William Tu u9012063 at gmail.com
Wed Jun 22 21:37:18 UTC 2016


This series adds the packet truncate action to OVS kernel and userspace.
The kernel datapath is upstreamed to net-next, so backports are provided
for Linux kernel 3.10 - 4.6.  Patch 1 provides the kernel code and compiles
on each Linux version within this range.  The backports are tested on 
Linux-stable version 4.3, with Fedora 23 and Ubuntu 14.04.  Patch 2 provides
the userspace support for packet truncation.

A travis CI build is also available at:
    https://travis-ci.org/williamtu/ovs-travis/builds/139597225

v9->v10
- Add missing DPDK vhost implementation
- Add ovs-appctl command and testcases for SLOW_ACTION
- Other style / naming fixes

v8->v9
- Fix clang error
- Remove ETH_HLEN which requires '#include <linux/if_ether.h>',
  use ETH_HEADER_LEN instead

v7->v8
- Kernel datapath (patch 1) remains the same.
- Fix conflicts with master
- Remove redundant code, redundant cutlen checking
- Add batch function to trim packet
- Fix inconsistency issue between kernel and userspace datapath

v6->v7
- Kernel datapath has been upstream.
- Add support for OFPP_LOCAL and OFPP_IN_PORT.
- Disallow other OFPP_* port at decode time instead of translation time.
- Set minimum max_len size from 60 to 14 (ETH_HLEN).
- Change max_len from u16 to u32 because kernel datapath uses u32.

v5->v6
- Add sample snaplen and sFlow usecase
- Add mirror snaplen usecase

v4->v5
- Disallow truncate and output to a patch port
- Add additional testcases
- Fix sparse warnings
v4: https://patchwork.ozlabs.org/patch/626486/

v3->v4
- Save the bytes to removed in datapath, instead of max_len
- Fix issues in test cases
- Add truncate support when upcall to userspace
v3: https://patchwork.ozlabs.org/patch/618573/

v2->v3
- Separate the truncate action and output action in datapath.
- Add truncate support for tunnel push and pop.
- Fix clang error.
- Use pskb_trim instead of skb_trim.
- Fallback to userspace truncate action when the
  openvswitch kernel module does not support.
  - Disallow truncate port to be any OFPUTIL_NAMED_PORTS.
  - Add more testcases.

v1
- Reuse max_len in OpenFlow output action.

William Tu (2):
  datapath:backport: openvswitch: Add packet truncation support.
  ofp-actions: Add truncate action.

 datapath/actions.c                                |  40 +++-
 datapath/datapath.c                               |  29 +--
 datapath/datapath.h                               |   5 +-
 datapath/flow_netlink.c                           |   9 +
 datapath/linux/compat/include/linux/openvswitch.h |   6 +
 datapath/vport.c                                  |   1 +
 include/openvswitch/ofp-actions.h                 |  10 +
 lib/dp-packet.c                                   |   2 +
 lib/dp-packet.h                                   |  67 +++++++
 lib/dpif-netdev.c                                 |  32 +++-
 lib/dpif.c                                        |  25 ++-
 lib/dpif.h                                        |   1 +
 lib/netdev-bsd.c                                  |   3 +
 lib/netdev-dpdk.c                                 |  24 +++
 lib/netdev-dummy.c                                |   2 +
 lib/netdev-linux.c                                |   3 +
 lib/netdev.c                                      |   5 +-
 lib/odp-execute.c                                 |  12 ++
 lib/odp-util.c                                    |  23 +++
 lib/ofp-actions.c                                 | 106 +++++++++++
 ofproto/ofproto-dpif-sflow.c                      |   1 +
 ofproto/ofproto-dpif-xlate.c                      |  57 ++++++
 ofproto/ofproto-dpif.c                            |  79 ++++++++
 ofproto/ofproto-dpif.h                            |   3 +
 tests/odp.at                                      |   1 +
 tests/ofp-actions.at                              |   3 +
 tests/ofproto-dpif.at                             | 124 ++++++++++++
 tests/ovs-ofctl.at                                |   8 +
 tests/system-traffic.at                           | 218 ++++++++++++++++++++++
 29 files changed, 878 insertions(+), 21 deletions(-)

-- 
2.5.0




More information about the dev mailing list