Hi,
I would like to raise an issue that we found when we send BGP EPE labels to GoBGP via BGP-LS.
Architecture in place :
(R1)<---[eBGP Labeled Unicast with EPE activated]--->(R2)
|
|
eBGP Link-State
|
|
(GOBGP)
For your information R1 is a Nokia SROS router.
R1 has 2 BGP EPE labels applied for the eBGP session with R2 :
A:R1# show router bgp neighbor 172.16.210.0 epe-statistics
Label Type Pkt Count Byte Count
524285 node-sid 0 0
524286 adj-sid 0 0
R1 is advertising 6 BGP-LS routes to GoBGP :
- 4 routes related to the ISIS configuration (not relevant here)
- 2 routes related to the BGP EPE configuration (one for the node_sid label and the other one for the adjacency_sid label)
A:R1# show router bgp neighbor 10.204.1.2 bgp-ls advertised-routes
BGP Router ID:192.168.1.3 AS:5410 Local AS:5410
Legend -
Status codes : u - used, s - suppressed, h - history, d - decayed, * - valid
l - leaked, x - stale, > - best, b - backup, p - purge
Origin codes : i - IGP, e - EGP, ? - incomplete
BGP-LS NLRIs
Flag Network LocalPref MED
Nexthop (Router) Path-Id IGP Cost
As-Path Label
i ISIS Level-1/1522 * n/a None
0.0.21.34/3232235779/--
0x192168001003
i ISIS Level-2/1522 * n/a None
0.0.21.34/3232235779/--
0x192168001003
i BGP/0 * n/a None
0.0.21.34/0/-/192.168.1.3
-
0.0.50.44/0/-/192.168.70.3
-
-/-/-
172.16.210.1/172.16.210.0
-
-
i BGP/0 * n/a None
0.0.21.34/0/-/192.168.1.3
-
0.0.50.44/0/-/192.168.70.3
-
-/4/0
172.16.210.1/172.16.210.0
-
-
i ISIS Level-2/1522 * n/a None
0.0.21.34/3232235779/--
0x192168001003
-/-
192.168.1.103/32
i ISIS Level-2/1522 * n/a None
0.0.21.34/3232235779/--
0x192168001003
-/-
192.168.1.3/32
Routes : 6
On GoBGP side, only 5 routes (instead of 6) are in the BGP LS global rib table :
gobgp_lab_te_mini:/# gobgp global rib -a ls
Network Next Hop AS_PATH Age Attrs
* NLRI { LINK { LOCAL_NODE: 192.168.1.3 REMOTE_NODE: 192.168.70.3 LINK: 172.16.210.1->172.16.210.0} } 192.168.1.3 5410 00:00:25 [{Origin: i} {LsAttributes: {Peer Adjacency SID: 524286} }]
* NLRI { NODE { AS:5410 BGP-LS ID:3232235779 1921.6800.1003 ISIS-L2:5410 } } 192.168.1.3 5410 00:00:25 [{Origin: i} {LsAttributes: {Node Flags: ****B***} {Node Name: BTR03_MINI} {ISIS Area ID: [73 0 1]} {Local RouterID IPv4: 192.168.1.3} {SR Capabilities: Flags:0 SRGB Ranges: 18432:118433 } {SR Algorithms: [0]} {Local RouterID IPv4: 192.168.1.3} }]
* NLRI { NODE { AS:5410 BGP-LS ID:3232235779 1921.6800.1003 ISIS-L1:5410 } } 192.168.1.3 5410 00:00:25 [{Origin: i} {LsAttributes: {Node Flags: ****B***} {Node Name: BTR03_MINI} {ISIS Area ID: [73 0 1]} {Local RouterID IPv4: 192.168.1.3} {SR Capabilities: Flags:0 SRGB Ranges: 18432:118433 } {SR Algorithms: [0]} {Local RouterID IPv4: 192.168.1.3} }]
* NLRI { PREFIXv4 { LOCAL_NODE: 1921.6800.1003 PREFIX: [192.168.1.103/32] } } 192.168.1.3 5410 00:00:25 [{Origin: i} {LsAttributes: {IGP Flags: ********} {Prefix opaque attribute: []} {Prefix SID: 11581} }]
* NLRI { PREFIXv4 { LOCAL_NODE: 1921.6800.1003 PREFIX: [192.168.1.3/32] } } 192.168.1.3 5410 00:00:25 [{Origin: i} {LsAttributes: {IGP Flags: ********} {Prefix opaque attribute: []} {Prefix SID: 10581} }]
Here are GoBGP logs :
time=2026-01-11T11:01:17.529Z level=DEBUG msg="New connection for non admin-state-up peer" Topic=Peer Key=192.168.1.3 "Admin State"=adminStateDown
time=2026-01-11T11:01:17.618Z level=DEBUG msg="set admin state" Topic=Peer Key=192.168.1.3 Message="adminStateUp requested"
time=2026-01-11T11:01:17.618Z level=DEBUG msg="admin state changed" Topic=Peer Key=192.168.1.3 State=BGP_FSM_IDLE adminState=adminStateUp
time=2026-01-11T11:01:17.618Z level=INFO msg="Administrative start" Topic=Peer Key=192.168.1.3 State=BGP_FSM_IDLE
time=2026-01-11T11:01:22.622Z level=DEBUG msg="IdleHoldTimer expired" Topic=Peer Key=192.168.1.3 State=BGP_FSM_IDLE Duration=5
time=2026-01-11T11:01:22.622Z level=DEBUG msg="state changed" Topic=Peer Key=192.168.1.3 old=BGP_FSM_IDLE new=BGP_FSM_ACTIVE reason=idle-hold-timer-expired
time=2026-01-11T11:01:22.622Z level=INFO msg="starting outgoing connection manager" Topic=Peer Key=192.168.1.3
time=2026-01-11T11:01:24.230Z level=DEBUG msg="try to connect" Topic=Peer Key=192.168.1.3
time=2026-01-11T11:01:24.232Z level=DEBUG msg="outgoing connection established" Topic=Peer Key=192.168.1.3
time=2026-01-11T11:01:24.233Z level=DEBUG msg="open message received on outgoing connection" Topic=Peer Key=192.168.1.3 remote=192.168.1.3:179
time=2026-01-11T11:01:24.233Z level=DEBUG msg="state changed" Topic=Peer Key=192.168.1.3 old=BGP_FSM_ACTIVE new=BGP_FSM_OPENCONFIRM reason=open-msg-received
time=2026-01-11T11:01:24.238Z level=INFO msg="Peer Up" Topic=Peer Key=192.168.1.3
time=2026-01-11T11:01:24.238Z level=DEBUG msg="state changed" Topic=Peer Key=192.168.1.3 old=BGP_FSM_OPENCONFIRM new=BGP_FSM_ESTABLISHED reason=open-msg-negotiated
time=2026-01-11T11:01:52.532Z level=DEBUG msg="received update" Topic=Peer Key=192.168.1.3 nlri=[] withdrawals=[] path_attributes="[{MpReach(ls): {Nexthop: 192.168.1.3, NLRIs: [NLRI { LINK { LOCAL_NODE: 192.168.1.3 REMOTE_NODE: 192.168.70.3 LINK: 172.16.210.1->172.16.210.0} }:0]}} {Origin: i} {AsPath: 5410} {LsAttributes: {Peer Node SID: 524285} }]"
time=2026-01-11T11:01:52.532Z level=DEBUG msg="create Destination" Topic=Table Nlri="NLRI { LINK { LOCAL_NODE: 192.168.1.3 REMOTE_NODE: 192.168.70.3 LINK: 172.16.210.1->172.16.210.0} }"
time=2026-01-11T11:01:52.532Z level=DEBUG msg="create Destination" Topic=Table Nlri="NLRI { LINK { LOCAL_NODE: 192.168.1.3 REMOTE_NODE: 192.168.70.3 LINK: 172.16.210.1->172.16.210.0} }"
time=2026-01-11T11:01:52.532Z level=DEBUG msg="From me, ignore" Topic=Peer Key=192.168.1.3 Topic=Peer Key=192.168.1.3 Data="{ NLRI { LINK { LOCAL_NODE: 192.168.1.3 REMOTE_NODE: 192.168.70.3 LINK: 172.16.210.1->172.16.210.0} } | src: { 192.168.1.3 | as: 5410, id: 192.168.1.3 }, nh: 192.168.1.3 }"
time=2026-01-11T11:01:52.532Z level=DEBUG msg="received update" Topic=Peer Key=192.168.1.3 nlri=[] withdrawals=[] path_attributes="[{MpReach(ls): {Nexthop: 192.168.1.3, NLRIs: [NLRI { LINK { LOCAL_NODE: 192.168.1.3 REMOTE_NODE: 192.168.70.3 LINK: 172.16.210.1->172.16.210.0} }:0]}} {Origin: i} {AsPath: 5410} {LsAttributes: {Peer Adjacency SID: 524286} }]"
time=2026-01-11T11:01:52.532Z level=DEBUG msg="Implicit withdrawal of old path, since we have learned new path from the same peer" Topic=Table Key="NLRI { LINK { LOCAL_NODE: 192.168.1.3 REMOTE_NODE: 192.168.70.3 LINK: 172.16.210.1->172.16.210.0} }" Path="{ NLRI { LINK { LOCAL_NODE: 192.168.1.3 REMOTE_NODE: 192.168.70.3 LINK: 172.16.210.1->172.16.210.0} } | src: { 192.168.1.3 | as: 5410, id: 192.168.1.3 }, nh: 192.168.1.3 }"
time=2026-01-11T11:01:52.532Z level=DEBUG msg="From me, ignore" Topic=Peer Key=192.168.1.3 Topic=Peer Key=192.168.1.3 Data="{ NLRI { LINK { LOCAL_NODE: 192.168.1.3 REMOTE_NODE: 192.168.70.3 LINK: 172.16.210.1->172.16.210.0} } | src: { 192.168.1.3 | as: 5410, id: 192.168.1.3 }, nh: 192.168.1.3 }"
time=2026-01-11T11:01:52.532Z level=DEBUG msg="received update" Topic=Peer Key=192.168.1.3 nlri=[] withdrawals=[] path_attributes="[{MpReach(ls): {Nexthop: 192.168.1.3, NLRIs: [NLRI { NODE { AS:5410 BGP-LS ID:3232235779 1921.6800.1003 ISIS-L2:5410 } }:0 NLRI { NODE { AS:5410 BGP-LS ID:3232235779 1921.6800.1003 ISIS-L1:5410 } }:0]}} {Origin: i} {AsPath: 5410} {LsAttributes: {Node Flags: ****B***} {Node Name: BTR03_MINI} {ISIS Area ID: [73 0 1]} {Local RouterID IPv4: 192.168.1.3} {SR Capabilities: Flags:192 SRGB Ranges: 18432:118433 } {SR Algorithms: [0]} }]"
time=2026-01-11T11:01:52.532Z level=DEBUG msg="create Destination" Topic=Table Nlri="NLRI { NODE { AS:5410 BGP-LS ID:3232235779 1921.6800.1003 ISIS-L2:5410 } }"
time=2026-01-11T11:01:52.532Z level=DEBUG msg="create Destination" Topic=Table Nlri="NLRI { NODE { AS:5410 BGP-LS ID:3232235779 1921.6800.1003 ISIS-L1:5410 } }"
time=2026-01-11T11:01:52.532Z level=DEBUG msg="create Destination" Topic=Table Nlri="NLRI { NODE { AS:5410 BGP-LS ID:3232235779 1921.6800.1003 ISIS-L2:5410 } }"
time=2026-01-11T11:01:52.532Z level=DEBUG msg="From me, ignore" Topic=Peer Key=192.168.1.3 Topic=Peer Key=192.168.1.3 Data="{ NLRI { NODE { AS:5410 BGP-LS ID:3232235779 1921.6800.1003 ISIS-L2:5410 } } | src: { 192.168.1.3 | as: 5410, id: 192.168.1.3 }, nh: 192.168.1.3 }"
time=2026-01-11T11:01:52.532Z level=DEBUG msg="create Destination" Topic=Table Nlri="NLRI { NODE { AS:5410 BGP-LS ID:3232235779 1921.6800.1003 ISIS-L1:5410 } }"
time=2026-01-11T11:01:52.532Z level=DEBUG msg="From me, ignore" Topic=Peer Key=192.168.1.3 Topic=Peer Key=192.168.1.3 Data="{ NLRI { NODE { AS:5410 BGP-LS ID:3232235779 1921.6800.1003 ISIS-L1:5410 } } | src: { 192.168.1.3 | as: 5410, id: 192.168.1.3 }, nh: 192.168.1.3 }"
time=2026-01-11T11:01:52.532Z level=DEBUG msg="received update" Topic=Peer Key=192.168.1.3 nlri=[] withdrawals=[] path_attributes="[{MpReach(ls): {Nexthop: 192.168.1.3, NLRIs: [NLRI { PREFIXv4 { LOCAL_NODE: 1921.6800.1003 PREFIX: [192.168.1.103/32] } }:0]}} {Origin: i} {AsPath: 5410} {LsAttributes: {IGP Flags: ********} {Prefix SID: 11581} }]"
time=2026-01-11T11:01:52.532Z level=DEBUG msg="create Destination" Topic=Table Nlri="NLRI { PREFIXv4 { LOCAL_NODE: 1921.6800.1003 PREFIX: [192.168.1.103/32] } }"
time=2026-01-11T11:01:52.532Z level=DEBUG msg="create Destination" Topic=Table Nlri="NLRI { PREFIXv4 { LOCAL_NODE: 1921.6800.1003 PREFIX: [192.168.1.103/32] } }"
time=2026-01-11T11:01:52.532Z level=DEBUG msg="From me, ignore" Topic=Peer Key=192.168.1.3 Topic=Peer Key=192.168.1.3 Data="{ NLRI { PREFIXv4 { LOCAL_NODE: 1921.6800.1003 PREFIX: [192.168.1.103/32] } } | src: { 192.168.1.3 | as: 5410, id: 192.168.1.3 }, nh: 192.168.1.3 }"
time=2026-01-11T11:01:52.532Z level=DEBUG msg="received update" Topic=Peer Key=192.168.1.3 nlri=[] withdrawals=[] path_attributes="[{MpReach(ls): {Nexthop: 192.168.1.3, NLRIs: [NLRI { PREFIXv4 { LOCAL_NODE: 1921.6800.1003 PREFIX: [192.168.1.3/32] } }:0]}} {Origin: i} {AsPath: 5410} {LsAttributes: {IGP Flags: ********} {Prefix SID: 10581} }]"
time=2026-01-11T11:01:52.532Z level=DEBUG msg="create Destination" Topic=Table Nlri="NLRI { PREFIXv4 { LOCAL_NODE: 1921.6800.1003 PREFIX: [192.168.1.3/32] } }"
time=2026-01-11T11:01:52.532Z level=DEBUG msg="create Destination" Topic=Table Nlri="NLRI { PREFIXv4 { LOCAL_NODE: 1921.6800.1003 PREFIX: [192.168.1.3/32] } }"
time=2026-01-11T11:01:52.532Z level=DEBUG msg="From me, ignore" Topic=Peer Key=192.168.1.3 Topic=Peer Key=192.168.1.3 Data="{ NLRI { PREFIXv4 { LOCAL_NODE: 1921.6800.1003 PREFIX: [192.168.1.3/32] } } | src: { 192.168.1.3 | as: 5410, id: 192.168.1.3 }, nh: 192.168.1.3 }"
It seems that GoBGP is interpretating both BGP EPE LINK NLRIs as the same route and so it only keeps one EPE label (maybe the last update received).
As those routes have the same key, maybe that's why :
"NLRI { LINK { LOCAL_NODE: 192.168.1.3 REMOTE_NODE: 192.168.70.3 LINK: 172.16.210.1->172.16.210.0} }
Those 2 labels are important to keep inside GoBGP the global rib.
Thank you.
BR,
Hi,
I would like to raise an issue that we found when we send BGP EPE labels to GoBGP via BGP-LS.
Architecture in place :
For your information R1 is a Nokia SROS router.
R1 has 2 BGP EPE labels applied for the eBGP session with R2 :
R1 is advertising 6 BGP-LS routes to GoBGP :
On GoBGP side, only 5 routes (instead of 6) are in the BGP LS global rib table :
Here are GoBGP logs :
It seems that GoBGP is interpretating both BGP EPE LINK NLRIs as the same route and so it only keeps one EPE label (maybe the last update received).
As those routes have the same key, maybe that's why :
"NLRI { LINK { LOCAL_NODE: 192.168.1.3 REMOTE_NODE: 192.168.70.3 LINK: 172.16.210.1->172.16.210.0} }Those 2 labels are important to keep inside GoBGP the global rib.
Thank you.
BR,