mirror of
https://github.com/openvswitch/ovs
synced 2025-09-03 15:55:19 +00:00
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>
This commit is contained in:
committed by
Pravin B Shelar
parent
4c7804f14b
commit
aaca4fe0ce
@@ -108,6 +108,7 @@
|
||||
OFPACT(UNROLL_XLATE, ofpact_unroll_xlate, ofpact, "unroll_xlate") \
|
||||
OFPACT(CT, ofpact_conntrack, ofpact, "ct") \
|
||||
OFPACT(NAT, ofpact_nat, ofpact, "nat") \
|
||||
OFPACT(OUTPUT_TRUNC, ofpact_output_trunc,ofpact, "output_trunc") \
|
||||
\
|
||||
/* Debugging actions. \
|
||||
* \
|
||||
@@ -290,6 +291,15 @@ struct ofpact_output_reg {
|
||||
struct mf_subfield src;
|
||||
};
|
||||
|
||||
/* OFPACT_OUTPUT_TRUNC.
|
||||
*
|
||||
* Used for NXAST_OUTPUT_TRUNC. */
|
||||
struct ofpact_output_trunc {
|
||||
struct ofpact ofpact;
|
||||
ofp_port_t port; /* Output port. */
|
||||
uint32_t max_len; /* Max send len. */
|
||||
};
|
||||
|
||||
/* Bundle slave choice algorithm to apply.
|
||||
*
|
||||
* In the descriptions below, 'slaves' is the list of possible slaves in the
|
||||
|
Reference in New Issue
Block a user