Comment 0 for bug 1792815

Revision history for this message
Dmitrii Shcherbakov (dmitriis) wrote :

In order for instances using SR-IOV to communicate with instances using OVS or linux bridge on the same hypervisor host, the embedded switch (eswitch) forwarding database (FDB) of an SR-IOV NIC must be updated with a MAC address of an OVS/linux bridge port.

From the charm perspective, ML2 extension should be added using the same mechanism as the QoS extension: settings from neutron-api need to be propagated to neutron-gateway and neutron-openvswitch and the shared_physical_device_mappings config should be added to neutron-gateway and neutron-openvswitch config.

https://docs.openstack.org/neutron/queens/admin/config-sriov.html#optional-fdb-l2-agent-extension

l2 extension commit commit:
https://github.com/openstack/neutron/commit/2c8f61b816bf531a17a7b45d35a5388e8a2f607a
neutron.agent.l2.extensions.fdb_population:FdbPopulationAgentExtension

bridge fdb add de:ad:be:e:f:00 <interface_name>

# this invocation in the code
https://github.com/openstack/neutron/blob/stable/queens/neutron/agent/linux/bridge_lib.py#L117-L119

https://github.com/openstack/neutron/blob/stable/queens/neutron/agent/l2/extensions/fdb_population.py#L81-L102
        def update_port(self, device, port_id, mac):
# ...
                bridge_lib.FdbInterface.add(mac, device)
# ...

config:
https://github.com/openstack/neutron/blob/stable/queens/neutron/conf/agent/l2_ext_fdb_population.py
shared_physical_device_mappings
                help=_("Comma-separated list of "
                       "<physical_network>:<network_device> tuples mapping "
                       "physical network names to the agent's node-specific "
                       "shared physical network device between "
                       "SR-IOV and OVS or SR-IOV and linux bridge"))