![]() Current Issue:
paths key is not there for
'show bgp l2vpn evpn route rd <rd-id> mac <mac> json' uses
evpn prefix as key for each path.
Replace the evpn prefix with "paths".
This aligned with overall EVPN RIB json output like
'show bgp l2vpn evpn route json'
'show bgp l2vpn evpn route rd <> type 2 json'
Fix:
paths key is added instead of prefix info.
Ticket:#4087461
Issue:4087461
Testing:
Before fix:
leaf22# show bgp l2vpn evpn route rd 6.0.0.17:2 mac 00:02:00:00:00:12 json
{
"prefix":"[2]:[0]:[48]:[00:02:00:00:00:12]",
"prefixLen":352,
"rd":"6.0.0.17:2",
"routeType":2,
"ethTag":0,
"macLen":48,
"mac":"00:02:00:00:00:12",
"advertisedTo":{
"220.20.0.33":{
"hostname":"spine21"
},
"220.21.0.33":{
"hostname":"spine22"
}
},
"[2]:[0]:[48]:[00:02:00:00:00:12]":[ <===== Prefix info instead of "paths" key
[
{
"vni":"101101",
"aspath":{
"string":"65202 65024",
"segments":[
{
"type":"as-sequence",
"list":[
65202,
65024
]
}
],
"length":2
},
"esi":"03:00:00:00:77:02:04:00:00:18",
"es_info":{
"localEs":true
},
"origin":"IGP",
"valid":true,
"version":5,
"bestpath":{
"bestpathFromAs":65202,
"overall":true,
"selectionReason":"Older Path"
},
"extendedCommunity":{
"string":"RT:65024:101101 ET:8"
},
"lastUpdate":{
"epoch":1726803218,
"string":"Fri Sep 20 03:33:38 2024\n"
},
"nexthops":[
{
"ip":"6.0.0.17",
"hostname":"spine21",
"afi":"ipv4",
"metric":0,
"accessible":true,
"used":true
}
],
"peer":{
"peerId":"220.20.0.33",
"routerId":"6.0.0.20",
"hostname":"spine21",
"type":"external"
}
}
],
[
{
"vni":"101101",
"aspath":{
"string":"65202 65024",
"segments":[
{
"type":"as-sequence",
"list":[
65202,
65024
]
}
],
"length":2
},
"esi":"03:00:00:00:77:02:04:00:00:18",
"es_info":{
"localEs":true
},
"origin":"IGP",
"valid":true,
"version":5,
"extendedCommunity":{
"string":"RT:65024:101101 ET:8"
},
"lastUpdate":{
"epoch":1726803218,
"string":"Fri Sep 20 03:33:38 2024\n"
},
"nexthops":[
{
"ip":"6.0.0.17",
"hostname":"spine22",
"afi":"ipv4",
"metric":0,
"accessible":true,
"used":true
}
],
"peer":{
"peerId":"220.21.0.33",
"routerId":"6.0.0.21",
"hostname":"spine22",
"type":"external"
}
}
]
],
"numPaths":2
}
After fix:
eaf22# show bgp l2vpn evpn route rd 6.0.0.17:2 mac 00:02:00:00:00:12 json
{
"prefix":"[2]:[0]:[48]:[00:02:00:00:00:12]",
"prefixLen":352,
"rd":"6.0.0.17:2",
"routeType":2,
"ethTag":0,
"macLen":48,
"mac":"00:02:00:00:00:12",
"advertisedTo":{
"220.20.0.33":{
"hostname":"spine21"
},
"220.21.0.33":{
"hostname":"spine22"
}
},
"paths":[
[
{
"vni":"101101",
"aspath":{
"string":"65202 65024",
"segments":[
{
"type":"as-sequence",
"list":[
65202,
65024
]
}
],
"length":2
},
"esi":"03:00:00:00:77:02:04:00:00:18",
"es_info":{
"localEs":true
},
"origin":"IGP",
"valid":true,
"version":3,
"bestpath":{
"bestpathFromAs":65202,
"overall":true,
"selectionReason":"Router ID"
},
"extendedCommunity":{
"string":"RT:65024:101101 ET:8"
},
"lastUpdate":{
"epoch":1727175046,
"string":"Tue Sep 24 10:50:46 2024\n"
},
"nexthops":[
{
"ip":"6.0.0.17",
"hostname":"spine21",
"afi":"ipv4",
"metric":0,
"accessible":true,
"used":true
}
],
"peer":{
"peerId":"220.20.0.33",
"routerId":"6.0.0.20",
"hostname":"spine21",
"type":"external"
}
}
],
[
{
"vni":"101101",
"aspath":{
"string":"65202 65024",
"segments":[
{
"type":"as-sequence",
"list":[
65202,
65024
]
}
],
"length":2
},
"esi":"03:00:00:00:77:02:04:00:00:18",
"es_info":{
"localEs":true
},
"origin":"IGP",
"valid":true,
"version":3,
"extendedCommunity":{
"string":"RT:65024:101101 ET:8"
},
"lastUpdate":{
"epoch":1727175046,
"string":"Tue Sep 24 10:50:46 2024\n"
},
"nexthops":[
{
"ip":"6.0.0.17",
"hostname":"spine22",
"afi":"ipv4",
"metric":0,
"accessible":true,
"used":true
}
],
"peer":{
"peerId":"220.21.0.33",
"routerId":"6.0.0.21",
"hostname":"spine22",
"type":"external"
}
}
]
],
"numPaths":2
}
Signed-off-by: Sindhu Parvathi Gopinathan's <sgopinathan@nvidia.com>
(cherry picked from commit
|
||
---|---|---|
.github | ||
alpine | ||
babeld | ||
bfdd | ||
bgpd | ||
debian | ||
doc | ||
docker | ||
eigrpd | ||
fpm | ||
gdb | ||
grpc | ||
include | ||
isisd | ||
ldpd | ||
lib | ||
m4 | ||
mgmtd | ||
mlag | ||
nhrpd | ||
ospf6d | ||
ospfclient | ||
ospfd | ||
pathd | ||
pbrd | ||
pceplib | ||
pimd | ||
pkgsrc | ||
python | ||
qpb | ||
redhat | ||
ripd | ||
ripngd | ||
sharpd | ||
snapcraft | ||
staticd | ||
tests | ||
tools | ||
vrrpd | ||
vtysh | ||
watchfrr | ||
yang | ||
zebra | ||
.clang-format | ||
.dockerignore | ||
.flake8 | ||
.git-blame-ignore-revs | ||
.gitignore | ||
.isort.cfg | ||
.pylintrc | ||
.travis.yml | ||
bootstrap.sh | ||
buildtest.sh | ||
config.version.in | ||
configure.ac | ||
COPYING | ||
Makefile.am | ||
README.md | ||
stamp-h.in | ||
version.h |
FRRouting
FRR is free software that implements and manages various IPv4 and IPv6 routing protocols. It runs on nearly all distributions of Linux and BSD and supports all modern CPU architectures.
FRR currently supports the following protocols:
- BGP
- OSPFv2
- OSPFv3
- RIPv1
- RIPv2
- RIPng
- IS-IS
- PIM-SM/MSDP
- LDP
- BFD
- Babel
- PBR
- OpenFabric
- VRRP
- EIGRP (alpha)
- NHRP (alpha)
Installation & Use
For source tarballs, see the releases page.
For Debian and its derivatives, use the APT repository at https://deb.frrouting.org/.
Instructions on building and installing from source for supported platforms may be found in the developer docs.
Once installed, please refer to the user guide for instructions on use.
Community
The FRRouting email list server is located here and offers the following public lists:
Topic | List |
---|---|
Development | dev@lists.frrouting.org |
Users & Operators | frog@lists.frrouting.org |
Announcements | announce@lists.frrouting.org |
For chat, we currently use Slack. You can join by clicking the "Slack" link under the Participate section of our website.
Contributing
FRR maintains developer's documentation which contains the project workflow and expectations for contributors. Some technical documentation on project internals is also available.
We welcome and appreciate all contributions, no matter how small!
Security
To report security issues, please use our security mailing list:
security [at] lists.frrouting.org