From: Tonghao Zhang <[email protected]>

When offloading the flows which matching the vlan feild,
there is an error[1]. Then we can't offload them, though
TC flower supports this. To fix it, we should use the
*dl_type_is_ip_any* instead of *is_ip_any*. Use ovs-appctl
command to reproduce it.

$ ovs-appctl dpctl/add-flow "recirc_id(0),in_port(5),eth(dst=00:11:22:33:44:66),
        
eth_type(0x8100),vlan(vid=100,pcp=0),encap(eth_type(0x0800),ipv4(dst=1.1.1.2))"
        "pop_vlan,3"

[1] - "offloading isn't supported, unknown attribute"

Cc: Roi Dayan <[email protected]>
Cc: Paul Blakey <[email protected]>
Cc: Ben Pfaff <[email protected]>
Signed-off-by: Tonghao Zhang <[email protected]>
---
 lib/netdev-offload-tc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/netdev-offload-tc.c b/lib/netdev-offload-tc.c
index 875ebef71941..3c52db3e90cd 100644
--- a/lib/netdev-offload-tc.c
+++ b/lib/netdev-offload-tc.c
@@ -1500,7 +1500,7 @@ netdev_tc_flow_put(struct netdev *netdev, struct match 
*match,
     mask->dl_type = 0;
     mask->in_port.odp_port = 0;
 
-    if (is_ip_any(key)) {
+    if (dl_type_is_ip_any(key->dl_type)) {
         flower.key.ip_proto = key->nw_proto;
         flower.mask.ip_proto = mask->nw_proto;
         mask->nw_proto = 0;
-- 
1.8.3.1

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

Reply via email to