Page MenuHomeVyOS Platform

Add CLI support for BGP update-delay and establish-wait "set protocols bgp parameters update-delay"
Closed, ResolvedPublicFEATURE REQUEST

Description

The FRR bgpd supports the update-delay and establish-wait parameters, which control reconvergence behavior after a bgpd restart or system boot:

router bgp <ASN>
update-delay <seconds> <establish-wait>

This configuration puts bgpd into a "read-only" holding mode after restart. Instead of immediately computing best paths and re-advertising to all peers as each one connects, which creates 'N' parallel processing bursts in the single-threaded bgpd event loop, bgpd collects all incoming prefixes from all peers first, and then performs a single batch best-path computation once all peers have established, or the timer expires.
This is critical for large-scale deployments (ISP and IXP routers, full-table BGP, 100+ peers) where the default behavior of parallel reconvergence overloads the bgpd event loop and can trigger watchfrr restarts or even bgpd crash loops.

Currently, these parameters are not exposed in the VyOS CLI under:

set protocols bgp parameters

The only way to configure them is via vtysh directly, but the configuration does not survive VyOS commits, as frr.conf is regenerated from templates on every commit.

The proposed CLI would be:

set protocols bgp parameters update-delay <seconds>
set protocols bgp parameters update-delay <seconds> establish-wait <seconds>

Validated FRR vtysh commands (note: inside 'router bgp' context, the command is
'update-delay', not 'bgp update-delay'):

vtysh -c "configure terminal" \
      -c "router bgp <ASN>" \
      -c "update-delay 120 90" \
      -c "end" \
      -c "write memory"

Current workaround applied via post-config script /config/scripts/vyos-postconfig-bootup.script

vtysh -c "configure terminal" \
      -c "router bgp <ASN>" \
      -c "update-delay 120 90" \
      -c "end" \
      -c "write memory"

**Reference: https://docs.frrouting.org/en/stable-10.5/bgp.html**

Details

Version
-
Is it a breaking change?
Perfectly compatible
Issue type
Feature (new functionality)