The current default behavior is that ARP responder flows for VIFs are
added by northd after the port-binding state is UP, which creates more
trouble than benefit in most use cases. To make the default behavior
desirable for majority of the use cases, set the option ignore_lsp_down
to true by default. This would help saving the control plane cost in
large scale environment, reduce the e2e latency for all flows to be
installed for a VIF, and making the VIF readiness checking more convenient
in test cases and likely in CMS as well. User can still set it to false
in circumstances (if any) when this behavior is not desired.

Signed-off-by: Han Zhou <hz...@ovn.org>
---
 NEWS                 | 4 ++++
 northd/northd.c      | 2 +-
 northd/ovn_northd.dl | 2 +-
 ovn-nb.xml           | 2 +-
 tests/ovn-northd.at  | 3 ++-
 5 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/NEWS b/NEWS
index 8a21c029e..348f3f548 100644
--- a/NEWS
+++ b/NEWS
@@ -12,6 +12,10 @@ OVN v21.09.0 - xx xxx xxxx
   - Allow static routes without nexthops.
   - Enabled logical dp groups as a default.  CMS should disable it if not
     desired.
+  - Set ignore_lsp_down to true as default, so that ARP responder flows are
+    installed together with other flows when a logical switch port is created,
+    without having to wait for the port to be UP.  CMS should set it to false
+    if not desired.
 
 OVN v21.06.0 - 18 Jun 2021
 -------------------------
diff --git a/northd/northd.c b/northd/northd.c
index cf2467fe1..5ffd6b8eb 100644
--- a/northd/northd.c
+++ b/northd/northd.c
@@ -14304,7 +14304,7 @@ ovnnb_db_run(struct northd_context *ctx,
     controller_event_en = smap_get_bool(&nb->options,
                                         "controller_event", false);
     check_lsp_is_up = !smap_get_bool(&nb->options,
-                                     "ignore_lsp_down", false);
+                                     "ignore_lsp_down", true);
 
     build_datapaths(ctx, datapaths, lr_list);
     build_ovn_lbs(ctx, datapaths, &lbs);
diff --git a/northd/ovn_northd.dl b/northd/ovn_northd.dl
index 22913f05a..7154fed13 100644
--- a/northd/ovn_northd.dl
+++ b/northd/ovn_northd.dl
@@ -753,7 +753,7 @@ Northd_Probe_Interval[interval] :-
 relation CheckLspIsUp[bool]
 CheckLspIsUp[check_lsp_is_up] :-
     nb in nb::NB_Global(),
-    var check_lsp_is_up = not nb.options.get_bool_def(i"ignore_lsp_down", 
false).
+    var check_lsp_is_up = not nb.options.get_bool_def(i"ignore_lsp_down", 
true).
 CheckLspIsUp[true] :-
     Unit(),
     not nb in nb::NB_Global().
diff --git a/ovn-nb.xml b/ovn-nb.xml
index 390cc5a44..d8266ed4d 100644
--- a/ovn-nb.xml
+++ b/ovn-nb.xml
@@ -236,7 +236,7 @@
           resolved even before the relevant VM/container is running. For
           environments where this is not an issue, setting it to
           <code>true</code> can reduce the load and latency of the control
-          plane. The default value is <code>false</code>.
+          plane. The default value is <code>true</code>.
         </p>
       </column>
 
diff --git a/tests/ovn-northd.at b/tests/ovn-northd.at
index c5400d806..3eebb55b6 100644
--- a/tests/ovn-northd.at
+++ b/tests/ovn-northd.at
@@ -1918,6 +1918,7 @@ OVN_FOR_EACH_NORTHD([
 AT_SETUP([ignore_lsp_down])
 ovn_start
 
+ovn-nbctl set NB_Global . options:ignore_lsp_down=false
 ovn-nbctl ls-add sw0
 ovn-nbctl lsp-add sw0 sw0-p1 -- lsp-set-addresses sw0-p1 "aa:aa:aa:aa:aa:aa 
10.0.0.1"
 
@@ -4922,7 +4923,7 @@ check ovn-nbctl lsp-add sw0 lsp0 \
 
 check ovn-nbctl --wait=sb sync
 AT_CHECK([ovn-sbctl --columns=tags list logical_flow | grep lsp0 -c], [0], [dnl
-9
+10
 ])
 
 AT_CLEANUP
-- 
2.30.2

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

Reply via email to