[ovs-dev] [merge native tunneling and patch port 1/7] ofproto-dpif: Unfreeze within clone
Greg Rose
gvrose8192 at gmail.com
Thu Sep 21 16:44:30 UTC 2017
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 <azhou at 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 <gvrose8192 at gmail.com>
Reviewed-by: Greg Rose <gvrose8192 at gmail.com>
More information about the dev
mailing list