Architecture
The Fabric Services System introduces a few new components in an OpenStack environment to allow the management of the SR Linux based fabric through OpenStack. Below is an overview of these components.
The Connect ML2 Plugin
The Connect ML2 Plugin is the heart of the integration between OpenStack and the Fabric Services System. This plugin integrates with OpenStack Neutron and will react to the creation of projects (tenants), Networks (and Subnets) and VM ports.
Whenever a project is created, a matching Workload VPN Intent is created in the Fabric Services System. This Workload VPN Intent will then be used for each of the Subnets created for that project, which will become Subnets inside the Workload VPN Intent.
When a VM port is created inside a Neutron Subnet and the VM is started on a OpenStack compute node, the ML2 Plugin will learn on which compute node the VM is deployed and through the internal topology will make sure the necessary sub-interfaces are configured as part of the Subnet in the fabric.
This information is learned from the L2 Agent extension which stores the Neutron Network to physical interfaces topology in the Neutron database. This information is then provided to the Connect service and together with the LLDP information of the fabric, the Connect service knows which edge-links in the fabrics need to be configured as sub-interfaces.
The Connect L2 Agent Extensions
The Connect L2 Agent Extensions extend the already existing L2 Agent that is present on every OpenStack compute. These extensions are responsible of mapping the relation between the physical NICs and the different networking constructs setup for the Neutron networks.