Donald Lee
2b67227e6e
lib: Add int encoder/decoder
...
Signed-off-by: Donald Lee <dlqs@gmx.com>
2021-07-18 06:32:03 +08:00
Donald Lee
8878080b1b
lib: Remove ../ include
...
Signed-off-by: Donald Lee <dlqs@gmx.com>
2021-07-18 06:32:03 +08:00
Donald Lee
0972af957a
bgpd: Update bgpd example with get_result
...
Signed-off-by: Donald Lee <dlqs@gmx.com>
2021-07-18 06:32:03 +08:00
Donald Lee
aed6f883a0
doc: Update documentation
...
Signed-off-by: Donald Lee <dlqs@gmx.com>
2021-07-18 06:32:03 +08:00
Donald Lee
64d457d7ac
lib: Rename frrscript_unload to delete
...
frrscript_load now loads a function instead of a file, so frrscript_unload
should be renamed since it does not unload a function.
Signed-off-by: Donald Lee <dlqs@gmx.com>
2021-07-18 06:32:03 +08:00
Donald Lee
8a04c1e74e
tests: Add more examples to get_result
...
Signed-off-by: Donald Lee <dlqs@gmx.com>
2021-07-18 06:32:03 +08:00
Donald Lee
b664092990
lib: standardize zlog error messages
...
Signed-off-by: Donald Lee <dlqs@gmx.com>
2021-07-18 06:32:03 +08:00
Donald Lee
ad6e9b854d
test: Use frrscript_unload
...
Signed-off-by: Donald Lee <dlqs@gmx.com>
2021-07-18 06:32:03 +08:00
Donald Lee
fae19fa56d
lib: frrscript unload deallocates Lua function
...
Signed-off-by: Donald Lee <dlqs@gmx.com>
2021-07-18 06:32:03 +08:00
Donald Lee
8a79921ca3
lib: format macro slashes
...
Signed-off-by: Donald Lee <dlqs@gmx.com>
2021-07-18 06:32:03 +08:00
Donald Lee
5090d7249f
tests: Add test for frrscript_get_result
...
Signed-off-by: Donald Lee <dlqs@gmx.com>
2021-07-18 06:32:03 +08:00
Donald Lee
06947ddeac
lib: Add frrscript_get_result
...
Signed-off-by: Donald Lee <dlqs@gmx.com>
2021-07-18 06:32:03 +08:00
Donald Lee
24ff8520af
lib: frrscript_call check name before decode
...
Signed-off-by: Donald Lee <dlqs@gmx.com>
2021-07-18 06:32:03 +08:00
Donald Lee
7948c5d27a
tests: Add errorneous test cases
...
Signed-off-by: Donald Lee <dlqs@gmx.com>
2021-07-18 06:32:03 +08:00
Donald Lee
cb5de23140
lib: update frrscript unload
...
Signed-off-by: Donald Lee <dlqs@gmx.com>
2021-07-18 06:32:03 +08:00
Donald Lee
4535b6113c
tests: Add test for calling Lua function
...
Signed-off-by: Donald Lee <dlqs@gmx.com>
2021-07-18 06:32:03 +08:00
Donald Lee
bf938fdb9d
bgpd: Update bgpd example to call function
...
Signed-off-by: Donald Lee <dlqs@gmx.com>
2021-07-18 06:32:03 +08:00
Donald Lee
a71096fb0a
lib: Update Script command example to call function
...
Signed-off-by: Donald Lee <dlqs@gmx.com>
2021-07-18 06:32:03 +08:00
Donald Lee
40d038d2a1
lib: Change frrscript_call to call function instead
...
There is some rather heavy error checking logic in frrscript_call. Normally
I'd put this in the _frrscript_call function, but the error checking needs
to happen before the encoders/decoders in the macro are called.
The error checking looks messy but its really just nested ternary
expressions insite a larger statement expression.
Signed-off-by: Donald Lee <dlqs@gmx.com>
2021-07-18 06:32:03 +08:00
Donald Lee
f0cddf950f
lib: create new frrscript_new
...
frrscript_new now creates a new frrscript
frrscript_load now loads a function (by allocating a new lua stack)
Signed-off-by: Donald Lee <dlqs@gmx.com>
2021-07-18 06:32:03 +08:00
Donald Lee
105ba9af8f
lib: Change frrscript to hold many Lua states
...
Instead of 1 frrscript : 1 lua state, it is changed to 1 : N.
The states are hashed with their function names.
Signed-off-by: Donald Lee <dlqs@gmx.com>
2021-07-18 06:32:03 +08:00
Donald Sharp
7ed3c169cb
Merge pull request #9062 from ton31337/fix/bgp_dampening_json_crash
...
bgpd: BGP dampening JSON fixes
2021-07-16 14:41:32 -04:00
Donald Sharp
b4ad2fae54
bgpd: Allow for auto-completion of community alias's created
...
Add a bit of code to allow for auto-completion of the community
alias command when attempting to use it for show commands.
example:
eva(config)# bgp community alias 11:22 FOO
eva(config)# end
eva# show bgp ipv4 uni alias
ALIAS_NAME BGP community alias
FOO
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-07-16 09:52:53 -04:00
Mark Stapp
12e1fe1251
Merge pull request #9063 from sworleys/Fix-IFP-NHG
...
zebra: fix ifp pointer for groups/recursives
2021-07-16 09:33:52 -04:00
Rafael Zalamena
9d37889de0
Merge pull request #9001 from donaldsharp/pim_mrib_lookup_do_all
...
pimd: When passing lookup information back pass the fully resolved
2021-07-16 10:24:27 -03:00
Donald Sharp
c24e832ae9
Merge pull request #8946 from gpnaveen/bgp_lib_changes
...
tests: Adding lib changes for bgp peer type verification.
2021-07-16 09:15:36 -04:00
Donald Sharp
eeef611bad
Merge pull request #9068 from ton31337/fix/reduce_converge_time
...
tests: Reduce bgp_conditional_advertisement converge time 10x
2021-07-16 08:34:46 -04:00
Mark Stapp
65574cda3b
Merge pull request #9049 from LabNConsulting/chopps/improve-frr-reload-delta
...
tools: improve frr-reload.py delta file creation
2021-07-16 08:21:57 -04:00
Igor Ryzhov
6a09e0a34a
Merge pull request #9038 from donaldsharp/realloc_bgp
...
bgpd: XREALLOC handles NULL properly
2021-07-16 13:17:47 +03:00
Igor Ryzhov
3e763419d4
Merge pull request #9053 from opensourcerouting/ospfv3-debug-guard
...
ospf6d: remove extra debug message
2021-07-16 13:09:59 +03:00
Christian Hopps
be4a9b0570
tools: improve frr-reload.py delta file creation
...
- Remove incorrect requirement for `service integrated-vtysh-config`
when producing a delta.
- Add `--test-reset` option which suppresses non-parseable lines from the
produced delta
- Use new features in common_config.py
Signed-off-by: Christian Hopps <chopps@labn.net>
2021-07-15 22:12:01 -04:00
Donatas Abraitis
2c3d4b28bd
tests: Reduce bgp_conditional_advertisement converge time 10x
...
~15min vs. ~1min.
Before:
```
1 passed, 1 skipped in 908.61 seconds
```
After:
```
1 passed, 1 skipped in 82.94 seconds
```
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-07-15 23:40:42 +03:00
Donald Sharp
0f8de6a8d8
Merge pull request #9055 from ton31337/fix/show_pfxsnt_even_when_default_route_originated
...
bgpd: Reflect changes to pfxSnt when using default-originate
2021-07-15 15:54:01 -04:00
Donald Sharp
cae48a42f8
Merge pull request #9065 from colinbs/fix_config_help_undefined_sanitizer
...
configure.ac: fix help text to --enable-undefined-sanitizer
2021-07-15 15:52:15 -04:00
Colin Sames
3f70087c2a
configure.ac: fix help text to --enable-undefined-sanitizer
...
Signed-off-by: Colin Sames <colin.sames@haw-hamburg.de>
2021-07-15 19:18:02 +02:00
Stephen Worley
bf157b9263
zebra: fix ifp pointer for groups/recursives
...
At some point we broke the ifp pointer for nhe->ifp such
that it was pointing to an interface even in groups/recurisve
instances.
Add checks here to make it again so that we only set the ifp
pointer if it is a fully resolved singleton NHE.
Signed-off-by: Stephen Worley <sworley@nvidia.com>
2021-07-15 11:24:24 -04:00
Donatas Abraitis
3125804678
bgpd: Fix dampening flap-statistics json
crash
...
With fix:
```
exit1-debian-9# sh ip bgp dampening flap-statistics
BGP table version is 22, local router ID is 10.10.10.200, vrf id 0
Default local pref 100, local AS 65001
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network From Flaps Duration Reuse Path
*d 10.0.0.0/24 192.168.0.2 4 00:00:50 00:35:56 65000 ?
*d 10.10.10.100/32 192.168.0.2 4 00:00:50 00:35:56 65000 ?
*d 192.168.1.0/24 192.168.0.2 4 00:00:50 00:35:56 65000 ?
Displayed 3 routes and 10 total paths
exit1-debian-9# sh ip bgp dampening flap-statistics json
{
"vrfId": 0,
"vrfName": "default",
"tableVersion": 22,
"routerId": "10.10.10.200",
"defaultLocPrf": 100,
"localAS": 65001,
"routes": { "10.0.0.0/24": [
{
"valid":true,
"damped":true,
"pathFrom":"external",
"peerHost":"192.168.0.2",
"bdiFlap":4,
"peerUptime":"00:00:54",
"peerUptimeMsec":54000,
"peerUptimeEstablishedEpoch":1626355135,
"reuseTimerMsecs":2151000,
"asPath":"65000",
"origin":"?"
}
],"10.10.10.100/32": [
{
"valid":true,
"damped":true,
"pathFrom":"external",
"peerHost":"192.168.0.2",
"bdiFlap":4,
"peerUptime":"00:00:54",
"peerUptimeMsec":54000,
"peerUptimeEstablishedEpoch":1626355135,
"reuseTimerMsecs":2151000,
"asPath":"65000",
"origin":"?"
}
],"192.168.1.0/24": [
{
"valid":true,
"damped":true,
"pathFrom":"external",
"peerHost":"192.168.0.2",
"bdiFlap":4,
"peerUptime":"00:00:54",
"peerUptimeMsec":54000,
"peerUptimeEstablishedEpoch":1626355135,
"reuseTimerMsecs":2151000,
"asPath":"65000",
"origin":"?"
}
] } }
```
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-07-15 16:20:02 +03:00
nguggarigoud
ea234209a1
tests: Fixing timing issue in evpn script.
...
Modified bgp timer values for faster convergence.
Signed-off-by: nguggarigoud <nguggarigoud@vmware.com>
2021-07-15 05:57:25 -07:00
Donatas Abraitis
e5be8c1dac
bgpd: Fix dampening dampened-paths json
crash
...
```
5 0x00007fccab6fac39 in json_object_boolean_true_add (obj=<optimized out>, key=<optimized out>) at lib/json.c:70
No locals.
6 0x000055c7b8c08ae5 in route_vty_short_status_out (vty=<optimized out>, path=0x55c7bb37dcf0, p=<optimized out>, json_path=0x55c7bb3735a0)
at bgpd/bgp_route.c:8566
rpki_state = RPKI_NOT_BEING_USED
7 0x000055c7b8c22d1b in flap_route_vty_out (afi=AFI_IP, json=0x55c7bb3735a0, use_json=true, safi=SAFI_UNICAST, display=0, path=0x55c7bb37dcf0,
p=0x55c7bb37dea0, vty=0x55c7bb39e4c0) at bgpd/bgp_route.c:9600
attr = <optimized out>
bdi = 0x55c7bb377950
timebuf = '\000' <repeats 24 times>
len = <optimized out>
8 bgp_show_table (vty=0x55c7bb39e4c0, bgp=0x55c7bb316300, safi=safi@entry=SAFI_UNICAST, table=0x55c7bb314d90, type=bgp_show_type_flap_statistics,
output_arg=0x0, rd=0x0, is_last=1, output_cum=0x0, total_cum=0x0, json_header_depth=0x7ffeefd649f8, show_flags=1, rpki_target_state=RPKI_NOT_BEING_USED)
at bgpd/bgp_route.c:11110
```
With fix:
```
exit1-debian-9# sh ip bgp dampening dampened-paths
BGP table version is 16, local router ID is 10.10.10.200, vrf id 0
Default local pref 100, local AS 65001
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network From Reuse Path
*d 10.0.0.0/24 192.168.0.2 00:21:08 65000 ?
*d 10.10.10.100/32 192.168.0.2 00:21:08 65000 ?
*d 192.168.1.0/24 192.168.0.2 00:21:08 65000 ?
Displayed 3 routes and 10 total paths
exit1-debian-9# sh ip bgp dampening dampened-paths json
{
"vrfId": 0,
"vrfName": "default",
"tableVersion": 16,
"routerId": "10.10.10.200",
"defaultLocPrf": 100,
"localAS": 65001,
"routes": { "10.0.0.0/24": [
{
"valid":true,
"damped":true,
"pathFrom":"external",
"reuseTimerMsecs":1263000,
"asPath":"65000",
"origin":"?",
"peerHost":"192.168.0.2"
}
],"10.10.10.100/32": [
{
"valid":true,
"damped":true,
"pathFrom":"external",
"reuseTimerMsecs":1263000,
"asPath":"65000",
"origin":"?",
"peerHost":"192.168.0.2"
}
],"192.168.1.0/24": [
{
"valid":true,
"damped":true,
"pathFrom":"external",
"reuseTimerMsecs":1263000,
"asPath":"65000",
"origin":"?",
"peerHost":"192.168.0.2"
}
] } }
```
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-07-15 15:55:46 +03:00
Donald Sharp
b59839af7d
zebra: When passing lookup information back pass the fully resolved
...
In the reachability code we auto pass back the fully resolved
nexthops. Modify the ZEBRA_IPV4_NEXTHOP_LOOKUP_MRIB code
to do the exact same thing so that the zclient_lookup_nexthop
code does not need to recursively look for the data that
zebra already has.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-07-15 08:50:09 -04:00
Donald Sharp
5f179a1a61
Merge pull request #9018 from LabNConsulting/chopps/triage-features
...
tests: add triage features: strace, asan-abort, and shells/vtys/gdbs for docker runs too
2021-07-15 08:37:15 -04:00
nguggarigoud
ad03ea8ebf
tests: Adding lib changes for bgp peer type verification.
...
Signed-off-by: nguggarigoud <nguggarigoud@vmware.com>
2021-07-15 05:28:08 -07:00
Donald Sharp
4a09f22f3d
doc: Document the maximum-paths command for bgp
...
This was apparently missing from our documentation.
Let's add it in.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-07-15 08:10:10 -04:00
Igor Ryzhov
ac43358c17
Merge pull request #9051 from opensourcerouting/bgp-bfd-crash-fix
2021-07-15 01:14:22 +03:00
Donatas Abraitis
5fa869fcc7
tests: Check if pfxSnt is adjusted when default-originate is used for BGP
...
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-07-15 00:10:38 +03:00
Donatas Abraitis
fea96c555b
bgpd: Increase sent prefix count per subgrp when originating default route
...
Before we didn't count default-originate to pfxSnt.
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-07-14 23:55:20 +03:00
Alexander Skorichenko
24f569e9cc
bgpd: Clear capabilities field when resetting a bgp neighbor
...
Currently, the following sequence of events between peers could
result in erroneous capability reports on the peer
with enabled dont-capability-negotiate option:
- having some of the capabilities advertised to a bgp neighbor,
- then disabling capability negotiation to that neighbor,
- then resetting connection to it,
- and no capabilities are actually sent to the neighbor,
- but "show bgp neighbors" on the host still displays them
as advertised to the neighbor.
There are two possibilities for establishing a new connection
- the established connection was initiated by us with bgp_start(),
- the connection was initiated on the neighbor side and processed by
us via bgp_accept() in bgp_network.c.
The former case results in "show bgp neighbors" displaying only
"received" in capabilities, as the peer's cap is initiated to zero
in bgp_start().
In the latter case, if bgp_accept() happens before bgp_start()
is called, then new peer capabilities are being transferred
from its previous record before being zeroed in bgp_start().
This results in "show bgp neighbors" still displaying
"advertised and received" in capabilities.
Following the logic of a similar af_cap field clearing,
treated correctly in both cases, we
- reset peer's capability during bgp_stop()
- don't pass it over to a new peer structure in bgp_accept().
This fix prevents transferring of the previous capabilities record
to a new peer instance in arbitrary reconnect scenario.
Signed-off-by: Alexander Skorichenko <askorichenko@netgate.com>
2021-07-14 16:43:37 -04:00
Christian Hopps
0ba1d257be
tests: add triage features: strace, asan-abort, docker exec
...
TMUX and Screen support when running topotests inside docker. This
allows the gdb, shell and vtysh features to correctly work even when
running the tests inside docker.
Add options:
--asan-abort :: aborts the process on ASAN errors
--strace-daemons :: strace some or all daemons
Signed-off-by: Christian Hopps <chopps@labn.net>
2021-07-14 15:55:40 -04:00
Rafael Zalamena
ae2ba0c219
ospf6d: remove extra debug message
...
Somehow the hello message debugging code slipped outside the debug
guard. Lets just remove it.
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-07-14 14:52:26 -03:00
Rafael Zalamena
373de4b5b0
bgpd: fix crash during configuration removal
...
Test the BFD config pointer before trying to free the session as it
might not exist.
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-07-14 14:42:48 -03:00