Hi Ilya,
Thank you for reviewing my patch and suggesting a fix. It looks great to me. You can do as you said, and apply the changes to my patch. Rosemarie O'Riorden On 6/28/22 07:06, Ilya Maximets wrote: > On 6/3/22 17:31, Rosemarie O'Riorden wrote: >> When OVS sees a tunnel push with a nested list next, it will not >> clone the packet, as a clone is not needed. However, a clone action will >> still be created with the tunnel push encapulated inside. There is no >> need to create the clone action in this case, as extra parsing will need >> to be performed, which is less efficient. >> >> Signed-off-by: Rosemarie O'Riorden <rorior...@redhat.com> >> --- >> v2: >> - Fixes tests that are affected by the change >> v3: >> - Adds support for hardware offloading >> v4: >> - Adds negative check in test >> - Fixes logic in function native_tunnel_output >> - Stylistic and organizational improvements >> >> lib/netdev-offload-dpdk.c | 38 +++++++++----- >> lib/netlink.c | 7 +++ >> lib/netlink.h | 1 + >> ofproto/ofproto-dpif-xlate.c | 22 ++++++-- >> tests/nsh.at | 6 +-- >> tests/packet-type-aware.at | 24 ++++----- >> tests/tunnel-push-pop-ipv6.at | 20 +++---- >> tests/tunnel-push-pop.at | 98 ++++++++++++++++++++++++++++------- >> 8 files changed, 152 insertions(+), 64 deletions(-) >> > <snip> > >> diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c >> index 9ea21edc4..a908160a5 100644 >> --- a/ofproto/ofproto-dpif-xlate.c >> +++ b/ofproto/ofproto-dpif-xlate.c >> @@ -3739,7 +3739,11 @@ native_tunnel_output(struct xlate_ctx *ctx, const >> struct xport *xport, >> size_t clone_ofs = 0; >> size_t push_action_size; >> >> - clone_ofs = nl_msg_start_nested(ctx->odp_actions, >> OVS_ACTION_ATTR_CLONE); >> + if (!is_last_action) { >> + clone_ofs = nl_msg_start_nested(ctx->odp_actions, >> + OVS_ACTION_ATTR_CLONE); >> + } >> + size_t pre_patch_port_outp_size = ctx->odp_actions->size; > Hi, Rosemarie. Thanks for addressing previous comments! > This version looks correct to me. I also did some tests > with dummy offload and they seem to work fine. > > The only thing I think we can improve is the variable name > here. I think, it will be a bit cleaner if we will rename > and re-use the same variable for the offset in both cases. > Maybe something like this: > > diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c > index 0c92ed922..c645c3470 100644 > --- a/ofproto/ofproto-dpif-xlate.c > +++ b/ofproto/ofproto-dpif-xlate.c > @@ -3736,14 +3736,12 @@ native_tunnel_output(struct xlate_ctx *ctx, const > struct xport *xport, > s_ip, tnl_params.is_ipv6, > tnl_push_data.tnl_type); > > - size_t clone_ofs = 0; > + size_t offset; > size_t push_action_size; > > - if (!is_last_action) { > - clone_ofs = nl_msg_start_nested(ctx->odp_actions, > - OVS_ACTION_ATTR_CLONE); > - } > - size_t pre_patch_port_outp_size = ctx->odp_actions->size; > + offset = is_last_action > + ? ctx->odp_actions->size > + : nl_msg_start_nested(ctx->odp_actions, OVS_ACTION_ATTR_CLONE); > odp_put_tnl_push_action(ctx->odp_actions, &tnl_push_data); > push_action_size = ctx->odp_actions->size; > > --- > > What do you think? > > If that looks good to you, I can just apply the diff above and > rename the variable in other places while applying the change. > > Best regards, Ilya Maximets. > _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev