specification for extraroute extension support for nuage plugin

Change-Id: I64ece4bded28201dcffb968511a99be5d4cdf1d1
This commit is contained in:
ronak 2014-04-18 14:02:33 -07:00
parent ec31bcfc58
commit ec2e0cac75
1 changed files with 135 additions and 0 deletions

View File

@ -0,0 +1,135 @@
=============================================
Extraroute Extension support for Nuage Plugin
=============================================
https://blueprints.launchpad.net/neutron/+spec/extraroute-ext-support-for-nuage-plugin
Adding extraroute extension support to existing nuage networks' Plugin
Problem description
===================
Current Nuage Plugin does not support Neutron's extra-route extension.
Nuage's VSP supports this feature and the support for extension needs
to be added in the plugin code.
Proposed change
===============
Adding extension support code in Nuage plugin.
Alternatives
------------
None
Data model impact
-----------------
There are couple of extra tables which will be needed to support this.
One is routerroutes which already exist in neutron. No schema changes required
for that table.
Second table is Nuage plugin specific. This will be added as part of the new
code.
It could look like::
class RouterRoutesMapping(model_base.BASEV2, models_v2.Route):
__tablename__ = 'routerroutes_mapping'
router_id = Column(String(36), ForeignKey('routers.id', ondelete="CASCADE"),
primary_key=True)
nuage_route_id = Column(String(36))
migration script will need to be generated.
REST API impact
---------------
None
Security impact
---------------
None
Notifications impact
--------------------
None
Other end user impact
---------------------
None
Performance Impact
------------------
None
Other deployer impact
---------------------
None
Developer impact
----------------
None
Implementation
==============
Nuage's VSP supports adding static-route to L3 Domain which fits nicely
with extraroute extension supported by openstack's neutron.
Following is a mapping of the neutron's work-flow for nuage plugin:
Assume router1 exist.
STEP1:
neutron router-update router1 --routes type=dict list=true \
destination=15.0.0.0/24,nexthop=10.10.0.5
This will create a staticroute entry in l3-domain router1 in VSP
STEP2:
neutron router-update router1 --routes type=dict list=true \
destination=15.0.0.0/24,nexthop=10.10.0.5 destination=25.0.0.0/24,nexthop=10.10.0.6
This will add one more staticroute to the same.
STEP3:
neutron router-update router1 --routes type=dict list=true \
destination=15.0.0.0/24,nexthop=10.10.0.5
This will delete staticroute of STEP2.
Basically everytime you specify routes option it treats it as a new set of value.
So sticking to that same behavior.
STEP4:
neutron router-update router1 --routes action=clear
Cleans up all the staticroute.
Assignee(s)
-----------
Ronak Shah
Primary assignee:
ronak-malav-shah
Other contributors:
Work Items
----------
Extension code in Nuage plugin
Nuage Unit tests addition
Nuage CI coverage addition
Dependencies
============
None
Testing
=======
Unit Test coverage for extra-route extension within Nuage unit test
Nuage CI will be modified to start supporting this extension tests
Documentation Impact
====================
None
References
==========
None