From 84704b5236952e3a7c191b4b23f5af574f5840d9 Mon Sep 17 00:00:00 2001 From: Russell Bryant Date: Mon, 18 Nov 2019 20:27:12 -0500 Subject: [PATCH 1/2] northd: Match IPv4 or IPv6 for MAC resolution While debugging some problems in a cluster using ovn-kubernetes, I noticed that we're creating two conflicting logical flows. These two flows only matched on the destination MAC address. It was not deterministic whether you'd hit the IPv4 (ARP) or IPv6 (NS) version. This change adds an ip4 or ip6 match to each flow as appropriate. Signed-off-by: Russell Bryant --- ovn/northd/ovn-northd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ovn/northd/ovn-northd.c b/ovn/northd/ovn-northd.c index cb12be3ca..bcadcca3d 100644 --- a/ovn/northd/ovn-northd.c +++ b/ovn/northd/ovn-northd.c @@ -8661,7 +8661,7 @@ build_lrouter_flows(struct hmap *datapaths, struct hmap *ports, } ovn_lflow_add(lflows, od, S_ROUTER_IN_ARP_REQUEST, 100, - "eth.dst == 00:00:00:00:00:00", + "eth.dst == 00:00:00:00:00:00 && ip4", "arp { " "eth.dst = ff:ff:ff:ff:ff:ff; " "arp.spa = reg1; " @@ -8670,7 +8670,7 @@ build_lrouter_flows(struct hmap *datapaths, struct hmap *ports, "output; " "};"); ovn_lflow_add(lflows, od, S_ROUTER_IN_ARP_REQUEST, 100, - "eth.dst == 00:00:00:00:00:00", + "eth.dst == 00:00:00:00:00:00 && ip6", "nd_ns { " "nd.target = xxreg0; " "output; " -- 2.23.0