Currently, for non-LB NATs, northd generates ARP/ND response flows on
every router port even when the NAT's "gateway_port" field is set.

When "gateway_port" field is specified on NAT record on NB, it could
be considered as reachable only through that LRP, so generating
response flows for other router ports is unnecessary.

This patch skips flow generation for router ports that do not match
the NAT's "gateway_port".

Signed-off-by: Amir Aslan Aslani <[email protected]>
---
 northd/northd.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/northd/northd.c b/northd/northd.c
index aecfb2ec6..432eeb97b 100644
--- a/northd/northd.c
+++ b/northd/northd.c
@@ -9830,6 +9830,10 @@ build_lswitch_rport_arp_req_flows_for_lbnats(
             continue;
         }
 
+        if (nat->gateway_port && nat->gateway_port != op->nbrp) {
+            continue;
+        }
+
         /* Check if the ovn port has a network configured on which we could
          * expect ARP requests/NS for the DNAT external_ip.
          */
@@ -9870,6 +9874,10 @@ build_lswitch_rport_arp_req_flows_for_lbnats(
 
         const struct nbrec_nat *nat = nat_entry->nb;
 
+        if (nat->gateway_port && nat->gateway_port != op->nbrp) {
+            continue;
+        }
+
         /* Check if the ovn port has a network configured on which we could
          * expect ARP requests/NS for the SNAT external_ip.
          */
-- 
2.50.1 (Apple Git-155)

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

Reply via email to