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.
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/maintenan ce.py:
... idl.ls_ list(). execute( check_error= True): config. get(ovn_ const.MCAST_ SNOOP,
None) == value or not ls.name):
continue LSP_TYPE_ LOCALPORT:
continue
mcast_ eth, mcast_ip = lsp.addresses[ 0].split( ) <<<-------
for ls in self._nb_
mcast_eth, mcast_ip = '', ''
if (ls.other_
for lsp in ls.ports:
if lsp.type != ovn_const.
...
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