specification for extraroute extension support for nuage plugin
Change-Id: I64ece4bded28201dcffb968511a99be5d4cdf1d1
This commit is contained in:
parent
ec31bcfc58
commit
ec2e0cac75
135
specs/juno/extraroute-ext-support-for-nuage-plugin.rst
Normal file
135
specs/juno/extraroute-ext-support-for-nuage-plugin.rst
Normal 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
|
Loading…
x
Reference in New Issue
Block a user