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

Kyle Mestery
Swaminathan Vasudevan
Rajeev Grover
Series goal:
Accepted for juno
Milestone target:
milestone icon 2014.2
Started by
Swaminathan Vasudevan
Completed by
Kyle Mestery

Related branches



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:

Etherpad Discussion

First DVR IRC Meeting Minutes

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

Gerrit topic:,topic:bp/neutron-ovs-dvr,n,z

Addressed by:
    WIP: dvr_flow_pulling_channel

Google Doc Link

DVR Update Provided at the F2F Meeting

Follow up Docs

L2 Agent Doc

L3 Agent Doc

Addressed by:
    Add L3 Extension for Distributed Routers

Addressed by:
    L2 Agent/ML2 Plugin changes for L3 DVR

Addressed by:
    Add 'ip neigh' to ip_lib

Addressed by:
    Modify L3 Agent for Distributed Routers

Addressed by:
    Add L3 Scheduler Changes for Distributed Routers

Addressed by:
    Add 'ip rule add from' to ip_lib

Addressed by:
    Addressed merge conflict

Addressed by:
    Refactor some router-related methods

Addressed by:
    Allow L3 base to handle extensions on router creation

Gerrit topic:,topic:bp/neutron-testing-refactor,n,z

Addressed by:
    L2 Model additions to support DVR

Addressed by:
    RPC additions to support DVR

Addressed by:
    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:
    Implement migration of legacy routers to distributed

Gerrit topic:,topic:squash-dvr,n,z

Gerrit topic:,topic:dvr-temp,n,z

Gerrit topic:,topic:master,n,z

Addressed by:
    (DON'T MERGE) Squash DVR commits together

Gerrit topic:,topic:up-master,n,z

Addressed by:
    WIP: Implement namespace cleanup for new DVR namespaces

Addressed by:
    Make ML2 ensure_dvr_port_binding more robust

Addressed by:
    Encapsulate some port properties in the PortContext

Addressed by:
    NSX: unify the two distributed routing extensions

Gerrit topic:,topic:bp/ml2-hierarchical-port-binding,n,z

Addressed by:
    Break out port binding logic from ML2 plugin

Gerrit topic:,topic:bp/neutron-ovs-dvr-race,n,z

Addressed by:
    Preserve link local IP allocations for DVR fip ns across restart

Addressed by:
    Improves the Port Binding Model for ML2

Addressed by:
    Fix to enable L2pop to serve DVR

Addressed by:
    WIP: Don't run ra_dvd inside of snat namespaces

Addressed by:
    Updates to reschedule_router() for DVR

Gerrit topic:,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.