]> git.proxmox.com Git - mirror_ovs.git/commit - ofproto/ofproto-dpif.c
ofp-actions: Add truncate action.
authorWilliam Tu <u9012063@gmail.com>
Fri, 24 Jun 2016 14:42:30 +0000 (07:42 -0700)
committerPravin B Shelar <pshelar@ovn.org>
Fri, 24 Jun 2016 16:17:00 +0000 (09:17 -0700)
commitaaca4fe0ce9e90a41b3f4db84be7d05823c733e4
tree501ddeb047ddb614067f89787d71bb01427bacc1
parent4c7804f14b9b5bbcd37cf9170781e2f820992532
ofp-actions: Add truncate action.

The patch adds a new action to support packet truncation.  The new action
is formatted as 'output(port=n,max_len=m)', as output to port n, with
packet size being MIN(original_size, m).

One use case is to enable port mirroring to send smaller packets to the
destination port so that only useful packet information is mirrored/copied,
saving some performance overhead of copying entire packet payload.  Example
use case is below as well as shown in the testcases:

    - Output to port 1 with max_len 100 bytes.
    - The output packet size on port 1 will be MIN(original_packet_size, 100).
    # ovs-ofctl add-flow br0 'actions=output(port=1,max_len=100)'

    - The scope of max_len is limited to output action itself.  The following
      packet size of output:1 and output:2 will be intact.
    # ovs-ofctl add-flow br0 \
            'actions=output(port=1,max_len=100),output:1,output:2'
    - The Datapath actions shows:
    # Datapath actions: trunc(100),1,1,2

Tested-at: https://travis-ci.org/williamtu/ovs-travis/builds/140037134
Signed-off-by: William Tu <u9012063@gmail.com>
Acked-by: Pravin B Shelar <pshelar@ovn.org>
27 files changed:
NEWS
include/openvswitch/ofp-actions.h
lib/dp-packet.c
lib/dp-packet.h
lib/dpif-netdev.c
lib/dpif.c
lib/dpif.h
lib/netdev-bsd.c
lib/netdev-dpdk.c
lib/netdev-dummy.c
lib/netdev-linux.c
lib/netdev.c
lib/odp-execute.c
lib/odp-util.c
lib/ofp-actions.c
ofproto/ofproto-dpif-sflow.c
ofproto/ofproto-dpif-xlate.c
ofproto/ofproto-dpif.c
ofproto/ofproto-dpif.h
tests/odp.at
tests/ofp-actions.at
tests/ofproto-dpif.at
tests/ovs-ofctl.at
tests/system-kmod-macros.at
tests/system-traffic.at
tests/system-userspace-macros.at
utilities/ovs-ofctl.8.in