if the set mac operation is performed, I think we should compare whether the
source and destination mac address are the same after the set mac
operation,and they should not be the same.

Signed-off-by: laixiangwu <[email protected]>

---
 ofproto/ofproto-dpif-xlate.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c
index a6f4ea334..544f47ea5 100644
--- a/ofproto/ofproto-dpif-xlate.c
+++ b/ofproto/ofproto-dpif-xlate.c
@@ -7169,6 +7169,12 @@ do_xlate_actions(const struct ofpact *ofpacts, size_t 
ofpacts_len,
             break;
         }
     }
+       /* After SET_ETH action is executed, the source and destination mac 
address of same flow 
+          should be different. */
+    if (eth_addr_to_uint64(flow->dl_src) == eth_addr_to_uint64(flow->dl_dst)) {
+        VLOG_ERR("The source and destination mac address of same flow should 
be different.");
+        ctx->error = XLATE_FORWARDING_DISABLED;
+    }
 }
 
 void
-- 
2.17.1



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

Reply via email to