neutron/neutron/services/ovn_l3
Lucas Alvares Gomes 781500daa5 [OVN] Make external ports aware of network AZs
This patch adds support for Network Availability Zones in ML2/OVN.

For normal instances (without external ports) ML2/OVN does not need
to be aware of the network availability zones because the DHCP server
is distributed (ovn-controller servers DHCP locally to the instances)
and we do not have a DHCP agent.

But, we do have the concept of "external" ports that are ports that are
scheduled on a different node than the one that the instance is running.
Right now, the only use we have for external ports is for the SR-IOV use
case but, it can and will be extended in the future for other uses such
as native (without the use of the DHCP agent) baremetal provisioning.

With this patch we no longer create a single HA Chassis Group to
accomodate all the external ports, instead, the ML2/OVN driver now will
create a HA Chassis Group per network and the members of this HCG will
be Chassis that matches the Availability Zones Hints specified in the
Neutron network object (if not specified, all gateway chassis are added
to the group). With this, external ports created for this network are now
scheduled only on Chassis belonging to the AZs from the parent network
of this port.

As stated above, this patch also removes a limitation that we had for
the SR-IOV case where all SR-IOV (a.k.a external) ports were scheduled
on a single gateway node because, prior to this work there was only a
single HA Chassis Group created which included all gateway chassis in
it.

Documentation will be added on a follow up patch.

Change-Id: I9a655e5b9085e9ac6b23ad7479d442ec4ccbcf37
Signed-off-by: Lucas Alvares Gomes <lucasagomes@gmail.com>
2021-08-16 11:59:45 +01:00
..
__init__.py [OVN] Import OVN Client, L3 and QoS related code 2019-12-14 19:17:40 +00:00
exceptions.py [OVN] Allow use of ovn-sync mechanism driver 2020-07-01 08:57:33 +02:00
plugin.py [OVN] Make external ports aware of network AZs 2021-08-16 11:59:45 +01:00