Page MenuHomeVyOS Platform

BGP unnumbered - commit fails when route-reflector-client is set
Open, Requires assessmentPublic

Description

When BGP unnumbered (extended-nexthop) and route-reflector-client are set on a neighbor, the commit fails with the following error:

[ protocols bgp 654435 neighbor eth0 address-family ipv4-unicast route-reflector-client ]
sh: line 0: [: 654435: unary operator expected

[ protocols bgp 654435 neighbor eth0 address-family ipv6-unicast route-reflector-client ]
sh: line 0: [: 654435: unary operator expected

Example configuration:

set protocols bgp 654435 neighbor eth0 address-family ipv4-unicast nexthop-self force
set protocols bgp 654435 neighbor eth0 address-family ipv4-unicast route-reflector-client
set protocols bgp 654435 neighbor eth0 address-family ipv6-unicast nexthop-self force
set protocols bgp 654435 neighbor eth0 address-family ipv6-unicast route-reflector-client
set protocols bgp 654435 neighbor eth0 address-family ipv6-unicast soft-reconfiguration inbound
set protocols bgp 654435 neighbor eth0 capability extended-nexthop
set protocols bgp 654435 neighbor eth0 interface remote-as '654435'
set protocols bgp 654435 neighbor eth0 interface v6only

Version:

vyos@vyos# run show version 

Version:          VyOS 1.3-rolling-202101071430
Release Train:    equuleus

Built by:         autobuild@vyos.net
Built on:         Thu 07 Jan 2021 14:30 UTC
Build UUID:       710ade27-8981-49da-ac27-47acc9b4f413
Build Commit ID:  432f3f96927a54

Details

Difficulty level
Unknown (require assessment)
Version
1.3-rolling-202101071430
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)

Event Timeline

1.2 crux the same behavior

The problem probably here
https://github.com/vyos/vyatta-cfg-quagga/blob/current/templates/protocols/bgp/node.tag/neighbor/node.tag/address-family/ipv4-unicast/route-reflector-client/node.def

It expects "remote-as" from a different place.

Works without errors

set protocols bgp 654435 neighbor 10.0.0.2 remote-as '654435'
set protocols bgp 654435 neighbor 10.0.0.2 address-family ipv4-unicast route-reflector-client

It only an informational bug, so configuration accepted

set protocols bgp 654435 neighbor eth1 interface remote-as 654435
set protocols bgp 654435 neighbor eth1 address-family ipv4-unicast route-reflector-client

vyos@r5-roll# commit
[ protocols bgp 654435 neighbor eth1 address-family ipv4-unicast route-reflector-client ]
sh: line 0: [: 654435: unary operator expected

[edit]
vyos@r5-roll#

Needs to add that expression with the right logic.

$VAR(../../../../@) != $VAR(../../../interface/remote-as/@)