Router Extension for Dynamic Routing Using BGP

Registered by Artem Dmytrenko

Add dynamic routing capability to Neutron L3 router. BGP route discovery and advertisement are discussed. The document also tries to lay foundation to generic dynamic routing capability.

Blueprint information

Carl Baldwin
Artem Dmytrenko
Ryan Tidwell
Series goal:
Accepted for mitaka
Milestone target:
milestone icon mitaka-rc1
Started by
Armando Migliaccio
Completed by
Armando Migliaccio

Related branches



Mar-9-2016(armax): code complete, doc pending

Mar-01-2016 (carl_baldwin): Much of this code has merged. There are two more patches before things start working. Starting with: . Both are very close. Ryan is putting the final touches on a third patch to wrap up DVR awareness.

There are issues announcing N/S DVR host routes due to issues with the DVR data plane (fip namespace especially) not being fully implemented. So, the scope is slightly reduced so that in Mitaka, BGP will announce host routes (/32s) for IPv4 floating IPs (with and without DVR) but will announce central routes to the network for tenant networks, both v4 and v6. This means routes to tenant networks behind a DVR will still go through the central part of the router.

Jan-24-2016(armax): actively worked on.

Dec-15-2015(armax): this needs love, the queue of changes does not seem current as of today.,n,z

September-8 (mestery): Moving to Mitaka.

June-15 (mestery): Welcome to Liberty!

August-28 (mestery): Per discussion with Carl, this one won't make Juno, so moving out.

>> We need to start using years here

Sept 1-2015 (armax): Talked to Ryan -> aiming Mitaka 1

14-July (mestery): Approved as low priority for Juno-3.

30-May-2014 (yamamoto): as per a discussion on l3 subteam meeting today,
i started bgp speakers comparison wiki page.

28-Mar (nextone92): After discussion with L3 subteam, the document was re-arranged. The main change is to move dynamic routing functionality from L3 Neutron router objects to a GatewaySpec object that describes how to connect OpenStack to the outside networks.

19-Nov (markmcclain): Dynamic routing was discussed at the design summit. The consensus was that this feature should be deferred until a later release cycle. Placing into backlog for future consideration.

13-Feb (carl_baldwin): I'd like to flesh this out for the Atlanta summit. I think the use case(s) should be clarified and more concrete. My guess is that there are a handful of concrete use cases here. For example, it might be wise to consider learning routes from upstream separately from announcing routes upstream. Some may be interested in one and not the other.

Might also separate out BGP as an implementation detail. Let's talk about concrete use cases where dynamic routing in general can be useful within neutron and then BGP could be plugged in as a driver to a proper framework.

13-Mar (carl_baldwin) I attempted a higher level description of dynamic routing use cases at. It does not -- by any means -- supersede or invalidate this blue print. However, it is more comprehensive.

Gerrit topic:,topic:bp/bgp-dynamic-routing,n,z

Addressed by:
    BGP dynamic routing [Abandoned]

Addressed by:
    Dynamically advertise routes via BGP

Previous Code Changes [All are Abandoned]:
Addressed by:
    [WIP] BGP Dynamic Routing: introduce entities

Addressed by:
    [WIP] BGP Dynamic Routing: adding agent and scheduling

Addressed by:
    [WIP] BGP Dynamic Routing: adding BGP driver

Addressed by:
    BGP Dynamic Routing neutron-client changes

Addressed by:
    [WIP] Add dr-agent service. (Devstack Changes)

New Code Changes proposed for Liberty:
Addressed by:
    Add devref for BGP Speaker API extension

Addressed by:
    BGP Dynamic Routing: neutronclient changes

Addressed by:
    BGP Dynamic Routing: introduce entities and model

Addressed by:
    BGP Dynamic Routing: introduce dragent

Addressed by:
    BGP Dynamic Routing: introduce BgpDrAgent

Addressed by:
    BGP Dynamic Routing: introduce driver

Addressed by:
    [WIP] Add BGP Speaker Service Plugin RPC Calls

Addressed by:
    Add BGP Dynamic Routing Extension

Addressed by:
    Add L3 Notifications To Enable BGP Dynamic Routing

Addressed by:
    Add Queries For BGP Route Lookups

Gerrit topic:,topic:bug/1529022,n,z

Addressed by:
    Rename new_network to new_network_id

Addressed by:
    [WIP] DB Queries For DVR Host Route Lookups

Addressed by:
    Test fixtures to facilitate testing BGP dynamic routing.

Addressed by:
    Add Auto-scheduling support


Work Items

Dependency tree

* Blueprints in grey have been implemented.