[RFE] Add BFD support for Neutron

Bug #1907089 reported by Lajos Katona on 2020-12-07
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Wishlist
Lajos Katona

Bug Description

I plan to open a spec with more details as gerrit is more suitable for discussions.

# Problem description

BFD (Bidirectional Forwarding Detection) is used to detect link failures between routers.
It can be helpful to detect
* if an extra route (a nexthop-destination pair) is alive or not, and change routes accordingly.
* Can help routing protocols like ECMP or BGP to change routing decisions based on link status.

# Proposed change (more details are coming in the spec)

* Add the following new APIs to Neutron:
** Handle (Create, list, show, update, delete) bfd_monitors:
POST /v2.0/bfd_monitors
GET /v2.0/bfd_monitors
GET /v2.0/bfd_monitors/{monitor_uuid}
DELETE POST /v2.0/bfd_monitors/{monitor_uuid}
PUT /v2.0/bfd_monitors/{monitor_uuid}

** Get the current status of a bfd_monitor (As current status can be fetched from the backend it can be an expensive operation so better to not mix it with show bfd_monitors operation)
GET /v2.0/bfd_monitors/{monitor_uuid}/monitor_status

* Change the existing router API
** Associate a bfd_monitor to an extra route
PUT /v2.0/routers/{router_uuid}/add_extraroutes OR PUT /v2.0/routers/{router_id}
{"router" : {"routes" : [{ "destination" : "10.0.3.0/24", "nexthop" : "10.0.0.13" , "bfd": <bfd_monitor_id>}]}}

** show routes status for a given router:
GET /v2.0/routers/{router_id}/routes_status

BFD not only gives monitoring option, but generally used to allow quick response to link status changes.
In Neutron case this can be the removal of dead route from the routing table, and adding it back if the monitor status goes to UP again. Other backends, and switch/routing implementations can have more sophisticated solutions of course.

A simple opensource backend can be OVS, as OVS is capable of BFD monitoring.

Changed in neutron:
assignee: nobody → Lajos Katona (lajos-katona)
Changed in neutron:
importance: Undecided → Wishlist
Revision history for this message
Lajos Katona (lajos-katona) wrote :

Proposal for bumping wrapt in l-c.txt:
https://review.opendev.org/c/openstack/neutron/+/765988

Revision history for this message
Lajos Katona (lajos-katona) wrote :

sorry wrong tab....

tags: added: rfe
Revision history for this message
Slawek Kaplonski (slaweq) wrote :

Lets discuss that on the next drivers meeting on Friday 11.12.2020.

tags: added: rfe-triaged
removed: rfe
Revision history for this message
Lajos Katona (lajos-katona) wrote :
Revision history for this message
Slawek Kaplonski (slaweq) wrote :

On the last drivers meeting we decided to approve that RFE. Please propose spec and we will discuss details of that proposal there.

tags: added: l3-bgp
tags: added: rfe-approved
removed: rfe-triaged
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers