L3 router Service plugin for the Cisco APIC
Specification for a new Layer 3 router service plugin for the Application Centric Infrastructure Controller (APIC). Change-Id: I270f6be97bb7c64f3a662b96fe003bee3343835c
This commit is contained in:
parent
2903b782c0
commit
830c02b77f
|
@ -0,0 +1,134 @@
|
|||
=============================================
|
||||
Layer 3 service plugin for the Cisco APIC
|
||||
=============================================
|
||||
|
||||
https://blueprints.launchpad.net/neutron/+spec/cisco-apic-l3
|
||||
|
||||
This blueprint is to implement Layer 3 features in
|
||||
the network fabric via a L3 router service plugin
|
||||
using the Cisco APIC.
|
||||
|
||||
Flows
|
||||
|
||||
.. blockdiag::
|
||||
|
||||
blockdiag l2_apic {
|
||||
Neutron -> APIC -> Nexus_9k;
|
||||
Nexus_9k -> Compute1;
|
||||
Nexus_9k -> Compute2;
|
||||
}
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
The APIC (Application Policy Infrastructure Controller) together with
|
||||
Cisco Nexus 9000 switches provides programmable, policy-driven network
|
||||
control.
|
||||
|
||||
The Service plugin proposed will interact with the APIC to dynamically
|
||||
configure Layer 3 inter and intra tenant communications in the network fabric.
|
||||
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
|
||||
This proposal is to introduce a new Layer 3 service plugin that communicates
|
||||
with the APIC.
|
||||
|
||||
The driver implements the following neutron events:
|
||||
* Add a new router interface
|
||||
* Delete a router interface
|
||||
|
||||
The plugin will implement Layer 3 communications using a construct called
|
||||
a contract that provides communications in the fabric between various
|
||||
end point groups (Neutron networks)
|
||||
|
||||
Events that trigger the creation of end point groups and subnets (i.e.
|
||||
create_network and create_subnet) will be handled by the APIC ML2 mechanism
|
||||
driver and id’s will be stored in a database accessed by a common client and
|
||||
manager class.
|
||||
|
||||
Due to hardware limitations as of this writing this service plugin will
|
||||
only handle add/remove router_interface (internal gateway) events. The service
|
||||
plugin may be expanded in the future to also handle all neutron L3 events.
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
The alternative approach is to use the open source agent based layer 3 router
|
||||
plugin. The agent based approach does not implement any policies that are
|
||||
centric to the APIC’s ACI (Application Centric Infrastructure) based design.
|
||||
|
||||
Data model impact
|
||||
-----------------
|
||||
n.a.
|
||||
|
||||
REST API impact
|
||||
---------------
|
||||
n.a
|
||||
|
||||
Security impact
|
||||
---------------
|
||||
n.a
|
||||
|
||||
Notifications impact
|
||||
--------------------
|
||||
n.a.
|
||||
|
||||
Other end user impact
|
||||
---------------------
|
||||
n.a.
|
||||
|
||||
Performance Impact
|
||||
------------------
|
||||
The service plugin is triggered instead of polled, there are no
|
||||
changes to any existing code patterns. The potential bottleneck
|
||||
for this plugin would be the link between neutron and the APIC.
|
||||
|
||||
Other deployer impact
|
||||
---------------------
|
||||
There are no config options specific to the Layer 3 plugin, it relies
|
||||
on the configuration options of the ML2 apic mechanism driver.
|
||||
|
||||
Developer impact
|
||||
----------------
|
||||
n.a.
|
||||
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Arvind Somya <asomya>
|
||||
|
||||
Work Items
|
||||
----------
|
||||
Single work item for the L3 APIC service plugin.
|
||||
|
||||
|
||||
Dependencies
|
||||
============
|
||||
Depends on the APIC ML2 blueprint:
|
||||
https://blueprints.launchpad.net/neutron/+spec/ml2-cisco-apic-mechanism-driver
|
||||
|
||||
|
||||
Testing
|
||||
=======
|
||||
Complete unit test coverage of the code is included.
|
||||
|
||||
For tempest test coverage, third party testing is provided. The Cisco
|
||||
CI reports on all changes affecting this driver. The testing is run in
|
||||
a setup with an OpenStack deployment (devstack) connected to a live
|
||||
APIC and a Cisco Nexus 9000 physical switch.
|
||||
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
Deployment documentation on how to configure and deploy this service plugin
|
||||
will be documented in the Openstack wiki.
|
||||
|
||||
|
||||
References
|
||||
==========
|
||||
http://www.cisco.com/go/apic
|
Loading…
Reference in New Issue