Message ID | 1505311498-13843-1-git-send-email-roid@mellanox.com |
---|---|
State | Accepted |
Headers | show |
Series | [ovs-dev,V2] netdev-tc-offloads: Fix vxlan tunnel offloading | expand |
On Wed, Sep 13, 2017 at 05:04:58PM +0300, Roi Dayan wrote: > From: Paul Blakey <paulb@mellanox.com> > > This commit fixes offloading when tunnel id is 0 by checking > for valid tunnel dst ipv4 or ipv6, like done in the normal flow. > > Also need to reset the tunnel mask outside the condition > because in the special case, when adding a port with key=flow, > the match for tunnel_set gets a tunnel key id 0 with a mask. > If we don't reset the mask we'll fail later when we check > for unknown attributes that the mask was not reset. > > Fixes: 8f283af89298 ("netdev-tc-offloads: Implement netdev flow put using tc interface") > Signed-off-by: Paul Blakey <paulb@mellanox.com> > Reviewed-by: Roi Dayan <roid@mellanox.com> > --- > Hi, > > This is V2 for the prev patch with > title "netdev-tc-offloads: Fix offloading when tunnel id is 0" > > V1->V2: > - Use flow_tnl_dst_is_set() instead of checking mask > - Move memset of maks tunnel to outside the condition > - Update commit message Thanks, applied to master and branch-2.8.
diff --git a/lib/netdev-tc-offloads.c b/lib/netdev-tc-offloads.c index 3c145c2..524c7dc 100644 --- a/lib/netdev-tc-offloads.c +++ b/lib/netdev-tc-offloads.c @@ -683,7 +683,7 @@ netdev_tc_flow_put(struct netdev *netdev, struct match *match, memset(&flower, 0, sizeof flower); - if (tnl->tun_id) { + if (flow_tnl_dst_is_set(&key->tunnel)) { VLOG_DBG_RL(&rl, "tunnel: id %#" PRIx64 " src " IP_FMT " dst " IP_FMT " tp_src %d tp_dst %d", @@ -698,9 +698,8 @@ netdev_tc_flow_put(struct netdev *netdev, struct match *match, flower.tunnel.tp_src = tnl->tp_src; flower.tunnel.tp_dst = tnl->tp_dst; flower.tunnel.tunnel = true; - - memset(&mask->tunnel, 0, sizeof mask->tunnel); } + memset(&mask->tunnel, 0, sizeof mask->tunnel); flower.key.eth_type = key->dl_type; flower.mask.eth_type = mask->dl_type;