Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 2190344

Summary: about ignore_lsp_down for NB_Global
Product: Red Hat OpenStack Reporter: Chorong Park <chopark>
Component: openstack-neutronAssignee: Jakub Libosvar <jlibosva>
Status: CLOSED NEXTRELEASE QA Contact: Eran Kuris <ekuris>
Severity: medium Docs Contact:
Priority: medium    
Version: 16.2 (Train)CC: chrisw, jlibosva, ldenny, scohen, twilson, ykarel
Target Milestone: z7Keywords: Triaged
Target Release: 16.2 (Train on RHEL 8.4)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of:
: 2243885 (view as bug list) Environment:
Last Closed: 2023-11-13 22:09:03 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2243885    
Bug Blocks:    

Description Chorong Park 2023-04-28 02:56:31 UTC
Description of problem:

According to the doc, it seems that the default value of "ignore_lsp_down" has been changed to true[1].

I understood that logical switch port is only reply from APR when the port is up when ignore_lsp_down is 'false', and logical switch port is reply from APR regardless of the port status (even when port is down) when ignore_lsp_down is 'true'.[2]

[1] https://www.mail-archive.com/ovs-dev@openvswitch.org/msg60064.html: [ovs-dev] [PATCH ovn] northd: Change the default value of ignore_lsp_down to true.

[2] https://github.com/ovn-org/ovn/blob/main/ovn-nb.xml
===
      <column name="options" key="ignore_lsp_down">
        <p>
          If set to false, ARP/ND reply flows for logical switch ports will be
          installed only if the port is up, i.e. claimed by a Chassis. If set
          to true, these flows are installed regardless of the status of the
          port, which can result in a situation that ARP request to an IP is
          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>true</code>.
        </p>
      </column>
===


Version-Release number of selected component (if applicable):

I believe that this change is fixed in RHOSP16.2.3.


How reproducible:
We confirmed that don't learn the mac bindings from the ARP when set to false 
the command: ovn-nbctl set NB_Global . options:ignore_lsp_down=false


Additional info:
Did the default value for the ignore_lsp_down change in RHOSP 16.2.3.?
Is there any way to check the ignore_lsp_down?

Comment 2 ldenny 2023-05-02 23:48:06 UTC
Hi Chorong, 

This is an adjustable parameter as there may be some reasons a customer would want the old default value, as such this is safe to adjust. 

I would share the following with the customer: 

```
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.
```

> Is there any way to check the ignore_lsp_down?
Yes, using the follow command: `ovn-nbctl get NB_Global . options`

As you can see from my output the `ignore_lsp_down` value isn't set:
[root@controller-0 /]# ovn-nbctl get NB_Global . options
{mac_prefix="5e:37:e7", max_tunid="16711680", northd_internal_version="21.12.3-20.21.0-61.4", svc_monitor_mac="1a:32:b1:e7:e0:2e"}

The new code that was implemented will now default to true if the value is not explicitly configured[1]:
```
    check_lsp_is_up = !smap_get_bool(&nb->options,
                                     "ignore_lsp_down", true);
```

So to set it to false the customer will need to run the following command in the master ovn-dbs container:

Example:
```
[root@controller-1 ~]# pcs status | grep ovn-dbs-bundle |grep Master
    * ovn-dbs-bundle-1	(ocf::ovn:ovndb-servers):	 Master controller-1
[root@controller-1 /]# podman exec -it ovn-dbs-bundle-podman-1 bash
```

*inside container* 

```
[root@controller-1 /]# ovn-nbctl get NB_Global . options
{mac_prefix="5e:37:e7", max_tunid="16711680", northd_internal_version="21.12.3-20.21.0-61.4", svc_monitor_mac="1a:32:b1:e7:e0:2e"}
[root@controller-1 /]# ovn-nbctl set NB_Global . options:ignore_lsp_down=false
[root@controller-1 /]# ovn-nbctl get NB_Global . options
{ignore_lsp_down="false", mac_prefix="5e:37:e7", max_tunid="16711680", northd_internal_version="21.12.3-20.21.0-61.4", svc_monitor_mac="1a:32:b1:e7:e0:2e"}
```

The only problem I can see is I don't see anywhere to set it in THT or Neutron, so this value may need to be set again in the future.

> Did the default value for the ignore_lsp_down change in RHOSP 16.2.3.?
Yes, RHOSP 16.2.3 is shipped with `ovn-2021-21.12.0-94.el8fdp` which is the first RHOSP version to contain this code as it was added to `21.09`

[1] https://github.com/ovn-org/ovn/blob/8e109f387c85d18ab3763366ff4a81e3ce7b99bf/northd/northd.c#L16621-L16622

Comment 3 Chorong Park 2023-05-03 06:06:40 UTC
Hi Lewis,

Thanks for confirming the ovn package details and share the feedback with us. 
Let me share this with the customer as you mentioned.

Best Regards,
Chorong

Comment 11 Jakub Libosvar 2023-11-13 22:09:03 UTC
This will be fixed in 17.1 tracked by bug 2243885. If operators need this flag to be set, they can run manually the command `ovn-nbctl set nb_global options:ignore_lsp_down=False` that sets it in the Northbound database.