Neturon Distributed Virtual Router for OVS

Registered by Swaminathan Vasudevan

Provide Distributed Virtual Routing functionality with OVS, to improve the performance.
Define API to create and deploy Distributed Virtual Routers using the OVS infrastructure.

Blueprint information

Status:
Complete
Approver:
Kyle Mestery
Priority:
Essential
Drafter:
Swaminathan Vasudevan
Direction:
Approved
Assignee:
Rajeev Grover
Definition:
Approved
Series goal:
Accepted for juno
Implementation:
Implemented
Milestone target:
milestone icon 2014.2
Started by
Swaminathan Vasudevan
Completed by
Kyle Mestery

Related branches

Sprints

Whiteboard

16-July (mestery): This may have some patches land in Juno-2, but it won't completely land there, so moving to Juno-3.

10-June (mestery): Moving to Juno-2. Some of these patches have landed, but the complete set will not land until Juno-2.

Blueprint document attached.
similar BP: https://blueprints.launchpad.net/neutron/+spec/ovs-distributed-router

Etherpad Discussion
https://etherpad.openstack.org/p/Distributed-Virtual-Router

First DVR IRC Meeting Minutes
https://wiki.openstack.org/wiki/Meetings/Distributed-Virtual-Router

Hi Folks,
For people who are attending the summit sessions and interested in DVR discussion please let me know.
Swami

Gerrit topic: https://review.openstack.org/#q,topic:bp/neutron-ovs-dvr,n,z

Addressed by: https://review.openstack.org/60863
    WIP: dvr_flow_pulling_channel

Google Doc Link
https://docs.google.com/document/d/1iXMAyVMf42FTahExmGdYNGOBFyeA4e74sAO3pvr_RjA/edit

DVR Update Provided at the F2F Meeting

https://docs.google.com/presentation/d/1XJY30ZM0K3xz1U4CVWaQuaqBotGadAFM1xl1UuLtbrk/edit?usp=sharing

Follow up Docs

L2 Agent Doc

https://docs.google.com/document/d/1depasJSnGZPOnRLxEC_PYsVLcGVFXZLqP52RFTe21BE/edit#heading=h.5w7clq272tji

L3 Agent Doc

https://docs.google.com/document/d/1jCmraZGirmXq5V1MtRqhjdZCbUfiwBhRkUjDXGt5QUQ/edit

Addressed by: https://review.openstack.org/84223
    Add L3 Extension for Distributed Routers

Addressed by: https://review.openstack.org/87730
    L2 Agent/ML2 Plugin changes for L3 DVR

Addressed by: https://review.openstack.org/88442
    Add 'ip neigh' to ip_lib

Addressed by: https://review.openstack.org/89413
    Modify L3 Agent for Distributed Routers

Addressed by: https://review.openstack.org/89694
    Add L3 Scheduler Changes for Distributed Routers

Addressed by: https://review.openstack.org/93233
    Add 'ip rule add from' to ip_lib

Addressed by: https://review.openstack.org/96389
    Addressed merge conflict

Addressed by: https://review.openstack.org/97028
    Refactor some router-related methods

Addressed by: https://review.openstack.org/97275
    Allow L3 base to handle extensions on router creation

Gerrit topic: https://review.openstack.org/#q,topic:bp/neutron-testing-refactor,n,z

Addressed by: https://review.openstack.org/102101
    L2 Model additions to support DVR

Addressed by: https://review.openstack.org/102332
    RPC additions to support DVR

Addressed by: https://review.openstack.org/102398
    ML2 additions to support DVR

yongsheng gong 2014-06-25: The implementation heavily relies on ovs, which does not fit with ML2 spirits. In ML2 spirit, we are promising to allow linux bridge, ovs, and even other access tech to work together. So I think we should think a little longer the solution.

Addressed by: https://review.openstack.org/105855
    Implement migration of legacy routers to distributed

Gerrit topic: https://review.openstack.org/#q,topic:squash-dvr,n,z

Gerrit topic: https://review.openstack.org/#q,topic:dvr-temp,n,z

Gerrit topic: https://review.openstack.org/#q,topic:master,n,z

Addressed by: https://review.openstack.org/105864
    (DON'T MERGE) Squash DVR commits together

Gerrit topic: https://review.openstack.org/#q,topic:up-master,n,z

Addressed by: https://review.openstack.org/106153
    WIP: Implement namespace cleanup for new DVR namespaces

Addressed by: https://review.openstack.org/104731
    Make ML2 ensure_dvr_port_binding more robust

Addressed by: https://review.openstack.org/107880
    Encapsulate some port properties in the PortContext

Addressed by: https://review.openstack.org/108177
    NSX: unify the two distributed routing extensions

Gerrit topic: https://review.openstack.org/#q,topic:bp/ml2-hierarchical-port-binding,n,z

Addressed by: https://review.openstack.org/109046
    Break out port binding logic from ML2 plugin

Gerrit topic: https://review.openstack.org/#q,topic:bp/neutron-ovs-dvr-race,n,z

Addressed by: https://review.openstack.org/109486
    Preserve link local IP allocations for DVR fip ns across restart

Addressed by: https://review.openstack.org/110348
    Improves the Port Binding Model for ML2

Addressed by: https://review.openstack.org/112229
    Fix to enable L2pop to serve DVR

Addressed by: https://review.openstack.org/114603
    WIP: Don't run ra_dvd inside of snat namespaces

Addressed by: https://review.openstack.org/119253
    Updates to reschedule_router() for DVR

Gerrit topic: https://review.openstack.org/#q,topic:dvr-migration-service-validation,n,z

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers