Enable querier for multicast (IGMP) in OVN

Bug #1917437 reported by Kamil Sambor
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
New
Wishlist
Unassigned

Bug Description

Core OVN supports IGMP querier we should also add support for it in the OVN driver in Neutron.

In order to enable it via the OVN driver in neutron one should set:

other_config:mcast_querier='true', other_config:mcast_eth_src=<smac_to_be_used_for_queries>, other_config:mcast_ip4_src=<src_ip_to_be_used_for_queries>

For the smac and sip I would use the values from the logical router port connected to the switch if any. Otherwise, just set mcast_snoop

Kamil Sambor (ksambor)
Changed in neutron:
assignee: nobody → Kamil Sambor (ksambor)
status: New → In Progress
Changed in neutron:
importance: Undecided → Wishlist
tags: added: ovn
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

Fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/796997

Revision history for this message
Pedro Guimarães (pguimaraes) wrote :

Hi @ksambor, I was reading through your change and one thing is not clear for me on neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/maintenance.py:

...
    for ls in self._nb_idl.ls_list().execute(check_error=True):
        mcast_eth, mcast_ip = '', ''
        if (ls.other_config.get(ovn_const.MCAST_SNOOP,
                                None) == value or not ls.name):
            continue
        for lsp in ls.ports:
            if lsp.type != ovn_const.LSP_TYPE_LOCALPORT:
                continue
            mcast_eth, mcast_ip = lsp.addresses[0].split() <<<-------
...

Which means that each Logical Switch (openstack network) will get the mcast eth and mcast ipv4 source addresses pointing to the last non localport on that switch. It seems to me that one of the VMs' ports would be selected in this case.
The risk, as pointed in the review, is if that chosen port is deleted.

There is no clear rule for the source MAC address but RFC 4541 [0] suggests that IP value can be 0.0.0.0 instead.

Given we can choose the same value across Logical Switches, I'd suggest we set both eth_src and ipv4_src via config options.

[0] https://datatracker.ietf.org/doc/html/rfc4541#section-2.1.1

Revision history for this message
Slawek Kaplonski (slaweq) wrote : auto-abandon-script

This bug has had a related patch abandoned and has been automatically un-assigned due to inactivity. Please re-assign yourself if you are continuing work or adjust the state as appropriate if it is no longer valid.

Changed in neutron:
assignee: Kamil Sambor (ksambor) → nobody
status: In Progress → New
tags: added: timeout-abandon
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on neutron (master)

Change abandoned by "Slawek Kaplonski <email address hidden>" on branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/796997
Reason: This review is > 4 weeks without comment, and failed Zuul jobs the last time it was checked. We are abandoning this for now. Feel free to reactivate the review by pressing the restore button and leaving a 'recheck' comment to get fresh test results.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.