These packets are for the multicast IPv6 destination, they should have
a multicast match, so they do not contribute into unwildcarding IPv6
addresses for non-multicast traffic.

Also, tests were using incorrect destination MAC addresses.  They should
be multicast, since the IPv6 destination is multicast.  Not broadcast
and not unicast.

Fixes: 52dae175841e ("ovn-northd: Add logical flows to support DHCPv6")
Signed-off-by: Ilya Maximets <i.maxim...@ovn.org>
---
 northd/northd.c | 4 ++--
 tests/ovn.at    | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/northd/northd.c b/northd/northd.c
index aed1d425f..31fda8bb6 100644
--- a/northd/northd.c
+++ b/northd/northd.c
@@ -9194,8 +9194,8 @@ build_dhcpv6_options_flows(struct ovn_port *op,
             ds_clear(&match);
             ds_put_format(
                 &match, "inport == %s && eth.src == %s"
-                " && ip6.dst == ff02::1:2 && udp.src == 546 &&"
-                " udp.dst == 547",
+                " && ip6.mcast && ip6.dst == ff02::1:2"
+                " && udp.src == 546 && udp.dst == 547",
                 inport->json_key, lsp_addrs->ea_s);
 
             if (is_external) {
diff --git a/tests/ovn.at b/tests/ovn.at
index 39cc79459..63c28f78e 100644
--- a/tests/ovn.at
+++ b/tests/ovn.at
@@ -7478,7 +7478,7 @@ test_dhcpv6() {
     local inport=$1 src_mac=$2 src_lla=$3 msg_code=$4 offer_ip=$5 boot_file=$6
     local fqdn=$7
 
-    local req_scapy="Ether(dst='ff:ff:ff:ff:ff:ff', src='${src_mac}')/ \
+    local req_scapy="Ether(dst='33:33:00:01:00:02', src='${src_mac}')/ \
                      IPv6(dst='ff02::1:2', src='${src_lla}')/ \
                      UDP(sport=546, dport=547)/ \
                      DHCP6(msgtype=${msg_code}, trid=0x010203)/ \
@@ -7541,7 +7541,7 @@ test_dhcpv6_release() {
     local inport=$1 src_mac=$2 src_lla=$3 offer_ip=$4
 
     local ip_scapy="DHCP6OptIAAddress(addr='${offer_ip}', preflft=0xffffffff, 
validlft=0xffffffff)"
-    local req_scapy="Ether(dst='00:00:00:10:00:01', src='${src_mac}')/ \
+    local req_scapy="Ether(dst='33:33:00:01:00:02', src='${src_mac}')/ \
                      IPv6(dst='ff02::1:2', src='${src_lla}')/ \
                      UDP(sport=546, dport=547)/ \
                      DHCP6(msgtype=8, trid=0x010203)/ \
@@ -20047,7 +20047,7 @@ test_dhcp() {
 test_dhcpv6() {
     local inport=$1 src_mac=$2 src_lla=$3 msg_code=$4 offer_ip=$5
     local req_pkt_in_expected=$6
-    local request=ffffffffffff${src_mac}86dd00000000002a1101${src_lla}
+    local request=333300010002${src_mac}86dd00000000002a1101${src_lla}
     # dst ip ff02::1:2
     request=${request}ff020000000000000000000000010002
     # udp header and dhcpv6 header
-- 
2.47.0

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to