Bug 2190344 - about ignore_lsp_down for NB_Global [NEEDINFO]
Summary: about ignore_lsp_down for NB_Global
Keywords:
Status: NEW
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-neutron
Version: 16.2 (Train)
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: ---
: ---
Assignee: Jakub Libosvar
QA Contact: Eran Kuris
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-04-28 02:56 UTC by Chorong Park
Modified: 2023-07-12 16:05 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Target Upstream Version:
Embargoed:
ldenny: needinfo? (jlibosva)


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker OSP-24631 0 None None None 2023-04-28 02:57:59 UTC

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


Note You need to log in before you can comment on or make changes to this bug.