[ovs-dev] [PATCH ovn branch-20.06 6/7] ovn-northd: Fix is_chassis_resident() match for DNAT.

Dumitru Ceara dceara at redhat.com
Mon Aug 10 10:54:26 UTC 2020


While reducing the number of logical flows, a bug was introduced when
building the match for flows that need "is_chassis_resident(redirect_port)".
This commit removes the wrong additional quotes.

Fixes: 59340bab9402 ("ovn-northd: Minimize number of ARP/NS responder flows for DNAT.")
Signed-off-by: Dumitru Ceara <dceara at redhat.com>

(cherry-picked from master commit c4ff9b83cab44a88f74d19a866eea31b565108da)
---
 northd/ovn-northd.c |    2 +-
 tests/ovn-northd.at |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/northd/ovn-northd.c b/northd/ovn-northd.c
index 285e2af..f8401d7 100644
--- a/northd/ovn-northd.c
+++ b/northd/ovn-northd.c
@@ -8758,7 +8758,7 @@ build_lrouter_flows(struct hmap *datapaths, struct hmap *ports,
                  * Also need to avoid generation of multiple ARP responses
                  * from different chassis. */
                 if (op->od->l3redirect_port) {
-                    ds_put_format(&match, "is_chassis_resident(\"%s\")",
+                    ds_put_format(&match, "is_chassis_resident(%s)",
                                   op->od->l3redirect_port->json_key);
                 }
             }
diff --git a/tests/ovn-northd.at b/tests/ovn-northd.at
index df980c7..aac3fcf 100644
--- a/tests/ovn-northd.at
+++ b/tests/ovn-northd.at
@@ -1759,10 +1759,10 @@ action=(drop;)
 # Priority 92 ARP/NS responders (per distributed gw port), if port is resident.
 AT_CHECK([ovn-sbctl lflow-list | grep -E "lr_in_ip_input.*priority=92" | grep "arp\|nd" | sort], [0], [dnl
   table=3 (lr_in_ip_input     ), priority=92   , dnl
-match=(inport == "lrp-public" && arp.op == 1 && arp.tpa == 43.43.43.2 && is_chassis_resident(""cr-lrp-public"")), dnl
+match=(inport == "lrp-public" && arp.op == 1 && arp.tpa == 43.43.43.2 && is_chassis_resident("cr-lrp-public")), dnl
 action=(eth.dst = eth.src; eth.src = xreg0[[0..47]]; arp.op = 2; /* ARP reply */ arp.tha = arp.sha; arp.sha = xreg0[[0..47]]; arp.tpa = arp.spa; arp.spa = 43.43.43.2; outport = inport; flags.loopback = 1; output;)
   table=3 (lr_in_ip_input     ), priority=92   , dnl
-match=(inport == "lrp-public" && arp.op == 1 && arp.tpa == 43.43.43.3 && is_chassis_resident(""cr-lrp-public"")), dnl
+match=(inport == "lrp-public" && arp.op == 1 && arp.tpa == 43.43.43.3 && is_chassis_resident("cr-lrp-public")), dnl
 action=(eth.dst = eth.src; eth.src = xreg0[[0..47]]; arp.op = 2; /* ARP reply */ arp.tha = arp.sha; arp.sha = xreg0[[0..47]]; arp.tpa = arp.spa; arp.spa = 43.43.43.3; outport = inport; flags.loopback = 1; output;)
   table=3 (lr_in_ip_input     ), priority=92   , dnl
 match=(inport == "lrp-public" && arp.op == 1 && arp.tpa == 43.43.43.4 && is_chassis_resident("ls-vm")), dnl



More information about the dev mailing list