From: wenxu <[email protected]>

TC flower doesn't support the INVALID/SNAT/DNAT/REPLY ct state flag.
So it is better to reject this rule.

Signed-off-by: wenxu <[email protected]>
---
 lib/netdev-offload-tc.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/lib/netdev-offload-tc.c b/lib/netdev-offload-tc.c
index 586d99d..587b020 100644
--- a/lib/netdev-offload-tc.c
+++ b/lib/netdev-offload-tc.c
@@ -40,6 +40,9 @@
 #include "util.h"
 #include "dpif-provider.h"
 
+#define TC_UNSUPP_OVS_CS_FLAGS (OVS_CS_F_REPLY_DIR | OVS_CS_F_INVALID | \
+                                OVS_CS_F_NAT_MASK)
+
 VLOG_DEFINE_THIS_MODULE(netdev_offload_tc);
 
 static struct vlog_rate_limit error_rl = VLOG_RATE_LIMIT_INIT(60, 5);
@@ -1641,6 +1644,10 @@ netdev_tc_flow_put(struct netdev *netdev, struct match 
*match,
     }
 
     if (mask->ct_state) {
+        if (mask->ct_state & TC_UNSUPP_OVS_CS_FLAGS) {
+            return EOPNOTSUPP;
+        }
+
         if (mask->ct_state & OVS_CS_F_NEW) {
             if (key->ct_state & OVS_CS_F_NEW) {
                 flower.key.ct_state |= TCA_FLOWER_KEY_CT_FLAGS_NEW;
-- 
1.8.3.1

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

Reply via email to