summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorBen Pfaff <blp@ovn.org>2016-07-13 15:53:20 -0700
committerBen Pfaff <blp@ovn.org>2016-07-14 09:15:29 -0700
commit0f2aaee939fb9d10c6d985687edb20c8847f9143 (patch)
tree5a2633b334935be6e9e2fb114cf51844a1f6b4b3 /lib
parentae3b45b643f0ae02823e7e8210d6e75eab5b25e8 (diff)
downloadopenvswitch-0f2aaee939fb9d10c6d985687edb20c8847f9143.tar.gz
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>
Diffstat (limited to 'lib')
-rw-r--r--lib/ofp-actions.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/ofp-actions.c b/lib/ofp-actions.c
index 0aafe0a06..4ac284f9f 100644
--- a/lib/ofp-actions.c
+++ b/lib/ofp-actions.c
@@ -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);
}
}