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 <[email protected]>

Andy,

I am reviewing and testing your patches.  I have applied them to my private 
github repository
on a branch named test-813027-35.

https://github.com/gvrose8192/ovs-experimental/tree/test-813027-35

However, the Travis 'TESTSUITE=1 KERNEL=3.16.46 build fails:

https://travis-ci.org/gvrose8192/ovs-experimental/jobs/277364409

Have you noticed this as well?

The current master branch does not have the same error.

Thanks,

- Greg


---
  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 {


_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to