[RFE] Integrate OVN BGP capabilities into Neutron OVN driver

Bug #2111276 reported by Jakub Libosvar
40
This bug affects 4 people
Affects Status Importance Assigned to Milestone
neutron
New
Wishlist
Unassigned

Bug Description

There is the ovn-bgp-agent project [1] that is a part of the Neutron stadium. The goal of the project is to leverage FRR as a BGP speaker to advertise routes for the OpenStack workloads. Starting OVN 25.03 [2] core OVN supports dynamic routing that can replace the existing ovn-bgp-agent project offering the same featureset.

This is an RFE to introduce new functionality to Neutron, so Neutron can configure OVN norhtbound database with BGP capabilities. The goal is to reach parity with ovn-bgp-agent with having no BGP related agent running on the compute nodes. This will offer smoother integration of BGP and Neutron and introduce less complexity, as all the BGP work will be lifted by OVN.

As the solution is quite complex, this RFE will likely require a spec where we can discuss implementation details.

[1] https://opendev.org/openstack/ovn-bgp-agent
[2] https://www.ovn.org/en/releases/25.03/

tags: added: rfe
Changed in neutron:
importance: Undecided → Wishlist
tags: added: l3-bgp
tags: added: ovn
Revision history for this message
Frode Nordahl (fnordahl) wrote :

> Starting OVN 25.03 [2] core OVN supports dynamic routing that can replace the existing ovn-bgp-agent project offering the same featureset.
>
> This is an RFE to introduce new functionality to Neutron, so Neutron can configure OVN norhtbound database with BGP capabilities. The goal is to reach parity with ovn-bgp-agent with having no BGP related agent running on the compute nodes. This will offer smoother integration of BGP and Neutron and introduce less complexity, as all the BGP work will be lifted by OVN.

OVN 25.03 did indeed introduce native dynamic routing capabilities, but in the above statement there are some incorrect assumptions about what it does and does not provide.

One of the main design goals [0][1] was to avoid re-implementing the BGP protocol in OVN, as such the solution relies on an external to OVN daemon to take care of the actual BGP sessions.

Other important design goals for native support is the ability to use the same solution across multiple CMSs, and as such we expect parts of this to be implemented in downstream deployment tooling.

There was also a design goal to make consumption of the feature for existing CMS implementations as low touch as possible, so I think the focus of the work in OpenStack Neutron should be what adjustments needs to be made to allow for the use of the native OVN route exchange support with BGP.

We have done some initial experimentation with this [2] which can be viewed both in upstream [3] test cases and downstream experimental implementations [4].

> As the solution is quite complex, this RFE will likely require a spec where we can discuss implementation details.

This work definitively calls for a spec, and we’d be happy to participate in its creation!

0: https://docs.google.com/document/d/1luzYUlzk0tur5OixJL5fTkP8nbhkf0PJrh5GS5rngB0
1: https://docs.google.com/presentation/d/1RKX8UE1VyFwbo9fub_7KFjNNws-XslRNpvT9dMGVHmE
2: https://docs.google.com/drawings/d/e/2PACX-1vQcCFwu1lUB0ZkferQnexaVopcrhZoNISnuEjMDfjGbfj8B7ImFPFjORPzvtuc27gXEFc_9W76gl0sJ/pub?w=960&h=720
3: https://patchwork.<email address hidden>/
4: https://github.com/canonical/microovn/blob/experimental/bgp/tests/test_helper/bats/bgp_data_plane.bats

Revision history for this message
Tore Anderson (toreanderson) wrote :

We would also be very interested in this. Because we operate a multi-tenant cloud, we need support for BGP EVPN, so that are able to separate tenant traffic into the correct customer-specific VRF (or into a shared global Internet VRF).

Note that while ovn-bgp-agent does have some support for BGP EVPN, it implements it in a way that is not compatible with regular EVPN deployments and it does not interoperate well anything but itself. We therefore ended up writing our own agent for this (see https://github.com/toreanderson/evpn_agent). It uses Linux bridge + FRR, so we've sacrificed data path acceleration.

Revision history for this message
Frode Nordahl (fnordahl) wrote :

@toreanderson (hei, lenge siden sist forresten!) On the topic of EVPN there is work ongoing in Core OVN this cycle to address that building on features that landed in 25.03.

Take a look at the OVN Community notes for more information [5].

5: https://docs.google.com/document/d/1dG4GwcYOSs4uArPGtOoaP5tH4KCto-GH_C3tIXSnZZ8

tags: added: rfe-approved
Revision history for this message
Brian Haley (brian-haley) wrote :

This was approved at the drivers meeting today, see the discussion at [0] below. A spec will be produced to provide further details of the implementation.

[0] https://meetings.opendev.org/meetings/neutron_drivers/2025/neutron_drivers.2025-05-30-14.00.log.html

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to neutron (master)

Related fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/958100

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to neutron-specs (master)

Reviewed: https://review.opendev.org/c/openstack/neutron-specs/+/952872
Committed: https://opendev.org/openstack/neutron-specs/commit/e03456dd977bc86a11cc65963bcd61cfa1453da2
Submitter: "Zuul (22348)"
Branch: master

commit e03456dd977bc86a11cc65963bcd61cfa1453da2
Author: Jakub Libosvar <email address hidden>
Date: Wed Jun 18 22:05:54 2025 +0000

    Propose spec for OVN BGP integration

    The spec proposes changes in Neutron to leverage OVN BGP capabilities.

    Related-Bug: #2111276

    Change-Id: I8fef9b7e444b84448105bc60fc5551b0650aa214
    Signed-off-by: Jakub Libosvar <email address hidden>

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to neutron (master)

Related fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/960422

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Related fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/960895

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Related fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/961293

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Related fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/961854

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Related fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/962727

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Related fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/963223

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Related fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/964425

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Related fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/964429

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Related fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/964507

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Related fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/964805

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on neutron (master)

Change abandoned by "Slawek Kaplonski <email address hidden>" on branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/962188
Reason: This review is > 4 weeks without comment, and failed Zuul jobs the last time it was checked. We are abandoning this for now. Feel free to reactivate the review by pressing the restore button and leaving a 'recheck' comment to get fresh test results.

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.