[ovs-dev] [PATCH V2] netdev-tc-offloads: Fix vxlan tunnel offloading

Roi Dayan roid at mellanox.com
Wed Sep 13 14:04:58 UTC 2017


From: Paul Blakey <paulb at 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 at mellanox.com>
Reviewed-by: Roi Dayan <roid at 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,
Roi


 lib/netdev-tc-offloads.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

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;
-- 
2.7.5



More information about the dev mailing list