On 09/12/2017 12:49 PM, Andy Zhou wrote:
When translating actions within open flow clone, actions generated
by finish_freezeing() should also be enclosed within the datapath
clone netlink encoding.
Signed-off-by: Andy Zhou <az...@ovn.org>
---
ofproto/ofproto-dpif-xlate.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c
index 9e1f837cb23e..e5ad832d7c47 100644
--- a/ofproto/ofproto-dpif-xlate.c
+++ b/ofproto/ofproto-dpif-xlate.c
@@ -5353,6 +5353,9 @@ compose_clone(struct xlate_ctx *ctx, const struct
ofpact_nest *oc)
if (reversible_actions(oc->actions, oc_actions_len)) {
old_flow = ctx->xin->flow;
do_xlate_actions(oc->actions, oc_actions_len, ctx);
+ if (ctx->freezing) {
+ finish_freezing(ctx);
+ }
goto xlate_done;
}
@@ -5372,6 +5375,9 @@ compose_clone(struct xlate_ctx *ctx, const struct ofpact_nest *oc)
offset = nl_msg_start_nested(ctx->odp_actions, OVS_ACTION_ATTR_CLONE);
ac_offset = ctx->odp_actions->size;
do_xlate_actions(oc->actions, oc_actions_len, ctx);
+ if (ctx->freezing) {
+ finish_freezing(ctx);
+ }
nl_msg_end_non_empty_nested(ctx->odp_actions, offset);
goto dp_clone_done;
}
@@ -5382,6 +5388,9 @@ compose_clone(struct xlate_ctx *ctx, const struct
ofpact_nest *oc)
ac_offset = nl_msg_start_nested(ctx->odp_actions,
OVS_SAMPLE_ATTR_ACTIONS);
do_xlate_actions(oc->actions, oc_actions_len, ctx);
+ if (ctx->freezing) {
+ finish_freezing(ctx);
+ }
if (nl_msg_end_non_empty_nested(ctx->odp_actions, ac_offset)) {
nl_msg_cancel_nested(ctx->odp_actions, offset);
} else {
Tested-by: Greg Rose <gvrose8...@gmail.com>
Reviewed-by: Greg Rose <gvrose8...@gmail.com>
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev