Skip to content
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

isisd: add support for Topology Independent LFA (TI-LFA) #7011

Merged
merged 7 commits into from
Oct 16, 2020

Conversation

rwestphal
Copy link
Member

TI-LFA is a modern fast-reroute (FRR) solution that leverages Segment Routing to pre-compute backup nexthops for all destinations in the network, helping to reduce traffic restoration times whenever a failure occurs. The backup nexthops are expected to be installed in the FIB so that they can be activated as soon as a failure is detected, making sub-50ms recovery possible (assuming an hierarchical FIB).

TI-LFA is a huge step forward compared to prior IP-FRR solutions, like classic LFA and Remote LFA, as it guarantees 100% coverage for all destinations. This is possible thanks to the source routing capabilities of SR, which allows the backup nexthops to steer traffic around the failures (using as many SIDs as necessary). In addition to that, the repair paths always follow the post-convergence SPF tree, which prevents transient congestions and suboptimal routing from happening.

Deploying TI-LFA is very simple as it only requires a single configuration command for each interface that needs to be protected (both link protection and node protection are available). In addition to IPv4 and IPv6 routes, SR Prefix-SIDs and Adj-SIDs are also protected by the backup nexthops computed by the TI-LFA algorithms.

Link to the TI-LFA draft: https://tools.ietf.org/html/draft-ietf-rtgwg-segment-routing-ti-lfa-03

Testing done:

  • Added new TI-LFA topotest containing 9 testing steps;
  • Several new TI-LFA unit tests (extending the new SPF unit testing infrastructure);
  • ANVL - no regressions detected.

Last but not least, big thanks to Mark (@mjstapp) for implementing support for backup nexthops in zebra, without which this work wouldn't be possible.

@polychaeta polychaeta added the tests Topotests, make check, etc label Aug 27, 2020
Copy link

@polychaeta polychaeta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your contribution to FRR!

Click for style suggestions

To apply these suggestions:

curl -s https://gist.githubusercontent.com/polychaeta/8cd3d840373cbef517dbfb08b266f2d1/raw/44e1d51394644b0cceb2b2ed77b3c3fb65b985db/cr_7011_1598538347.diff | git apply

diff --git a/isisd/isis_route.h b/isisd/isis_route.h
index 611756742..fbb548a79 100644
--- a/isisd/isis_route.h
+++ b/isisd/isis_route.h
@@ -66,8 +66,7 @@ struct isis_route_info *isis_route_create(struct prefix *prefix,
 
 /* Walk the given table and install new routes to zebra and remove old ones.
  * route status is tracked using ISIS_ROUTE_FLAG_ACTIVE */
-void isis_route_verify_table(struct isis_area *area,
-			     struct route_table *table,
+void isis_route_verify_table(struct isis_area *area, struct route_table *table,
 			     struct route_table *table_backup);
 
 /* Same as isis_route_verify_table, but merge L1 and L2 routes before */
diff --git a/isisd/isis_sr.c b/isisd/isis_sr.c
index 02adad170..66cfd7ba8 100644
--- a/isisd/isis_sr.c
+++ b/isisd/isis_sr.c
@@ -1584,7 +1584,8 @@ void sr_adj_sid_add_single(struct isis_adjacency *adj, int family, bool backup,
 		sra->backup_nexthops = list_new();
 		for (ALL_LIST_ELEMENTS_RO(nexthops, node, vadj)) {
 			struct isis_adjacency *adj = vadj->sadj->adj;
-			struct mpls_label_stack *label_stack = vadj->label_stack;
+			struct mpls_label_stack *label_stack =
+				vadj->label_stack;
 
 			adjinfo2nexthop(family, sra->backup_nexthops, adj,
 					label_stack);
diff --git a/isisd/isisd.c b/isisd/isisd.c
index 753fea516..f578dfcb4 100644
--- a/isisd/isisd.c
+++ b/isisd/isisd.c
@@ -1397,12 +1397,8 @@ DEFUN (no_debug_isis_srevents,
 	return CMD_SUCCESS;
 }
 
-DEFUN (debug_isis_tilfa,
-       debug_isis_tilfa_cmd,
-       "debug " PROTO_NAME " ti-lfa",
-       DEBUG_STR
-       PROTO_HELP
-       "IS-IS TI-LFA Events\n")
+DEFUN(debug_isis_tilfa, debug_isis_tilfa_cmd, "debug " PROTO_NAME " ti-lfa",
+      DEBUG_STR PROTO_HELP "IS-IS TI-LFA Events\n")
 {
 	debug_tilfa |= DEBUG_TILFA;
 	print_debug(vty, DEBUG_TILFA, 1);
@@ -1410,13 +1406,9 @@ DEFUN (debug_isis_tilfa,
 	return CMD_SUCCESS;
 }
 
-DEFUN (no_debug_isis_tilfa,
-       no_debug_isis_tilfa_cmd,
-       "no debug " PROTO_NAME " ti-lfa",
-       NO_STR
-       UNDEBUG_STR
-       PROTO_HELP
-       "IS-IS TI-LFA Events\n")
+DEFUN(no_debug_isis_tilfa, no_debug_isis_tilfa_cmd,
+      "no debug " PROTO_NAME " ti-lfa",
+      NO_STR UNDEBUG_STR PROTO_HELP "IS-IS TI-LFA Events\n")
 {
 	debug_tilfa &= ~DEBUG_TILFA;
 	print_debug(vty, DEBUG_TILFA, 0);
diff --git a/isisd/isisd.h b/isisd/isisd.h
index bd1a9ae54..e3de6692f 100644
--- a/isisd/isisd.h
+++ b/isisd/isisd.h
@@ -289,7 +289,7 @@ extern unsigned long debug_tilfa;
 #define DEBUG_BFD                        (1<<10)
 #define DEBUG_TX_QUEUE                   (1<<11)
 #define DEBUG_SR                         (1<<12)
-#define DEBUG_TILFA                      (1<<13)
+#define DEBUG_TILFA (1 << 13)
 
 /* Debug related macro. */
 #define IS_DEBUG_ADJ_PACKETS (debug_adj_pkt & DEBUG_ADJ_PACKETS)

If you are a new contributor to FRR, please see our contributing guidelines.

After making changes, you do not need to create a new PR. You should perform an amend or interactive rebase followed by a force push.

@NetDEF-CI
Copy link
Collaborator

NetDEF-CI commented Aug 27, 2020

Continuous Integration Result: FAILED

Continuous Integration Result: FAILED

See below for issues.
CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13883/

This is a comment from an automated CI system.
For questions and feedback in regards to this CI system, please feel free to email
Martin Winter - mwinter (at) opensourcerouting.org.

Get source / Pull Request: Successful

Building Stage: Failed

Fedora 29 amd64 build: Failed (click for details)

Make failed for Fedora 29 amd64 build:
(see full Make log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13883/artifact/F29BUILD/ErrorLog/log_make.txt)

copying selected object files to avoid basename conflicts...
isisd/isis_sr.c: In function sr_op2str.constprop:
isisd/isis_sr.c:1879:33: error: %s directive output may be truncated writing up to 8191 bytes into a region of size between 8175 and 8184 [-Werror=format-truncation=]
isisd/isis_sr.c:1879:3: note: snprintf output between 10 and 8210 bytes into a destination of size 8192
cc1: all warnings being treated as errors
make[1]: *** [Makefile:7949: isisd/isis_sr.o] Error 1
isisd/isis_sr.c: In function sr_op2str.constprop:
isisd/isis_sr.c:1879:33: error: %s directive output may be truncated writing up to 8191 bytes into a region of size between 8175 and 8184 [-Werror=format-truncation=]
isisd/isis_sr.c:1879:3: note: snprintf output between 10 and 8210 bytes into a destination of size 8192

Fedora 29 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13883/artifact/F29BUILD/config.status/config.status

FreeBSD 11 amd64 build: Failed (click for details)

Make failed for FreeBSD 11 amd64 build:
(see full Make log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13883/artifact/CI009BUILD/ErrorLog/log_make.txt)

copying selected object files to avoid basename conflicts...
isisd/isis_sr.c: In function 'sr_op2str.constprop':
isisd/isis_sr.c:1879:33: error: '%s' directive output may be truncated writing up to 1023 bytes into a region of size between 1007 and 1016 [-Werror=format-truncation=]
 1879 |   snprintf(buf, size, "Swap(%u, %s)", label_in, buf_labels);
isisd/isis_sr.c:1879:3: note: 'snprintf' output between 10 and 1042 bytes into a destination of size 1024
 1879 |   snprintf(buf, size, "Swap(%u, %s)", label_in, buf_labels);
cc1: all warnings being treated as errors
gmake[1]: *** [Makefile:7949: isisd/isis_sr.o] Error 1
isisd/isis_sr.c: In function 'sr_op2str.constprop':

FreeBSD 11 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13883/artifact/CI009BUILD/config.status/config.status

Debian 10 amd64 build: Failed (click for details)

Make failed for Debian 10 amd64 build:
(see full Make log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13883/artifact/DEB10BUILD/ErrorLog/log_make.txt)

copying selected object files to avoid basename conflicts...
isisd/isis_sr.c: In function sr_op2str.constprop:
isisd/isis_sr.c:1879:33: error: %s directive output may be truncated writing up to 8191 bytes into a region of size between 8175 and 8184 [-Werror=format-truncation=]
isisd/isis_sr.c:1879:3: note: snprintf output between 10 and 8210 bytes into a destination of size 8192
cc1: all warnings being treated as errors
make[1]: *** [Makefile:7950: isisd/isis_sr.o] Error 1
isisd/isis_sr.c: In function sr_op2str.constprop:
isisd/isis_sr.c:1879:33: error: %s directive output may be truncated writing up to 8191 bytes into a region of size between 8175 and 8184 [-Werror=format-truncation=]
isisd/isis_sr.c:1879:3: note: snprintf output between 10 and 8210 bytes into a destination of size 8192

Debian 10 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13883/artifact/DEB10BUILD/config.status/config.status

Ubuntu 20.04 amd64 build: Failed (click for details) Ubuntu 20.04 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13883/artifact/U2004AMD64BUILD/config.status/config.status

Make failed for Ubuntu 20.04 amd64 build:
(see full Make log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13883/artifact/U2004AMD64BUILD/ErrorLog/log_make.txt)

copying selected object files to avoid basename conflicts...
isisd/isis_sr.c: In function sr_op2str.constprop:
isisd/isis_sr.c:1879:33: error: %s directive output may be truncated writing up to 8191 bytes into a region of size between 8175 and 8184 [-Werror=format-truncation=]
 1879 |   snprintf(buf, size, "Swap(%u, %s)", label_in, buf_labels);
In file included from /usr/include/stdio.h:867,
/usr/include/x86_64-linux-gnu/bits/stdio2.h:67:10: note: __builtin___snprintf_chk output between 10 and 8210 bytes into a destination of size 8192
cc1: all warnings being treated as errors
make[1]: *** [Makefile:7950: isisd/isis_sr.o] Error 1
isisd/isis_sr.c: In function sr_op2str.constprop:
Successful on other platforms/tests
  • OpenBSD 6 amd64 build
  • Ubuntu 16.04 arm8 build
  • CentOS 7 amd64 build
  • Ubuntu 18.04 arm8 build
  • Ubuntu 18.04 amd64 build
  • FreeBSD 12 amd64 build
  • Ubuntu 16.04 arm7 build
  • Ubuntu 18.04 ppc64le build
  • Debian 9 amd64 build
  • Ubuntu 16.04 i386 build
  • NetBSD 8 amd64 build
  • Ubuntu 18.04 arm7 build
  • Ubuntu 16.04 amd64 build
  • Debian 8 amd64 build

Warnings Generated during build:

Checkout code: Successful with additional warnings
Fedora 29 amd64 build: Failed (click for details)

Make failed for Fedora 29 amd64 build:
(see full Make log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13883/artifact/F29BUILD/ErrorLog/log_make.txt)

copying selected object files to avoid basename conflicts...
isisd/isis_sr.c: In function sr_op2str.constprop:
isisd/isis_sr.c:1879:33: error: %s directive output may be truncated writing up to 8191 bytes into a region of size between 8175 and 8184 [-Werror=format-truncation=]
isisd/isis_sr.c:1879:3: note: snprintf output between 10 and 8210 bytes into a destination of size 8192
cc1: all warnings being treated as errors
make[1]: *** [Makefile:7949: isisd/isis_sr.o] Error 1
isisd/isis_sr.c: In function sr_op2str.constprop:
isisd/isis_sr.c:1879:33: error: %s directive output may be truncated writing up to 8191 bytes into a region of size between 8175 and 8184 [-Werror=format-truncation=]
isisd/isis_sr.c:1879:3: note: snprintf output between 10 and 8210 bytes into a destination of size 8192

Fedora 29 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13883/artifact/F29BUILD/config.status/config.status

FreeBSD 11 amd64 build: Failed (click for details)

Make failed for FreeBSD 11 amd64 build:
(see full Make log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13883/artifact/CI009BUILD/ErrorLog/log_make.txt)

copying selected object files to avoid basename conflicts...
isisd/isis_sr.c: In function 'sr_op2str.constprop':
isisd/isis_sr.c:1879:33: error: '%s' directive output may be truncated writing up to 1023 bytes into a region of size between 1007 and 1016 [-Werror=format-truncation=]
 1879 |   snprintf(buf, size, "Swap(%u, %s)", label_in, buf_labels);
isisd/isis_sr.c:1879:3: note: 'snprintf' output between 10 and 1042 bytes into a destination of size 1024
 1879 |   snprintf(buf, size, "Swap(%u, %s)", label_in, buf_labels);
cc1: all warnings being treated as errors
gmake[1]: *** [Makefile:7949: isisd/isis_sr.o] Error 1
isisd/isis_sr.c: In function 'sr_op2str.constprop':

FreeBSD 11 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13883/artifact/CI009BUILD/config.status/config.status

Debian 10 amd64 build: Failed (click for details)

Make failed for Debian 10 amd64 build:
(see full Make log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13883/artifact/DEB10BUILD/ErrorLog/log_make.txt)

copying selected object files to avoid basename conflicts...
isisd/isis_sr.c: In function sr_op2str.constprop:
isisd/isis_sr.c:1879:33: error: %s directive output may be truncated writing up to 8191 bytes into a region of size between 8175 and 8184 [-Werror=format-truncation=]
isisd/isis_sr.c:1879:3: note: snprintf output between 10 and 8210 bytes into a destination of size 8192
cc1: all warnings being treated as errors
make[1]: *** [Makefile:7950: isisd/isis_sr.o] Error 1
isisd/isis_sr.c: In function sr_op2str.constprop:
isisd/isis_sr.c:1879:33: error: %s directive output may be truncated writing up to 8191 bytes into a region of size between 8175 and 8184 [-Werror=format-truncation=]
isisd/isis_sr.c:1879:3: note: snprintf output between 10 and 8210 bytes into a destination of size 8192

Debian 10 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13883/artifact/DEB10BUILD/config.status/config.status

Ubuntu 20.04 amd64 build: Failed (click for details) Ubuntu 20.04 amd64 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13883/artifact/U2004AMD64BUILD/config.status/config.status

Make failed for Ubuntu 20.04 amd64 build:
(see full Make log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13883/artifact/U2004AMD64BUILD/ErrorLog/log_make.txt)

copying selected object files to avoid basename conflicts...
isisd/isis_sr.c: In function sr_op2str.constprop:
isisd/isis_sr.c:1879:33: error: %s directive output may be truncated writing up to 8191 bytes into a region of size between 8175 and 8184 [-Werror=format-truncation=]
 1879 |   snprintf(buf, size, "Swap(%u, %s)", label_in, buf_labels);
In file included from /usr/include/stdio.h:867,
/usr/include/x86_64-linux-gnu/bits/stdio2.h:67:10: note: __builtin___snprintf_chk output between 10 and 8210 bytes into a destination of size 8192
cc1: all warnings being treated as errors
make[1]: *** [Makefile:7950: isisd/isis_sr.o] Error 1
isisd/isis_sr.c: In function sr_op2str.constprop:
<stdin>:3267: trailing whitespace.
test# 
<stdin>:3285: trailing whitespace.
rt1                                                                   
<stdin>:3300: trailing whitespace.
 Prefix         Metric  Interface  Nexthop  Label(s)  
<stdin>:3302: trailing whitespace.
 10.0.255.2/32  60      -          rt3      16060     
<stdin>:3303: trailing whitespace.
 10.0.255.4/32  50      -          rt3      16060     
warning: squelched 266 whitespace errors
warning: 271 lines add whitespace errors.
Report for isis_nb.c | 18 issues
===============================================
< WARNING: line over 80 characters
< #806: FILE: /tmp/f1-21494/isis_nb.c:806:
< WARNING: line over 80 characters
< #808: FILE: /tmp/f1-21494/isis_nb.c:808:
< WARNING: line over 80 characters
< #812: FILE: /tmp/f1-21494/isis_nb.c:812:
< WARNING: line over 80 characters
< #814: FILE: /tmp/f1-21494/isis_nb.c:814:
< WARNING: line over 80 characters
< #818: FILE: /tmp/f1-21494/isis_nb.c:818:
< WARNING: line over 80 characters
< #820: FILE: /tmp/f1-21494/isis_nb.c:820:
< WARNING: line over 80 characters
< #824: FILE: /tmp/f1-21494/isis_nb.c:824:
< WARNING: line over 80 characters
< #826: FILE: /tmp/f1-21494/isis_nb.c:826:
< WARNING: line over 80 characters
< #830: FILE: /tmp/f1-21494/isis_nb.c:830:
Report for isis_nb_config.c | 8 issues
===============================================
< WARNING: line over 80 characters
< #2604: FILE: /tmp/f1-21494/isis_nb_config.c:2604:
< WARNING: line over 80 characters
< #2632: FILE: /tmp/f1-21494/isis_nb_config.c:2632:
< WARNING: line over 80 characters
< #2655: FILE: /tmp/f1-21494/isis_nb_config.c:2655:
< WARNING: line over 80 characters
< #2683: FILE: /tmp/f1-21494/isis_nb_config.c:2683:
Report for isis_sr.c | 2 issues
===============================================
< WARNING: line over 80 characters
< #1587: FILE: /tmp/f1-21494/isis_sr.c:1587:

@LabN-CI
Copy link
Collaborator

LabN-CI commented Aug 27, 2020

Outdated results 💚

Basic BGPD CI results: SUCCESS, 0 tests failed

_ _
Result SUCCESS git merge/7011 dbd3cc0
Date 08/27/2020
Start 11:01:52
Finish 11:27:48
Run-Time 25:56
Total 1815
Pass 1815
Fail 0
Valgrind-Errors 0
Valgrind-Loss 0
Details vncregress-2020-08-27-11:01:52.txt
Log autoscript-2020-08-27-11:02:48.log.bz2
Memory 485 479 425

For details, please contact louberger

@LabN-CI
Copy link
Collaborator

LabN-CI commented Aug 27, 2020

Outdated results 💚

Basic BGPD CI results: SUCCESS, 0 tests failed

_ _
Result SUCCESS git merge/7011 e2aa2e9
Date 08/27/2020
Start 13:35:51
Finish 14:01:43
Run-Time 25:52
Total 1815
Pass 1815
Fail 0
Valgrind-Errors 0
Valgrind-Loss 0
Details vncregress-2020-08-27-13:35:51.txt
Log autoscript-2020-08-27-13:36:47.log.bz2
Memory 484 492 425

For details, please contact louberger

@NetDEF-CI
Copy link
Collaborator

NetDEF-CI commented Aug 27, 2020

Continuous Integration Result: FAILED

Continuous Integration Result: FAILED

See below for issues.
CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13885/

This is a comment from an automated CI system.
For questions and feedback in regards to this CI system, please feel free to email
Martin Winter - mwinter (at) opensourcerouting.org.

Get source / Pull Request: Successful

Building Stage: Successful

Basic Tests: Failed

Topo tests part 2 on Ubuntu 18.04 arm8: Failed (click for details)

Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TOPO2U18ARM8-13885/test

Topology Tests failed for Topo tests part 2 on Ubuntu 18.04 arm8:

*** Error setting resource limits. Mininet's performance may be affected.
2020-08-27 18:14:10,840 ERROR: r2: bgpd left a dead pidfile (pid=7625)
2020-08-27 18:15:27,829 ERROR: ******************************************************************************
2020-08-27 18:15:27,830 ERROR: Test Target Summary                                                  Pass Fail
2020-08-27 18:15:27,830 ERROR: ******************************************************************************
2020-08-27 18:15:27,830 ERROR: FILE: scripts/adjacencies.py
2020-08-27 18:15:27,830 ERROR: 17   r1     PE->PE3 (loopback) ping +0.01 secs                       0    1
2020-08-27 18:15:27,831 ERROR: See /tmp/topotests/bgp_l3vpn_to_bgp_direct.test_bgp_l3vpn_to_bgp_direct/output.log for details of errors
2020-08-27 18:15:27,832 ERROR: assert failed at "bgp_l3vpn_to_bgp_direct.test_bgp_l3vpn_to_bgp_direct/test_adjacencies": 1 tests failed
2020-08-27 18:21:41,065 ERROR: Traceback (most recent call last):
  File "/root/share/topotests/lib/common_config.py", line 2094, in create_bgp_community_lists
    tgen, router, config_data, "bgp_community_list", build=build
  File "/root/share/topotests/lib/common_config.py", line 281, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/share/topotests/lib/common_config.py", line 555, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: % Malformed community-list value
line 2: Failure to communicate[13] to bgpd, line: bgp community-list standard ANY permit 0:-1 



2020-08-27 18:21:41,333 ERROR: Traceback (most recent call last):
  File "/root/share/topotests/lib/common_config.py", line 2094, in create_bgp_community_lists
    tgen, router, config_data, "bgp_community_list", build=build
  File "/root/share/topotests/lib/common_config.py", line 281, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/share/topotests/lib/common_config.py", line 555, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: % Malformed community-list value
line 2: Failure to communicate[13] to bgpd, line: bgp community-list standard ANY permit 0:65536 



2020-08-27 18:21:41,599 ERROR: Traceback (most recent call last):
  File "/root/share/topotests/lib/common_config.py", line 2094, in create_bgp_community_lists
    tgen, router, config_data, "bgp_community_list", build=build
  File "/root/share/topotests/lib/common_config.py", line 281, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/share/topotests/lib/common_config.py", line 555, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: % Malformed community-list value
line 2: Failure to communicate[13] to bgpd, line: bgp large-community-list standard ANY permit 0:4294967296 



2020-08-27 18:21:41,861 ERROR: Traceback (most recent call last):
  File "/root/share/topotests/lib/common_config.py", line 2094, in create_bgp_community_lists
    tgen, router, config_data, "bgp_community_list", build=build
  File "/root/share/topotests/lib/common_config.py", line 281, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/share/topotests/lib/common_config.py", line 555, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: % Malformed community-list value
line 2: Failure to communicate[13] to bgpd, line: bgp large-community-list standard ANY permit 0:-1:1 



2020-08-27 18:24:47,547 ERROR: Traceback (most recent call last):
  File "/root/share/topotests/lib/common_config.py", line 2094, in create_bgp_community_lists
    tgen, router, config_data, "bgp_community_list", build=build
  File "/root/share/topotests/lib/common_config.py", line 281, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/share/topotests/lib/common_config.py", line 555, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: line 2: % Command incomplete[4]: bgp large-community-list standard Test1 permit  

see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13885/artifact/TOPO2U18ARM8/ErrorLog/log_topotests.txt

Successful on other platforms/tests
  • Topo tests part 1 on Ubuntu 18.04 arm8
  • Topo tests part 1 on Ubuntu 16.04 amd64
  • Fedora 29 rpm pkg check
  • Addresssanitizer topotests part 1
  • IPv6 protocols on Ubuntu 18.04
  • Topo tests part 1 on Ubuntu 16.04 i386
  • Debian 8 deb pkg check
  • Topo tests part 0 on Ubuntu 16.04 amd64
  • IPv4 protocols on Ubuntu 18.04
  • Static analyzer (clang)
  • Topo tests part 0 on Ubuntu 18.04 arm8
  • Topo tests part 2 on Ubuntu 16.04 i386
  • Topo tests part 0 on Ubuntu 18.04 amd64
  • Ubuntu 18.04 deb pkg check
  • Ubuntu 20.04 deb pkg check
  • Ubuntu 16.04 deb pkg check
  • Addresssanitizer topotests part 2
  • Topo tests part 1 on Ubuntu 18.04 amd64
  • Topo tests part 2 on Ubuntu 16.04 amd64
  • Debian 10 deb pkg check
  • CentOS 7 rpm pkg check
  • Addresssanitizer topotests part 0
  • Topo tests part 2 on Ubuntu 18.04 amd64
  • Topo tests part 0 on Ubuntu 16.04 i386
  • IPv4 ldp protocol on Ubuntu 18.04
  • Debian 9 deb pkg check

Warnings Generated during build:

Checkout code: Successful with additional warnings
Topo tests part 2 on Ubuntu 18.04 arm8: Failed (click for details)

Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TOPO2U18ARM8-13885/test

Topology Tests failed for Topo tests part 2 on Ubuntu 18.04 arm8:

*** Error setting resource limits. Mininet's performance may be affected.
2020-08-27 18:14:10,840 ERROR: r2: bgpd left a dead pidfile (pid=7625)
2020-08-27 18:15:27,829 ERROR: ******************************************************************************
2020-08-27 18:15:27,830 ERROR: Test Target Summary                                                  Pass Fail
2020-08-27 18:15:27,830 ERROR: ******************************************************************************
2020-08-27 18:15:27,830 ERROR: FILE: scripts/adjacencies.py
2020-08-27 18:15:27,830 ERROR: 17   r1     PE->PE3 (loopback) ping +0.01 secs                       0    1
2020-08-27 18:15:27,831 ERROR: See /tmp/topotests/bgp_l3vpn_to_bgp_direct.test_bgp_l3vpn_to_bgp_direct/output.log for details of errors
2020-08-27 18:15:27,832 ERROR: assert failed at "bgp_l3vpn_to_bgp_direct.test_bgp_l3vpn_to_bgp_direct/test_adjacencies": 1 tests failed
2020-08-27 18:21:41,065 ERROR: Traceback (most recent call last):
  File "/root/share/topotests/lib/common_config.py", line 2094, in create_bgp_community_lists
    tgen, router, config_data, "bgp_community_list", build=build
  File "/root/share/topotests/lib/common_config.py", line 281, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/share/topotests/lib/common_config.py", line 555, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: % Malformed community-list value
line 2: Failure to communicate[13] to bgpd, line: bgp community-list standard ANY permit 0:-1 



2020-08-27 18:21:41,333 ERROR: Traceback (most recent call last):
  File "/root/share/topotests/lib/common_config.py", line 2094, in create_bgp_community_lists
    tgen, router, config_data, "bgp_community_list", build=build
  File "/root/share/topotests/lib/common_config.py", line 281, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/share/topotests/lib/common_config.py", line 555, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: % Malformed community-list value
line 2: Failure to communicate[13] to bgpd, line: bgp community-list standard ANY permit 0:65536 



2020-08-27 18:21:41,599 ERROR: Traceback (most recent call last):
  File "/root/share/topotests/lib/common_config.py", line 2094, in create_bgp_community_lists
    tgen, router, config_data, "bgp_community_list", build=build
  File "/root/share/topotests/lib/common_config.py", line 281, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/share/topotests/lib/common_config.py", line 555, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: % Malformed community-list value
line 2: Failure to communicate[13] to bgpd, line: bgp large-community-list standard ANY permit 0:4294967296 



2020-08-27 18:21:41,861 ERROR: Traceback (most recent call last):
  File "/root/share/topotests/lib/common_config.py", line 2094, in create_bgp_community_lists
    tgen, router, config_data, "bgp_community_list", build=build
  File "/root/share/topotests/lib/common_config.py", line 281, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/share/topotests/lib/common_config.py", line 555, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: % Malformed community-list value
line 2: Failure to communicate[13] to bgpd, line: bgp large-community-list standard ANY permit 0:-1:1 



2020-08-27 18:24:47,547 ERROR: Traceback (most recent call last):
  File "/root/share/topotests/lib/common_config.py", line 2094, in create_bgp_community_lists
    tgen, router, config_data, "bgp_community_list", build=build
  File "/root/share/topotests/lib/common_config.py", line 281, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/share/topotests/lib/common_config.py", line 555, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: line 2: % Command incomplete[4]: bgp large-community-list standard Test1 permit  

see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13885/artifact/TOPO2U18ARM8/ErrorLog/log_topotests.txt

<stdin>:3269: trailing whitespace.
test# 
<stdin>:3287: trailing whitespace.
rt1                                                                   
<stdin>:3302: trailing whitespace.
 Prefix         Metric  Interface  Nexthop  Label(s)  
<stdin>:3304: trailing whitespace.
 10.0.255.2/32  60      -          rt3      16060     
<stdin>:3305: trailing whitespace.
 10.0.255.4/32  50      -          rt3      16060     
warning: squelched 266 whitespace errors
warning: 271 lines add whitespace errors.
Report for isis_nb.c | 18 issues
===============================================
< WARNING: line over 80 characters
< #806: FILE: /tmp/f1-30039/isis_nb.c:806:
< WARNING: line over 80 characters
< #808: FILE: /tmp/f1-30039/isis_nb.c:808:
< WARNING: line over 80 characters
< #812: FILE: /tmp/f1-30039/isis_nb.c:812:
< WARNING: line over 80 characters
< #814: FILE: /tmp/f1-30039/isis_nb.c:814:
< WARNING: line over 80 characters
< #818: FILE: /tmp/f1-30039/isis_nb.c:818:
< WARNING: line over 80 characters
< #820: FILE: /tmp/f1-30039/isis_nb.c:820:
< WARNING: line over 80 characters
< #824: FILE: /tmp/f1-30039/isis_nb.c:824:
< WARNING: line over 80 characters
< #826: FILE: /tmp/f1-30039/isis_nb.c:826:
< WARNING: line over 80 characters
< #830: FILE: /tmp/f1-30039/isis_nb.c:830:
Report for isis_nb_config.c | 8 issues
===============================================
< WARNING: line over 80 characters
< #2604: FILE: /tmp/f1-30039/isis_nb_config.c:2604:
< WARNING: line over 80 characters
< #2632: FILE: /tmp/f1-30039/isis_nb_config.c:2632:
< WARNING: line over 80 characters
< #2655: FILE: /tmp/f1-30039/isis_nb_config.c:2655:
< WARNING: line over 80 characters
< #2683: FILE: /tmp/f1-30039/isis_nb_config.c:2683:

Warnings Generated during build:

Debian 10 amd64 build: Successful with additional warnings

Debian Package lintian failed for Debian 10 amd64 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13885/artifact/DEB10BUILD/ErrorLog/log_lintian.txt)

W: frr source: pkg-js-tools-test-is-missing
W: frr source: newer-standards-version 4.4.1 (current is 4.3.0)
W: frr source: pkg-js-tools-test-is-missing
W: frr source: newer-standards-version 4.4.1 (current is 4.3.0)
W: frr: changelog-file-missing-explicit-entry 6.0-2 -> 7.5-dev-20200827-09-ge2aa2e927-0 (missing) -> 7.5-dev-20200827-09-ge2aa2e927-0~deb10u1
W: frr-snmp: changelog-file-missing-explicit-entry 6.0-2 -> 7.5-dev-20200827-09-ge2aa2e927-0 (missing) -> 7.5-dev-20200827-09-ge2aa2e927-0~deb10u1
W: frr-doc: changelog-file-missing-explicit-entry 6.0-2 -> 7.5-dev-20200827-09-ge2aa2e927-0 (missing) -> 7.5-dev-20200827-09-ge2aa2e927-0~deb10u1
W: frr-rpki-rtrlib: changelog-file-missing-explicit-entry 6.0-2 -> 7.5-dev-20200827-09-ge2aa2e927-0 (missing) -> 7.5-dev-20200827-09-ge2aa2e927-0~deb10u1
W: frr-pythontools: changelog-file-missing-explicit-entry 6.0-2 -> 7.5-dev-20200827-09-ge2aa2e927-0 (missing) -> 7.5-dev-20200827-09-ge2aa2e927-0~deb10u1

@NetDEF-CI
Copy link
Collaborator

NetDEF-CI commented Aug 27, 2020

Continuous Integration Result: SUCCESSFUL

Continuous Integration Result: SUCCESSFUL

Congratulations, this patch passed basic tests

Tested-by: NetDEF / OpenSourceRouting.org CI System

CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13885/

This is a comment from an automated CI system.
For questions and feedback in regards to this CI system, please feel free to email
Martin Winter - mwinter (at) opensourcerouting.org.

Warnings Generated during build:

Checkout code: Successful with additional warnings
<stdin>:3269: trailing whitespace.
test# 
<stdin>:3287: trailing whitespace.
rt1                                                                   
<stdin>:3302: trailing whitespace.
 Prefix         Metric  Interface  Nexthop  Label(s)  
<stdin>:3304: trailing whitespace.
 10.0.255.2/32  60      -          rt3      16060     
<stdin>:3305: trailing whitespace.
 10.0.255.4/32  50      -          rt3      16060     
warning: squelched 266 whitespace errors
warning: 271 lines add whitespace errors.
Report for isis_nb.c | 18 issues
===============================================
< WARNING: line over 80 characters
< #806: FILE: /tmp/f1-30039/isis_nb.c:806:
< WARNING: line over 80 characters
< #808: FILE: /tmp/f1-30039/isis_nb.c:808:
< WARNING: line over 80 characters
< #812: FILE: /tmp/f1-30039/isis_nb.c:812:
< WARNING: line over 80 characters
< #814: FILE: /tmp/f1-30039/isis_nb.c:814:
< WARNING: line over 80 characters
< #818: FILE: /tmp/f1-30039/isis_nb.c:818:
< WARNING: line over 80 characters
< #820: FILE: /tmp/f1-30039/isis_nb.c:820:
< WARNING: line over 80 characters
< #824: FILE: /tmp/f1-30039/isis_nb.c:824:
< WARNING: line over 80 characters
< #826: FILE: /tmp/f1-30039/isis_nb.c:826:
< WARNING: line over 80 characters
< #830: FILE: /tmp/f1-30039/isis_nb.c:830:
Report for isis_nb_config.c | 8 issues
===============================================
< WARNING: line over 80 characters
< #2604: FILE: /tmp/f1-30039/isis_nb_config.c:2604:
< WARNING: line over 80 characters
< #2632: FILE: /tmp/f1-30039/isis_nb_config.c:2632:
< WARNING: line over 80 characters
< #2655: FILE: /tmp/f1-30039/isis_nb_config.c:2655:
< WARNING: line over 80 characters
< #2683: FILE: /tmp/f1-30039/isis_nb_config.c:2683:

Warnings Generated during build:

Debian 10 amd64 build: Successful with additional warnings

Debian Package lintian failed for Debian 10 amd64 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13885/artifact/DEB10BUILD/ErrorLog/log_lintian.txt)

W: frr source: pkg-js-tools-test-is-missing
W: frr source: newer-standards-version 4.4.1 (current is 4.3.0)
W: frr source: pkg-js-tools-test-is-missing
W: frr source: newer-standards-version 4.4.1 (current is 4.3.0)
W: frr: changelog-file-missing-explicit-entry 6.0-2 -> 7.5-dev-20200827-09-ge2aa2e927-0 (missing) -> 7.5-dev-20200827-09-ge2aa2e927-0~deb10u1
W: frr-snmp: changelog-file-missing-explicit-entry 6.0-2 -> 7.5-dev-20200827-09-ge2aa2e927-0 (missing) -> 7.5-dev-20200827-09-ge2aa2e927-0~deb10u1
W: frr-doc: changelog-file-missing-explicit-entry 6.0-2 -> 7.5-dev-20200827-09-ge2aa2e927-0 (missing) -> 7.5-dev-20200827-09-ge2aa2e927-0~deb10u1
W: frr-rpki-rtrlib: changelog-file-missing-explicit-entry 6.0-2 -> 7.5-dev-20200827-09-ge2aa2e927-0 (missing) -> 7.5-dev-20200827-09-ge2aa2e927-0~deb10u1
W: frr-pythontools: changelog-file-missing-explicit-entry 6.0-2 -> 7.5-dev-20200827-09-ge2aa2e927-0 (missing) -> 7.5-dev-20200827-09-ge2aa2e927-0~deb10u1

@donaldsharp
Copy link
Member

This can't be broken into smaller commits? 46k of stuff and it's 2 commits?

@rwestphal
Copy link
Member Author

@donaldsharp the bulk of those 46k line changes are JSON data used by the TI-LFA topotest. This is because that topotest comprises of 9 testing steps, and for each step I'm using full snapshots of some "show" commands to check if things converged properly. To reduce the amount of data, I should change that topotest to use diffs instead of full snapshots. That should also make it easier to identify what are the expected changes between one testing step and the following one.

The actual TI-LFA code changes are somewhat small (1945 insertions(+), 134 deletions(-)), the bulk of the work was the SPF modularization submitted earlier. In any case, I'll try to split those changes into smaller commits as much as possible (e.g. a separate commit containing the unit tests, another one adding Adj-SID protection, etc). That hopefully should facilitate the review process.

@rwestphal
Copy link
Member Author

Update:

  • Refactored the topotest to use diffs instead of full state snapshots whenever possible, reducing the amount of required data;
  • Split the TI-LFA main commit into smaller ones;
  • Changed the TI-LFA code to require Prefix-SIDs with the N-node flag set when computing repair paths (to prevent inconsistent results when the network has Anycast-SIDs).

@LabN-CI
Copy link
Collaborator

LabN-CI commented Sep 1, 2020

Outdated results 💚

Basic BGPD CI results: SUCCESS, 0 tests failed

_ _
Result SUCCESS git merge/7011 1104397
Date 08/31/2020
Start 23:45:51
Finish 00:11:59
Run-Time 26:08
Total 1815
Pass 1815
Fail 0
Valgrind-Errors 0
Valgrind-Loss 0
Details vncregress-2020-08-31-23:45:51.txt
Log autoscript-2020-08-31-23:46:53.log.bz2
Memory 432 488 416

For details, please contact louberger

@NetDEF-CI
Copy link
Collaborator

NetDEF-CI commented Sep 1, 2020

Continuous Integration Result: FAILED

Continuous Integration Result: FAILED

See below for issues.
CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13938/

This is a comment from an automated CI system.
For questions and feedback in regards to this CI system, please feel free to email
Martin Winter - mwinter (at) opensourcerouting.org.

Get source / Pull Request: Successful

Building Stage: Successful

Basic Tests: Failed

Topo tests part 2 on Ubuntu 18.04 arm8: Failed (click for details)

Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TOPO2U18ARM8-13938/test

Topology Tests failed for Topo tests part 2 on Ubuntu 18.04 arm8:

*** Error setting resource limits. Mininet's performance may be affected.
2020-09-01 04:28:18,378 ERROR: ce2: bgpd left a dead pidfile (pid=7940)
2020-09-01 04:29:33,892 ERROR: ******************************************************************************
2020-09-01 04:29:33,892 ERROR: Test Target Summary                                                  Pass Fail
2020-09-01 04:29:33,892 ERROR: ******************************************************************************
2020-09-01 04:29:33,893 ERROR: FILE: scripts/adjacencies.py
2020-09-01 04:29:33,893 ERROR: 17   r1     PE->PE3 (loopback) ping +0.01 secs                       0    1
2020-09-01 04:29:33,893 ERROR: See /tmp/topotests/bgp_l3vpn_to_bgp_direct.test_bgp_l3vpn_to_bgp_direct/output.log for details of errors
2020-09-01 04:29:33,894 ERROR: assert failed at "bgp_l3vpn_to_bgp_direct.test_bgp_l3vpn_to_bgp_direct/test_adjacencies": 1 tests failed
2020-09-01 04:35:42,629 ERROR: Traceback (most recent call last):
  File "/root/share/topotests/lib/common_config.py", line 2107, in create_bgp_community_lists
    tgen, router, config_data, "bgp_community_list", build=build
  File "/root/share/topotests/lib/common_config.py", line 286, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/share/topotests/lib/common_config.py", line 568, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: % Malformed community-list value
line 2: Failure to communicate[13] to bgpd, line: bgp community-list standard ANY permit 0:-1 



2020-09-01 04:35:42,899 ERROR: Traceback (most recent call last):
  File "/root/share/topotests/lib/common_config.py", line 2107, in create_bgp_community_lists
    tgen, router, config_data, "bgp_community_list", build=build
  File "/root/share/topotests/lib/common_config.py", line 286, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/share/topotests/lib/common_config.py", line 568, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: % Malformed community-list value
line 2: Failure to communicate[13] to bgpd, line: bgp community-list standard ANY permit 0:65536 



2020-09-01 04:35:43,165 ERROR: Traceback (most recent call last):
  File "/root/share/topotests/lib/common_config.py", line 2107, in create_bgp_community_lists
    tgen, router, config_data, "bgp_community_list", build=build
  File "/root/share/topotests/lib/common_config.py", line 286, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/share/topotests/lib/common_config.py", line 568, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: % Malformed community-list value
line 2: Failure to communicate[13] to bgpd, line: bgp large-community-list standard ANY permit 0:4294967296 



2020-09-01 04:35:43,428 ERROR: Traceback (most recent call last):
  File "/root/share/topotests/lib/common_config.py", line 2107, in create_bgp_community_lists
    tgen, router, config_data, "bgp_community_list", build=build
  File "/root/share/topotests/lib/common_config.py", line 286, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/share/topotests/lib/common_config.py", line 568, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: % Malformed community-list value
line 2: Failure to communicate[13] to bgpd, line: bgp large-community-list standard ANY permit 0:-1:1 



2020-09-01 04:38:54,179 ERROR: Traceback (most recent call last):
  File "/root/share/topotests/lib/common_config.py", line 2107, in create_bgp_community_lists
    tgen, router, config_data, "bgp_community_list", build=build
  File "/root/share/topotests/lib/common_config.py", line 286, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/share/topotests/lib/common_config.py", line 568, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: line 2: % Command incomplete[4]: bgp large-community-list standard Test1 permit  

see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13938/artifact/TOPO2U18ARM8/ErrorLog/log_topotests.txt

Topo tests part 0 on Ubuntu 18.04 arm8: Failed (click for details)

Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TOPO0U18ARM8-13938/test

Topology Tests failed for Topo tests part 0 on Ubuntu 18.04 arm8:

*** Error setting resource limits. Mininet's performance may be affected.
*** defaultIntf: warning: r1 has no interfaces
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
2020-09-01 04:44:35,742 ERROR: r3: bgpd left a dead pidfile (pid=27046)

see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13938/artifact/TOPO0U18ARM8/ErrorLog/log_topotests.txt

Successful on other platforms/tests
  • CentOS 7 rpm pkg check
  • Addresssanitizer topotests part 1
  • IPv4 ldp protocol on Ubuntu 18.04
  • Addresssanitizer topotests part 2
  • Debian 8 deb pkg check
  • Topo tests part 0 on Ubuntu 16.04 amd64
  • IPv4 protocols on Ubuntu 18.04
  • Topo tests part 1 on Ubuntu 18.04 arm8
  • Topo tests part 1 on Ubuntu 16.04 amd64
  • Topo tests part 0 on Ubuntu 18.04 amd64
  • IPv6 protocols on Ubuntu 18.04
  • Ubuntu 16.04 deb pkg check
  • Topo tests part 1 on Ubuntu 16.04 i386
  • Topo tests part 2 on Ubuntu 16.04 amd64
  • Topo tests part 2 on Ubuntu 18.04 amd64
  • Topo tests part 0 on Ubuntu 16.04 i386
  • Debian 10 deb pkg check
  • Debian 9 deb pkg check
  • Fedora 29 rpm pkg check
  • Addresssanitizer topotests part 0
  • Static analyzer (clang)
  • Ubuntu 20.04 deb pkg check
  • Topo tests part 2 on Ubuntu 16.04 i386
  • Topo tests part 1 on Ubuntu 18.04 amd64
  • Ubuntu 18.04 deb pkg check

Warnings Generated during build:

Checkout code: Successful with additional warnings
Topo tests part 2 on Ubuntu 18.04 arm8: Failed (click for details)

Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TOPO2U18ARM8-13938/test

Topology Tests failed for Topo tests part 2 on Ubuntu 18.04 arm8:

*** Error setting resource limits. Mininet's performance may be affected.
2020-09-01 04:28:18,378 ERROR: ce2: bgpd left a dead pidfile (pid=7940)
2020-09-01 04:29:33,892 ERROR: ******************************************************************************
2020-09-01 04:29:33,892 ERROR: Test Target Summary                                                  Pass Fail
2020-09-01 04:29:33,892 ERROR: ******************************************************************************
2020-09-01 04:29:33,893 ERROR: FILE: scripts/adjacencies.py
2020-09-01 04:29:33,893 ERROR: 17   r1     PE->PE3 (loopback) ping +0.01 secs                       0    1
2020-09-01 04:29:33,893 ERROR: See /tmp/topotests/bgp_l3vpn_to_bgp_direct.test_bgp_l3vpn_to_bgp_direct/output.log for details of errors
2020-09-01 04:29:33,894 ERROR: assert failed at "bgp_l3vpn_to_bgp_direct.test_bgp_l3vpn_to_bgp_direct/test_adjacencies": 1 tests failed
2020-09-01 04:35:42,629 ERROR: Traceback (most recent call last):
  File "/root/share/topotests/lib/common_config.py", line 2107, in create_bgp_community_lists
    tgen, router, config_data, "bgp_community_list", build=build
  File "/root/share/topotests/lib/common_config.py", line 286, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/share/topotests/lib/common_config.py", line 568, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: % Malformed community-list value
line 2: Failure to communicate[13] to bgpd, line: bgp community-list standard ANY permit 0:-1 



2020-09-01 04:35:42,899 ERROR: Traceback (most recent call last):
  File "/root/share/topotests/lib/common_config.py", line 2107, in create_bgp_community_lists
    tgen, router, config_data, "bgp_community_list", build=build
  File "/root/share/topotests/lib/common_config.py", line 286, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/share/topotests/lib/common_config.py", line 568, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: % Malformed community-list value
line 2: Failure to communicate[13] to bgpd, line: bgp community-list standard ANY permit 0:65536 



2020-09-01 04:35:43,165 ERROR: Traceback (most recent call last):
  File "/root/share/topotests/lib/common_config.py", line 2107, in create_bgp_community_lists
    tgen, router, config_data, "bgp_community_list", build=build
  File "/root/share/topotests/lib/common_config.py", line 286, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/share/topotests/lib/common_config.py", line 568, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: % Malformed community-list value
line 2: Failure to communicate[13] to bgpd, line: bgp large-community-list standard ANY permit 0:4294967296 



2020-09-01 04:35:43,428 ERROR: Traceback (most recent call last):
  File "/root/share/topotests/lib/common_config.py", line 2107, in create_bgp_community_lists
    tgen, router, config_data, "bgp_community_list", build=build
  File "/root/share/topotests/lib/common_config.py", line 286, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/share/topotests/lib/common_config.py", line 568, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: % Malformed community-list value
line 2: Failure to communicate[13] to bgpd, line: bgp large-community-list standard ANY permit 0:-1:1 



2020-09-01 04:38:54,179 ERROR: Traceback (most recent call last):
  File "/root/share/topotests/lib/common_config.py", line 2107, in create_bgp_community_lists
    tgen, router, config_data, "bgp_community_list", build=build
  File "/root/share/topotests/lib/common_config.py", line 286, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/share/topotests/lib/common_config.py", line 568, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: line 2: % Command incomplete[4]: bgp large-community-list standard Test1 permit  

see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13938/artifact/TOPO2U18ARM8/ErrorLog/log_topotests.txt

Topo tests part 0 on Ubuntu 18.04 arm8: Failed (click for details)

Topology Test Results are at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-TOPO0U18ARM8-13938/test

Topology Tests failed for Topo tests part 0 on Ubuntu 18.04 arm8:

*** Error setting resource limits. Mininet's performance may be affected.
*** defaultIntf: warning: r1 has no interfaces
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
sh: 1: patch: not found
2020-09-01 04:44:35,742 ERROR: r3: bgpd left a dead pidfile (pid=27046)

see full log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13938/artifact/TOPO0U18ARM8/ErrorLog/log_topotests.txt

<stdin>:3286: trailing whitespace.
test# 
<stdin>:3304: trailing whitespace.
rt1                                                                   
<stdin>:3319: trailing whitespace.
 Prefix         Metric  Interface  Nexthop  Label(s)  
<stdin>:3321: trailing whitespace.
 10.0.255.2/32  60      -          rt3      16060     
<stdin>:3322: trailing whitespace.
 10.0.255.4/32  50      -          rt3      16060     
warning: squelched 266 whitespace errors
warning: 271 lines add whitespace errors.
Report for isis_nb.c | 18 issues
===============================================
< WARNING: line over 80 characters
< #806: FILE: /tmp/f1-7053/isis_nb.c:806:
< WARNING: line over 80 characters
< #808: FILE: /tmp/f1-7053/isis_nb.c:808:
< WARNING: line over 80 characters
< #812: FILE: /tmp/f1-7053/isis_nb.c:812:
< WARNING: line over 80 characters
< #814: FILE: /tmp/f1-7053/isis_nb.c:814:
< WARNING: line over 80 characters
< #818: FILE: /tmp/f1-7053/isis_nb.c:818:
< WARNING: line over 80 characters
< #820: FILE: /tmp/f1-7053/isis_nb.c:820:
< WARNING: line over 80 characters
< #824: FILE: /tmp/f1-7053/isis_nb.c:824:
< WARNING: line over 80 characters
< #826: FILE: /tmp/f1-7053/isis_nb.c:826:
< WARNING: line over 80 characters
< #830: FILE: /tmp/f1-7053/isis_nb.c:830:
Report for isis_nb_config.c | 8 issues
===============================================
< WARNING: line over 80 characters
< #2604: FILE: /tmp/f1-7053/isis_nb_config.c:2604:
< WARNING: line over 80 characters
< #2632: FILE: /tmp/f1-7053/isis_nb_config.c:2632:
< WARNING: line over 80 characters
< #2655: FILE: /tmp/f1-7053/isis_nb_config.c:2655:
< WARNING: line over 80 characters
< #2683: FILE: /tmp/f1-7053/isis_nb_config.c:2683:

Warnings Generated during build:

Debian 10 amd64 build: Successful with additional warnings

Debian Package lintian failed for Debian 10 amd64 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-13938/artifact/DEB10BUILD/ErrorLog/log_lintian.txt)

W: frr source: pkg-js-tools-test-is-missing
W: frr source: newer-standards-version 4.4.1 (current is 4.3.0)
W: frr source: pkg-js-tools-test-is-missing
W: frr source: newer-standards-version 4.4.1 (current is 4.3.0)
W: frr-doc: changelog-file-missing-explicit-entry 6.0-2 -> 7.5-dev-20200901-05-g11043970b-0 (missing) -> 7.5-dev-20200901-05-g11043970b-0~deb10u1
W: frr-pythontools: changelog-file-missing-explicit-entry 6.0-2 -> 7.5-dev-20200901-05-g11043970b-0 (missing) -> 7.5-dev-20200901-05-g11043970b-0~deb10u1
W: frr: changelog-file-missing-explicit-entry 6.0-2 -> 7.5-dev-20200901-05-g11043970b-0 (missing) -> 7.5-dev-20200901-05-g11043970b-0~deb10u1
W: frr-snmp: changelog-file-missing-explicit-entry 6.0-2 -> 7.5-dev-20200901-05-g11043970b-0 (missing) -> 7.5-dev-20200901-05-g11043970b-0~deb10u1
W: frr-rpki-rtrlib: changelog-file-missing-explicit-entry 6.0-2 -> 7.5-dev-20200901-05-g11043970b-0 (missing) -> 7.5-dev-20200901-05-g11043970b-0~deb10u1

@odd22 odd22 self-requested a review September 1, 2020 15:23
@riw777 riw777 self-requested a review September 1, 2020 15:28
@rwestphal
Copy link
Member Author

Regarding the CI failure, Martin should be updating the ARM boxes soon to add the patch utility used by the new topotest. I also thought about using a python library to apply diffs more elegantly, but I didn't want to add a new dependency to topotest for such a narrow purpose. Since the patch utility is available on most systems, I think it shouldn't be a big deal to rely on it.

@LabN-CI
Copy link
Collaborator

LabN-CI commented Sep 4, 2020

Outdated results 🚧

Basic BGPD CI results: Partial FAILURE, 1 tests failed

_ _
Result SUCCESS git merge/7011 2b49d06
Date 09/04/2020
Start 18:11:52
Finish 18:38:02
Run-Time 26:10
Total 1815
Pass 1814
Fail 1
Valgrind-Errors 0
Valgrind-Loss 0
Details vncregress-2020-09-04-18:11:52.txt
Log autoscript-2020-09-04-18:12:57.log.bz2
Memory 492 497 424

For details, please contact louberger

@NetDEF-CI
Copy link
Collaborator

NetDEF-CI commented Sep 5, 2020

Continuous Integration Result: SUCCESSFUL

Continuous Integration Result: SUCCESSFUL

Congratulations, this patch passed basic tests

Tested-by: NetDEF / OpenSourceRouting.org CI System

CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-14037/

This is a comment from an automated CI system.
For questions and feedback in regards to this CI system, please feel free to email
Martin Winter - mwinter (at) opensourcerouting.org.

Warnings Generated during build:

Checkout code: Successful with additional warnings
<stdin>:3286: trailing whitespace.
test# 
<stdin>:3304: trailing whitespace.
rt1                                                                   
<stdin>:3319: trailing whitespace.
 Prefix         Metric  Interface  Nexthop  Label(s)  
<stdin>:3321: trailing whitespace.
 10.0.255.2/32  60      -          rt3      16060     
<stdin>:3322: trailing whitespace.
 10.0.255.4/32  50      -          rt3      16060     
warning: squelched 266 whitespace errors
warning: 271 lines add whitespace errors.
Report for isis_nb.c | 18 issues
===============================================
< WARNING: line over 80 characters
< #813: FILE: /tmp/f1-14186/isis_nb.c:813:
< WARNING: line over 80 characters
< #815: FILE: /tmp/f1-14186/isis_nb.c:815:
< WARNING: line over 80 characters
< #819: FILE: /tmp/f1-14186/isis_nb.c:819:
< WARNING: line over 80 characters
< #821: FILE: /tmp/f1-14186/isis_nb.c:821:
< WARNING: line over 80 characters
< #825: FILE: /tmp/f1-14186/isis_nb.c:825:
< WARNING: line over 80 characters
< #827: FILE: /tmp/f1-14186/isis_nb.c:827:
< WARNING: line over 80 characters
< #831: FILE: /tmp/f1-14186/isis_nb.c:831:
< WARNING: line over 80 characters
< #833: FILE: /tmp/f1-14186/isis_nb.c:833:
< WARNING: line over 80 characters
< #837: FILE: /tmp/f1-14186/isis_nb.c:837:
Report for isis_nb_config.c | 8 issues
===============================================
< WARNING: line over 80 characters
< #2653: FILE: /tmp/f1-14186/isis_nb_config.c:2653:
< WARNING: line over 80 characters
< #2681: FILE: /tmp/f1-14186/isis_nb_config.c:2681:
< WARNING: line over 80 characters
< #2704: FILE: /tmp/f1-14186/isis_nb_config.c:2704:
< WARNING: line over 80 characters
< #2732: FILE: /tmp/f1-14186/isis_nb_config.c:2732:

Warnings Generated during build:

Debian 10 amd64 build: Successful with additional warnings

Debian Package lintian failed for Debian 10 amd64 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-14037/artifact/DEB10BUILD/ErrorLog/log_lintian.txt)

W: frr source: pkg-js-tools-test-is-missing
W: frr source: newer-standards-version 4.4.1 (current is 4.3.0)
W: frr source: pkg-js-tools-test-is-missing
W: frr source: newer-standards-version 4.4.1 (current is 4.3.0)
W: frr-doc: changelog-file-missing-explicit-entry 6.0-2 -> 7.5-dev-20200904-12-g2b49d06a9-0 (missing) -> 7.5-dev-20200904-12-g2b49d06a9-0~deb10u1
W: frr-pythontools: changelog-file-missing-explicit-entry 6.0-2 -> 7.5-dev-20200904-12-g2b49d06a9-0 (missing) -> 7.5-dev-20200904-12-g2b49d06a9-0~deb10u1
W: frr: changelog-file-missing-explicit-entry 6.0-2 -> 7.5-dev-20200904-12-g2b49d06a9-0 (missing) -> 7.5-dev-20200904-12-g2b49d06a9-0~deb10u1
W: frr-rpki-rtrlib: changelog-file-missing-explicit-entry 6.0-2 -> 7.5-dev-20200904-12-g2b49d06a9-0 (missing) -> 7.5-dev-20200904-12-g2b49d06a9-0~deb10u1
W: frr-snmp: changelog-file-missing-explicit-entry 6.0-2 -> 7.5-dev-20200904-12-g2b49d06a9-0 (missing) -> 7.5-dev-20200904-12-g2b49d06a9-0~deb10u1

@LabN-CI
Copy link
Collaborator

LabN-CI commented Sep 8, 2020

Outdated results 💚

Basic BGPD CI results: SUCCESS, 0 tests failed

_ _
Result SUCCESS git merge/7011 2b49d06
Date 09/08/2020
Start 11:51:53
Finish 12:17:38
Run-Time 25:45
Total 1815
Pass 1815
Fail 0
Valgrind-Errors 0
Valgrind-Loss 0
Details vncregress-2020-09-08-11:51:53.txt
Log autoscript-2020-09-08-11:52:50.log.bz2
Memory 474 462 424

For details, please contact louberger

@LabN-CI
Copy link
Collaborator

LabN-CI commented Sep 17, 2020

Outdated results 💚

Basic BGPD CI results: SUCCESS, 0 tests failed

_ _
Result SUCCESS git merge/7011 86d103f
Date 09/17/2020
Start 16:45:49
Finish 17:11:40
Run-Time 25:51
Total 1815
Pass 1815
Fail 0
Valgrind-Errors 0
Valgrind-Loss 0
Details vncregress-2020-09-17-16:45:49.txt
Log autoscript-2020-09-17-16:46:48.log.bz2
Memory 494 460 424

For details, please contact louberger

@NetDEF-CI
Copy link
Collaborator

NetDEF-CI commented Sep 17, 2020

Continuous Integration Result: SUCCESSFUL

Continuous Integration Result: SUCCESSFUL

Congratulations, this patch passed basic tests

Tested-by: NetDEF / OpenSourceRouting.org CI System

CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-14238/

This is a comment from an automated CI system.
For questions and feedback in regards to this CI system, please feel free to email
Martin Winter - mwinter (at) opensourcerouting.org.

Warnings Generated during build:

Checkout code: Successful with additional warnings
<stdin>:3289: trailing whitespace.
test# 
<stdin>:3307: trailing whitespace.
rt1                                                                   
<stdin>:3322: trailing whitespace.
 Prefix         Metric  Interface  Nexthop  Label(s)  
<stdin>:3324: trailing whitespace.
 10.0.255.2/32  60      -          rt3      16060     
<stdin>:3325: trailing whitespace.
 10.0.255.4/32  50      -          rt3      16060     
warning: squelched 266 whitespace errors
warning: 271 lines add whitespace errors.
Report for isis_nb.c | 18 issues
===============================================
< WARNING: line over 80 characters
< #828: FILE: /tmp/f1-14555/isis_nb.c:828:
< WARNING: line over 80 characters
< #830: FILE: /tmp/f1-14555/isis_nb.c:830:
< WARNING: line over 80 characters
< #834: FILE: /tmp/f1-14555/isis_nb.c:834:
< WARNING: line over 80 characters
< #836: FILE: /tmp/f1-14555/isis_nb.c:836:
< WARNING: line over 80 characters
< #840: FILE: /tmp/f1-14555/isis_nb.c:840:
< WARNING: line over 80 characters
< #842: FILE: /tmp/f1-14555/isis_nb.c:842:
< WARNING: line over 80 characters
< #846: FILE: /tmp/f1-14555/isis_nb.c:846:
< WARNING: line over 80 characters
< #848: FILE: /tmp/f1-14555/isis_nb.c:848:
< WARNING: line over 80 characters
< #852: FILE: /tmp/f1-14555/isis_nb.c:852:
Report for isis_nb_config.c | 8 issues
===============================================
< WARNING: line over 80 characters
< #2900: FILE: /tmp/f1-14555/isis_nb_config.c:2900:
< WARNING: line over 80 characters
< #2928: FILE: /tmp/f1-14555/isis_nb_config.c:2928:
< WARNING: line over 80 characters
< #2951: FILE: /tmp/f1-14555/isis_nb_config.c:2951:
< WARNING: line over 80 characters
< #2979: FILE: /tmp/f1-14555/isis_nb_config.c:2979:

Warnings Generated during build:

Debian 10 amd64 build: Successful with additional warnings

Debian Package lintian failed for Debian 10 amd64 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-14238/artifact/DEB10BUILD/ErrorLog/log_lintian.txt)

W: frr source: pkg-js-tools-test-is-missing
W: frr source: newer-standards-version 4.4.1 (current is 4.3.0)
W: frr source: pkg-js-tools-test-is-missing
W: frr source: newer-standards-version 4.4.1 (current is 4.3.0)
W: frr-snmp: changelog-file-missing-explicit-entry 6.0-2 -> 7.6-dev-20200917-10-g86d103ff2-0 (missing) -> 7.6-dev-20200917-10-g86d103ff2-0~deb10u1
W: frr: changelog-file-missing-explicit-entry 6.0-2 -> 7.6-dev-20200917-10-g86d103ff2-0 (missing) -> 7.6-dev-20200917-10-g86d103ff2-0~deb10u1
W: frr-doc: changelog-file-missing-explicit-entry 6.0-2 -> 7.6-dev-20200917-10-g86d103ff2-0 (missing) -> 7.6-dev-20200917-10-g86d103ff2-0~deb10u1
W: frr-rpki-rtrlib: changelog-file-missing-explicit-entry 6.0-2 -> 7.6-dev-20200917-10-g86d103ff2-0 (missing) -> 7.6-dev-20200917-10-g86d103ff2-0~deb10u1
W: frr-pythontools: changelog-file-missing-explicit-entry 6.0-2 -> 7.6-dev-20200917-10-g86d103ff2-0 (missing) -> 7.6-dev-20200917-10-g86d103ff2-0~deb10u1

Copy link
Member

@riw777 riw777 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just one question and a few nits... Otherwise looks good. I didn't spend a ton of time in the topotests changes, however.

@LabN-CI
Copy link
Collaborator

LabN-CI commented Sep 26, 2020

Outdated results 💚

Basic BGPD CI results: SUCCESS, 0 tests failed

_ _
Result SUCCESS git merge/7011 1a29607
Date 09/26/2020
Start 12:55:50
Finish 13:21:35
Run-Time 25:45
Total 1815
Pass 1815
Fail 0
Valgrind-Errors 0
Valgrind-Loss 0
Details vncregress-2020-09-26-12:55:50.txt
Log autoscript-2020-09-26-12:56:47.log.bz2
Memory 479 494 425

For details, please contact louberger

@NetDEF-CI
Copy link
Collaborator

NetDEF-CI commented Sep 26, 2020

Continuous Integration Result: SUCCESSFUL

Continuous Integration Result: SUCCESSFUL

Congratulations, this patch passed basic tests

Tested-by: NetDEF / OpenSourceRouting.org CI System

CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-14392/

This is a comment from an automated CI system.
For questions and feedback in regards to this CI system, please feel free to email
Martin Winter - mwinter (at) opensourcerouting.org.

Warnings Generated during build:

Checkout code: Successful with additional warnings
<stdin>:3446: trailing whitespace.
test# 
<stdin>:3464: trailing whitespace.
rt1                                                                   
<stdin>:3479: trailing whitespace.
 Prefix         Metric  Interface  Nexthop  Label(s)  
<stdin>:3481: trailing whitespace.
 10.0.255.2/32  60      -          rt3      16060     
<stdin>:3482: trailing whitespace.
 10.0.255.4/32  50      -          rt3      16060     
warning: squelched 266 whitespace errors
warning: 271 lines add whitespace errors.
Report for isis_nb.c | 18 issues
===============================================
< WARNING: line over 80 characters
< #828: FILE: /tmp/f1-28230/isis_nb.c:828:
< WARNING: line over 80 characters
< #830: FILE: /tmp/f1-28230/isis_nb.c:830:
< WARNING: line over 80 characters
< #834: FILE: /tmp/f1-28230/isis_nb.c:834:
< WARNING: line over 80 characters
< #836: FILE: /tmp/f1-28230/isis_nb.c:836:
< WARNING: line over 80 characters
< #840: FILE: /tmp/f1-28230/isis_nb.c:840:
< WARNING: line over 80 characters
< #842: FILE: /tmp/f1-28230/isis_nb.c:842:
< WARNING: line over 80 characters
< #846: FILE: /tmp/f1-28230/isis_nb.c:846:
< WARNING: line over 80 characters
< #848: FILE: /tmp/f1-28230/isis_nb.c:848:
< WARNING: line over 80 characters
< #852: FILE: /tmp/f1-28230/isis_nb.c:852:
Report for isis_nb_config.c | 8 issues
===============================================
< WARNING: line over 80 characters
< #2904: FILE: /tmp/f1-28230/isis_nb_config.c:2904:
< WARNING: line over 80 characters
< #2932: FILE: /tmp/f1-28230/isis_nb_config.c:2932:
< WARNING: line over 80 characters
< #2955: FILE: /tmp/f1-28230/isis_nb_config.c:2955:
< WARNING: line over 80 characters
< #2983: FILE: /tmp/f1-28230/isis_nb_config.c:2983:

Warnings Generated during build:

Debian 10 amd64 build: Successful with additional warnings

Debian Package lintian failed for Debian 10 amd64 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-14392/artifact/DEB10BUILD/ErrorLog/log_lintian.txt)

W: frr source: package-needs-versioned-debhelper-build-depends 10
W: frr source: pkg-js-tools-test-is-missing
W: frr source: newer-standards-version 4.5.0.3 (current is 4.3.0)
W: frr source: package-needs-versioned-debhelper-build-depends 10
W: frr source: pkg-js-tools-test-is-missing
W: frr source: newer-standards-version 4.5.0.3 (current is 4.3.0)
W: frr-doc: changelog-file-missing-explicit-entry 6.0-2 -> 7.6-dev-20200925-28-g1a2960780-0 (missing) -> 7.6-dev-20200925-28-g1a2960780-0~deb10u1
W: frr: changelog-file-missing-explicit-entry 6.0-2 -> 7.6-dev-20200925-28-g1a2960780-0 (missing) -> 7.6-dev-20200925-28-g1a2960780-0~deb10u1
W: frr-pythontools: changelog-file-missing-explicit-entry 6.0-2 -> 7.6-dev-20200925-28-g1a2960780-0 (missing) -> 7.6-dev-20200925-28-g1a2960780-0~deb10u1
W: frr-rpki-rtrlib: changelog-file-missing-explicit-entry 6.0-2 -> 7.6-dev-20200925-28-g1a2960780-0 (missing) -> 7.6-dev-20200925-28-g1a2960780-0~deb10u1
W: frr-snmp: changelog-file-missing-explicit-entry 6.0-2 -> 7.6-dev-20200925-28-g1a2960780-0 (missing) -> 7.6-dev-20200925-28-g1a2960780-0~deb10u1
Ubuntu 18.04 amd64 build: Successful with additional warnings

Debian Package lintian failed for Ubuntu 18.04 amd64 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-14392/artifact/U1804AMD64/ErrorLog/log_lintian.txt)

W: frr source: package-needs-versioned-debhelper-build-depends 10
W: frr source: package-needs-versioned-debhelper-build-depends 10
Ubuntu 18.04 arm8 build: Successful with additional warnings

Debian Package lintian failed for Ubuntu 18.04 arm8 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-14392/artifact/U18ARM8BUILD/ErrorLog/log_lintian.txt)

W: frr source: package-needs-versioned-debhelper-build-depends 10
W: frr source: package-needs-versioned-debhelper-build-depends 10
Ubuntu 18.04 arm7 build: Successful with additional warnings

Debian Package lintian failed for Ubuntu 18.04 arm7 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-14392/artifact/U18ARM7BUILD/ErrorLog/log_lintian.txt)

W: frr source: package-needs-versioned-debhelper-build-depends 10
W: frr source: package-needs-versioned-debhelper-build-depends 10
Debian 9 amd64 build: Successful with additional warnings

Debian Package lintian failed for Debian 9 amd64 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-14392/artifact/CI021BUILD/ErrorLog/log_lintian.txt)

W: frr source: package-needs-versioned-debhelper-build-depends 10
W: frr source: package-needs-versioned-debhelper-build-depends 10
Ubuntu 18.04 ppc64le build: Successful with additional warnings

Debian Package lintian failed for Ubuntu 18.04 ppc64le build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-14392/artifact/U1804PPC64LEBUILD/ErrorLog/log_lintian.txt)

W: frr source: package-needs-versioned-debhelper-build-depends 10
W: frr source: package-needs-versioned-debhelper-build-depends 10

Copy link
Member

@odd22 odd22 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your amazing work to provide TI-LFA support.
However, I have some request changes:

  • First, you remove the advertisement of Backup ADJ_SID if TI-LFA is not enable while Backup ADJ_SID is also used by other protection mechanism like MPLS FRR. So, it must be advertise independently of TI-LFA. And, if this later is on, push the backup stack of label.
  • New TI-LFA CLI doesn't check if SR is enable while TI-LFA needs SR enable first. It will be safer to add verification if SR is enable or not in new functions introduce in isis_nb_config.c and raised a message / warning in isis_cli.c for new commands
  • isis_lfa.c / isis_lfa.h lake of comment. It will be good for code maintainability if you could add doxygen documentation for new functions and add more comments or a dedicated developer doc to describe main process / implementation of TI-LFA

Comment on lines +198 to +248
struct tilfa_find_qnode_adj_sid_args {
const uint8_t *qnode_sysid;
mpls_label_t label;
};

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Even if it uses only in this file, it is better to move structure declaration in the corresponding .h file

Comment on lines +82 to +100
void isis_spf_node_list_init(struct isis_spf_nodes *nodes);
void isis_spf_node_list_clear(struct isis_spf_nodes *nodes);
struct isis_spf_node *isis_spf_node_new(struct isis_spf_nodes *nodes,
const uint8_t *sysid);
struct isis_spf_node *isis_spf_node_find(const struct isis_spf_nodes *nodes,
const uint8_t *sysid);
bool isis_lfa_excise_adj_check(const struct isis_spftree *spftree,
const uint8_t *id);
bool isis_lfa_excise_node_check(const struct isis_spftree *spftree,
const uint8_t *id);
struct isis_spftree *isis_spf_reverse_run(const struct isis_spftree *spftree);
int isis_spf_run_neighbors(struct isis_spftree *spftree);
void isis_spf_run_lfa(struct isis_area *area, struct isis_spftree *spftree);
int isis_lfa_check(struct isis_spftree *spftree, struct isis_vertex *vertex);
struct isis_spftree *
isis_tilfa_compute(struct isis_area *area, struct isis_spftree *spftree,
struct isis_spftree *spftree_reverse,
struct lfa_protected_resource *protected_resource);

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add doxygen doc for each function prototype

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

isisd/isis_sr.c Outdated
Comment on lines 1580 to 1594
if (backup) {
struct isis_vertex_adj *vadj;
struct listnode *node;

sra->backup_nexthops = list_new();
for (ALL_LIST_ELEMENTS_RO(nexthops, node, vadj)) {
struct isis_adjacency *adj = vadj->sadj->adj;
struct mpls_label_stack *label_stack;

label_stack = vadj->label_stack;
adjinfo2nexthop(family, sra->backup_nexthops, adj,
label_stack);
}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It will be safer to check that nexthops list is not null to avoid create unnecessary a new list for sra->backup_nexthops

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done in preparation for the upcoming backup Adj-SID changes.

isisd/isis_sr.c Outdated
Comment on lines 1705 to 1711
if (sra->type == ISIS_SR_LAN_BACKUP) {
sra->backup_nexthops->del =
(void (*)(void *))isis_nexthop_delete;
list_delete(&sra->backup_nexthops);
}

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to check that sra->backup_nexthops is not null in the case you install a backup ADJ_SID without TI-LFA (in accordance to my previous remark)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done in preparation for the upcoming backup Adj-SID changes.

Comment on lines 289 to 292
#if 0
SET_FLAG(api.message, ZAPI_MESSAGE_DISTANCE);
api.distance = route_info->depth;
#endif
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove dead code

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done. I tried to preserve that #if 0 block from the original code but in fact setting the admin distance that way doesn't make any sense :)

Copy link
Member

@riw777 riw777 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good -- thanks for the cleanup!

Add CLI wrapper commands as well...

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
TI-LFA is a modern fast-reroute (FRR) solution that leverages Segment
Routing to pre-compute backup nexthops for all destinations in the
network, helping to reduce traffic restoration times whenever a
failure occurs. The backup nexthops are expected to be installed
in the FIB so that they can be activated as soon as a failure
is detected, making sub-50ms recovery possible (assuming an
hierarchical FIB).

TI-LFA is a huge step forward compared to prior IP-FRR solutions,
like classic LFA and Remote LFA, as it guarantees 100% coverage
for all destinations. This is possible thanks to the source routing
capabilities of SR, which allows the backup nexthops to steer traffic
around the failures (using as many SIDs as necessary). In addition
to that, the repair paths always follow the post-convergence SPF
tree, which prevents transient congestions and suboptimal routing
from happening.

Deploying TI-LFA is very simple as it only requires a single
configuration command for each interface that needs to be protected
(both link protection and node protection are available). In addition
to IPv4 and IPv6 routes, SR Prefix-SIDs and Adj-SIDs are also
protected by the backup nexthops computed by the TI-LFA algorithms.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
@LabN-CI
Copy link
Collaborator

LabN-CI commented Oct 14, 2020

💚 Basic BGPD CI results: SUCCESS, 0 tests failed

Results table
_ _
Result SUCCESS git merge/7011 d240e5c
Date 10/14/2020
Start 15:40:52
Finish 16:06:57
Run-Time 26:05
Total 1815
Pass 1815
Fail 0
Valgrind-Errors 0
Valgrind-Loss 0
Details vncregress-2020-10-14-15:40:52.txt
Log autoscript-2020-10-14-15:41:46.log.bz2
Memory 424 451 428

For details, please contact louberger

@NetDEF-CI
Copy link
Collaborator

Continuous Integration Result: SUCCESSFUL

Congratulations, this patch passed basic tests

Tested-by: NetDEF / OpenSourceRouting.org CI System

CI System Testrun URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-14761/

This is a comment from an automated CI system.
For questions and feedback in regards to this CI system, please feel free to email
Martin Winter - mwinter (at) opensourcerouting.org.

Warnings Generated during build:

Checkout code: Successful with additional warnings
<stdin>:1065: trailing whitespace.
 * @return		Pointer to new SPF tree structure. 
<stdin>:3534: trailing whitespace.
test# 
<stdin>:3552: trailing whitespace.
rt1                                                                   
<stdin>:3567: trailing whitespace.
 Prefix         Metric  Interface  Nexthop  Label(s)  
<stdin>:3569: trailing whitespace.
 10.0.255.2/32  60      -          rt3      16060     
warning: squelched 267 whitespace errors
warning: 272 lines add whitespace errors.
Report for isis_lfa.c | 12 issues
===============================================
WARNING: please, no space before tabs
#128: FILE: /tmp/f1-5909/isis_lfa.c:128:
+ * ^I^I^Ifor broadcast interfaces)$

WARNING: please, no space before tabs
#131: FILE: /tmp/f1-5909/isis_lfa.c:131:
+ * ^I^I^Iotherwise$

ERROR: trailing whitespace
#869: FILE: /tmp/f1-5909/isis_lfa.c:869:
+ * @return^I^IPointer to new SPF tree structure. $
Report for isis_nb.c | 18 issues
===============================================
< WARNING: line over 80 characters
< #828: FILE: /tmp/f1-5909/isis_nb.c:828:
< WARNING: line over 80 characters
< #830: FILE: /tmp/f1-5909/isis_nb.c:830:
< WARNING: line over 80 characters
< #834: FILE: /tmp/f1-5909/isis_nb.c:834:
< WARNING: line over 80 characters
< #836: FILE: /tmp/f1-5909/isis_nb.c:836:
< WARNING: line over 80 characters
< #840: FILE: /tmp/f1-5909/isis_nb.c:840:
< WARNING: line over 80 characters
< #842: FILE: /tmp/f1-5909/isis_nb.c:842:
< WARNING: line over 80 characters
< #846: FILE: /tmp/f1-5909/isis_nb.c:846:
< WARNING: line over 80 characters
< #848: FILE: /tmp/f1-5909/isis_nb.c:848:
< WARNING: line over 80 characters
< #852: FILE: /tmp/f1-5909/isis_nb.c:852:
Report for isis_nb_config.c | 8 issues
===============================================
< WARNING: line over 80 characters
< #2944: FILE: /tmp/f1-5909/isis_nb_config.c:2944:
< WARNING: line over 80 characters
< #2972: FILE: /tmp/f1-5909/isis_nb_config.c:2972:
< WARNING: line over 80 characters
< #2995: FILE: /tmp/f1-5909/isis_nb_config.c:2995:
< WARNING: line over 80 characters
< #3023: FILE: /tmp/f1-5909/isis_nb_config.c:3023:

Warnings Generated during build:

Debian 10 amd64 build: Successful with additional warnings

Debian Package lintian failed for Debian 10 amd64 build:
(see full package build log at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-14761/artifact/DEB10BUILD/ErrorLog/log_lintian.txt)

W: frr source: pkg-js-tools-test-is-missing
W: frr source: newer-standards-version 4.5.0.3 (current is 4.3.0)
W: frr source: pkg-js-tools-test-is-missing
W: frr source: newer-standards-version 4.5.0.3 (current is 4.3.0)
W: frr: changelog-file-missing-explicit-entry 6.0-2 -> 7.6-dev-20201014-11-gd240e5c8c-0 (missing) -> 7.6-dev-20201014-11-gd240e5c8c-0~deb10u1
W: frr-snmp: changelog-file-missing-explicit-entry 6.0-2 -> 7.6-dev-20201014-11-gd240e5c8c-0 (missing) -> 7.6-dev-20201014-11-gd240e5c8c-0~deb10u1
W: frr-doc: changelog-file-missing-explicit-entry 6.0-2 -> 7.6-dev-20201014-11-gd240e5c8c-0 (missing) -> 7.6-dev-20201014-11-gd240e5c8c-0~deb10u1
W: frr-pythontools: changelog-file-missing-explicit-entry 6.0-2 -> 7.6-dev-20201014-11-gd240e5c8c-0 (missing) -> 7.6-dev-20201014-11-gd240e5c8c-0~deb10u1
W: frr-rpki-rtrlib: changelog-file-missing-explicit-entry 6.0-2 -> 7.6-dev-20201014-11-gd240e5c8c-0 (missing) -> 7.6-dev-20201014-11-gd240e5c8c-0~deb10u1

@odd22 odd22 merged commit e4000bb into FRRouting:master Oct 16, 2020
@eqvinox eqvinox deleted the isis-ti-lfa branch April 18, 2021 07:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants