populate eswitch fdb of SR-IOV-enabled NICs via l2 agent FDB extension
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Neutron API Charm |
Triaged
|
Wishlist
|
Unassigned |
Bug Description
[Summary]
The neutron-api charm needs to expose a new fdb extension configuration option to support population of SR-IOV MAC addresses into OVS.
[Original Bug Report]
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. This is done by running `bridge fdb add <vm_ovs_port_mac> <pf_interface_
where vm_ovs_port_mac is a mac address of a VM port plugged directly into ovs (provider networks case without vrouters). DVR is not handled in the Neutron codebase currently (*) because device owner types are different and proxy-arp handling needs to be done properly (i.e. fdb add <fg_device_
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_
https:/
l2 extension commit commit:
https:/
neutron.
# this scenario is listed on slide 33
#https:/
# bridge fdb add <ovs-port-mac> <pf_interface_name>
bridge fdb add de:ad:be:e:f:00 <pf_interface_name>
# this invocation in the code
https:/
https:/
def update_port(self, device, port_id, mac):
# ...
# ...
config:
https:/
shared_
This functionality will not work with DVR though for several reasons:
1) only compute:nova and network:
(*) DVR is not handled judging by the code and PERMITTED_
https:/
# FDB udpates are triggered for ports with a certain device_owner only:
# - device owner "compute": updates the FDB with normal port instances,
# required in order to enable communication between
# SR-IOV direct port instances and normal port instance.
# - device owner "router_interface": updates the FDB woth OVS/LB ports,
# required in order to enable communication for SR-IOV instances
# with floating ip that are located with the network node.
# - device owner "DHCP": not required because messages are broadcast.
PERMITTED_
description: | updated |
description: | updated |
description: | updated |
description: | updated |
Changed in charm-neutron-api: | |
status: | New → Triaged |
importance: | Undecided → Wishlist |
description: | updated |