[RFE] Routing providers framework

Bug #1577572 reported by Ryan Tidwell
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
neutron
Won't Fix
Wishlist
Unassigned

Bug Description

It would extremely helpful if Neutron were able to determine whether there is a mechanism operating on an external network that can handle advertising next-hops to upstream routers. "Fast-exit" DVR (https://bugs.launchpad.net/neutron/+bug/1577488) is an example of a use case where a framework for providing this information inside Neutron would be useful. With the Mitaka release BGP dynamic routing functionality was added to Neutron. BGP dyanmic routing exposes the concept of bindings between networks and BGP processes, which can provide the information described above. However, this is not a generic approach that supports other routing providers such as IPv6 proxy ND, OSPF, or other routing technology. What is needed is a framework that allows Neutron to ask whether there is a mechanism operating on an external or provider network that is handling routing traffic.

To this end I'm proposing the creation of a simple, yet generic framework in Neutron that allows any number of "routing providers" to be registered with Neutron. Each routing provider is able to answer the question "do you route to next-hops on network X?". Among other things, this answer allows fast-exit DVR to be enabled dynamically based on whether appropriate routing is in place without placing more config file burden on operators or having tenants set attributes on a router to get fast-exit treatment.

Changed in neutron:
importance: Undecided → Wishlist
status: New → Confirmed
Revision history for this message
Carl Baldwin (carl-baldwin) wrote :

Given the split of BGP out of Neutron, I think some kind of routing provider interface may be warranted to abstract the interactions between Neutron and routing providers like BGP.

I'm wondering if we could start small under the umbrella of the already existing Neutron BGP spinout blueprint [1]. I'm thinking we probably don't need to go all out on this. Just start small and iterate. Maybe we can save this RFE for a future effort to flesh out the interface.

[1] https://blueprints.launchpad.net/neutron/+spec/bgp-spinout

Changed in neutron:
status: Confirmed → Triaged
Revision history for this message
Ryan Tidwell (ryan-tidwell) wrote :

Do we need to flesh out a full-blown API for this initially? I was thinking like you that we could start small and iterate, but build the framework along the way. Perhaps we're just quibbling over what launchpad ID we track the work with :)

Revision history for this message
Adolfo Duarte (adolfo-duarte) wrote :

A framework like the one described here could be used for any type of routing information provider.
I think the simplest type of framework would be one that asks the question "can you provide routing information for network X?" to registered providers and hand off any other work to the provider , including figuring out what protocol is used to exchange routing information.

Revision history for this message
Carl Baldwin (carl-baldwin) wrote :

I think we should do just enough of this for the fast exit rfe [1] and leave the rest of this for another time.

[1] https://bugs.launchpad.net/neutron/+bug/1577488

Changed in neutron:
status: Triaged → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.