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

Bug 1910304

Summary: [OVS+DPDK] igmp options are not persistent after reboot
Product: Red Hat OpenStack Reporter: Miguel Angel Nieto <mnietoji>
Component: openvswitchAssignee: Rodolfo Alonso <ralonsoh>
Status: CLOSED DUPLICATE QA Contact: Eran Kuris <ekuris>
Severity: high Docs Contact:
Priority: high    
Version: 13.0 (Queens)CC: apevec, bcafarel, cfields, chrisw, fbaudin, hakhande, ralonsoh, rhos-maint, skaplons, tredaelli, yrachman
Target Milestone: ---Keywords: Regression, Reopened, Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-01-18 14:39:17 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:

Description Miguel Angel Nieto 2020-12-23 11:27:44 UTC
Description of problem:

igmp options are not persistent after reboot. This is how I reproduce it:

1. Configure options:
   sudo ovs-vsctl set Bridge br-int mcast_snooping_enable=true
   sudo ovs-vsctl set Bridge br-int other_config:mcast-snooping-disable-flood- 
  unregistered=true
2. Get configuration
   ovs-vsctl list bridge br-int
_uuid               : c6875d8d-1500-4f02-9158-e039847b291e
auto_attach         : []
controller          : [83058d89-805e-4fa9-8ff8-275e211b1d22]
datapath_id         : "00008e5d87c6024f"
datapath_type       : netdev
datapath_version    : "<built-in>"
external_ids        : {}
fail_mode           : secure
flood_vlans         : []
flow_tables         : {}
ipfix               : []
mcast_snooping_enable: true
mirrors             : []
name                : br-int
netflow             : []
other_config        : {mac-table-size="50000", mcast-snooping-disable-flood-unregistered="true"}
ports               : [2bdecc2a-2172-4cd8-9cc2-5cf15298ae7d, 2e8a714c-a543-4b53-a84e-820129d84162, aadaafd2-6a4a-4783-a8b7-649db45a9bef, ad320f9a-8331-47b8-8400-58df9e47b5ad, b0c24414-a25c-49ef-816f-b041f51d5917]
protocols           : ["OpenFlow10", "OpenFlow11", "OpenFlow12", "OpenFlow13", "OpenFlow14"]
rstp_enable         : false
rstp_status         : {}
sflow               : []
status              : {}
stp_enable          : false

3. Restart ovs
   systemctl restart openvswitch.service

4. Get ovs options
   ovs-vsctl list bridge br-int
_uuid               : c6875d8d-1500-4f02-9158-e039847b291e
auto_attach         : []
controller          : [c1c983ad-4449-4d1b-857e-ffbed97a87e1]
datapath_id         : "00008e5d87c6024f"
datapath_type       : netdev
datapath_version    : "<built-in>"
external_ids        : {}
fail_mode           : secure
flood_vlans         : []
flow_tables         : {}
ipfix               : []
mcast_snooping_enable: false
mirrors             : []
name                : br-int
netflow             : []
other_config        : {mac-table-size="50000", mcast-snooping-disable-flood-unregistered=False}
ports               : [2bdecc2a-2172-4cd8-9cc2-5cf15298ae7d, 2e8a714c-a543-4b53-a84e-820129d84162, aadaafd2-6a4a-4783-a8b7-649db45a9bef, ad320f9a-8331-47b8-8400-58df9e47b5ad, b0c24414-a25c-49ef-816f-b041f51d5917]
protocols           : ["OpenFlow10", "OpenFlow11", "OpenFlow12", "OpenFlow13", "OpenFlow14"]
rstp_enable         : false
rstp_status         : {}
sflow               : []
status              : {}
stp_enable          : false


Version-Release number of selected component (if applicable):
2020-11-13.1
openvswitch2.11-2.11.3-64.el7fdp.x86_64

Actual results:
configuration is lost after reboot


Expected results:
configuration should not be lost


Additional info:

Comment 2 Miguel Angel Nieto 2020-12-23 15:21:34 UTC
This is not only that the command is printing out wrong parameters, functionality is broken too. Without those parameters, multicast works as broadcast flooding all of the interfaces as igmp snooping is disabled.

Comment 3 Yariv 2020-12-24 16:03:05 UTC
I tried it out, BZ reprodicable, adding DFG:NFV for visibility
With the following puddle 2020-11-13.1

Comment 4 Rodolfo Alonso 2021-01-05 09:12:28 UTC
Hello:

The integration bridge "mcast_snooping_enable" and "other_config:mcast-snooping-disable-flood-unregistered" options are set during the OVS agent initialization, according to the configuration parameter "OVS.igmp_snooping_enable".

Any value set on those configuration options will be overwritten during the OVS initialization when [1] is executed. In order to set a desirable value, please modify "OVS.igmp_snooping_enable".

*NOTE*: any manual action or configuration on the Open vSwitch is not recommended. OVS agent is in charge of handling and configuring this service. No manual configuration commands should be executed.

Regards.

[1]https://github.com/openstack/neutron/blob/4d33a64931fd35583952e45dbc8fd7272cb67c0d/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py#L1339

Comment 11 Chris Fields 2021-01-11 23:56:19 UTC
I did some validation on an OSP 16.1 compute node; Does this look right?  

$ sudo ovs-vswitchd --version
ovs-vswitchd (Open vSwitch) 2.13.2
DPDK 19.11.3

# where I started with the default:
$ sudo ovs-vsctl get bridge br-int other_config
{mac-table-size="50000", mcast-snooping-disable-flood-unregistered=False}

#set to true
crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/plugins/ml2/openvswitch_agent.ini ovs igmp_snooping_enable True

#restart neutron ovs agent
$ sudo podman restart neutron_ovs_agent

#multicast snooping now enabled:
$ sudo ovs-vsctl get bridge br-int other_config
{mac-table-size="50000", mcast-snooping-disable-flood-unregistered=True}

This can be set in OSP 16.1 using the NeutronEnableIgmpSnooping Overcloud parameter:
  https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/16.1/html/overcloud_parameters/networking-neutron-parameters

I'm validating using ComputeExtraConfig to set this parameter for OSP 13. I'll update the bug with the results.  

Meanwhile, these guides need to be updated. I think we should add a WARNING or NOTE that these settings are volatile and add the parameter solutions to the OSP 16.1 guide and the as-of-yet unverified ComputeExtraConfig options for OSP 13 guide. 

OSP 13 Networking guide needs to be updated:
  https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/13/html/networking_guide/sec-connect-instance#enable-ovs-mcast-snoop-prov-networks
  Still has:
    sudo ovs-vsctl set Bridge br-int mcast_snooping_enable=true
    sudo ovs-vsctl set Bridge br-int \
      other_config:mcast-snooping-disable-flood-unregistered=true

OSP 16.1 Networking guide needs to be updated:
  Still has:
    sudo ovs-vsctl set Bridge br-int mcast_snooping_enable=true
    sudo ovs-vsctl set Bridge br-int \
      other_config:mcast-snooping-disable-flood-unregistered=true

Thanks, 

CFields

Comment 19 Bernard Cafarelli 2021-01-18 14:39:17 UTC
After further discussion, existing parameters set in tripleo can set the required options, and this is tracked in an in-progress doc bug, let's follow-up on this one

*** This bug has been marked as a duplicate of bug 1916481 ***