This blueprint is to implement a L3 service plugin to support hardware based Layer 3 routing in Arista devices.
This service plugin implements neutron L3 routing features on Arista hardware. It communicates with Arista hardware fabric over JSON RPC to automate the provisioning of routing on Arista devices (both at leaf and spine layer).
This proposal is to introduce a new Layer 3 service plugin that uses JSON RPC to to communicate with Arista hardware fabric to provide full L3 routing functionality.
This plugin works in conjuction with Arista ML2 Driver, which manages the networks, subnets, and ports. This service plugin and ML2 Driver leverage the resources and topology knowledge to facilitate the automation of L2 and L3 provisioning in Arista hardware.
The alternative approach is to use the open source agent based layer 3 router plugin and update the L3 agent to interact with Arista Hardware.
This service plugin is event based triggered. No polling is deployed. There are no changes to any existing code patterns. Note that the events here means invocation of the APIs. This plugin uses JSON RPC to communicate with Arista hardware. Arista ML2 Driver uses the same mechanism and implements bulk operations to support scale deployements. This plugin will leverage the same mechanisms.
Configuration knobs will be provided to the adminstrators to take advantage of various deployment topologies supported by Arista fabric. These configuration knobs will be documented on OpenStack wiki.
Complete unit test coverage of the code will be provided.
For full tempest test coverage, Arista third party testing is implemented and is described at the following wiki. With implementation of this Plugin, the test list will be updated. For example, Floating IP related tests will be removed and L3 routing function tests will be included. The updated list of tests will be published.
Documentation to configure and deploy this service plugin will be provided in the Openstack wiki.