Page MenuHomeVyOS Platform

removal of a config leaf should be more obvious when running "compare commands"
Open, WishlistPublicENHANCEMENT

Description

say i want to delete a peer group that looks like this

set protocols bgp peer-group fabric address-family ipv4-unicast route-map export 'FABRIC_OUT'
set protocols bgp peer-group fabric address-family ipv4-unicast route-map import 'FABRIC_IN'
set protocols bgp peer-group fabric address-family ipv4-unicast soft-reconfiguration inbound
set protocols bgp peer-group fabric address-family ipv6-unicast route-map export 'FABRIC_OUT'
set protocols bgp peer-group fabric address-family ipv6-unicast route-map import 'FABRIC_IN'
set protocols bgp peer-group fabric address-family ipv6-unicast soft-reconfiguration inbound
set protocols bgp peer-group fabric remote-as 'internal'

if i delete by running delete protocols bgp peer-group fabric and then do compare commands, it results in this output:

delete protocols bgp peer-group fabric address-family ipv4-unicast route-map export 'FABRIC_OUT'
delete protocols bgp peer-group fabric address-family ipv4-unicast route-map import 'FABRIC_IN'
delete protocols bgp peer-group fabric address-family ipv4-unicast soft-reconfiguration inbound
delete protocols bgp peer-group fabric address-family ipv6-unicast route-map export 'FABRIC_OUT'
delete protocols bgp peer-group fabric address-family ipv6-unicast route-map import 'FABRIC_IN'
delete protocols bgp peer-group fabric address-family ipv6-unicast soft-reconfiguration inbound
delete protocols bgp peer-group fabric remote-as 'internal'

if i take this output and copy/paste it to another vyos device, it doesn't remove the full configuration, the address-family ipv4/ipv6 statements still exist, along with the peer-group itself since the comparison won't explicitly indicate we're removing the peer group.

this isn't unique to bgp peer groups, you can demonstrate this with pretty much any configuration with nested nodes

maybe vyos can make it more obvious? instead of the above output when running compare commands vyos can instead show that a leaf is being explicitly removed?
notice the explicit statements that remove the address-families and peer-group

delete protocols bgp peer-group fabric address-family ipv4-unicast route-map export 'FABRIC_OUT'
delete protocols bgp peer-group fabric address-family ipv4-unicast route-map import 'FABRIC_IN'
delete protocols bgp peer-group fabric address-family ipv4-unicast soft-reconfiguration inbound
delete protocols bgp peer-group fabric address-family ipv4-unicast
delete protocols bgp peer-group fabric address-family ipv6-unicast route-map export 'FABRIC_OUT'
delete protocols bgp peer-group fabric address-family ipv6-unicast route-map import 'FABRIC_IN'
delete protocols bgp peer-group fabric address-family ipv6-unicast soft-reconfiguration inbound
delete protocols bgp peer-group fabric address-family ipv6-unicast
delete protocols bgp peer-group fabric remote-as 'internal'
delete protocols bgp peer-group fabric

Details

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

Event Timeline

Thunderstorm triaged this task as Wishlist priority.
Thunderstorm changed Version from - to 2025.04.04-0018-rolling.
Thunderstorm changed Is it a breaking change? from Unspecified (possibly destroys the router) to Perfectly compatible.