mirror of
https://github.com/openvswitch/ovs
synced 2025-08-22 01:51:26 +00:00
ofp-actions: Translate OF1.0 "enqueue" actions for OF1.1+.
Previously, the OF1.0 "enqueue" action was simply omitted when actions were translated into OpenFlow 1.1 or later, which do not have a similar action. This commit translates this action into an equivalent sequence of actions. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Jarno Rajahalme <jarno@ovn.org>
This commit is contained in:
parent
ae3b45b643
commit
0f2aaee939
1
NEWS
1
NEWS
@ -20,6 +20,7 @@ Post-v2.5.0
|
||||
* New command OFPGC_ADD_OR_MOD for OFPT_GROUP_MOD message that adds a
|
||||
new group or modifies an existing groups
|
||||
* New OpenFlow extension to support the "group" action in OpenFlow 1.0.
|
||||
* OpenFlow 1.0 "enqueue" action now properly translated to OpenFlow 1.1+.
|
||||
- ovs-ofctl:
|
||||
* queue-get-config command now allows a queue ID to be specified.
|
||||
* '--bundle' option can now be used with OpenFlow 1.3.
|
||||
|
@ -990,7 +990,13 @@ encode_ENQUEUE(const struct ofpact_enqueue *enqueue,
|
||||
oae->port = htons(ofp_to_u16(enqueue->port));
|
||||
oae->queue_id = htonl(enqueue->queue);
|
||||
} else {
|
||||
/* XXX */
|
||||
put_OFPAT_SET_QUEUE(out, ofp_version, enqueue->queue);
|
||||
|
||||
struct ofp11_action_output *oao = put_OFPAT11_OUTPUT(out);
|
||||
oao->port = ofputil_port_to_ofp11(enqueue->port);
|
||||
oao->max_len = OVS_BE16_MAX;
|
||||
|
||||
put_NXAST_POP_QUEUE(out);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -751,3 +751,20 @@ NXST_FLOW reply:
|
||||
])
|
||||
OVS_VSWITCHD_STOP
|
||||
AT_CLEANUP
|
||||
|
||||
AT_SETUP([enqueue action for OF1.1+])
|
||||
AT_KEYWORDS([ofp-actions])
|
||||
OVS_VSWITCHD_START
|
||||
dnl OpenFlow 1.0 has an "enqueue" action. For OpenFlow 1.1+, we translate
|
||||
dnl it to a series of actions that accomplish the same thing.
|
||||
AT_CHECK([ovs-ofctl -O OpenFlow10 add-flow br0 'actions=enqueue(123,456)'])
|
||||
AT_CHECK([ovs-ofctl -O OpenFlow10 dump-flows br0 | ofctl_strip], [0], [dnl
|
||||
NXST_FLOW reply:
|
||||
actions=enqueue:123:456
|
||||
])
|
||||
AT_CHECK([ovs-ofctl -O OpenFlow13 dump-flows br0 | ofctl_strip], [0], [dnl
|
||||
OFPST_FLOW reply (OF1.3):
|
||||
reset_counts actions=set_queue:456,output:123,pop_queue
|
||||
])
|
||||
OVS_VSWITCHD_STOP
|
||||
AT_CLEANUP
|
||||
|
Loading…
x
Reference in New Issue
Block a user