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

Function-based Lua hook call #8982

Merged
merged 45 commits into from
Aug 2, 2021
Merged

Function-based Lua hook call #8982

merged 45 commits into from
Aug 2, 2021

Conversation

dlqs
Copy link
Contributor

@dlqs dlqs commented Jul 4, 2021

  • function based hook calls
  • almost rewrite of scripting documentation

@LabN-CI
Copy link
Collaborator

LabN-CI commented Jul 4, 2021

Outdated results 💚

Basic BGPD CI results: SUCCESS, 0 tests failed

_ _
Result SUCCESS git merge/8982 5cea02c
Date 07/04/2021
Start 17:30:58
Finish 17:56:32
Run-Time 25:34
Total 1815
Pass 1815
Fail 0
Valgrind-Errors
Valgrind-Loss
Details vncregress-2021-07-04-17:30:58.txt
Log autoscript-2021-07-04-17:32:14.log.bz2
Memory 508 520 419

For details, please contact louberger

@NetDEF-CI
Copy link
Collaborator

NetDEF-CI commented Jul 5, 2021

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-20049/

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>:1377: new blank line at EOF.
+
warning: 1 line adds whitespace errors.
Report for frrscript.c | 2 issues
===============================================
< WARNING: Missing a blank line after declarations
< #253: FILE: /tmp/f1-1670/frrscript.c:253:
Report for frrscript.h | 48 issues
===============================================
< WARNING: line over 80 characters
< #191: FILE: /tmp/f1-1670/frrscript.h:191:
< WARNING: line over 80 characters
< #192: FILE: /tmp/f1-1670/frrscript.h:192:
< WARNING: line over 80 characters
< #193: FILE: /tmp/f1-1670/frrscript.h:193:
< WARNING: line over 80 characters
< #194: FILE: /tmp/f1-1670/frrscript.h:194:
< WARNING: line over 80 characters
< #195: FILE: /tmp/f1-1670/frrscript.h:195:
< WARNING: line over 80 characters
< #196: FILE: /tmp/f1-1670/frrscript.h:196:
< WARNING: line over 80 characters
< #197: FILE: /tmp/f1-1670/frrscript.h:197:
< WARNING: line over 80 characters
< #198: FILE: /tmp/f1-1670/frrscript.h:198:
< WARNING: line over 80 characters
< #199: FILE: /tmp/f1-1670/frrscript.h:199:
< WARNING: line over 80 characters
< #200: FILE: /tmp/f1-1670/frrscript.h:200:
< WARNING: line over 80 characters
< #201: FILE: /tmp/f1-1670/frrscript.h:201:
< WARNING: line over 80 characters
< #202: FILE: /tmp/f1-1670/frrscript.h:202:
< WARNING: line over 80 characters
< #203: FILE: /tmp/f1-1670/frrscript.h:203:
< WARNING: line over 80 characters
< #204: FILE: /tmp/f1-1670/frrscript.h:204:
< WARNING: line over 80 characters
< #205: FILE: /tmp/f1-1670/frrscript.h:205:
< WARNING: line over 80 characters
< #206: FILE: /tmp/f1-1670/frrscript.h:206:
< WARNING: line over 80 characters
< #207: FILE: /tmp/f1-1670/frrscript.h:207:
< WARNING: line over 80 characters
< #208: FILE: /tmp/f1-1670/frrscript.h:208:
< WARNING: line over 80 characters
< #209: FILE: /tmp/f1-1670/frrscript.h:209:
< WARNING: line over 80 characters
< #210: FILE: /tmp/f1-1670/frrscript.h:210:
< WARNING: line over 80 characters
< #211: FILE: /tmp/f1-1670/frrscript.h:211:
< WARNING: line over 80 characters
< #212: FILE: /tmp/f1-1670/frrscript.h:212:
< WARNING: line over 80 characters
< #213: FILE: /tmp/f1-1670/frrscript.h:213:
< WARNING: line over 80 characters
< #214: FILE: /tmp/f1-1670/frrscript.h:214:

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/bb708101212924fc35eb787e597097a2/raw/799a9b1bfff3eb17be2a6451104e91ae15dc3798/cr_8982_1625575114.diff | git apply

diff --git a/lib/frrscript.h b/lib/frrscript.h
index 0d5568d34..d03b694b7 100644
--- a/lib/frrscript.h
+++ b/lib/frrscript.h
@@ -187,31 +187,33 @@ int _frrscript_call_lua(struct lua_function_state *lfs, int nargs);
  *    0 if the script ran successfully, nonzero otherwise.
  */
 
-#define frrscript_call(fs, f, ...)                                           \
-	({                                                                         \
-		struct lua_function_state lookup = {.name = f};                          \
-		struct lua_function_state *lfs;                                          \
-		lfs = hash_lookup(fs->lua_function_hash, &lookup);                       \
-		lfs == NULL ? ({                                                         \
-			zlog_err(                                                              \
-				"Lua script call: tried to call '%s' in '%s' which was not loaded",  \
-				f, fs->name);                                                        \
-			1;                                                                     \
-		})                                                                       \
-		: ({                                                                     \
-			  MAP_LISTS(ENCODE_ARGS, ##__VA_ARGS__);                               \
-			  _frrscript_call_lua(lfs, PP_NARG(__VA_ARGS__));                      \
-		  }) != 0                                                                \
-			? ({                                                                   \
-				  zlog_err(                                                          \
-					  "Lua script call: '%s' in '%s' returned non-zero exit code",     \
-					  f, fs->name);                                                    \
-				  1;                                                                 \
-			  })                                                                   \
-			: ({                                                                   \
-				  MAP_LISTS(DECODE_ARGS, ##__VA_ARGS__);                             \
-				  0;                                                                 \
-			  });                                                                  \
+#define frrscript_call(fs, f, ...)                                                                                   \
+	({                                                                                                           \
+		struct lua_function_state lookup = {.name = f};                                                      \
+		struct lua_function_state *lfs;                                                                      \
+		lfs = hash_lookup(fs->lua_function_hash, &lookup);                                                   \
+		lfs == NULL ? ({                                                                                     \
+			zlog_err(                                                                                    \
+				"Lua script call: tried to call '%s' in '%s' which was not loaded",                  \
+				f, fs->name);                                                                        \
+			1;                                                                                           \
+		})                                                                                                   \
+			    : ({                                                                                     \
+				      MAP_LISTS(ENCODE_ARGS, ##__VA_ARGS__);                                         \
+				      _frrscript_call_lua(                                                           \
+					      lfs, PP_NARG(__VA_ARGS__));                                            \
+			      }) != 0                                                                                \
+				      ? ({                                                                           \
+						zlog_err(                                                            \
+							"Lua script call: '%s' in '%s' returned non-zero exit code", \
+							f, fs->name);                                                \
+						1;                                                                   \
+					})                                                                           \
+				      : ({                                                                           \
+						MAP_LISTS(DECODE_ARGS,                                               \
+							  ##__VA_ARGS__);                                            \
+						0;                                                                   \
+					});                                                                          \
 	})
 
 /*

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.

@LabN-CI
Copy link
Collaborator

LabN-CI commented Jul 6, 2021

Outdated results 💚

Basic BGPD CI results: SUCCESS, 0 tests failed

_ _
Result SUCCESS git merge/8982 20092b3
Date 07/06/2021
Start 12:56:33
Finish 13:22:12
Run-Time 25:39
Total 1815
Pass 1815
Fail 0
Valgrind-Errors
Valgrind-Loss
Details vncregress-2021-07-06-12:56:33.txt
Log autoscript-2021-07-06-12:57:46.log.bz2
Memory 485 520 423

For details, please contact louberger

@NetDEF-CI
Copy link
Collaborator

NetDEF-CI commented Jul 6, 2021

Continuous Integration Result: FAILED

Continuous Integration Result: FAILED

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

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

Topotests Ubuntu 18.04 i386 part 3: Failed (click for details)

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

Topology Tests failed for Topotests Ubuntu 18.04 i386 part 3:

2021-07-06 14:53:09,791 ERROR: 'router_json_cmp' failed after 52.37 seconds
2021-07-06 14:53:09,794 ERROR: assert failed at "test_bgp_features/test_bgp_delayopen_dual": BGP session on r2 did not establish a connection with peer
assert Generated JSON diff error report:
  
  > $->ipv4Unicast->peers->192.168.201.2->state: d1 has element with value 'Connect' but in d2 it has value 'Established'
r1: Daemon bgpd not running

From frr r1 bgpd log file:
2021/07/06 15:09:40 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:09:40 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv4 neighbor 192.168.0.2 graceful-restart json
2021/07/06 15:09:40 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:09:40 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv4 neighbor 192.168.0.2 graceful-restart 
2021/07/06 15:09:42 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:09:42 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv6 neighbor fd00::2 graceful-restart json
2021/07/06 15:09:42 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:09:42 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv6 neighbor fd00::2 graceful-restart 
2021/07/06 15:09:44 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:09:44 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:09:45 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:09:45 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:09:54 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:09:55 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:09:56 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:09:56 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:09:57 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:10:05 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:10:05 BGP: [M7Q4P-46WDR] vty[??]@# do write memory


r2: Daemon bgpd not running

From frr r2 bgpd log file:
2021/07/06 15:12:25 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:25 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv4 neighbor 192.168.0.1 graceful-restart json
2021/07/06 15:12:25 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:25 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv4 neighbor 192.168.0.1 graceful-restart 
2021/07/06 15:12:27 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:27 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv6 neighbor fd00::1 graceful-restart json
2021/07/06 15:12:27 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:27 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv6 neighbor fd00::1 graceful-restart 
2021/07/06 15:12:28 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:28 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:29 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:29 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:39 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:40 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:40 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:41 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:41 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:50 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:50 BGP: [M7Q4P-46WDR] vty[??]@# do write memory


r1: Daemon bgpd not running

From frr r1 bgpd log file:
2021/07/06 15:15:18 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:18 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv4 neighbor 192.168.0.2 graceful-restart json
2021/07/06 15:15:19 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:19 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv4 neighbor 192.168.0.2 graceful-restart 
2021/07/06 15:15:20 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:20 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv6 neighbor fd00::2 graceful-restart json
2021/07/06 15:15:21 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:21 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv6 neighbor fd00::2 graceful-restart 
2021/07/06 15:15:22 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:23 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:23 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:24 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:32 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:33 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:33 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:34 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:34 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:43 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:43 BGP: [M7Q4P-46WDR] vty[??]@# do write memory


r1: Daemon bgpd not running

From frr r1 bgpd log file:
2021/07/06 15:16:08 BGP: [M59KS-A3ZXZ] bgp_update_receive: rcvd End-of-RIB for IPv4 Unicast from 192.168.0.2 in vrf default
2021/07/06 15:16:08 BGP: [M59KS-A3ZXZ] bgp_update_receive: rcvd End-of-RIB for IPv6 Unicast from fd00::2 in vrf default
2021/07/06 15:16:09 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:16:09 BGP: [M7Q4P-46WDR] vty[??]@# do show logging
2021/07/06 15:16:09 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:16:09 BGP: [M7Q4P-46WDR] vty[??]@# do write terminal

2021/07/06 15:16:11 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:16:11 BGP: [M7Q4P-46WDR] vty[??]@# configure terminal
2021/07/06 15:16:11 BGP: [M7Q4P-46WDR] vty[??]@(config)# XFRR_start_configuration
2021/07/06 15:16:11 BGP: [M7Q4P-46WDR] vty[??]@(config)# no log commands

2021/07/06 15:16:14 BGP: [VTVCM-Y2NW3] Configuration Read in Took: 00:00:00
2021/07/06 15:16:19 BGP: [M59KS-A3ZXZ] bgp_update_receive: rcvd End-of-RIB for IPv4 Unicast from 192.168.0.2 in vrf default
2021/07/06 15:16:19 BGP: [M59KS-A3ZXZ] bgp_update_receive: rcvd End-of-RIB for IPv6 Unicast from fd00::2 in vrf default
2021/07/06 15:17:11 BGP: [M59KS-A3ZXZ] bgp_update_receive: rcvd End-of-RIB for IPv4 Unicast from 192.168.0.2 in vrf default
2021/07/06 15:17:11 BGP: [M59KS-A3ZXZ] bgp_update_receive: rcvd End-of-RIB for IPv6 Unicast from fd00::2 in vrf default
2021/07/06 15:17:11 BGP: [VTVCM-Y2NW3] Configuration Read in Took: 00:00:00
2021/07/06 15:17:15 BGP: [M59KS-A3ZXZ] bgp_update_receive: rcvd End-of-RIB for IPv4 Unicast from 192.168.0.2 in vrf default
2021/07/06 15:17:15 BGP: [M59KS-A3ZXZ] bgp_update_receive: rcvd End-of-RIB for IPv6 Unicast from fd00::2 in vrf default

r1: Daemon bgpd not running

From frr r1 bgpd log file:
2021/07/06 15:19:17 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:17 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv4 neighbor 192.168.0.2 graceful-restart json
2021/07/06 15:19:17 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:17 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv4 neighbor 192.168.0.2 graceful-restart 
2021/07/06 15:19:19 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:19 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv6 neighbor fd00::2 graceful-restart json
2021/07/06 15:19:19 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:19 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv6 neighbor fd00::2 graceful-restart 
2021/07/06 15:19:21 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:21 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:22 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:22 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:31 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:32 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:32 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:33 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:33 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:41 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:41 BGP: [M7Q4P-46WDR] vty[??]@# do write memory


r1: Daemon bgpd not running

From frr r1 bgpd log file:
2021/07/06 15:21:13 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:13 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv4 neighbor 192.168.0.2 graceful-restart json
2021/07/06 15:21:14 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:14 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv4 neighbor 192.168.0.2 graceful-restart 
2021/07/06 15:21:15 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:15 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv6 neighbor fd00::2 graceful-restart json
2021/07/06 15:21:16 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:16 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv6 neighbor fd00::2 graceful-restart 
2021/07/06 15:21:17 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:18 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:18 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:19 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:28 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:28 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:29 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:29 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:30 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:38 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:38 BGP: [M7Q4P-46WDR] vty[??]@# do write memory

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

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

Warnings Generated during build:

Checkout code: Successful with additional warnings
Topotests Ubuntu 18.04 i386 part 3: Failed (click for details)

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

Topology Tests failed for Topotests Ubuntu 18.04 i386 part 3:

2021-07-06 14:53:09,791 ERROR: 'router_json_cmp' failed after 52.37 seconds
2021-07-06 14:53:09,794 ERROR: assert failed at "test_bgp_features/test_bgp_delayopen_dual": BGP session on r2 did not establish a connection with peer
assert Generated JSON diff error report:
  
  > $->ipv4Unicast->peers->192.168.201.2->state: d1 has element with value 'Connect' but in d2 it has value 'Established'
r1: Daemon bgpd not running

From frr r1 bgpd log file:
2021/07/06 15:09:40 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:09:40 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv4 neighbor 192.168.0.2 graceful-restart json
2021/07/06 15:09:40 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:09:40 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv4 neighbor 192.168.0.2 graceful-restart 
2021/07/06 15:09:42 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:09:42 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv6 neighbor fd00::2 graceful-restart json
2021/07/06 15:09:42 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:09:42 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv6 neighbor fd00::2 graceful-restart 
2021/07/06 15:09:44 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:09:44 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:09:45 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:09:45 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:09:54 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:09:55 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:09:56 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:09:56 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:09:57 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:10:05 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:10:05 BGP: [M7Q4P-46WDR] vty[??]@# do write memory


r2: Daemon bgpd not running

From frr r2 bgpd log file:
2021/07/06 15:12:25 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:25 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv4 neighbor 192.168.0.1 graceful-restart json
2021/07/06 15:12:25 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:25 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv4 neighbor 192.168.0.1 graceful-restart 
2021/07/06 15:12:27 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:27 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv6 neighbor fd00::1 graceful-restart json
2021/07/06 15:12:27 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:27 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv6 neighbor fd00::1 graceful-restart 
2021/07/06 15:12:28 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:28 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:29 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:29 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:39 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:40 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:40 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:41 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:41 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:50 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:12:50 BGP: [M7Q4P-46WDR] vty[??]@# do write memory


r1: Daemon bgpd not running

From frr r1 bgpd log file:
2021/07/06 15:15:18 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:18 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv4 neighbor 192.168.0.2 graceful-restart json
2021/07/06 15:15:19 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:19 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv4 neighbor 192.168.0.2 graceful-restart 
2021/07/06 15:15:20 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:20 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv6 neighbor fd00::2 graceful-restart json
2021/07/06 15:15:21 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:21 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv6 neighbor fd00::2 graceful-restart 
2021/07/06 15:15:22 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:23 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:23 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:24 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:32 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:33 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:33 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:34 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:34 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:43 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:15:43 BGP: [M7Q4P-46WDR] vty[??]@# do write memory


r1: Daemon bgpd not running

From frr r1 bgpd log file:
2021/07/06 15:16:08 BGP: [M59KS-A3ZXZ] bgp_update_receive: rcvd End-of-RIB for IPv4 Unicast from 192.168.0.2 in vrf default
2021/07/06 15:16:08 BGP: [M59KS-A3ZXZ] bgp_update_receive: rcvd End-of-RIB for IPv6 Unicast from fd00::2 in vrf default
2021/07/06 15:16:09 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:16:09 BGP: [M7Q4P-46WDR] vty[??]@# do show logging
2021/07/06 15:16:09 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:16:09 BGP: [M7Q4P-46WDR] vty[??]@# do write terminal

2021/07/06 15:16:11 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:16:11 BGP: [M7Q4P-46WDR] vty[??]@# configure terminal
2021/07/06 15:16:11 BGP: [M7Q4P-46WDR] vty[??]@(config)# XFRR_start_configuration
2021/07/06 15:16:11 BGP: [M7Q4P-46WDR] vty[??]@(config)# no log commands

2021/07/06 15:16:14 BGP: [VTVCM-Y2NW3] Configuration Read in Took: 00:00:00
2021/07/06 15:16:19 BGP: [M59KS-A3ZXZ] bgp_update_receive: rcvd End-of-RIB for IPv4 Unicast from 192.168.0.2 in vrf default
2021/07/06 15:16:19 BGP: [M59KS-A3ZXZ] bgp_update_receive: rcvd End-of-RIB for IPv6 Unicast from fd00::2 in vrf default
2021/07/06 15:17:11 BGP: [M59KS-A3ZXZ] bgp_update_receive: rcvd End-of-RIB for IPv4 Unicast from 192.168.0.2 in vrf default
2021/07/06 15:17:11 BGP: [M59KS-A3ZXZ] bgp_update_receive: rcvd End-of-RIB for IPv6 Unicast from fd00::2 in vrf default
2021/07/06 15:17:11 BGP: [VTVCM-Y2NW3] Configuration Read in Took: 00:00:00
2021/07/06 15:17:15 BGP: [M59KS-A3ZXZ] bgp_update_receive: rcvd End-of-RIB for IPv4 Unicast from 192.168.0.2 in vrf default
2021/07/06 15:17:15 BGP: [M59KS-A3ZXZ] bgp_update_receive: rcvd End-of-RIB for IPv6 Unicast from fd00::2 in vrf default

r1: Daemon bgpd not running

From frr r1 bgpd log file:
2021/07/06 15:19:17 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:17 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv4 neighbor 192.168.0.2 graceful-restart json
2021/07/06 15:19:17 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:17 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv4 neighbor 192.168.0.2 graceful-restart 
2021/07/06 15:19:19 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:19 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv6 neighbor fd00::2 graceful-restart json
2021/07/06 15:19:19 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:19 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv6 neighbor fd00::2 graceful-restart 
2021/07/06 15:19:21 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:21 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:22 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:22 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:31 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:32 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:32 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:33 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:33 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:41 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:19:41 BGP: [M7Q4P-46WDR] vty[??]@# do write memory


r1: Daemon bgpd not running

From frr r1 bgpd log file:
2021/07/06 15:21:13 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:13 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv4 neighbor 192.168.0.2 graceful-restart json
2021/07/06 15:21:14 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:14 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv4 neighbor 192.168.0.2 graceful-restart 
2021/07/06 15:21:15 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:15 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv6 neighbor fd00::2 graceful-restart json
2021/07/06 15:21:16 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:16 BGP: [M7Q4P-46WDR] vty[??]@# show bgp ipv6 neighbor fd00::2 graceful-restart 
2021/07/06 15:21:17 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:18 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:18 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:19 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:28 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:28 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:29 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:29 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:30 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:38 BGP: [M7Q4P-46WDR] vty[??]@> enable
2021/07/06 15:21:38 BGP: [M7Q4P-46WDR] vty[??]@# do write memory

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

<stdin>:444: new blank line at EOF.
+
warning: 1 line adds whitespace errors.
Report for frrscript.c | 4 issues
===============================================
< WARNING: Missing a blank line after declarations
< #204: FILE: /tmp/f1-22206/frrscript.c:204:
< WARNING: Missing a blank line after declarations
< #253: FILE: /tmp/f1-22206/frrscript.c:253:
Report for frrscript.h | 48 issues
===============================================
< WARNING: line over 80 characters
< #191: FILE: /tmp/f1-22206/frrscript.h:191:
< WARNING: line over 80 characters
< #192: FILE: /tmp/f1-22206/frrscript.h:192:
< WARNING: line over 80 characters
< #193: FILE: /tmp/f1-22206/frrscript.h:193:
< WARNING: line over 80 characters
< #194: FILE: /tmp/f1-22206/frrscript.h:194:
< WARNING: line over 80 characters
< #195: FILE: /tmp/f1-22206/frrscript.h:195:
< WARNING: line over 80 characters
< #196: FILE: /tmp/f1-22206/frrscript.h:196:
< WARNING: line over 80 characters
< #197: FILE: /tmp/f1-22206/frrscript.h:197:
< WARNING: line over 80 characters
< #198: FILE: /tmp/f1-22206/frrscript.h:198:
< WARNING: line over 80 characters
< #199: FILE: /tmp/f1-22206/frrscript.h:199:
< WARNING: line over 80 characters
< #200: FILE: /tmp/f1-22206/frrscript.h:200:
< WARNING: line over 80 characters
< #201: FILE: /tmp/f1-22206/frrscript.h:201:
< WARNING: line over 80 characters
< #202: FILE: /tmp/f1-22206/frrscript.h:202:
< WARNING: line over 80 characters
< #203: FILE: /tmp/f1-22206/frrscript.h:203:
< WARNING: line over 80 characters
< #204: FILE: /tmp/f1-22206/frrscript.h:204:
< WARNING: line over 80 characters
< #205: FILE: /tmp/f1-22206/frrscript.h:205:
< WARNING: line over 80 characters
< #206: FILE: /tmp/f1-22206/frrscript.h:206:
< WARNING: line over 80 characters
< #207: FILE: /tmp/f1-22206/frrscript.h:207:
< WARNING: line over 80 characters
< #208: FILE: /tmp/f1-22206/frrscript.h:208:
< WARNING: line over 80 characters
< #209: FILE: /tmp/f1-22206/frrscript.h:209:
< WARNING: line over 80 characters
< #210: FILE: /tmp/f1-22206/frrscript.h:210:
< WARNING: line over 80 characters
< #211: FILE: /tmp/f1-22206/frrscript.h:211:
< WARNING: line over 80 characters
< #212: FILE: /tmp/f1-22206/frrscript.h:212:
< WARNING: line over 80 characters
< #213: FILE: /tmp/f1-22206/frrscript.h:213:
< WARNING: line over 80 characters
< #214: FILE: /tmp/f1-22206/frrscript.h:214:

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!

  • One of your commits has a missing or badly formatted Signed-off-by line; we can't accept your contribution until all of your commits have one
  • One of your commits does not have a blank line between the summary and body; this will break git log --oneline
Click for style suggestions

To apply these suggestions:

curl -s https://gist.githubusercontent.com/polychaeta/6963e7101fa982398bc6f7e316dcccf6/raw/cf99d1a3d8a33c77aa2399324139b8237fbd6cf7/cr_8982_1625666067.diff | git apply

diff --git a/lib/frrscript.h b/lib/frrscript.h
index d2791a5a8..85e7b15cd 100644
--- a/lib/frrscript.h
+++ b/lib/frrscript.h
@@ -192,31 +192,33 @@ int _frrscript_call_lua(struct lua_function_state *lfs, int nargs);
  *    0 if the script ran successfully, nonzero otherwise.
  */
 
-#define frrscript_call(fs, f, ...)                                           \
-	({                                                                         \
-		struct lua_function_state lookup = {.name = f};                          \
-		struct lua_function_state *lfs;                                          \
-		lfs = hash_lookup(fs->lua_function_hash, &lookup);                       \
-		lfs == NULL ? ({                                                         \
-			zlog_err(                                                              \
-				"Lua script call: tried to call '%s' in '%s' which was not loaded",  \
-				f, fs->name);                                                        \
-			1;                                                                     \
-		})                                                                       \
-		: ({                                                                     \
-			  MAP_LISTS(ENCODE_ARGS, ##__VA_ARGS__);                               \
-			  _frrscript_call_lua(lfs, PP_NARG(__VA_ARGS__));                      \
-		  }) != 0                                                                \
-			? ({                                                                   \
-				  zlog_err(                                                          \
-					  "Lua script call: '%s' in '%s' returned non-zero exit code",     \
-					  f, fs->name);                                                    \
-				  1;                                                                 \
-			  })                                                                   \
-			: ({                                                                   \
-				  MAP_LISTS(DECODE_ARGS, ##__VA_ARGS__);                             \
-				  0;                                                                 \
-			  });                                                                  \
+#define frrscript_call(fs, f, ...)                                                                                   \
+	({                                                                                                           \
+		struct lua_function_state lookup = {.name = f};                                                      \
+		struct lua_function_state *lfs;                                                                      \
+		lfs = hash_lookup(fs->lua_function_hash, &lookup);                                                   \
+		lfs == NULL ? ({                                                                                     \
+			zlog_err(                                                                                    \
+				"Lua script call: tried to call '%s' in '%s' which was not loaded",                  \
+				f, fs->name);                                                                        \
+			1;                                                                                           \
+		})                                                                                                   \
+			    : ({                                                                                     \
+				      MAP_LISTS(ENCODE_ARGS, ##__VA_ARGS__);                                         \
+				      _frrscript_call_lua(                                                           \
+					      lfs, PP_NARG(__VA_ARGS__));                                            \
+			      }) != 0                                                                                \
+				      ? ({                                                                           \
+						zlog_err(                                                            \
+							"Lua script call: '%s' in '%s' returned non-zero exit code", \
+							f, fs->name);                                                \
+						1;                                                                   \
+					})                                                                           \
+				      : ({                                                                           \
+						MAP_LISTS(DECODE_ARGS,                                               \
+							  ##__VA_ARGS__);                                            \
+						0;                                                                   \
+					});                                                                          \
 	})
 
 /*

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.

@polychaeta polychaeta dismissed their stale review July 7, 2021 14:00

blocking comments addressed

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/5957ed84dcb1664084dd4e55027bc540/raw/cf99d1a3d8a33c77aa2399324139b8237fbd6cf7/cr_8982_1625666426.diff | git apply

diff --git a/lib/frrscript.h b/lib/frrscript.h
index d2791a5a8..85e7b15cd 100644
--- a/lib/frrscript.h
+++ b/lib/frrscript.h
@@ -192,31 +192,33 @@ int _frrscript_call_lua(struct lua_function_state *lfs, int nargs);
  *    0 if the script ran successfully, nonzero otherwise.
  */
 
-#define frrscript_call(fs, f, ...)                                           \
-	({                                                                         \
-		struct lua_function_state lookup = {.name = f};                          \
-		struct lua_function_state *lfs;                                          \
-		lfs = hash_lookup(fs->lua_function_hash, &lookup);                       \
-		lfs == NULL ? ({                                                         \
-			zlog_err(                                                              \
-				"Lua script call: tried to call '%s' in '%s' which was not loaded",  \
-				f, fs->name);                                                        \
-			1;                                                                     \
-		})                                                                       \
-		: ({                                                                     \
-			  MAP_LISTS(ENCODE_ARGS, ##__VA_ARGS__);                               \
-			  _frrscript_call_lua(lfs, PP_NARG(__VA_ARGS__));                      \
-		  }) != 0                                                                \
-			? ({                                                                   \
-				  zlog_err(                                                          \
-					  "Lua script call: '%s' in '%s' returned non-zero exit code",     \
-					  f, fs->name);                                                    \
-				  1;                                                                 \
-			  })                                                                   \
-			: ({                                                                   \
-				  MAP_LISTS(DECODE_ARGS, ##__VA_ARGS__);                             \
-				  0;                                                                 \
-			  });                                                                  \
+#define frrscript_call(fs, f, ...)                                                                                   \
+	({                                                                                                           \
+		struct lua_function_state lookup = {.name = f};                                                      \
+		struct lua_function_state *lfs;                                                                      \
+		lfs = hash_lookup(fs->lua_function_hash, &lookup);                                                   \
+		lfs == NULL ? ({                                                                                     \
+			zlog_err(                                                                                    \
+				"Lua script call: tried to call '%s' in '%s' which was not loaded",                  \
+				f, fs->name);                                                                        \
+			1;                                                                                           \
+		})                                                                                                   \
+			    : ({                                                                                     \
+				      MAP_LISTS(ENCODE_ARGS, ##__VA_ARGS__);                                         \
+				      _frrscript_call_lua(                                                           \
+					      lfs, PP_NARG(__VA_ARGS__));                                            \
+			      }) != 0                                                                                \
+				      ? ({                                                                           \
+						zlog_err(                                                            \
+							"Lua script call: '%s' in '%s' returned non-zero exit code", \
+							f, fs->name);                                                \
+						1;                                                                   \
+					})                                                                           \
+				      : ({                                                                           \
+						MAP_LISTS(DECODE_ARGS,                                               \
+							  ##__VA_ARGS__);                                            \
+						0;                                                                   \
+					});                                                                          \
 	})
 
 /*

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.

@LabN-CI
Copy link
Collaborator

LabN-CI commented Jul 7, 2021

Outdated results 💚

Basic BGPD CI results: SUCCESS, 0 tests failed

_ _
Result SUCCESS git merge/8982 358a427
Date 07/07/2021
Start 10:51:41
Finish 11:17:16
Run-Time 25:35
Total 1815
Pass 1815
Fail 0
Valgrind-Errors
Valgrind-Loss
Details vncregress-2021-07-07-10:51:41.txt
Log autoscript-2021-07-07-10:52:56.log.bz2
Memory 499 496 431

For details, please contact louberger

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!

  • One of your commits has a missing or badly formatted Signed-off-by line; we can't accept your contribution until all of your commits have one
  • One of your commits does not have a blank line between the summary and body; this will break git log --oneline

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 Jul 7, 2021

Continuous Integration Result: FAILED

Continuous Integration Result: FAILED

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

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

Ubuntu 16.04 i386 build: Failed (click for details) Ubuntu 16.04 i386 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-20106/artifact/U1604I386/ErrorLog/ Ubuntu 16.04 i386 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-20106/artifact/U1604I386/config.status/config.status Ubuntu 16.04 i386 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-20106/artifact/U1604I386/config.log/config.log.gz Ubuntu 16.04 i386 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-20106/artifact/U1604I386/frr.xref.xz/frr.xref.xz Ubuntu 16.04 i386 build: No useful log found
Successful on other platforms/tests
  • Ubuntu 18.04 ppc64le build
  • Debian 9 amd64 build
  • NetBSD 8 amd64 build
  • Ubuntu 16.04 amd64 build
  • Debian 11 amd64 build
  • CentOS 7 amd64 build
  • Ubuntu 20.04 amd64 build
  • Ubuntu 18.04 arm7 build
  • Fedora 29 amd64 build
  • Debian 10 amd64 build
  • OpenBSD 6 amd64 build
  • FreeBSD 11 amd64 build
  • Ubuntu 18.04 arm8 build
  • Ubuntu 16.04 arm8 build
  • Ubuntu 18.04 amd64 build
  • FreeBSD 12 amd64 build
  • Ubuntu 18.04 i386 build
  • Ubuntu 16.04 arm7 build
  • CentOS 8 amd64 build

Warnings Generated during build:

Checkout code: Successful with additional warnings
Ubuntu 16.04 i386 build: Failed (click for details) Ubuntu 16.04 i386 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-20106/artifact/U1604I386/ErrorLog/ Ubuntu 16.04 i386 build: config.status output from configure script can be found at https://ci1.netdef.org/browse/FRR-FRRPULLREQ-20106/artifact/U1604I386/config.status/config.status Ubuntu 16.04 i386 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-20106/artifact/U1604I386/config.log/config.log.gz Ubuntu 16.04 i386 build: Unknown Log URL: https://ci1.netdef.org/browse/FRR-FRRPULLREQ-20106/artifact/U1604I386/frr.xref.xz/frr.xref.xz Ubuntu 16.04 i386 build: No useful log found
<stdin>:493: new blank line at EOF.
+
warning: 1 line adds whitespace errors.
Report for frrscript.c | 8 issues
===============================================
< ERROR: need consistent spacing around '*' (ctx:WxV)
< #199: FILE: /tmp/f1-10459/frrscript.c:199:
< WARNING: braces {} are not necessary for single statement blocks
< #207: FILE: /tmp/f1-10459/frrscript.c:207:
< WARNING: Block comments use a trailing */ on a separate line
< #212: FILE: /tmp/f1-10459/frrscript.c:212:
< WARNING: Missing a blank line after declarations
< #259: FILE: /tmp/f1-10459/frrscript.c:259:
Report for frrscript.h | 48 issues
===============================================
< WARNING: line over 80 characters
< #196: FILE: /tmp/f1-10459/frrscript.h:196:
< WARNING: line over 80 characters
< #197: FILE: /tmp/f1-10459/frrscript.h:197:
< WARNING: line over 80 characters
< #198: FILE: /tmp/f1-10459/frrscript.h:198:
< WARNING: line over 80 characters
< #199: FILE: /tmp/f1-10459/frrscript.h:199:
< WARNING: line over 80 characters
< #200: FILE: /tmp/f1-10459/frrscript.h:200:
< WARNING: line over 80 characters
< #201: FILE: /tmp/f1-10459/frrscript.h:201:
< WARNING: line over 80 characters
< #202: FILE: /tmp/f1-10459/frrscript.h:202:
< WARNING: line over 80 characters
< #203: FILE: /tmp/f1-10459/frrscript.h:203:
< WARNING: line over 80 characters
< #204: FILE: /tmp/f1-10459/frrscript.h:204:
< WARNING: line over 80 characters
< #205: FILE: /tmp/f1-10459/frrscript.h:205:
< WARNING: line over 80 characters
< #206: FILE: /tmp/f1-10459/frrscript.h:206:
< WARNING: line over 80 characters
< #207: FILE: /tmp/f1-10459/frrscript.h:207:
< WARNING: line over 80 characters
< #208: FILE: /tmp/f1-10459/frrscript.h:208:
< WARNING: line over 80 characters
< #209: FILE: /tmp/f1-10459/frrscript.h:209:
< WARNING: line over 80 characters
< #210: FILE: /tmp/f1-10459/frrscript.h:210:
< WARNING: line over 80 characters
< #211: FILE: /tmp/f1-10459/frrscript.h:211:
< WARNING: line over 80 characters
< #212: FILE: /tmp/f1-10459/frrscript.h:212:
< WARNING: line over 80 characters
< #213: FILE: /tmp/f1-10459/frrscript.h:213:
< WARNING: line over 80 characters
< #214: FILE: /tmp/f1-10459/frrscript.h:214:
< WARNING: line over 80 characters
< #215: FILE: /tmp/f1-10459/frrscript.h:215:
< WARNING: line over 80 characters
< #216: FILE: /tmp/f1-10459/frrscript.h:216:
< WARNING: line over 80 characters
< #217: FILE: /tmp/f1-10459/frrscript.h:217:
< WARNING: line over 80 characters
< #218: FILE: /tmp/f1-10459/frrscript.h:218:
< WARNING: line over 80 characters
< #219: FILE: /tmp/f1-10459/frrscript.h:219:

@LabN-CI
Copy link
Collaborator

LabN-CI commented Jul 7, 2021

Outdated results 💚

Basic BGPD CI results: SUCCESS, 0 tests failed

_ _
Result SUCCESS git merge/8982 f55d0d9
Date 07/07/2021
Start 12:40:57
Finish 13:06:23
Run-Time 25:26
Total 1815
Pass 1815
Fail 0
Valgrind-Errors
Valgrind-Loss
Details vncregress-2021-07-07-12:40:57.txt
Log autoscript-2021-07-07-12:42:12.log.bz2
Memory 482 514 430

For details, please contact louberger

@NetDEF-CI
Copy link
Collaborator

NetDEF-CI commented Jul 7, 2021

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-20105/

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>:493: new blank line at EOF.
+
warning: 1 line adds whitespace errors.
Report for frrscript.c | 8 issues
===============================================
< ERROR: need consistent spacing around '*' (ctx:WxV)
< #199: FILE: /tmp/f1-3601/frrscript.c:199:
< WARNING: braces {} are not necessary for single statement blocks
< #207: FILE: /tmp/f1-3601/frrscript.c:207:
< WARNING: Block comments use a trailing */ on a separate line
< #212: FILE: /tmp/f1-3601/frrscript.c:212:
< WARNING: Missing a blank line after declarations
< #259: FILE: /tmp/f1-3601/frrscript.c:259:
Report for frrscript.h | 48 issues
===============================================
< WARNING: line over 80 characters
< #196: FILE: /tmp/f1-3601/frrscript.h:196:
< WARNING: line over 80 characters
< #197: FILE: /tmp/f1-3601/frrscript.h:197:
< WARNING: line over 80 characters
< #198: FILE: /tmp/f1-3601/frrscript.h:198:
< WARNING: line over 80 characters
< #199: FILE: /tmp/f1-3601/frrscript.h:199:
< WARNING: line over 80 characters
< #200: FILE: /tmp/f1-3601/frrscript.h:200:
< WARNING: line over 80 characters
< #201: FILE: /tmp/f1-3601/frrscript.h:201:
< WARNING: line over 80 characters
< #202: FILE: /tmp/f1-3601/frrscript.h:202:
< WARNING: line over 80 characters
< #203: FILE: /tmp/f1-3601/frrscript.h:203:
< WARNING: line over 80 characters
< #204: FILE: /tmp/f1-3601/frrscript.h:204:
< WARNING: line over 80 characters
< #205: FILE: /tmp/f1-3601/frrscript.h:205:
< WARNING: line over 80 characters
< #206: FILE: /tmp/f1-3601/frrscript.h:206:
< WARNING: line over 80 characters
< #207: FILE: /tmp/f1-3601/frrscript.h:207:
< WARNING: line over 80 characters
< #208: FILE: /tmp/f1-3601/frrscript.h:208:
< WARNING: line over 80 characters
< #209: FILE: /tmp/f1-3601/frrscript.h:209:
< WARNING: line over 80 characters
< #210: FILE: /tmp/f1-3601/frrscript.h:210:
< WARNING: line over 80 characters
< #211: FILE: /tmp/f1-3601/frrscript.h:211:
< WARNING: line over 80 characters
< #212: FILE: /tmp/f1-3601/frrscript.h:212:
< WARNING: line over 80 characters
< #213: FILE: /tmp/f1-3601/frrscript.h:213:
< WARNING: line over 80 characters
< #214: FILE: /tmp/f1-3601/frrscript.h:214:
< WARNING: line over 80 characters
< #215: FILE: /tmp/f1-3601/frrscript.h:215:
< WARNING: line over 80 characters
< #216: FILE: /tmp/f1-3601/frrscript.h:216:
< WARNING: line over 80 characters
< #217: FILE: /tmp/f1-3601/frrscript.h:217:
< WARNING: line over 80 characters
< #218: FILE: /tmp/f1-3601/frrscript.h:218:
< WARNING: line over 80 characters
< #219: FILE: /tmp/f1-3601/frrscript.h:219:

@polychaeta polychaeta dismissed their stale review July 7, 2021 19:07

blocking comments addressed

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/8acf51fca83af605c8499735556a1b13/raw/223b294ea88b66295e34a3c7225d569b79ddd340/cr_8982_1625684869.diff | git apply

diff --git a/lib/frrscript.h b/lib/frrscript.h
index 1f234a38a..e8ede01ab 100644
--- a/lib/frrscript.h
+++ b/lib/frrscript.h
@@ -192,31 +192,33 @@ int _frrscript_call_lua(struct lua_function_state *lfs, int nargs);
  *    0 if the script ran successfully, nonzero otherwise.
  */
 
-#define frrscript_call(fs, f, ...)                                                                                                                   \
-	({                                                                                                                                           \
-		struct lua_function_state lookup = {.name = f};                                                                                      \
-		struct lua_function_state *lfs;                                                                                                      \
-		lfs = hash_lookup(fs->lua_function_hash, &lookup);                                                                                   \
-		lfs == NULL ? ({                                                                                                                     \
-			zlog_err(                                                                                                                    \
-				"frrscript: '%s.lua': '%s': tried to call this function but it was not loaded",                                      \
-				fs->name, f);                                                                                                        \
-			1;                                                                                                                           \
-		})                                                                                                                                   \
-		: ({                                                                                                                                 \
-			  MAP_LISTS(ENCODE_ARGS, ##__VA_ARGS__);                                                                                     \
-			  _frrscript_call_lua(lfs, PP_NARG(__VA_ARGS__));                                                                            \
-		  }) != 0                                                                                                                            \
-			? ({                                                                                                                         \
-				  zlog_err(                                                                                                          \
-					  "frrscript: '%s.lua': '%s': this function called but returned non-zero exit code. No variables modified.", \
-					  fs->name, f);                                                                                              \
-				  1;                                                                                                                 \
-			  })                                                                                                                         \
-			: ({                                                                                                                         \
-				  MAP_LISTS(DECODE_ARGS, ##__VA_ARGS__);                                                                             \
-				  0;                                                                                                                 \
-			  });                                                                                                                        \
+#define frrscript_call(fs, f, ...)                                                                                                                                 \
+	({                                                                                                                                                         \
+		struct lua_function_state lookup = {.name = f};                                                                                                    \
+		struct lua_function_state *lfs;                                                                                                                    \
+		lfs = hash_lookup(fs->lua_function_hash, &lookup);                                                                                                 \
+		lfs == NULL ? ({                                                                                                                                   \
+			zlog_err(                                                                                                                                  \
+				"frrscript: '%s.lua': '%s': tried to call this function but it was not loaded",                                                    \
+				fs->name, f);                                                                                                                      \
+			1;                                                                                                                                         \
+		})                                                                                                                                                 \
+			    : ({                                                                                                                                   \
+				      MAP_LISTS(ENCODE_ARGS, ##__VA_ARGS__);                                                                                       \
+				      _frrscript_call_lua(                                                                                                         \
+					      lfs, PP_NARG(__VA_ARGS__));                                                                                          \
+			      }) != 0                                                                                                                              \
+				      ? ({                                                                                                                         \
+						zlog_err(                                                                                                          \
+							"frrscript: '%s.lua': '%s': this function called but returned non-zero exit code. No variables modified.", \
+							fs->name, f);                                                                                              \
+						1;                                                                                                                 \
+					})                                                                                                                         \
+				      : ({                                                                                                                         \
+						MAP_LISTS(DECODE_ARGS,                                                                                             \
+							  ##__VA_ARGS__);                                                                                          \
+						0;                                                                                                                 \
+					});                                                                                                                        \
 	})
 
 /*
diff --git a/tests/lib/test_frrscript.c b/tests/lib/test_frrscript.c
index b4992f483..e01807f19 100644
--- a/tests/lib/test_frrscript.c
+++ b/tests/lib/test_frrscript.c
@@ -75,7 +75,8 @@ int main(int argc, char **argv)
 	assert(result == 1);
 
 	/* Get result from a function that was not loaded */
-	long long *llptr = frrscript_get_result(fs, "does_not_exist", "c", lua_tointegerp);
+	long long *llptr =
+		frrscript_get_result(fs, "does_not_exist", "c", lua_tointegerp);
 	assert(llptr == NULL);
 
 	/* Function returns void */
@@ -89,7 +90,8 @@ int main(int argc, char **argv)
 	/* Get non-existent result from a function */
 	result = frrscript_call(fs, "bad_return3");
 	assert(result == 1);
-	long long *cllptr = frrscript_get_result(fs, "bad_return3", "c", lua_tointegerp);
+	long long *cllptr =
+		frrscript_get_result(fs, "bad_return3", "c", lua_tointegerp);
 	assert(cllptr == NULL);
 
 	/* Function throws exception */

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.

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/7272de8d8b8f7774ce72fa55691cdd97/raw/bb6d5df6fb506ad9a63c5dcf05638162028e6ea3/cr_8982_1625684894.diff | git apply

diff --git a/lib/frrscript.h b/lib/frrscript.h
index 1f234a38a..e8ede01ab 100644
--- a/lib/frrscript.h
+++ b/lib/frrscript.h
@@ -192,31 +192,33 @@ int _frrscript_call_lua(struct lua_function_state *lfs, int nargs);
  *    0 if the script ran successfully, nonzero otherwise.
  */
 
-#define frrscript_call(fs, f, ...)                                                                                                                   \
-	({                                                                                                                                           \
-		struct lua_function_state lookup = {.name = f};                                                                                      \
-		struct lua_function_state *lfs;                                                                                                      \
-		lfs = hash_lookup(fs->lua_function_hash, &lookup);                                                                                   \
-		lfs == NULL ? ({                                                                                                                     \
-			zlog_err(                                                                                                                    \
-				"frrscript: '%s.lua': '%s': tried to call this function but it was not loaded",                                      \
-				fs->name, f);                                                                                                        \
-			1;                                                                                                                           \
-		})                                                                                                                                   \
-		: ({                                                                                                                                 \
-			  MAP_LISTS(ENCODE_ARGS, ##__VA_ARGS__);                                                                                     \
-			  _frrscript_call_lua(lfs, PP_NARG(__VA_ARGS__));                                                                            \
-		  }) != 0                                                                                                                            \
-			? ({                                                                                                                         \
-				  zlog_err(                                                                                                          \
-					  "frrscript: '%s.lua': '%s': this function called but returned non-zero exit code. No variables modified.", \
-					  fs->name, f);                                                                                              \
-				  1;                                                                                                                 \
-			  })                                                                                                                         \
-			: ({                                                                                                                         \
-				  MAP_LISTS(DECODE_ARGS, ##__VA_ARGS__);                                                                             \
-				  0;                                                                                                                 \
-			  });                                                                                                                        \
+#define frrscript_call(fs, f, ...)                                                                                                                                 \
+	({                                                                                                                                                         \
+		struct lua_function_state lookup = {.name = f};                                                                                                    \
+		struct lua_function_state *lfs;                                                                                                                    \
+		lfs = hash_lookup(fs->lua_function_hash, &lookup);                                                                                                 \
+		lfs == NULL ? ({                                                                                                                                   \
+			zlog_err(                                                                                                                                  \
+				"frrscript: '%s.lua': '%s': tried to call this function but it was not loaded",                                                    \
+				fs->name, f);                                                                                                                      \
+			1;                                                                                                                                         \
+		})                                                                                                                                                 \
+			    : ({                                                                                                                                   \
+				      MAP_LISTS(ENCODE_ARGS, ##__VA_ARGS__);                                                                                       \
+				      _frrscript_call_lua(                                                                                                         \
+					      lfs, PP_NARG(__VA_ARGS__));                                                                                          \
+			      }) != 0                                                                                                                              \
+				      ? ({                                                                                                                         \
+						zlog_err(                                                                                                          \
+							"frrscript: '%s.lua': '%s': this function called but returned non-zero exit code. No variables modified.", \
+							fs->name, f);                                                                                              \
+						1;                                                                                                                 \
+					})                                                                                                                         \
+				      : ({                                                                                                                         \
+						MAP_LISTS(DECODE_ARGS,                                                                                             \
+							  ##__VA_ARGS__);                                                                                          \
+						0;                                                                                                                 \
+					});                                                                                                                        \
 	})
 
 /*

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.

@LabN-CI
Copy link
Collaborator

LabN-CI commented Jul 7, 2021

Outdated results 🚧

Basic BGPD CI results: Partial FAILURE, 1 tests failed

_ _
Result SUCCESS git merge/8982 5c4de69
Date 07/07/2021
Start 15:10:53
Finish 15:36:24
Run-Time 25:31
Total 1815
Pass 1814
Fail 1
Valgrind-Errors
Valgrind-Loss
Details vncregress-2021-07-07-15:10:53.txt
Log autoscript-2021-07-07-15:12:02.log.bz2
Memory 509 473 428

For details, please contact louberger

@NetDEF-CI
Copy link
Collaborator

NetDEF-CI commented Jul 7, 2021

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-20107/

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>:495: new blank line at EOF.
+
warning: 1 line adds whitespace errors.
Report for frrscript.c | 8 issues
===============================================
< ERROR: need consistent spacing around '*' (ctx:WxV)
< #199: FILE: /tmp/f1-27683/frrscript.c:199:
< WARNING: braces {} are not necessary for single statement blocks
< #207: FILE: /tmp/f1-27683/frrscript.c:207:
< WARNING: Block comments use a trailing */ on a separate line
< #212: FILE: /tmp/f1-27683/frrscript.c:212:
< WARNING: Missing a blank line after declarations
< #259: FILE: /tmp/f1-27683/frrscript.c:259:
Report for frrscript.h | 54 issues
===============================================
< WARNING: line over 80 characters
< #195: FILE: /tmp/f1-27683/frrscript.h:195:
< WARNING: line over 80 characters
< #196: FILE: /tmp/f1-27683/frrscript.h:196:
< WARNING: line over 80 characters
< #197: FILE: /tmp/f1-27683/frrscript.h:197:
< WARNING: line over 80 characters
< #198: FILE: /tmp/f1-27683/frrscript.h:198:
< WARNING: line over 80 characters
< #199: FILE: /tmp/f1-27683/frrscript.h:199:
< WARNING: line over 80 characters
< #200: FILE: /tmp/f1-27683/frrscript.h:200:
< WARNING: line over 80 characters
< #201: FILE: /tmp/f1-27683/frrscript.h:201:
< WARNING: line over 80 characters
< #202: FILE: /tmp/f1-27683/frrscript.h:202:
< WARNING: line over 80 characters
< #203: FILE: /tmp/f1-27683/frrscript.h:203:
< WARNING: line over 80 characters
< #204: FILE: /tmp/f1-27683/frrscript.h:204:
< WARNING: line over 80 characters
< #205: FILE: /tmp/f1-27683/frrscript.h:205:
< WARNING: line over 80 characters
< #206: FILE: /tmp/f1-27683/frrscript.h:206:
< WARNING: line over 80 characters
< #207: FILE: /tmp/f1-27683/frrscript.h:207:
< WARNING: line over 80 characters
< #208: FILE: /tmp/f1-27683/frrscript.h:208:
< WARNING: line over 80 characters
< #209: FILE: /tmp/f1-27683/frrscript.h:209:
< WARNING: line over 80 characters
< #210: FILE: /tmp/f1-27683/frrscript.h:210:
< WARNING: line over 80 characters
< #211: FILE: /tmp/f1-27683/frrscript.h:211:
< WARNING: line over 80 characters
< #212: FILE: /tmp/f1-27683/frrscript.h:212:
< WARNING: line over 80 characters
< #213: FILE: /tmp/f1-27683/frrscript.h:213:
< WARNING: line over 80 characters
< #214: FILE: /tmp/f1-27683/frrscript.h:214:
< WARNING: line over 80 characters
< #215: FILE: /tmp/f1-27683/frrscript.h:215:
< WARNING: line over 80 characters
< #216: FILE: /tmp/f1-27683/frrscript.h:216:
< WARNING: line over 80 characters
< #217: FILE: /tmp/f1-27683/frrscript.h:217:
< WARNING: line over 80 characters
< #218: FILE: /tmp/f1-27683/frrscript.h:218:
< WARNING: line over 80 characters
< #219: FILE: /tmp/f1-27683/frrscript.h:219:
< WARNING: line over 80 characters
< #220: FILE: /tmp/f1-27683/frrscript.h:220:
< WARNING: line over 80 characters
< #221: FILE: /tmp/f1-27683/frrscript.h:221:

@NetDEF-CI
Copy link
Collaborator

NetDEF-CI commented Jul 7, 2021

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-20110/

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>:533: new blank line at EOF.
+
warning: 1 line adds whitespace errors.
Report for frrscript.c | 8 issues
===============================================
< ERROR: need consistent spacing around '*' (ctx:WxV)
< #200: FILE: /tmp/f1-20654/frrscript.c:200:
< WARNING: braces {} are not necessary for single statement blocks
< #208: FILE: /tmp/f1-20654/frrscript.c:208:
< WARNING: Block comments use a trailing */ on a separate line
< #213: FILE: /tmp/f1-20654/frrscript.c:213:
< WARNING: Missing a blank line after declarations
< #262: FILE: /tmp/f1-20654/frrscript.c:262:
Report for frrscript.h | 50 issues
===============================================
< WARNING: line over 80 characters
< #195: FILE: /tmp/f1-20654/frrscript.h:195:
< WARNING: line over 80 characters
< #196: FILE: /tmp/f1-20654/frrscript.h:196:
< WARNING: line over 80 characters
< #197: FILE: /tmp/f1-20654/frrscript.h:197:
< WARNING: line over 80 characters
< #198: FILE: /tmp/f1-20654/frrscript.h:198:
< WARNING: line over 80 characters
< #199: FILE: /tmp/f1-20654/frrscript.h:199:
< WARNING: line over 80 characters
< #200: FILE: /tmp/f1-20654/frrscript.h:200:
< WARNING: line over 80 characters
< #201: FILE: /tmp/f1-20654/frrscript.h:201:
< WARNING: line over 80 characters
< #202: FILE: /tmp/f1-20654/frrscript.h:202:
< WARNING: line over 80 characters
< #203: FILE: /tmp/f1-20654/frrscript.h:203:
< WARNING: line over 80 characters
< #204: FILE: /tmp/f1-20654/frrscript.h:204:
< WARNING: line over 80 characters
< #205: FILE: /tmp/f1-20654/frrscript.h:205:
< WARNING: line over 80 characters
< #206: FILE: /tmp/f1-20654/frrscript.h:206:
< WARNING: line over 80 characters
< #207: FILE: /tmp/f1-20654/frrscript.h:207:
< WARNING: line over 80 characters
< #208: FILE: /tmp/f1-20654/frrscript.h:208:
< WARNING: line over 80 characters
< #209: FILE: /tmp/f1-20654/frrscript.h:209:
< WARNING: line over 80 characters
< #210: FILE: /tmp/f1-20654/frrscript.h:210:
< WARNING: line over 80 characters
< #211: FILE: /tmp/f1-20654/frrscript.h:211:
< WARNING: line over 80 characters
< #212: FILE: /tmp/f1-20654/frrscript.h:212:
< WARNING: line over 80 characters
< #213: FILE: /tmp/f1-20654/frrscript.h:213:
< WARNING: line over 80 characters
< #214: FILE: /tmp/f1-20654/frrscript.h:214:
< WARNING: line over 80 characters
< #215: FILE: /tmp/f1-20654/frrscript.h:215:
< WARNING: line over 80 characters
< #216: FILE: /tmp/f1-20654/frrscript.h:216:
< WARNING: line over 80 characters
< #217: FILE: /tmp/f1-20654/frrscript.h:217:
< WARNING: line over 80 characters
< #218: FILE: /tmp/f1-20654/frrscript.h:218:
< WARNING: line over 80 characters
< #219: FILE: /tmp/f1-20654/frrscript.h:219:

@NetDEF-CI
Copy link
Collaborator

NetDEF-CI commented Jul 7, 2021

Continuous Integration Result: FAILED

Continuous Integration Result: FAILED

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

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

Topotests debian 10 amd64 part 6: Failed (click for details)

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

Topology Tests failed for Topotests debian 10 amd64 part 6:

2021-07-07 19:59:43,546 ERROR: assert failed at "test_bgp_snmp_mplsvpn/test_pe1_converge_evpn": BGP SNMP does not seem to be running
assert False
 +  where False = <bound method SnmpTester.test_oid of <lib.snmptest.SnmpTester object at 0x7fa37edcb1d0>>('bgpVersion', '10')
 +    where <bound method SnmpTester.test_oid of <lib.snmptest.SnmpTester object at 0x7fa37edcb1d0>> = <lib.snmptest.SnmpTester object at 0x7fa37edcb1d0>.test_oid
2021-07-07 19:59:44,262 ERROR: assert failed at "test_bgp_snmp_mplsvpn/test_r1_mplsvpn_scalars": mplsL3VpnVrfConfRteMxThrshTime should be 0 seconds: value more variables left in this MIB View (It is past the end of the MIB tree)
assert False
 +  where False = <bound method SnmpTester.test_oid of <lib.snmptest.SnmpTester object at 0x7fa37e8dead0>>('mplsL3VpnVrfConfRteMxThrshTime', '0 seconds')
 +    where <bound method SnmpTester.test_oid of <lib.snmptest.SnmpTester object at 0x7fa37e8dead0>> = <lib.snmptest.SnmpTester object at 0x7fa37e8dead0>.test_oid
2021-07-07 19:59:45,589 ERROR: assert failed at "test_bgp_snmp_mplsvpn/test_r1_mplsvpn_scalars_interface": mplsL3VpnVrfConfRteMxThrshTime should be 0 seconds: value more variables left in this MIB View (It is past the end of the MIB tree)
assert False
 +  where False = <bound method SnmpTester.test_oid of <lib.snmptest.SnmpTester object at 0x7fa37edcb050>>('mplsL3VpnVrfConfRteMxThrshTime', '0 seconds')
 +    where <bound method SnmpTester.test_oid of <lib.snmptest.SnmpTester object at 0x7fa37edcb050>> = <lib.snmptest.SnmpTester object at 0x7fa37edcb050>.test_oid
2021-07-07 20:01:01,615 ERROR: assert failed at "test_bgp_snmp_mplsvpn/test_r1_mplsvpn_perf_table": mplsL3VpnVrfPerfCurrNumRoutes shouold be 7 got 1
assert False
2021-07-07 20:01:05,326 ERROR: assert failed at "test_bgp_snmp_mplsvpn/test_r1_mplsvpn_rte_table": mplsL3VpnVrfRteInetCidrDest should be ['0A 05 05 05', '0A 07 07 07', 'C0 A8 22 00', 'C0 A8 64 00', 'C0 A8 64 00', 'C0 A8 C8 00', 'C0 A8 C8 00'] oids ['86.82.70.45.97.1.10.5.5.5.32.0.0.1.192.168.100.10', '86.82.70.45.97.1.10.7.7.7.32.0.0.1.192.168.200.10', '86.82.70.45.97.1.192.168.34.0.24.0.0.1.10.4.4.4', '86.82.70.45.97.1.192.168.100.0.24.0.0.1.192.168.100.10', '86.82.70.45.97.1.192.168.100.0.24.0.1.0', '86.82.70.45.97.1.192.168.200.0.24.0.0.1.192.168.200.10', '86.82.70.45.97.1.192.168.200.0.24.0.1.0'] full dict ({'86.82.70.45.97.1.192.168.34.0.24.0.0.1.10.4.4.4': 'C0 A8 22 00'}, ['C0 A8 22 00']):
assert False
*** defaultIntf: warning: r1 has no interfaces

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

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

Warnings Generated during build:

Checkout code: Successful with additional warnings
Topotests debian 10 amd64 part 6: Failed (click for details)

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

Topology Tests failed for Topotests debian 10 amd64 part 6:

2021-07-07 19:59:43,546 ERROR: assert failed at "test_bgp_snmp_mplsvpn/test_pe1_converge_evpn": BGP SNMP does not seem to be running
assert False
 +  where False = <bound method SnmpTester.test_oid of <lib.snmptest.SnmpTester object at 0x7fa37edcb1d0>>('bgpVersion', '10')
 +    where <bound method SnmpTester.test_oid of <lib.snmptest.SnmpTester object at 0x7fa37edcb1d0>> = <lib.snmptest.SnmpTester object at 0x7fa37edcb1d0>.test_oid
2021-07-07 19:59:44,262 ERROR: assert failed at "test_bgp_snmp_mplsvpn/test_r1_mplsvpn_scalars": mplsL3VpnVrfConfRteMxThrshTime should be 0 seconds: value more variables left in this MIB View (It is past the end of the MIB tree)
assert False
 +  where False = <bound method SnmpTester.test_oid of <lib.snmptest.SnmpTester object at 0x7fa37e8dead0>>('mplsL3VpnVrfConfRteMxThrshTime', '0 seconds')
 +    where <bound method SnmpTester.test_oid of <lib.snmptest.SnmpTester object at 0x7fa37e8dead0>> = <lib.snmptest.SnmpTester object at 0x7fa37e8dead0>.test_oid
2021-07-07 19:59:45,589 ERROR: assert failed at "test_bgp_snmp_mplsvpn/test_r1_mplsvpn_scalars_interface": mplsL3VpnVrfConfRteMxThrshTime should be 0 seconds: value more variables left in this MIB View (It is past the end of the MIB tree)
assert False
 +  where False = <bound method SnmpTester.test_oid of <lib.snmptest.SnmpTester object at 0x7fa37edcb050>>('mplsL3VpnVrfConfRteMxThrshTime', '0 seconds')
 +    where <bound method SnmpTester.test_oid of <lib.snmptest.SnmpTester object at 0x7fa37edcb050>> = <lib.snmptest.SnmpTester object at 0x7fa37edcb050>.test_oid
2021-07-07 20:01:01,615 ERROR: assert failed at "test_bgp_snmp_mplsvpn/test_r1_mplsvpn_perf_table": mplsL3VpnVrfPerfCurrNumRoutes shouold be 7 got 1
assert False
2021-07-07 20:01:05,326 ERROR: assert failed at "test_bgp_snmp_mplsvpn/test_r1_mplsvpn_rte_table": mplsL3VpnVrfRteInetCidrDest should be ['0A 05 05 05', '0A 07 07 07', 'C0 A8 22 00', 'C0 A8 64 00', 'C0 A8 64 00', 'C0 A8 C8 00', 'C0 A8 C8 00'] oids ['86.82.70.45.97.1.10.5.5.5.32.0.0.1.192.168.100.10', '86.82.70.45.97.1.10.7.7.7.32.0.0.1.192.168.200.10', '86.82.70.45.97.1.192.168.34.0.24.0.0.1.10.4.4.4', '86.82.70.45.97.1.192.168.100.0.24.0.0.1.192.168.100.10', '86.82.70.45.97.1.192.168.100.0.24.0.1.0', '86.82.70.45.97.1.192.168.200.0.24.0.0.1.192.168.200.10', '86.82.70.45.97.1.192.168.200.0.24.0.1.0'] full dict ({'86.82.70.45.97.1.192.168.34.0.24.0.0.1.10.4.4.4': 'C0 A8 22 00'}, ['C0 A8 22 00']):
assert False
*** defaultIntf: warning: r1 has no interfaces

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

<stdin>:533: new blank line at EOF.
+
warning: 1 line adds whitespace errors.
Report for frrscript.c | 8 issues
===============================================
< ERROR: need consistent spacing around '*' (ctx:WxV)
< #200: FILE: /tmp/f1-18948/frrscript.c:200:
< WARNING: braces {} are not necessary for single statement blocks
< #208: FILE: /tmp/f1-18948/frrscript.c:208:
< WARNING: Block comments use a trailing */ on a separate line
< #213: FILE: /tmp/f1-18948/frrscript.c:213:
< WARNING: Missing a blank line after declarations
< #262: FILE: /tmp/f1-18948/frrscript.c:262:
Report for frrscript.h | 50 issues
===============================================
< WARNING: line over 80 characters
< #195: FILE: /tmp/f1-18948/frrscript.h:195:
< WARNING: line over 80 characters
< #196: FILE: /tmp/f1-18948/frrscript.h:196:
< WARNING: line over 80 characters
< #197: FILE: /tmp/f1-18948/frrscript.h:197:
< WARNING: line over 80 characters
< #198: FILE: /tmp/f1-18948/frrscript.h:198:
< WARNING: line over 80 characters
< #199: FILE: /tmp/f1-18948/frrscript.h:199:
< WARNING: line over 80 characters
< #200: FILE: /tmp/f1-18948/frrscript.h:200:
< WARNING: line over 80 characters
< #201: FILE: /tmp/f1-18948/frrscript.h:201:
< WARNING: line over 80 characters
< #202: FILE: /tmp/f1-18948/frrscript.h:202:
< WARNING: line over 80 characters
< #203: FILE: /tmp/f1-18948/frrscript.h:203:
< WARNING: line over 80 characters
< #204: FILE: /tmp/f1-18948/frrscript.h:204:
< WARNING: line over 80 characters
< #205: FILE: /tmp/f1-18948/frrscript.h:205:
< WARNING: line over 80 characters
< #206: FILE: /tmp/f1-18948/frrscript.h:206:
< WARNING: line over 80 characters
< #207: FILE: /tmp/f1-18948/frrscript.h:207:
< WARNING: line over 80 characters
< #208: FILE: /tmp/f1-18948/frrscript.h:208:
< WARNING: line over 80 characters
< #209: FILE: /tmp/f1-18948/frrscript.h:209:
< WARNING: line over 80 characters
< #210: FILE: /tmp/f1-18948/frrscript.h:210:
< WARNING: line over 80 characters
< #211: FILE: /tmp/f1-18948/frrscript.h:211:
< WARNING: line over 80 characters
< #212: FILE: /tmp/f1-18948/frrscript.h:212:
< WARNING: line over 80 characters
< #213: FILE: /tmp/f1-18948/frrscript.h:213:
< WARNING: line over 80 characters
< #214: FILE: /tmp/f1-18948/frrscript.h:214:
< WARNING: line over 80 characters
< #215: FILE: /tmp/f1-18948/frrscript.h:215:
< WARNING: line over 80 characters
< #216: FILE: /tmp/f1-18948/frrscript.h:216:
< WARNING: line over 80 characters
< #217: FILE: /tmp/f1-18948/frrscript.h:217:
< WARNING: line over 80 characters
< #218: FILE: /tmp/f1-18948/frrscript.h:218:
< WARNING: line over 80 characters
< #219: FILE: /tmp/f1-18948/frrscript.h:219:
Report for test_frrscript.c | 8 issues
===============================================
< WARNING: line over 80 characters
< #78: FILE: /tmp/f1-18948/test_frrscript.c:78:
< WARNING: Missing a blank line after declarations
< #79: FILE: /tmp/f1-18948/test_frrscript.c:79:
< WARNING: line over 80 characters
< #92: FILE: /tmp/f1-18948/test_frrscript.c:92:
< WARNING: Missing a blank line after declarations
< #93: FILE: /tmp/f1-18948/test_frrscript.c:93:

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!

  • One of your commits has a missing or badly formatted Signed-off-by line; we can't accept your contribution until all of your commits have one
  • One of your commits does not have a blank line between the summary and body; this will break git log --oneline
Click for style suggestions

To apply these suggestions:

curl -s https://gist.githubusercontent.com/polychaeta/9864e8dc6d7bc55ed16dae26acfa01d7/raw/4cfe3ce082addcf0ea3e0162e931cd1cae946c8d/cr_8982_1625766204.diff | git apply

diff --git a/bgpd/bgp_routemap.c b/bgpd/bgp_routemap.c
index 0f4d09664..2422e4f95 100644
--- a/bgpd/bgp_routemap.c
+++ b/bgpd/bgp_routemap.c
@@ -389,20 +389,20 @@ route_match_script(void *rule, const struct prefix *prefix, void *object)
 	struct attr newattr = *path->attr;
 
 	int result = frrscript_call(
-		fs, routematch_function,
-		("prefix", prefix), ("attributes", &newattr), ("peer", path->peer),
+		fs, routematch_function, ("prefix", prefix),
+		("attributes", &newattr), ("peer", path->peer),
 		("RM_FAILURE", (long long *)&status_failure),
 		("RM_NOMATCH", (long long *)&status_nomatch),
 		("RM_MATCH", (long long *)&status_match),
-		("RM_MATCH_AND_CHANGE", (long long *)&status_match_and_change)
-	);
+		("RM_MATCH_AND_CHANGE", (long long *)&status_match_and_change));
 
 	if (result) {
 		zlog_err("Issue running script rule; defaulting to no match");
 		return RMAP_NOMATCH;
 	}
 
-	long long* action = frrscript_get_result(fs, routematch_function, "action", lua_tointegerp);
+	long long *action = frrscript_get_result(fs, routematch_function,
+						 "action", lua_tointegerp);
 
 	int status = RMAP_NOMATCH;
 
diff --git a/lib/frrscript.h b/lib/frrscript.h
index 14a922a74..3813375ef 100644
--- a/lib/frrscript.h
+++ b/lib/frrscript.h
@@ -192,31 +192,33 @@ int _frrscript_call_lua(struct lua_function_state *lfs, int nargs);
  *    0 if the script ran successfully, nonzero otherwise.
  */
 
-#define frrscript_call(fs, f, ...)                                                                                                                   \
-	({                                                                                                                                           \
-		struct lua_function_state lookup = {.name = f};                                                                                      \
-		struct lua_function_state *lfs;                                                                                                      \
-		lfs = hash_lookup(fs->lua_function_hash, &lookup);                                                                                   \
-		lfs == NULL ? ({                                                                                                                     \
-			zlog_err(                                                                                                                    \
-				"frrscript: '%s.lua': '%s': tried to call this function but it was not loaded",                                      \
-				fs->name, f);                                                                                                        \
-			1;                                                                                                                           \
-		})                                                                                                                                   \
-		: ({                                                                                                                                 \
-			  MAP_LISTS(ENCODE_ARGS, ##__VA_ARGS__);                                                                                     \
-			  _frrscript_call_lua(lfs, PP_NARG(__VA_ARGS__));                                                                            \
-		  }) != 0                                                                                                                            \
-			? ({                                                                                                                         \
-				  zlog_err(                                                                                                          \
-					  "frrscript: '%s.lua': '%s': this function called but returned non-zero exit code. No variables modified.", \
-					  fs->name, f);                                                                                              \
-				  1;                                                                                                                 \
-			  })                                                                                                                         \
-			: ({                                                                                                                         \
-				  MAP_LISTS(DECODE_ARGS, ##__VA_ARGS__);                                                                             \
-				  0;                                                                                                                 \
-			  });                                                                                                                        \
+#define frrscript_call(fs, f, ...)                                                                                                                                 \
+	({                                                                                                                                                         \
+		struct lua_function_state lookup = {.name = f};                                                                                                    \
+		struct lua_function_state *lfs;                                                                                                                    \
+		lfs = hash_lookup(fs->lua_function_hash, &lookup);                                                                                                 \
+		lfs == NULL ? ({                                                                                                                                   \
+			zlog_err(                                                                                                                                  \
+				"frrscript: '%s.lua': '%s': tried to call this function but it was not loaded",                                                    \
+				fs->name, f);                                                                                                                      \
+			1;                                                                                                                                         \
+		})                                                                                                                                                 \
+			    : ({                                                                                                                                   \
+				      MAP_LISTS(ENCODE_ARGS, ##__VA_ARGS__);                                                                                       \
+				      _frrscript_call_lua(                                                                                                         \
+					      lfs, PP_NARG(__VA_ARGS__));                                                                                          \
+			      }) != 0                                                                                                                              \
+				      ? ({                                                                                                                         \
+						zlog_err(                                                                                                          \
+							"frrscript: '%s.lua': '%s': this function called but returned non-zero exit code. No variables modified.", \
+							fs->name, f);                                                                                              \
+						1;                                                                                                                 \
+					})                                                                                                                         \
+				      : ({                                                                                                                         \
+						MAP_LISTS(DECODE_ARGS,                                                                                             \
+							  ##__VA_ARGS__);                                                                                          \
+						0;                                                                                                                 \
+					});                                                                                                                        \
 	})
 
 /*

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

Continuous Integration Result: FAILED

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

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

Topotests Ubuntu 18.04 amd64 part 8: Failed (click for details) Topotests Ubuntu 18.04 amd64 part 8: No useful log found
Successful on other platforms/tests
  • Addresssanitizer topotests part 9
  • Topotests Ubuntu 18.04 amd64 part 9
  • Fedora 29 rpm pkg check
  • Topotests debian 10 amd64 part 5
  • Topotests debian 10 amd64 part 0
  • Topotests Ubuntu 18.04 i386 part 8
  • Topotests Ubuntu 18.04 i386 part 3
  • Addresssanitizer topotests part 7
  • Addresssanitizer topotests part 4
  • Topotests debian 10 amd64 part 6
  • Topotests Ubuntu 18.04 i386 part 2
  • Topotests debian 10 amd64 part 1
  • Topotests Ubuntu 18.04 i386 part 7
  • Topotests Ubuntu 18.04 i386 part 4
  • Static analyzer (clang)
  • Topotests Ubuntu 18.04 amd64 part 6
  • Topotests Ubuntu 18.04 i386 part 9
  • Topotests Ubuntu 18.04 amd64 part 4
  • Ubuntu 16.04 deb pkg check
  • Topotests Ubuntu 18.04 arm8 part 0
  • Topotests Ubuntu 18.04 amd64 part 0
  • Topotests Ubuntu 18.04 arm8 part 5
  • Addresssanitizer topotests part 5
  • Topotests Ubuntu 18.04 amd64 part 1
  • Ubuntu 18.04 deb pkg check
  • Topotests Ubuntu 18.04 arm8 part 3
  • CentOS 7 rpm pkg check
  • Addresssanitizer topotests part 0
  • Topotests debian 10 amd64 part 4
  • Topotests Ubuntu 18.04 amd64 part 2
  • Topotests Ubuntu 18.04 amd64 part 3
  • Topotests debian 10 amd64 part 3
  • Addresssanitizer topotests part 1
  • IPv6 protocols on Ubuntu 18.04
  • Topotests debian 10 amd64 part 8
  • Topotests Ubuntu 18.04 amd64 part 5
  • Topotests Ubuntu 18.04 i386 part 1
  • Topotests Ubuntu 18.04 i386 part 6
  • Topotests Ubuntu 18.04 arm8 part 8
  • Topotests debian 10 amd64 part 2
  • Addresssanitizer topotests part 3
  • IPv4 protocols on Ubuntu 18.04
  • Topotests debian 10 amd64 part 7
  • Addresssanitizer topotests part 8
  • Topotests Ubuntu 18.04 arm8 part 6
  • Topotests Ubuntu 18.04 arm8 part 1
  • Topotests Ubuntu 18.04 arm8 part 7
  • Topotests debian 10 amd64 part 9
  • Topotests Ubuntu 18.04 amd64 part 7
  • Addresssanitizer topotests part 6
  • Ubuntu 20.04 deb pkg check
  • Topotests Ubuntu 18.04 arm8 part 2
  • Topotests Ubuntu 18.04 arm8 part 4
  • Topotests Ubuntu 18.04 i386 part 0
  • Addresssanitizer topotests part 2
  • Topotests Ubuntu 18.04 i386 part 5
  • Topotests Ubuntu 18.04 arm8 part 9
  • Debian 10 deb pkg check
  • IPv4 ldp protocol on Ubuntu 18.04
  • Debian 9 deb pkg check

Warnings Generated during build:

Checkout code: Successful with additional warnings
Topotests Ubuntu 18.04 amd64 part 8: Failed (click for details) Topotests Ubuntu 18.04 amd64 part 8: No useful log found
<stdin>:107: space before tab in indent.
   	/* Lua file name */
<stdin>:108: space before tab in indent.
   	char *name;
<stdin>:112: space before tab in indent.
   	/* hash of lua_function_states */
<stdin>:113: space before tab in indent.
   	struct hash *lua_function_hash;
<stdin>:117: space before tab in indent.
   	/* Lua function name */
warning: squelched 3 whitespace errors
warning: 8 lines add whitespace errors.
Report for frrscript.c | 2 issues
===============================================
< ERROR: need consistent spacing around '*' (ctx:WxV)
< #200: FILE: /tmp/f1-18487/frrscript.c:200:
Report for frrscript.h | 54 issues
===============================================
< WARNING: line over 80 characters
< #217: FILE: /tmp/f1-18487/frrscript.h:217:
< WARNING: line over 80 characters
< #218: FILE: /tmp/f1-18487/frrscript.h:218:
< WARNING: line over 80 characters
< #219: FILE: /tmp/f1-18487/frrscript.h:219:
< WARNING: line over 80 characters
< #220: FILE: /tmp/f1-18487/frrscript.h:220:
< WARNING: line over 80 characters
< #221: FILE: /tmp/f1-18487/frrscript.h:221:
< WARNING: line over 80 characters
< #222: FILE: /tmp/f1-18487/frrscript.h:222:
< WARNING: line over 80 characters
< #223: FILE: /tmp/f1-18487/frrscript.h:223:
< WARNING: line over 80 characters
< #224: FILE: /tmp/f1-18487/frrscript.h:224:
< WARNING: line over 80 characters
< #225: FILE: /tmp/f1-18487/frrscript.h:225:
< WARNING: line over 80 characters
< #226: FILE: /tmp/f1-18487/frrscript.h:226:
< WARNING: line over 80 characters
< #227: FILE: /tmp/f1-18487/frrscript.h:227:
< WARNING: line over 80 characters
< #228: FILE: /tmp/f1-18487/frrscript.h:228:
< WARNING: line over 80 characters
< #229: FILE: /tmp/f1-18487/frrscript.h:229:
< WARNING: line over 80 characters
< #230: FILE: /tmp/f1-18487/frrscript.h:230:
< WARNING: line over 80 characters
< #231: FILE: /tmp/f1-18487/frrscript.h:231:
< WARNING: line over 80 characters
< #232: FILE: /tmp/f1-18487/frrscript.h:232:
< WARNING: line over 80 characters
< #233: FILE: /tmp/f1-18487/frrscript.h:233:
< WARNING: line over 80 characters
< #234: FILE: /tmp/f1-18487/frrscript.h:234:
< WARNING: line over 80 characters
< #235: FILE: /tmp/f1-18487/frrscript.h:235:
< WARNING: line over 80 characters
< #236: FILE: /tmp/f1-18487/frrscript.h:236:
< WARNING: line over 80 characters
< #237: FILE: /tmp/f1-18487/frrscript.h:237:
< WARNING: line over 80 characters
< #238: FILE: /tmp/f1-18487/frrscript.h:238:
< WARNING: line over 80 characters
< #239: FILE: /tmp/f1-18487/frrscript.h:239:
< WARNING: line over 80 characters
< #240: FILE: /tmp/f1-18487/frrscript.h:240:
< WARNING: line over 80 characters
< #241: FILE: /tmp/f1-18487/frrscript.h:241:
< WARNING: line over 80 characters
< #242: FILE: /tmp/f1-18487/frrscript.h:242:
< WARNING: line over 80 characters
< #243: FILE: /tmp/f1-18487/frrscript.h:243:

@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-20487/

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>:107: space before tab in indent.
   	/* Lua file name */
<stdin>:108: space before tab in indent.
   	char *name;
<stdin>:112: space before tab in indent.
   	/* hash of lua_function_states */
<stdin>:113: space before tab in indent.
   	struct hash *lua_function_hash;
<stdin>:117: space before tab in indent.
   	/* Lua function name */
warning: squelched 3 whitespace errors
warning: 8 lines add whitespace errors.
Report for frrscript.c | 4 issues
===============================================
< ERROR: need consistent spacing around '*' (ctx:WxV)
< #200: FILE: /tmp/f1-15723/frrscript.c:200:
< WARNING: Block comments use a trailing */ on a separate line
< #229: FILE: /tmp/f1-15723/frrscript.c:229:
Report for frrscript.h | 54 issues
===============================================
< WARNING: line over 80 characters
< #217: FILE: /tmp/f1-15723/frrscript.h:217:
< WARNING: line over 80 characters
< #218: FILE: /tmp/f1-15723/frrscript.h:218:
< WARNING: line over 80 characters
< #219: FILE: /tmp/f1-15723/frrscript.h:219:
< WARNING: line over 80 characters
< #220: FILE: /tmp/f1-15723/frrscript.h:220:
< WARNING: line over 80 characters
< #221: FILE: /tmp/f1-15723/frrscript.h:221:
< WARNING: line over 80 characters
< #222: FILE: /tmp/f1-15723/frrscript.h:222:
< WARNING: line over 80 characters
< #223: FILE: /tmp/f1-15723/frrscript.h:223:
< WARNING: line over 80 characters
< #224: FILE: /tmp/f1-15723/frrscript.h:224:
< WARNING: line over 80 characters
< #225: FILE: /tmp/f1-15723/frrscript.h:225:
< WARNING: line over 80 characters
< #226: FILE: /tmp/f1-15723/frrscript.h:226:
< WARNING: line over 80 characters
< #227: FILE: /tmp/f1-15723/frrscript.h:227:
< WARNING: line over 80 characters
< #228: FILE: /tmp/f1-15723/frrscript.h:228:
< WARNING: line over 80 characters
< #229: FILE: /tmp/f1-15723/frrscript.h:229:
< WARNING: line over 80 characters
< #230: FILE: /tmp/f1-15723/frrscript.h:230:
< WARNING: line over 80 characters
< #231: FILE: /tmp/f1-15723/frrscript.h:231:
< WARNING: line over 80 characters
< #232: FILE: /tmp/f1-15723/frrscript.h:232:
< WARNING: line over 80 characters
< #233: FILE: /tmp/f1-15723/frrscript.h:233:
< WARNING: line over 80 characters
< #234: FILE: /tmp/f1-15723/frrscript.h:234:
< WARNING: line over 80 characters
< #235: FILE: /tmp/f1-15723/frrscript.h:235:
< WARNING: line over 80 characters
< #236: FILE: /tmp/f1-15723/frrscript.h:236:
< WARNING: line over 80 characters
< #237: FILE: /tmp/f1-15723/frrscript.h:237:
< WARNING: line over 80 characters
< #238: FILE: /tmp/f1-15723/frrscript.h:238:
< WARNING: line over 80 characters
< #239: FILE: /tmp/f1-15723/frrscript.h:239:
< WARNING: line over 80 characters
< #240: FILE: /tmp/f1-15723/frrscript.h:240:
< WARNING: line over 80 characters
< #241: FILE: /tmp/f1-15723/frrscript.h:241:
< WARNING: line over 80 characters
< #242: FILE: /tmp/f1-15723/frrscript.h:242:
< WARNING: line over 80 characters
< #243: FILE: /tmp/f1-15723/frrscript.h:243:

@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-20488/

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>:107: space before tab in indent.
   	/* Lua file name */
<stdin>:108: space before tab in indent.
   	char *name;
<stdin>:112: space before tab in indent.
   	/* hash of lua_function_states */
<stdin>:113: space before tab in indent.
   	struct hash *lua_function_hash;
<stdin>:117: space before tab in indent.
   	/* Lua function name */
warning: squelched 3 whitespace errors
warning: 8 lines add whitespace errors.
Report for frrscript.c | 4 issues
===============================================
< ERROR: need consistent spacing around '*' (ctx:WxV)
< #200: FILE: /tmp/f1-28780/frrscript.c:200:
< WARNING: Block comments use a trailing */ on a separate line
< #229: FILE: /tmp/f1-28780/frrscript.c:229:
Report for frrscript.h | 54 issues
===============================================
< WARNING: line over 80 characters
< #217: FILE: /tmp/f1-28780/frrscript.h:217:
< WARNING: line over 80 characters
< #218: FILE: /tmp/f1-28780/frrscript.h:218:
< WARNING: line over 80 characters
< #219: FILE: /tmp/f1-28780/frrscript.h:219:
< WARNING: line over 80 characters
< #220: FILE: /tmp/f1-28780/frrscript.h:220:
< WARNING: line over 80 characters
< #221: FILE: /tmp/f1-28780/frrscript.h:221:
< WARNING: line over 80 characters
< #222: FILE: /tmp/f1-28780/frrscript.h:222:
< WARNING: line over 80 characters
< #223: FILE: /tmp/f1-28780/frrscript.h:223:
< WARNING: line over 80 characters
< #224: FILE: /tmp/f1-28780/frrscript.h:224:
< WARNING: line over 80 characters
< #225: FILE: /tmp/f1-28780/frrscript.h:225:
< WARNING: line over 80 characters
< #226: FILE: /tmp/f1-28780/frrscript.h:226:
< WARNING: line over 80 characters
< #227: FILE: /tmp/f1-28780/frrscript.h:227:
< WARNING: line over 80 characters
< #228: FILE: /tmp/f1-28780/frrscript.h:228:
< WARNING: line over 80 characters
< #229: FILE: /tmp/f1-28780/frrscript.h:229:
< WARNING: line over 80 characters
< #230: FILE: /tmp/f1-28780/frrscript.h:230:
< WARNING: line over 80 characters
< #231: FILE: /tmp/f1-28780/frrscript.h:231:
< WARNING: line over 80 characters
< #232: FILE: /tmp/f1-28780/frrscript.h:232:
< WARNING: line over 80 characters
< #233: FILE: /tmp/f1-28780/frrscript.h:233:
< WARNING: line over 80 characters
< #234: FILE: /tmp/f1-28780/frrscript.h:234:
< WARNING: line over 80 characters
< #235: FILE: /tmp/f1-28780/frrscript.h:235:
< WARNING: line over 80 characters
< #236: FILE: /tmp/f1-28780/frrscript.h:236:
< WARNING: line over 80 characters
< #237: FILE: /tmp/f1-28780/frrscript.h:237:
< WARNING: line over 80 characters
< #238: FILE: /tmp/f1-28780/frrscript.h:238:
< WARNING: line over 80 characters
< #239: FILE: /tmp/f1-28780/frrscript.h:239:
< WARNING: line over 80 characters
< #240: FILE: /tmp/f1-28780/frrscript.h:240:
< WARNING: line over 80 characters
< #241: FILE: /tmp/f1-28780/frrscript.h:241:
< WARNING: line over 80 characters
< #242: FILE: /tmp/f1-28780/frrscript.h:242:
< WARNING: line over 80 characters
< #243: FILE: /tmp/f1-28780/frrscript.h:243:

@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-20489/

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>:107: space before tab in indent.
   	/* Lua file name */
<stdin>:108: space before tab in indent.
   	char *name;
<stdin>:112: space before tab in indent.
   	/* hash of lua_function_states */
<stdin>:113: space before tab in indent.
   	struct hash *lua_function_hash;
<stdin>:117: space before tab in indent.
   	/* Lua function name */
warning: squelched 3 whitespace errors
warning: 8 lines add whitespace errors.
Report for frrscript.c | 4 issues
===============================================
< ERROR: need consistent spacing around '*' (ctx:WxV)
< #200: FILE: /tmp/f1-31296/frrscript.c:200:
< WARNING: Block comments use a trailing */ on a separate line
< #229: FILE: /tmp/f1-31296/frrscript.c:229:
Report for frrscript.h | 54 issues
===============================================
< WARNING: line over 80 characters
< #217: FILE: /tmp/f1-31296/frrscript.h:217:
< WARNING: line over 80 characters
< #218: FILE: /tmp/f1-31296/frrscript.h:218:
< WARNING: line over 80 characters
< #219: FILE: /tmp/f1-31296/frrscript.h:219:
< WARNING: line over 80 characters
< #220: FILE: /tmp/f1-31296/frrscript.h:220:
< WARNING: line over 80 characters
< #221: FILE: /tmp/f1-31296/frrscript.h:221:
< WARNING: line over 80 characters
< #222: FILE: /tmp/f1-31296/frrscript.h:222:
< WARNING: line over 80 characters
< #223: FILE: /tmp/f1-31296/frrscript.h:223:
< WARNING: line over 80 characters
< #224: FILE: /tmp/f1-31296/frrscript.h:224:
< WARNING: line over 80 characters
< #225: FILE: /tmp/f1-31296/frrscript.h:225:
< WARNING: line over 80 characters
< #226: FILE: /tmp/f1-31296/frrscript.h:226:
< WARNING: line over 80 characters
< #227: FILE: /tmp/f1-31296/frrscript.h:227:
< WARNING: line over 80 characters
< #228: FILE: /tmp/f1-31296/frrscript.h:228:
< WARNING: line over 80 characters
< #229: FILE: /tmp/f1-31296/frrscript.h:229:
< WARNING: line over 80 characters
< #230: FILE: /tmp/f1-31296/frrscript.h:230:
< WARNING: line over 80 characters
< #231: FILE: /tmp/f1-31296/frrscript.h:231:
< WARNING: line over 80 characters
< #232: FILE: /tmp/f1-31296/frrscript.h:232:
< WARNING: line over 80 characters
< #233: FILE: /tmp/f1-31296/frrscript.h:233:
< WARNING: line over 80 characters
< #234: FILE: /tmp/f1-31296/frrscript.h:234:
< WARNING: line over 80 characters
< #235: FILE: /tmp/f1-31296/frrscript.h:235:
< WARNING: line over 80 characters
< #236: FILE: /tmp/f1-31296/frrscript.h:236:
< WARNING: line over 80 characters
< #237: FILE: /tmp/f1-31296/frrscript.h:237:
< WARNING: line over 80 characters
< #238: FILE: /tmp/f1-31296/frrscript.h:238:
< WARNING: line over 80 characters
< #239: FILE: /tmp/f1-31296/frrscript.h:239:
< WARNING: line over 80 characters
< #240: FILE: /tmp/f1-31296/frrscript.h:240:
< WARNING: line over 80 characters
< #241: FILE: /tmp/f1-31296/frrscript.h:241:
< WARNING: line over 80 characters
< #242: FILE: /tmp/f1-31296/frrscript.h:242:
< WARNING: line over 80 characters
< #243: FILE: /tmp/f1-31296/frrscript.h:243:

@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-20490/

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>:107: space before tab in indent.
   	/* Lua file name */
<stdin>:108: space before tab in indent.
   	char *name;
<stdin>:112: space before tab in indent.
   	/* hash of lua_function_states */
<stdin>:113: space before tab in indent.
   	struct hash *lua_function_hash;
<stdin>:117: space before tab in indent.
   	/* Lua function name */
warning: squelched 3 whitespace errors
warning: 8 lines add whitespace errors.
Report for frrscript.c | 4 issues
===============================================
< ERROR: need consistent spacing around '*' (ctx:WxV)
< #200: FILE: /tmp/f1-12103/frrscript.c:200:
< WARNING: Block comments use a trailing */ on a separate line
< #229: FILE: /tmp/f1-12103/frrscript.c:229:
Report for frrscript.h | 54 issues
===============================================
< WARNING: line over 80 characters
< #217: FILE: /tmp/f1-12103/frrscript.h:217:
< WARNING: line over 80 characters
< #218: FILE: /tmp/f1-12103/frrscript.h:218:
< WARNING: line over 80 characters
< #219: FILE: /tmp/f1-12103/frrscript.h:219:
< WARNING: line over 80 characters
< #220: FILE: /tmp/f1-12103/frrscript.h:220:
< WARNING: line over 80 characters
< #221: FILE: /tmp/f1-12103/frrscript.h:221:
< WARNING: line over 80 characters
< #222: FILE: /tmp/f1-12103/frrscript.h:222:
< WARNING: line over 80 characters
< #223: FILE: /tmp/f1-12103/frrscript.h:223:
< WARNING: line over 80 characters
< #224: FILE: /tmp/f1-12103/frrscript.h:224:
< WARNING: line over 80 characters
< #225: FILE: /tmp/f1-12103/frrscript.h:225:
< WARNING: line over 80 characters
< #226: FILE: /tmp/f1-12103/frrscript.h:226:
< WARNING: line over 80 characters
< #227: FILE: /tmp/f1-12103/frrscript.h:227:
< WARNING: line over 80 characters
< #228: FILE: /tmp/f1-12103/frrscript.h:228:
< WARNING: line over 80 characters
< #229: FILE: /tmp/f1-12103/frrscript.h:229:
< WARNING: line over 80 characters
< #230: FILE: /tmp/f1-12103/frrscript.h:230:
< WARNING: line over 80 characters
< #231: FILE: /tmp/f1-12103/frrscript.h:231:
< WARNING: line over 80 characters
< #232: FILE: /tmp/f1-12103/frrscript.h:232:
< WARNING: line over 80 characters
< #233: FILE: /tmp/f1-12103/frrscript.h:233:
< WARNING: line over 80 characters
< #234: FILE: /tmp/f1-12103/frrscript.h:234:
< WARNING: line over 80 characters
< #235: FILE: /tmp/f1-12103/frrscript.h:235:
< WARNING: line over 80 characters
< #236: FILE: /tmp/f1-12103/frrscript.h:236:
< WARNING: line over 80 characters
< #237: FILE: /tmp/f1-12103/frrscript.h:237:
< WARNING: line over 80 characters
< #238: FILE: /tmp/f1-12103/frrscript.h:238:
< WARNING: line over 80 characters
< #239: FILE: /tmp/f1-12103/frrscript.h:239:
< WARNING: line over 80 characters
< #240: FILE: /tmp/f1-12103/frrscript.h:240:
< WARNING: line over 80 characters
< #241: FILE: /tmp/f1-12103/frrscript.h:241:
< WARNING: line over 80 characters
< #242: FILE: /tmp/f1-12103/frrscript.h:242:
< WARNING: line over 80 characters
< #243: FILE: /tmp/f1-12103/frrscript.h:243:

@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-20495/

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>:107: space before tab in indent.
   	/* Lua file name */
<stdin>:108: space before tab in indent.
   	char *name;
<stdin>:112: space before tab in indent.
   	/* hash of lua_function_states */
<stdin>:113: space before tab in indent.
   	struct hash *lua_function_hash;
<stdin>:117: space before tab in indent.
   	/* Lua function name */
warning: squelched 3 whitespace errors
warning: 8 lines add whitespace errors.
Report for frrscript.c | 4 issues
===============================================
< ERROR: need consistent spacing around '*' (ctx:WxV)
< #200: FILE: /tmp/f1-10009/frrscript.c:200:
< WARNING: Block comments use a trailing */ on a separate line
< #229: FILE: /tmp/f1-10009/frrscript.c:229:
Report for frrscript.h | 54 issues
===============================================
< WARNING: line over 80 characters
< #217: FILE: /tmp/f1-10009/frrscript.h:217:
< WARNING: line over 80 characters
< #218: FILE: /tmp/f1-10009/frrscript.h:218:
< WARNING: line over 80 characters
< #219: FILE: /tmp/f1-10009/frrscript.h:219:
< WARNING: line over 80 characters
< #220: FILE: /tmp/f1-10009/frrscript.h:220:
< WARNING: line over 80 characters
< #221: FILE: /tmp/f1-10009/frrscript.h:221:
< WARNING: line over 80 characters
< #222: FILE: /tmp/f1-10009/frrscript.h:222:
< WARNING: line over 80 characters
< #223: FILE: /tmp/f1-10009/frrscript.h:223:
< WARNING: line over 80 characters
< #224: FILE: /tmp/f1-10009/frrscript.h:224:
< WARNING: line over 80 characters
< #225: FILE: /tmp/f1-10009/frrscript.h:225:
< WARNING: line over 80 characters
< #226: FILE: /tmp/f1-10009/frrscript.h:226:
< WARNING: line over 80 characters
< #227: FILE: /tmp/f1-10009/frrscript.h:227:
< WARNING: line over 80 characters
< #228: FILE: /tmp/f1-10009/frrscript.h:228:
< WARNING: line over 80 characters
< #229: FILE: /tmp/f1-10009/frrscript.h:229:
< WARNING: line over 80 characters
< #230: FILE: /tmp/f1-10009/frrscript.h:230:
< WARNING: line over 80 characters
< #231: FILE: /tmp/f1-10009/frrscript.h:231:
< WARNING: line over 80 characters
< #232: FILE: /tmp/f1-10009/frrscript.h:232:
< WARNING: line over 80 characters
< #233: FILE: /tmp/f1-10009/frrscript.h:233:
< WARNING: line over 80 characters
< #234: FILE: /tmp/f1-10009/frrscript.h:234:
< WARNING: line over 80 characters
< #235: FILE: /tmp/f1-10009/frrscript.h:235:
< WARNING: line over 80 characters
< #236: FILE: /tmp/f1-10009/frrscript.h:236:
< WARNING: line over 80 characters
< #237: FILE: /tmp/f1-10009/frrscript.h:237:
< WARNING: line over 80 characters
< #238: FILE: /tmp/f1-10009/frrscript.h:238:
< WARNING: line over 80 characters
< #239: FILE: /tmp/f1-10009/frrscript.h:239:
< WARNING: line over 80 characters
< #240: FILE: /tmp/f1-10009/frrscript.h:240:
< WARNING: line over 80 characters
< #241: FILE: /tmp/f1-10009/frrscript.h:241:
< WARNING: line over 80 characters
< #242: FILE: /tmp/f1-10009/frrscript.h:242:
< WARNING: line over 80 characters
< #243: FILE: /tmp/f1-10009/frrscript.h:243:

@qlyoung qlyoung self-requested a review July 26, 2021 14:33
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!

  • One of your commits has a missing or badly formatted Signed-off-by line; we can't accept your contribution until all of your commits have one
  • One of your commits does not have a blank line between the summary and body; this will break git log --oneline

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.

Signed-off-by: Donald Lee <dlqs@gmx.com>
@polychaeta polychaeta dismissed their stale review July 26, 2021 14:48

blocking comments addressed

@LabN-CI
Copy link
Collaborator

LabN-CI commented Jul 26, 2021

💚 Basic BGPD CI results: SUCCESS, 0 tests failed

Results table
_ _
Result SUCCESS git merge/8982 6ffeb9f
Date 07/26/2021
Start 10:55:55
Finish 11:21:30
Run-Time 25:35
Total 1813
Pass 1813
Fail 0
Valgrind-Errors
Valgrind-Loss
Details vncregress-2021-07-26-10:55:55.txt
Log autoscript-2021-07-26-10:57:06.log.bz2
Memory 501 520 429

For details, please contact louberger

Signed-off-by: Donald Lee <dlqs@gmx.com>
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/6b34a669d0e42a1c63ce904f4d097fe0/raw/ba540a563921494c9587ed15eaf20cda20dd4f30/cr_8982_1627314454.diff | git apply

diff --git a/lib/frrscript.c b/lib/frrscript.c
index c7896f004..3e1e184bc 100644
--- a/lib/frrscript.c
+++ b/lib/frrscript.c
@@ -197,7 +197,7 @@ done:
 
 void *frrscript_get_result(struct frrscript *fs, const char *function_name,
 			   const char *name,
-			   void * (*lua_to)(lua_State *L, int idx))
+			   void *(*lua_to)(lua_State *L, int idx))
 {
 	void *p;
 	struct lua_function_state *lfs;

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.

Signed-off-by: Donald Lee <dlqs@gmx.com>
@LabN-CI
Copy link
Collaborator

LabN-CI commented Jul 26, 2021

💚 Basic BGPD CI results: SUCCESS, 0 tests failed

Results table
_ _
Result SUCCESS git merge/8982 84c9200
Date 07/26/2021
Start 12:15:57
Finish 12:41:34
Run-Time 25:37
Total 1813
Pass 1813
Fail 0
Valgrind-Errors
Valgrind-Loss
Details vncregress-2021-07-26-12:15:57.txt
Log autoscript-2021-07-26-12:17:13.log.bz2
Memory 515 519 422

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-20538/

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>:107: space before tab in indent.
   	/* Lua file name */
<stdin>:108: space before tab in indent.
   	char *name;
<stdin>:112: space before tab in indent.
   	/* hash of lua_function_states */
<stdin>:113: space before tab in indent.
   	struct hash *lua_function_hash;
<stdin>:117: space before tab in indent.
   	/* Lua function name */
warning: squelched 3 whitespace errors
warning: 8 lines add whitespace errors.
Report for frrscript.c | 4 issues
===============================================
< ERROR: need consistent spacing around '*' (ctx:WxV)
< #200: FILE: /tmp/f1-31300/frrscript.c:200:
< WARNING: Block comments use a trailing */ on a separate line
< #229: FILE: /tmp/f1-31300/frrscript.c:229:
Report for frrscript.h | 56 issues
===============================================
< WARNING: C99 // comments do not match recommendation
< #28: FILE: /tmp/f1-31300/frrscript.h:28:
< WARNING: line over 80 characters
< #217: FILE: /tmp/f1-31300/frrscript.h:217:
< WARNING: line over 80 characters
< #218: FILE: /tmp/f1-31300/frrscript.h:218:
< WARNING: line over 80 characters
< #219: FILE: /tmp/f1-31300/frrscript.h:219:
< WARNING: line over 80 characters
< #220: FILE: /tmp/f1-31300/frrscript.h:220:
< WARNING: line over 80 characters
< #221: FILE: /tmp/f1-31300/frrscript.h:221:
< WARNING: line over 80 characters
< #222: FILE: /tmp/f1-31300/frrscript.h:222:
< WARNING: line over 80 characters
< #223: FILE: /tmp/f1-31300/frrscript.h:223:
< WARNING: line over 80 characters
< #224: FILE: /tmp/f1-31300/frrscript.h:224:
< WARNING: line over 80 characters
< #225: FILE: /tmp/f1-31300/frrscript.h:225:
< WARNING: line over 80 characters
< #226: FILE: /tmp/f1-31300/frrscript.h:226:
< WARNING: line over 80 characters
< #227: FILE: /tmp/f1-31300/frrscript.h:227:
< WARNING: line over 80 characters
< #228: FILE: /tmp/f1-31300/frrscript.h:228:
< WARNING: line over 80 characters
< #229: FILE: /tmp/f1-31300/frrscript.h:229:
< WARNING: line over 80 characters
< #230: FILE: /tmp/f1-31300/frrscript.h:230:
< WARNING: line over 80 characters
< #231: FILE: /tmp/f1-31300/frrscript.h:231:
< WARNING: line over 80 characters
< #232: FILE: /tmp/f1-31300/frrscript.h:232:
< WARNING: line over 80 characters
< #233: FILE: /tmp/f1-31300/frrscript.h:233:
< WARNING: line over 80 characters
< #234: FILE: /tmp/f1-31300/frrscript.h:234:
< WARNING: line over 80 characters
< #235: FILE: /tmp/f1-31300/frrscript.h:235:
< WARNING: line over 80 characters
< #236: FILE: /tmp/f1-31300/frrscript.h:236:
< WARNING: line over 80 characters
< #237: FILE: /tmp/f1-31300/frrscript.h:237:
< WARNING: line over 80 characters
< #238: FILE: /tmp/f1-31300/frrscript.h:238:
< WARNING: line over 80 characters
< #239: FILE: /tmp/f1-31300/frrscript.h:239:
< WARNING: line over 80 characters
< #240: FILE: /tmp/f1-31300/frrscript.h:240:
< WARNING: line over 80 characters
< #241: FILE: /tmp/f1-31300/frrscript.h:241:
< WARNING: line over 80 characters
< #242: FILE: /tmp/f1-31300/frrscript.h:242:
< WARNING: line over 80 characters
< #243: FILE: /tmp/f1-31300/frrscript.h:243:

@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-20537/

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>:107: space before tab in indent.
   	/* Lua file name */
<stdin>:108: space before tab in indent.
   	char *name;
<stdin>:112: space before tab in indent.
   	/* hash of lua_function_states */
<stdin>:113: space before tab in indent.
   	struct hash *lua_function_hash;
<stdin>:117: space before tab in indent.
   	/* Lua function name */
warning: squelched 3 whitespace errors
warning: 8 lines add whitespace errors.
Report for frrscript.c | 4 issues
===============================================
< ERROR: need consistent spacing around '*' (ctx:WxV)
< #200: FILE: /tmp/f1-26844/frrscript.c:200:
< WARNING: Block comments use a trailing */ on a separate line
< #229: FILE: /tmp/f1-26844/frrscript.c:229:
Report for frrscript.h | 56 issues
===============================================
< WARNING: C99 // comments do not match recommendation
< #28: FILE: /tmp/f1-26844/frrscript.h:28:
< WARNING: line over 80 characters
< #217: FILE: /tmp/f1-26844/frrscript.h:217:
< WARNING: line over 80 characters
< #218: FILE: /tmp/f1-26844/frrscript.h:218:
< WARNING: line over 80 characters
< #219: FILE: /tmp/f1-26844/frrscript.h:219:
< WARNING: line over 80 characters
< #220: FILE: /tmp/f1-26844/frrscript.h:220:
< WARNING: line over 80 characters
< #221: FILE: /tmp/f1-26844/frrscript.h:221:
< WARNING: line over 80 characters
< #222: FILE: /tmp/f1-26844/frrscript.h:222:
< WARNING: line over 80 characters
< #223: FILE: /tmp/f1-26844/frrscript.h:223:
< WARNING: line over 80 characters
< #224: FILE: /tmp/f1-26844/frrscript.h:224:
< WARNING: line over 80 characters
< #225: FILE: /tmp/f1-26844/frrscript.h:225:
< WARNING: line over 80 characters
< #226: FILE: /tmp/f1-26844/frrscript.h:226:
< WARNING: line over 80 characters
< #227: FILE: /tmp/f1-26844/frrscript.h:227:
< WARNING: line over 80 characters
< #228: FILE: /tmp/f1-26844/frrscript.h:228:
< WARNING: line over 80 characters
< #229: FILE: /tmp/f1-26844/frrscript.h:229:
< WARNING: line over 80 characters
< #230: FILE: /tmp/f1-26844/frrscript.h:230:
< WARNING: line over 80 characters
< #231: FILE: /tmp/f1-26844/frrscript.h:231:
< WARNING: line over 80 characters
< #232: FILE: /tmp/f1-26844/frrscript.h:232:
< WARNING: line over 80 characters
< #233: FILE: /tmp/f1-26844/frrscript.h:233:
< WARNING: line over 80 characters
< #234: FILE: /tmp/f1-26844/frrscript.h:234:
< WARNING: line over 80 characters
< #235: FILE: /tmp/f1-26844/frrscript.h:235:
< WARNING: line over 80 characters
< #236: FILE: /tmp/f1-26844/frrscript.h:236:
< WARNING: line over 80 characters
< #237: FILE: /tmp/f1-26844/frrscript.h:237:
< WARNING: line over 80 characters
< #238: FILE: /tmp/f1-26844/frrscript.h:238:
< WARNING: line over 80 characters
< #239: FILE: /tmp/f1-26844/frrscript.h:239:
< WARNING: line over 80 characters
< #240: FILE: /tmp/f1-26844/frrscript.h:240:
< WARNING: line over 80 characters
< #241: FILE: /tmp/f1-26844/frrscript.h:241:
< WARNING: line over 80 characters
< #242: FILE: /tmp/f1-26844/frrscript.h:242:
< WARNING: line over 80 characters
< #243: FILE: /tmp/f1-26844/frrscript.h:243:

@NetDEF-CI
Copy link
Collaborator

Continuous Integration Result: FAILED

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

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

Topotests Ubuntu 18.04 amd64 part 1: Failed (click for details)

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

Topology Tests failed for Topotests Ubuntu 18.04 amd64 part 1:

2021-07-26 18:41:26,750 ERROR: 'router_json_cmp' failed after 130.99 seconds
2021-07-26 18:41:26,753 ERROR: assert failed at "bfd_topo2.test_bfd_topo2/test_protocols_convergence": "r4" JSON output mismatches
assert Generated JSON diff error report:
  
  > $: d2 has key '2001:db8:1::/64' which is not present in d1
2021-07-26 19:10:35,941 ERROR: Traceback (most recent call last):
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TP1U1804AMD64/topotests/lib/bgp.py", line 204, in create_router_bgp
    tgen, router, data_all_bgp, "bgp", build, load_config
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TP1U1804AMD64/topotests/lib/common_config.py", line 363, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TP1U1804AMD64/topotests/lib/common_config.py", line 590, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: line 6: % Unknown command[27]: neighbor 10.0.0.13 remote-as 0 
% Specify remote-as or peer-group commands first
line 7: Failure to communicate[13] to bgpd, line: neighbor 10.0.0.13 timers 3 10 

line 9: % Unknown command[30]: neighbor fd00:0:0:3::1 remote-as 0 
% Specify remote-as or peer-group commands first
line 11: Failure to communicate[13] to bgpd, line: neighbor fd00:0:0:3::1 activate 

% Specify remote-as or peer-group commands first
line 12: Failure to communicate[13] to bgpd, line: neighbor fd00:0:0:3::1 timers 3 10 

% Specify remote-as or peer-group commands first
line 14: Failure to communicate[13] to bgpd, line: no neighbor fd00:0:0:3::1 activate 



2021-07-26 19:10:36,509 ERROR: Traceback (most recent call last):
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TP1U1804AMD64/topotests/lib/bgp.py", line 204, in create_router_bgp
    tgen, router, data_all_bgp, "bgp", build, load_config
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TP1U1804AMD64/topotests/lib/common_config.py", line 363, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TP1U1804AMD64/topotests/lib/common_config.py", line 590, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: % No BGP process is configured
line 2: Failure to communicate[13] to bgpd, line: no router bgp  

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

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

Warnings Generated during build:

Checkout code: Successful with additional warnings
Topotests Ubuntu 18.04 amd64 part 1: Failed (click for details)

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

Topology Tests failed for Topotests Ubuntu 18.04 amd64 part 1:

2021-07-26 18:41:26,750 ERROR: 'router_json_cmp' failed after 130.99 seconds
2021-07-26 18:41:26,753 ERROR: assert failed at "bfd_topo2.test_bfd_topo2/test_protocols_convergence": "r4" JSON output mismatches
assert Generated JSON diff error report:
  
  > $: d2 has key '2001:db8:1::/64' which is not present in d1
2021-07-26 19:10:35,941 ERROR: Traceback (most recent call last):
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TP1U1804AMD64/topotests/lib/bgp.py", line 204, in create_router_bgp
    tgen, router, data_all_bgp, "bgp", build, load_config
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TP1U1804AMD64/topotests/lib/common_config.py", line 363, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TP1U1804AMD64/topotests/lib/common_config.py", line 590, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: line 6: % Unknown command[27]: neighbor 10.0.0.13 remote-as 0 
% Specify remote-as or peer-group commands first
line 7: Failure to communicate[13] to bgpd, line: neighbor 10.0.0.13 timers 3 10 

line 9: % Unknown command[30]: neighbor fd00:0:0:3::1 remote-as 0 
% Specify remote-as or peer-group commands first
line 11: Failure to communicate[13] to bgpd, line: neighbor fd00:0:0:3::1 activate 

% Specify remote-as or peer-group commands first
line 12: Failure to communicate[13] to bgpd, line: neighbor fd00:0:0:3::1 timers 3 10 

% Specify remote-as or peer-group commands first
line 14: Failure to communicate[13] to bgpd, line: no neighbor fd00:0:0:3::1 activate 



2021-07-26 19:10:36,509 ERROR: Traceback (most recent call last):
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TP1U1804AMD64/topotests/lib/bgp.py", line 204, in create_router_bgp
    tgen, router, data_all_bgp, "bgp", build, load_config
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TP1U1804AMD64/topotests/lib/common_config.py", line 363, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TP1U1804AMD64/topotests/lib/common_config.py", line 590, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: % No BGP process is configured
line 2: Failure to communicate[13] to bgpd, line: no router bgp  

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

<stdin>:1528: new blank line at EOF.
+
warning: 1 line adds whitespace errors.
Report for frrscript.c | 2 issues
===============================================
< ERROR: need consistent spacing around '*' (ctx:WxV)
< #200: FILE: /tmp/f1-16711/frrscript.c:200:
Report for frrscript.h | 56 issues
===============================================
< WARNING: C99 // comments do not match recommendation
< #28: FILE: /tmp/f1-16711/frrscript.h:28:
< WARNING: line over 80 characters
< #217: FILE: /tmp/f1-16711/frrscript.h:217:
< WARNING: line over 80 characters
< #218: FILE: /tmp/f1-16711/frrscript.h:218:
< WARNING: line over 80 characters
< #219: FILE: /tmp/f1-16711/frrscript.h:219:
< WARNING: line over 80 characters
< #220: FILE: /tmp/f1-16711/frrscript.h:220:
< WARNING: line over 80 characters
< #221: FILE: /tmp/f1-16711/frrscript.h:221:
< WARNING: line over 80 characters
< #222: FILE: /tmp/f1-16711/frrscript.h:222:
< WARNING: line over 80 characters
< #223: FILE: /tmp/f1-16711/frrscript.h:223:
< WARNING: line over 80 characters
< #224: FILE: /tmp/f1-16711/frrscript.h:224:
< WARNING: line over 80 characters
< #225: FILE: /tmp/f1-16711/frrscript.h:225:
< WARNING: line over 80 characters
< #226: FILE: /tmp/f1-16711/frrscript.h:226:
< WARNING: line over 80 characters
< #227: FILE: /tmp/f1-16711/frrscript.h:227:
< WARNING: line over 80 characters
< #228: FILE: /tmp/f1-16711/frrscript.h:228:
< WARNING: line over 80 characters
< #229: FILE: /tmp/f1-16711/frrscript.h:229:
< WARNING: line over 80 characters
< #230: FILE: /tmp/f1-16711/frrscript.h:230:
< WARNING: line over 80 characters
< #231: FILE: /tmp/f1-16711/frrscript.h:231:
< WARNING: line over 80 characters
< #232: FILE: /tmp/f1-16711/frrscript.h:232:
< WARNING: line over 80 characters
< #233: FILE: /tmp/f1-16711/frrscript.h:233:
< WARNING: line over 80 characters
< #234: FILE: /tmp/f1-16711/frrscript.h:234:
< WARNING: line over 80 characters
< #235: FILE: /tmp/f1-16711/frrscript.h:235:
< WARNING: line over 80 characters
< #236: FILE: /tmp/f1-16711/frrscript.h:236:
< WARNING: line over 80 characters
< #237: FILE: /tmp/f1-16711/frrscript.h:237:
< WARNING: line over 80 characters
< #238: FILE: /tmp/f1-16711/frrscript.h:238:
< WARNING: line over 80 characters
< #239: FILE: /tmp/f1-16711/frrscript.h:239:
< WARNING: line over 80 characters
< #240: FILE: /tmp/f1-16711/frrscript.h:240:
< WARNING: line over 80 characters
< #241: FILE: /tmp/f1-16711/frrscript.h:241:
< WARNING: line over 80 characters
< #242: FILE: /tmp/f1-16711/frrscript.h:242:
< WARNING: line over 80 characters
< #243: FILE: /tmp/f1-16711/frrscript.h:243:

@NetDEF-CI
Copy link
Collaborator

Continuous Integration Result: FAILED

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

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

Topotests Ubuntu 18.04 amd64 part 9: Failed (click for details)

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

Topology Tests failed for Topotests Ubuntu 18.04 amd64 part 9:

2021-07-26 18:26:49,614 WARNING: vtysh_cmd: r0: failed to convert json output: : No JSON object could be decoded
2021-07-26 18:27:16,193 WARNING: vtysh_cmd: r1: failed to convert json output: : No JSON object could be decoded
2021-07-26 18:41:36,294 ERROR: Traceback (most recent call last):
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9U18AMD64/topotests/lib/common_config.py", line 1866, in create_interfaces_cfg
    tgen, c_router, interface_data, "interface_config", build=build
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9U18AMD64/topotests/lib/common_config.py", line 363, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9U18AMD64/topotests/lib/common_config.py", line 590, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: line 3: % Unknown command[16]: ip ospf hello-interval 65536 


2021-07-26 18:42:26,582 ERROR: Traceback (most recent call last):
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9U18AMD64/topotests/lib/common_config.py", line 1866, in create_interfaces_cfg
    tgen, c_router, interface_data, "interface_config", build=build
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9U18AMD64/topotests/lib/common_config.py", line 363, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9U18AMD64/topotests/lib/common_config.py", line 590, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: line 3: % Unknown command[16]: ip ospf dead-interval 65536 


2021-07-26 18:53:51,967 ERROR: r1: zebra left a dead pidfile (pid=27651)

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

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

Warnings Generated during build:

Checkout code: Successful with additional warnings
Topotests Ubuntu 18.04 amd64 part 9: Failed (click for details)

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

Topology Tests failed for Topotests Ubuntu 18.04 amd64 part 9:

2021-07-26 18:26:49,614 WARNING: vtysh_cmd: r0: failed to convert json output: : No JSON object could be decoded
2021-07-26 18:27:16,193 WARNING: vtysh_cmd: r1: failed to convert json output: : No JSON object could be decoded
2021-07-26 18:41:36,294 ERROR: Traceback (most recent call last):
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9U18AMD64/topotests/lib/common_config.py", line 1866, in create_interfaces_cfg
    tgen, c_router, interface_data, "interface_config", build=build
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9U18AMD64/topotests/lib/common_config.py", line 363, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9U18AMD64/topotests/lib/common_config.py", line 590, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: line 3: % Unknown command[16]: ip ospf hello-interval 65536 


2021-07-26 18:42:26,582 ERROR: Traceback (most recent call last):
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9U18AMD64/topotests/lib/common_config.py", line 1866, in create_interfaces_cfg
    tgen, c_router, interface_data, "interface_config", build=build
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9U18AMD64/topotests/lib/common_config.py", line 363, in create_common_configuration
    load_config_to_router(tgen, router)
  File "/root/bamboo-agent-home/xml-data/build-dir/FRR-FRRPULLREQ-TOPO9U18AMD64/topotests/lib/common_config.py", line 590, in load_config_to_router
    raise InvalidCLIError("%s" % output)
InvalidCLIError: line 3: % Unknown command[16]: ip ospf dead-interval 65536 


2021-07-26 18:53:51,967 ERROR: r1: zebra left a dead pidfile (pid=27651)

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

<stdin>:107: space before tab in indent.
   	/* Lua file name */
<stdin>:108: space before tab in indent.
   	char *name;
<stdin>:112: space before tab in indent.
   	/* hash of lua_function_states */
<stdin>:113: space before tab in indent.
   	struct hash *lua_function_hash;
<stdin>:117: space before tab in indent.
   	/* Lua function name */
warning: squelched 3 whitespace errors
warning: 8 lines add whitespace errors.
Report for frrscript.c | 4 issues
===============================================
< ERROR: need consistent spacing around '*' (ctx:WxV)
< #200: FILE: /tmp/f1-30269/frrscript.c:200:
< WARNING: Block comments use a trailing */ on a separate line
< #229: FILE: /tmp/f1-30269/frrscript.c:229:
Report for frrscript.h | 56 issues
===============================================
< WARNING: C99 // comments do not match recommendation
< #28: FILE: /tmp/f1-30269/frrscript.h:28:
< WARNING: line over 80 characters
< #217: FILE: /tmp/f1-30269/frrscript.h:217:
< WARNING: line over 80 characters
< #218: FILE: /tmp/f1-30269/frrscript.h:218:
< WARNING: line over 80 characters
< #219: FILE: /tmp/f1-30269/frrscript.h:219:
< WARNING: line over 80 characters
< #220: FILE: /tmp/f1-30269/frrscript.h:220:
< WARNING: line over 80 characters
< #221: FILE: /tmp/f1-30269/frrscript.h:221:
< WARNING: line over 80 characters
< #222: FILE: /tmp/f1-30269/frrscript.h:222:
< WARNING: line over 80 characters
< #223: FILE: /tmp/f1-30269/frrscript.h:223:
< WARNING: line over 80 characters
< #224: FILE: /tmp/f1-30269/frrscript.h:224:
< WARNING: line over 80 characters
< #225: FILE: /tmp/f1-30269/frrscript.h:225:
< WARNING: line over 80 characters
< #226: FILE: /tmp/f1-30269/frrscript.h:226:
< WARNING: line over 80 characters
< #227: FILE: /tmp/f1-30269/frrscript.h:227:
< WARNING: line over 80 characters
< #228: FILE: /tmp/f1-30269/frrscript.h:228:
< WARNING: line over 80 characters
< #229: FILE: /tmp/f1-30269/frrscript.h:229:
< WARNING: line over 80 characters
< #230: FILE: /tmp/f1-30269/frrscript.h:230:
< WARNING: line over 80 characters
< #231: FILE: /tmp/f1-30269/frrscript.h:231:
< WARNING: line over 80 characters
< #232: FILE: /tmp/f1-30269/frrscript.h:232:
< WARNING: line over 80 characters
< #233: FILE: /tmp/f1-30269/frrscript.h:233:
< WARNING: line over 80 characters
< #234: FILE: /tmp/f1-30269/frrscript.h:234:
< WARNING: line over 80 characters
< #235: FILE: /tmp/f1-30269/frrscript.h:235:
< WARNING: line over 80 characters
< #236: FILE: /tmp/f1-30269/frrscript.h:236:
< WARNING: line over 80 characters
< #237: FILE: /tmp/f1-30269/frrscript.h:237:
< WARNING: line over 80 characters
< #238: FILE: /tmp/f1-30269/frrscript.h:238:
< WARNING: line over 80 characters
< #239: FILE: /tmp/f1-30269/frrscript.h:239:
< WARNING: line over 80 characters
< #240: FILE: /tmp/f1-30269/frrscript.h:240:
< WARNING: line over 80 characters
< #241: FILE: /tmp/f1-30269/frrscript.h:241:
< WARNING: line over 80 characters
< #242: FILE: /tmp/f1-30269/frrscript.h:242:
< WARNING: line over 80 characters
< #243: FILE: /tmp/f1-30269/frrscript.h:243:

@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-20548/

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>:1528: new blank line at EOF.
+
warning: 1 line adds whitespace errors.
Report for frrscript.c | 2 issues
===============================================
< ERROR: need consistent spacing around '*' (ctx:WxV)
< #200: FILE: /tmp/f1-19951/frrscript.c:200:
Report for frrscript.h | 56 issues
===============================================
< WARNING: C99 // comments do not match recommendation
< #28: FILE: /tmp/f1-19951/frrscript.h:28:
< WARNING: line over 80 characters
< #217: FILE: /tmp/f1-19951/frrscript.h:217:
< WARNING: line over 80 characters
< #218: FILE: /tmp/f1-19951/frrscript.h:218:
< WARNING: line over 80 characters
< #219: FILE: /tmp/f1-19951/frrscript.h:219:
< WARNING: line over 80 characters
< #220: FILE: /tmp/f1-19951/frrscript.h:220:
< WARNING: line over 80 characters
< #221: FILE: /tmp/f1-19951/frrscript.h:221:
< WARNING: line over 80 characters
< #222: FILE: /tmp/f1-19951/frrscript.h:222:
< WARNING: line over 80 characters
< #223: FILE: /tmp/f1-19951/frrscript.h:223:
< WARNING: line over 80 characters
< #224: FILE: /tmp/f1-19951/frrscript.h:224:
< WARNING: line over 80 characters
< #225: FILE: /tmp/f1-19951/frrscript.h:225:
< WARNING: line over 80 characters
< #226: FILE: /tmp/f1-19951/frrscript.h:226:
< WARNING: line over 80 characters
< #227: FILE: /tmp/f1-19951/frrscript.h:227:
< WARNING: line over 80 characters
< #228: FILE: /tmp/f1-19951/frrscript.h:228:
< WARNING: line over 80 characters
< #229: FILE: /tmp/f1-19951/frrscript.h:229:
< WARNING: line over 80 characters
< #230: FILE: /tmp/f1-19951/frrscript.h:230:
< WARNING: line over 80 characters
< #231: FILE: /tmp/f1-19951/frrscript.h:231:
< WARNING: line over 80 characters
< #232: FILE: /tmp/f1-19951/frrscript.h:232:
< WARNING: line over 80 characters
< #233: FILE: /tmp/f1-19951/frrscript.h:233:
< WARNING: line over 80 characters
< #234: FILE: /tmp/f1-19951/frrscript.h:234:
< WARNING: line over 80 characters
< #235: FILE: /tmp/f1-19951/frrscript.h:235:
< WARNING: line over 80 characters
< #236: FILE: /tmp/f1-19951/frrscript.h:236:
< WARNING: line over 80 characters
< #237: FILE: /tmp/f1-19951/frrscript.h:237:
< WARNING: line over 80 characters
< #238: FILE: /tmp/f1-19951/frrscript.h:238:
< WARNING: line over 80 characters
< #239: FILE: /tmp/f1-19951/frrscript.h:239:
< WARNING: line over 80 characters
< #240: FILE: /tmp/f1-19951/frrscript.h:240:
< WARNING: line over 80 characters
< #241: FILE: /tmp/f1-19951/frrscript.h:241:
< WARNING: line over 80 characters
< #242: FILE: /tmp/f1-19951/frrscript.h:242:
< WARNING: line over 80 characters
< #243: FILE: /tmp/f1-19951/frrscript.h:243:

lib/frrscript.c Outdated

if (snprintf(script_name, sizeof(script_name), "%s/%s.lua", scriptdir,
fs->name)
< 0) {
Copy link
Member

Choose a reason for hiding this comment

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

This condition is not right. man snprintf:

The functions snprintf() and vsnprintf() do not write more than size bytes (including the terminating null byte ('\0')). If the output was truncated due to this limit, then the return value is the number of characters (excluding the terminating null byte) which would have been written to the final string if enough space had been available. Thus, a return value of size or more means that the output was truncated. (See also below under NOTES.)

If an output error is encountered, a negative value is returned.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

updated 9e3a277

I grepped and snprintf <0 isn't usually checked for errors so I just flipped the < to a >=

lib/frrscript.h Outdated
#define DECODE_ARGS(name, value) \
do { \
lua_getglobal(L, name); \
DECODE_ARGS_WITH_STATE(L, value); \
lua_getfield(lfs->L, 1, name); \
Copy link
Member

Choose a reason for hiding this comment

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

As I mentioned elsewhere you need to wrap macro arguments in (parens) anywhere they are used.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

ah, I thought it was just at that call site. updated b5e790e

Donald Lee added 3 commits July 29, 2021 05:52
Signed-off-by: Donald Lee <dlqs@gmx.com>
Signed-off-by: Donald Lee <dlqs@gmx.com>
Signed-off-by: Donald Lee <dlqs@gmx.com>
@LabN-CI
Copy link
Collaborator

LabN-CI commented Jul 28, 2021

💚 Basic BGPD CI results: SUCCESS, 0 tests failed

Results table
_ _
Result SUCCESS git merge/8982 c5f9744
Date 07/28/2021
Start 17:55:53
Finish 18:21:24
Run-Time 25:31
Total 1813
Pass 1813
Fail 0
Valgrind-Errors
Valgrind-Loss
Details vncregress-2021-07-28-17:55:53.txt
Log autoscript-2021-07-28-17:57:08.log.bz2
Memory 508 499 426

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-20613/

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>:1555: new blank line at EOF.
+
warning: 1 line adds whitespace errors.
Report for frrscript.c | 2 issues
===============================================
< ERROR: need consistent spacing around '*' (ctx:WxV)
< #200: FILE: /tmp/f1-26527/frrscript.c:200:
Report for frrscript.h | 56 issues
===============================================
< WARNING: C99 // comments do not match recommendation
< #28: FILE: /tmp/f1-26527/frrscript.h:28:
< WARNING: line over 80 characters
< #217: FILE: /tmp/f1-26527/frrscript.h:217:
< WARNING: line over 80 characters
< #218: FILE: /tmp/f1-26527/frrscript.h:218:
< WARNING: line over 80 characters
< #219: FILE: /tmp/f1-26527/frrscript.h:219:
< WARNING: line over 80 characters
< #220: FILE: /tmp/f1-26527/frrscript.h:220:
< WARNING: line over 80 characters
< #221: FILE: /tmp/f1-26527/frrscript.h:221:
< WARNING: line over 80 characters
< #222: FILE: /tmp/f1-26527/frrscript.h:222:
< WARNING: line over 80 characters
< #223: FILE: /tmp/f1-26527/frrscript.h:223:
< WARNING: line over 80 characters
< #224: FILE: /tmp/f1-26527/frrscript.h:224:
< WARNING: line over 80 characters
< #225: FILE: /tmp/f1-26527/frrscript.h:225:
< WARNING: line over 80 characters
< #226: FILE: /tmp/f1-26527/frrscript.h:226:
< WARNING: line over 80 characters
< #227: FILE: /tmp/f1-26527/frrscript.h:227:
< WARNING: line over 80 characters
< #228: FILE: /tmp/f1-26527/frrscript.h:228:
< WARNING: line over 80 characters
< #229: FILE: /tmp/f1-26527/frrscript.h:229:
< WARNING: line over 80 characters
< #230: FILE: /tmp/f1-26527/frrscript.h:230:
< WARNING: line over 80 characters
< #231: FILE: /tmp/f1-26527/frrscript.h:231:
< WARNING: line over 80 characters
< #232: FILE: /tmp/f1-26527/frrscript.h:232:
< WARNING: line over 80 characters
< #233: FILE: /tmp/f1-26527/frrscript.h:233:
< WARNING: line over 80 characters
< #234: FILE: /tmp/f1-26527/frrscript.h:234:
< WARNING: line over 80 characters
< #235: FILE: /tmp/f1-26527/frrscript.h:235:
< WARNING: line over 80 characters
< #236: FILE: /tmp/f1-26527/frrscript.h:236:
< WARNING: line over 80 characters
< #237: FILE: /tmp/f1-26527/frrscript.h:237:
< WARNING: line over 80 characters
< #238: FILE: /tmp/f1-26527/frrscript.h:238:
< WARNING: line over 80 characters
< #239: FILE: /tmp/f1-26527/frrscript.h:239:
< WARNING: line over 80 characters
< #240: FILE: /tmp/f1-26527/frrscript.h:240:
< WARNING: line over 80 characters
< #241: FILE: /tmp/f1-26527/frrscript.h:241:
< WARNING: line over 80 characters
< #242: FILE: /tmp/f1-26527/frrscript.h:242:
< WARNING: line over 80 characters
< #243: FILE: /tmp/f1-26527/frrscript.h:243:

@qlyoung qlyoung merged commit 41d3d77 into FRRouting:master Aug 2, 2021
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