frr icon indicating copy to clipboard operation
frr copied to clipboard

bgpd: Ensure evpn local table display shows route send status

Open donaldsharp opened this issue 1 year ago • 4 comments

evpn has a concept of local tables where the evpn routes are actually converted into underlying routes/neighbor table entries( or vice versa ). Then this local route is propagated to the global evpn l2vpn table and sent to the peers. Certain show commands in evpn look operate on the local table but make the output look like the data has not been sent to the peer. This is confusing for the operator. Modify the code such that local tables get a Local BGP table not advertised in the place where the code talks about whom has received the data or not.

Example: torm11# show bgp l2vpn evpn route vni 1000 mac 8a:a1:cc:73:a3:ac ip 45.0.0.5 BGP routing table entry for [2]:[0]:[48]:[8a:a1:cc:73:a3:ac]:[32]:[45.0.0.5] Paths: (2 available, best #2) Local BGP table not advertised Route [2]:[0]:[48]:[8a:a1:cc:73:a3:ac]:[32]:[45.0.0.5] VNI 1000 Imported from 192.168.100.18:2:[2]:[0]:[48]:[8a:a1:cc:73:a3:ac]:[32]:[45.0.0.5], VNI 1000 65101 65005 192.168.100.18(leaf2) from leaf2(192.168.5.1) (192.168.100.14) Origin IGP, valid, external Extended Community: RT:65005:1000 ET:8 Last update: Thu Mar 21 14:29:04 2024 Route [2]:[0]:[48]:[8a:a1:cc:73:a3:ac]:[32]:[45.0.0.5] VNI 1000 Imported from 192.168.100.18:2:[2]:[0]:[48]:[8a:a1:cc:73:a3:ac]:[32]:[45.0.0.5], VNI 1000 65101 65005 192.168.100.18(leaf1) from leaf1(192.168.1.1) (192.168.100.13) Origin IGP, valid, external, bestpath-from-AS 65101, best (Router ID) Extended Community: RT:65005:1000 ET:8 Last update: Thu Mar 21 14:29:04 2024

donaldsharp avatar Mar 22 '24 20:03 donaldsharp

This does change the output of some commands. I am on the edge of this being of a sufficiently bad output that this fix is worth doing.

donaldsharp avatar Mar 22 '24 20:03 donaldsharp

This does change the output of some commands. I am on the edge of this being of a sufficiently bad output that this fix is worth doing.

I do think this is worth doing ... there's no way to tell which kind of route is which right now, which means you could waste a good bit of time figuring out a route is local

riw777 avatar Mar 26 '24 14:03 riw777

re. the JSON discussion, how about we add a

{ …
"notes": [],
… }

and if it's local we go

{ …
"notes": ["local route only"],
…}

(i said "flags" on the call, but "notes" is probably better because "flags" sounds like it is a protocol function or something like that)

eqvinox avatar Apr 02 '24 15:04 eqvinox

I think the lint errors need to be addressed before we merge this

riw777 avatar May 28 '24 14:05 riw777