-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bgpd: display BGP Link-State attributes #13299
Conversation
0bdeca4
to
3c3605b
Compare
Continuous Integration Result: FAILEDContinuous Integration Result: FAILEDSee below for issues. This is a comment from an automated CI system. Get source / Pull Request: SuccessfulBuilding Stage: FailedDebian 11 amd64 build: Failed (click for details)Debian 11 amd64 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-PULLREQ2-10870/artifact/DEB11AMD64/config.log/config.log.gzMake failed for Debian 11 amd64 build:
Debian 11 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-PULLREQ2-10870/artifact/DEB11AMD64/config.status/config.status Successful on other platforms/tests
Warnings Generated during build:Checkout code: Successful with additional warningsDebian 11 amd64 build: Failed (click for details)Debian 11 amd64 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-PULLREQ2-10870/artifact/DEB11AMD64/config.log/config.log.gzMake failed for Debian 11 amd64 build:
Debian 11 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-PULLREQ2-10870/artifact/DEB11AMD64/config.status/config.status
|
Continuous Integration Result: FAILEDContinuous Integration Result: FAILEDSee below for issues. This is a comment from an automated CI system. Get source / Pull Request: SuccessfulBuilding Stage: FailedDebian 11 amd64 build: Failed (click for details)Debian 11 amd64 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-PULLREQ2-10872/artifact/DEB11AMD64/config.log/config.log.gzMake failed for Debian 11 amd64 build:
Debian 11 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-PULLREQ2-10872/artifact/DEB11AMD64/config.status/config.status Successful on other platforms/tests
Warnings Generated during build:Checkout code: Successful with additional warningsDebian 11 amd64 build: Failed (click for details)Debian 11 amd64 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-PULLREQ2-10872/artifact/DEB11AMD64/config.log/config.log.gzMake failed for Debian 11 amd64 build:
Debian 11 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-PULLREQ2-10872/artifact/DEB11AMD64/config.status/config.status
|
3c3605b
to
c5f3e36
Compare
Continuous Integration Result: FAILEDContinuous Integration Result: FAILEDSee below for issues. This is a comment from an automated CI system. Get source / Pull Request: SuccessfulBuilding Stage: FailedDebian 11 amd64 build: Failed (click for details)Debian 11 amd64 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-PULLREQ2-10925/artifact/DEB11AMD64/config.log/config.log.gzMake failed for Debian 11 amd64 build:
Debian 11 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-PULLREQ2-10925/artifact/DEB11AMD64/config.status/config.status Successful on other platforms/tests
Warnings Generated during build:Checkout code: Successful with additional warningsDebian 11 amd64 build: Failed (click for details)Debian 11 amd64 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-PULLREQ2-10925/artifact/DEB11AMD64/config.log/config.log.gzMake failed for Debian 11 amd64 build:
Debian 11 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-PULLREQ2-10925/artifact/DEB11AMD64/config.status/config.status
|
c5f3e36
to
5aab870
Compare
Continuous Integration Result: FAILEDContinuous Integration Result: FAILEDSee below for issues. This is a comment from an automated CI system. Get source / Pull Request: SuccessfulBuilding Stage: FailedDebian 11 amd64 build: Failed (click for details)Debian 11 amd64 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-PULLREQ2-10926/artifact/DEB11AMD64/config.log/config.log.gzMake failed for Debian 11 amd64 build:
Debian 11 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-PULLREQ2-10926/artifact/DEB11AMD64/config.status/config.status Successful on other platforms/tests
Warnings Generated during build:Checkout code: Successful with additional warningsDebian 11 amd64 build: Failed (click for details)Debian 11 amd64 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-PULLREQ2-10926/artifact/DEB11AMD64/config.log/config.log.gzMake failed for Debian 11 amd64 build:
Debian 11 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-PULLREQ2-10926/artifact/DEB11AMD64/config.status/config.status
|
5aab870
to
2373675
Compare
Continuous Integration Result: FAILEDContinuous Integration Result: FAILEDSee below for issues. This is a comment from an automated CI system. Get source / Pull Request: SuccessfulBuilding Stage: FailedDebian 11 amd64 build: Failed (click for details)Debian 11 amd64 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-PULLREQ2-10929/artifact/DEB11AMD64/config.log/config.log.gzMake failed for Debian 11 amd64 build:
Debian 11 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-PULLREQ2-10929/artifact/DEB11AMD64/config.status/config.status Successful on other platforms/tests
Warnings Generated during build:Checkout code: Successful with additional warningsDebian 11 amd64 build: Failed (click for details)Debian 11 amd64 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-PULLREQ2-10929/artifact/DEB11AMD64/config.log/config.log.gzMake failed for Debian 11 amd64 build:
Debian 11 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-PULLREQ2-10929/artifact/DEB11AMD64/config.status/config.status
|
Register BGP Link-State AFI/SAFI values from RFC7752. Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com> Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
Add bgp link-state yang structure Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Add the bgp link-state configuration context cli: > router bgp 65001 > address-family link-state link-state > neighbor 192.0.2.2 activate > exit-address-family Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Accept the BGP Link-State AFI/SAFI capability when received from a peer OPEN message. Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com> Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
Add to the library the link-state type of prefixes. Link-state prefixes contain much more data than the current prefixes and they only make sense for BGP Link-State. Storing all the data in "struct prefix" is not relevant because it would increase the memory usage of all daemons. Instead a pointer to a structure that contains all the information is used. Printing link-state prefixes can be delegated to a hook function. Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Add the ability to decode link-state prefixes from a non FRR router, to store them in structures and to re-encode the prefix to other routers. Prefixes can be displayed with "show bgp all" > r3# show bgp all > > For address family: Link State > BGP table version is 24, local router ID is 192.0.2.3, vrf id 0 > Default local pref 100, local AS 65003 > Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, > i internal, r RIB-failure, S Stale, R Removed > Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self > Origin codes: i - IGP, e - EGP, ? - incomplete > RPKI validation codes: V valid, I invalid, N Not found > > Network Next Hop Metric LocPrf Weight Path > *> Link ISIS-L1 ID:0x20 Local{AS:65001 ID:0 Rtr:0000.0000.1001} Remote{AS:65001 ID:0 Rtr:0000.0000.1000} Link{IPv4:10.1.0.1 Neigh-IPv4:10.1.0.2 IPv6:2001::1 Neigh-IPv6:2001::2 MT:0,2}/132 > 0 65002 65001 i > *> Node ISIS-L1 ID:0x20 Local{AS:65001 ID:0 Rtr:0000.0000.1003.00}/48 > 0 65002 65001 i > *> IPv6-Prefix OSPFv3 ID:0x20 Local{AS:65001 ID:0 Area:0 Rtr:10.10.10.10} Prefix{OSPF-Route-Type:1 IPv6:12:12::12:12/128 MT:2}/74 > 0 65002 65001 i > *> IPv6-Prefix ISIS-L2 ID:0x20 Local{AS:65001 ID:0 Rtr:0000.0000.1003.00} Prefix{IPv6:12:12::12:12/128 MT:2}/74 > 0 65002 65001 i > *> IPv4-Prefix OSPFv2 ID:0x20 Local{AS:65001 ID:0 Area:0 Rtr:10.10.10.10:1.1.1.1} Prefix{IPv4:89.10.11.0/24}/64 > 0 65002 65001 i > *> Node OSPFv2 ID:0x20 Local{AS:65001 ID:0 Area:0 Rtr:10.10.10.10:1.1.1.1}/48 > 0 65002 65001 i > *> Node OSPFv2 ID:0x20 Local{AS:65001 ID:0 Area:0 Rtr:10.10.10.10}/48 > 0 65002 65001 i Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Add the "debug bgp linkstate" command to display incoming link-states prefixes. Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Add the ability to encode link-state prefixes that are in the BGP table. Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com> Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
Add the ability to store a raw copy of the incoming BGP Link-State attributes and to redistribute them as is to other routes. Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com> Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
Link-state prefixes are only intended to be read for a link-state consumer (i.e. a controler). They cannot be installed in Forwarding Information Base (FIB). Do not announce them to zebra. Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Add the "bgp default link-state" command to the "router bgp" context. > router bgp 65000 > bgp default link-state When this command is set, the "link-state/link-state" AFI/SAFI is activated on all neighbors that are directly specified within the "router bgp" unless explicitly deactivated: > router bgp 65000 > bgp default link-state > neighbor 10.0.0.1 remote-as 65001 > address-family link-state link-state > no neighbor 10.0.0.1 activate Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Add the "show bgp link-state link-state" following commands: > r3# show bgp link-state link-state ? > <cr> > all Display the entries for all address families > detail-routes Display detailed version of all routes > json JavaScript Object Notation > neighbors Detailed information on TCP and BGP neighbor connections > regexp Display routes matching the AS path regular expression > summary Summary of BGP neighbor status > version Display prefixes with matching version numbers > wide Increase table width for longer prefixes Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Display detailed information about link-state prefixes in JSON mode. Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Use an external BGP injector tool in router r1. Check that bgpd on r2 is able to decode BGP-LS prefixes and re-encode to the r3 instance. Link: https://github.com/louis-6wind/bgp_injector Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
move bgp references at the right place Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Fix bgp-ls rfc id in link-state Fixes: bbd85e2 ("lib: Add Link State Database") Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Add the bgp link-state user documentation Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2373675
to
e637207
Compare
Display BGP-LS attributes. > r3# show bgp link-state link-state detail-route > (...) > BGP routing table entry for Link ISIS-L1 ID:0x20 Local{AS:65001 ID:0 Rtr:0000.0000.1001} Remote{AS:65001 ID:0 Rtr:0000.0000.1000} Link{IPv4:10.1.0.1 Neigh-IPv4:10.1.0.2 IPv6:2001::1 Neigh-IPv6:2001::2 MT:0,2}/132, version 1 > Paths: (1 available, best #1) > Advertised to non peer-group peers: > 192.0.2.2 > 65002 65001 > :: from 192.0.2.2 (192.0.2.2) > Origin IGP, valid, external, best (First path received) > Last update: Fri Feb 3 18:12:51 2023 > BGP-LS attributes: > IPv4 Router-ID of Local Node: 1.1.1.1 > IPv4 Router-ID of Remote Node: 10.10.10.10 > Maximum link bandwidth: 1410.07 Mbps > Max. reservable link bandwidth: 1410.07 Mbps > Unreserved bandwidth: > [0]: 1410.07 Mbps [1]: 1410.07 Mbps > [2]: 1410.07 Mbps [3]: 1410.07 Mbps > [4]: 1410.07 Mbps [5]: 1410.07 Mbps > [6]: 1410.07 Mbps [7]: 1410.07 Mbps > TE Default Metric: 100 > IGP Metric: > Adjacency SID: > Flags: 0b00110000 > Weight: 0 > SID: 15000 > Unidirectional Link Delay: 8500 microseconds > Min/Max Unidirectional Link Delay: 8000/9000 microseconds > Application-Specific Link Attributes: > SABM Flags : 0b00010000 00000000 00000000 00000000 > UDABM Flags: 0b00000000 00000000 00000000 00000000 > Administrative group: 0x00000001 > TE Default Metric: 100 > Min/Max Unidirectional Link Delay: 8000/0 microseconds > Extended Administrative Group: 0x00000001 > > Displayed 8 routes and 8 total paths Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Add some attributes to display in the injector and check the output. Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Add information to display bgp-ls attributes Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
e637207
to
ef5cf3e
Compare
Continuous Integration Result: FAILEDContinuous Integration Result: FAILEDSee below for issues. This is a comment from an automated CI system. Get source / Pull Request: SuccessfulBuilding Stage: FailedDebian 11 amd64 build: Failed (click for details)Debian 11 amd64 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-PULLREQ2-10931/artifact/DEB11AMD64/config.log/config.log.gzMake failed for Debian 11 amd64 build:
Debian 11 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-PULLREQ2-10931/artifact/DEB11AMD64/config.status/config.status Successful on other platforms/tests
Warnings Generated during build:Checkout code: Successful with additional warningsDebian 11 amd64 build: Failed (click for details)Debian 11 amd64 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-PULLREQ2-10931/artifact/DEB11AMD64/config.log/config.log.gzMake failed for Debian 11 amd64 build:
Debian 11 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-PULLREQ2-10931/artifact/DEB11AMD64/config.status/config.status
|
Continuous Integration Result: FAILEDSee below for issues. This is a comment from an automated CI system. Get source / Pull Request: SuccessfulBuilding Stage: SuccessfulBasic Tests: FailedTopotests Ubuntu 18.04 i386 part 6: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO6U18I386-10932/test Topology Tests failed for Topotests Ubuntu 18.04 i386 part 6 Successful on other platforms/tests
Warnings Generated during build:Checkout code: Successful with additional warningsTopotests Ubuntu 18.04 i386 part 6: Failed (click for details)Topology Test Results are at https://ci1.netdef.org/browse/FRR-PULLREQ2-TOPO6U18I386-10932/test Topology Tests failed for Topotests Ubuntu 18.04 i386 part 6
|
display of attributes are now integrated to #12649 |
Continuation of #12649
Add display of BGP Link-State attributes