]> git.puffer.fish Git - mirror/frr.git/log
mirror/frr.git
2 years agogithub: Add base branch label to every PR to distinguish easily 11362/head
Donatas Abraitis [Wed, 8 Jun 2022 08:34:25 +0000 (11:34 +0300)]
github: Add base branch label to every PR to distinguish easily

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoMerge pull request #11320 from FRRouting/mergify/bp/stable/8.2/pr-11300
Donatas Abraitis [Wed, 1 Jun 2022 05:08:24 +0000 (08:08 +0300)]
Merge pull request #11320 from FRRouting/mergify/bp/stable/8.2/pr-11300

tools: add eigrp support on frr-reload (backport #11300)

2 years agotools: add eigrp support on frr-reload 11320/head
Christian Poessinger [Sun, 29 May 2022 08:56:56 +0000 (10:56 +0200)]
tools: add eigrp support on frr-reload

Signed-off-by: Christian Poessinger <christian@poessinger.com>
(cherry picked from commit 93ced413424fdc732307add57b178a0bde86376f)

2 years agoMerge pull request #11308 from FRRouting/mergify/bp/stable/8.2/pr-11277
Donatas Abraitis [Tue, 31 May 2022 11:57:10 +0000 (14:57 +0300)]
Merge pull request #11308 from FRRouting/mergify/bp/stable/8.2/pr-11277

pimd: Allow the LPM match work properly with prefix lists and normal … (backport #11277)

2 years agoMerge pull request #11306 from FRRouting/mergify/bp/stable/8.2/pr-11291
Donald Sharp [Tue, 31 May 2022 11:43:45 +0000 (07:43 -0400)]
Merge pull request #11306 from FRRouting/mergify/bp/stable/8.2/pr-11291

bgpd: Memory leak for community alias (backport #11291)

2 years agopimd: Allow the LPM match work properly with prefix lists and normal rp's 11308/head
Donald Sharp [Tue, 24 May 2022 17:33:35 +0000 (13:33 -0400)]
pimd: Allow the LPM match work properly with prefix lists and normal rp's

All rp_info's are being saved in the pim->rp_list and the non prefix-list
rp's are supposed to be saved in table pim->rp_table.  What was happening,
though, is that all the plists were being stored at the 224.0.0.0/4 node
of the tree(irrelevant to the fact that we should not be looking up the
non-prefix list rp's in the table) and since we can have multiple prefix lists
and only one rp_info stored at the 224.0.0.0/4 node of the tree, there can be situations
where the 224.0.0.0/4 node can be overwritten due to the order entered.

As such there exists situations where command enter ordering will cause
what we match to, change in pim_rp_find_match_group.

Fixes:

a) Do not store prefix list based rp_info's in the pim->rp_table
b) In pim_rp_find_match_group, ensure that the node lookup does
not correspond to a prefix list based node.
c) When in the situation there are both:
ip pim rp 4.5.6.7 224.0.0.0/16
ip pim rp 5.6.67.8 prefix-list FOO
ip prefix-list FOO permit 224.0.1.0/24
and we receive a group for 224.0.1.5, we were comparing the
224.0.0.0/16 to the 224.0.0.0/4 of the 5.6.67.8 group, when
FRR should have been comparing to entry that matched in the prefix-list

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit 94dc0c4ed4bbca84ad32cb45bbc492e9cae90d73)

2 years agobgpd: Simplify BGP community alias handling 11306/head
Donatas Abraitis [Thu, 26 May 2022 17:15:35 +0000 (20:15 +0300)]
bgpd: Simplify BGP community alias handling

Also, warn in CLI an operator if we are trying to overwrite an existing
community alias with an existing alias.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 8cfa1e78463844518bb95d59fee2da440bbd208e)

2 years agobgpd: Distinguish BGP community alias memory separately from community
Donatas Abraitis [Thu, 26 May 2022 12:43:42 +0000 (15:43 +0300)]
bgpd: Distinguish BGP community alias memory separately from community

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 5b0f36a8f70a6c224771bea4707f6d3c869c0145)

2 years agobgpd: Fix memory leak for BGP community alias in CLI
Donatas Abraitis [Thu, 26 May 2022 11:03:02 +0000 (14:03 +0300)]
bgpd: Fix memory leak for BGP community alias in CLI

Before:
```
root@spine1-debian-11:~/frr# vtysh -c 'show memory bgpd | include Large Community'
Large Community               :      100     40        4000      100      4000
Large Community value         :      100     12        2400      100      2400
root@spine1-debian-11:~/frr# for x in $(seq 1 100); do vtysh -c 'conf' -c 'bgp community alias 123:123:123 testas' > /dev/null; done
root@spine1-debian-11:~/frr# vtysh -c 'show memory bgpd | include Large Community'
Large Community               :      200     40        8000      200      8000
Large Community value         :      200     12        4800      200      4800
root@spine1-debian-11:~/frr# for x in $(seq 1 100); do vtysh -c 'conf' -c 'bgp community alias 123:123:123 testas' > /dev/null; done
root@spine1-debian-11:~/frr# vtysh -c 'show memory bgpd | include Large Community'
Large Community               :      300     40       12000      300     12000
Large Community value         :      300     12        7200      300      7200
root@spine1-debian-11:~/frr#
```

After:
```
root@spine1-debian-11:~/frr# vtysh -c 'show memory bgpd | include Large Community'
Large Community               :        0     40           0        1        56
Large Community display string:        0   8192           0        1      8200
Large Community value         :        0     12           0        1        24
root@spine1-debian-11:~/frr# for x in $(seq 1 100); do vtysh -c 'conf' -c 'bgp community alias 123:123:123 testas' > /dev/null; done
root@spine1-debian-11:~/frr# vtysh -c 'show memory bgpd | include Large Community'
Large Community               :        0     40           0        1        56
Large Community display string:        0   8192           0        1      8200
Large Community value         :        0     12           0        1        24
root@spine1-debian-11:~/frr#
```

After we call [l]community_str2com(), we should free the memory.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit d13d137a1baaea39a24d857de54200dca39410b2)

2 years agoMerge pull request #11264 from FRRouting/mergify/bp/stable/8.2/pr-11261
Donald Sharp [Tue, 24 May 2022 21:52:33 +0000 (17:52 -0400)]
Merge pull request #11264 from FRRouting/mergify/bp/stable/8.2/pr-11261

bgpd: Don't increment twice notification sent stats counter (backport #11261)

2 years agoMerge pull request #11251 from FRRouting/mergify/bp/stable/8.2/pr-11218
Russ White [Tue, 24 May 2022 15:27:33 +0000 (11:27 -0400)]
Merge pull request #11251 from FRRouting/mergify/bp/stable/8.2/pr-11218

bgpd: Show a correct local AS for the advertised/bestpath routes (backport #11218)

2 years agobgpd: Don't increment twice notification sent stats counter 11264/head
Donatas Abraitis [Tue, 24 May 2022 07:04:50 +0000 (10:04 +0300)]
bgpd: Don't increment twice notification sent stats counter

Before:

```
$ vtysh -c 'clear ip bgp 192.168.10.17'
$ vtysh -c 'show bgp neighbor 192.168.10.17 json' | jq '."192.168.10.17".messageStats.notificationsSent'
2
```

After:

```
$ vtysh -c 'clear ip bgp 192.168.10.17'
$ vtysh -c 'show bgp neighbor 192.168.10.17 json' | jq '."192.168.10.17".messageStats.notificationsSent'
1
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 41b1d7a3a4a24c1db1f1efb9eaacf6435605de8c)

2 years agobgpd: Show a correct local AS for the advertised/bestpath routes 11251/head
Donatas Abraitis [Wed, 18 May 2022 10:34:02 +0000 (13:34 +0300)]
bgpd: Show a correct local AS for the advertised/bestpath routes

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 114fc22915c7bb9ec1b197b3deacc9fef8b391bc)

2 years agoMerge pull request #11196 from opensourcerouting/fix/backport_56b91d107ffc090c621bac4...
Igor Ryzhov [Fri, 13 May 2022 13:33:17 +0000 (16:33 +0300)]
Merge pull request #11196 from opensourcerouting/fix/backport_56b91d107ffc090c621bac4f2ff93712c49f0d7b_8.2

bgpd: [8.2] Prevent crash when issuing various forms of `bgp no-rib`

2 years agoMerge pull request #11193 from opensourcerouting/fix/backport_007784ccff3413110e78ba7...
Igor Ryzhov [Fri, 13 May 2022 11:27:00 +0000 (14:27 +0300)]
Merge pull request #11193 from opensourcerouting/fix/backport_007784ccff3413110e78ba7d32f3606b565484ef

pimd: [8.2] registerTx should show sent registrations, not received

2 years agobgpd: Prevent crash when issuing various forms of `bgp no-rib` 11196/head
Donald Sharp [Thu, 12 May 2022 13:39:27 +0000 (09:39 -0400)]
bgpd: Prevent crash when issuing various forms of `bgp no-rib`

The `bgp no-rib` command cycles through all the bgp rib tables
and removes them from zebra.  Modify the code so that FRR notices
that it is attempting to cycle through the safi's that are two level
tables.  In addition these safi's cannot just blindly remove the routes
from the rib as that there are none explicitly.

This code just prevents the crash in bgpd.  It does not properly cycle
through and remove the zebra changes made that are explicit to these afi's.
This should be handled as appropriate by the developers on these safi's when
it becomes important to them.

Fixes: #11178
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agopimd: registerTx should show sent registrations, not received 11193/head
Donatas Abraitis [Thu, 12 May 2022 14:10:27 +0000 (17:10 +0300)]
pimd: registerTx should show sent registrations, not received

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoMerge pull request #11173 from opensourcerouting/fix/rpki_8.2_reverts
Russ White [Tue, 10 May 2022 15:23:57 +0000 (11:23 -0400)]
Merge pull request #11173 from opensourcerouting/fix/rpki_8.2_reverts

bgpd: [8.2] RPKI reverts

2 years agobgpd: Convert int -> void for thread functions in RPKI 11173/head
Donatas Abraitis [Tue, 10 May 2022 06:39:39 +0000 (09:39 +0300)]
bgpd: Convert int -> void for thread functions in RPKI

int -> void not yet in 8.2, thus keeping the same format.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agobgpd: Make sure we print stats if we are sync at least with a single group
Donatas Abraitis [Tue, 3 May 2022 12:13:23 +0000 (15:13 +0300)]
bgpd: Make sure we print stats if we are sync at least with a single group

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoRevert "bgpd: Handle TCP connection errors with connection callbacks for RPKI"
Donatas Abraitis [Tue, 3 May 2022 12:09:52 +0000 (15:09 +0300)]
Revert "bgpd: Handle TCP connection errors with connection callbacks for RPKI"

This reverts commit db3aca462b7d721da85dde12bcc5808f9c32c981.

Connection handling is already fixed in librtr 0.8.0.
https://github.com/rtrlib/rtrlib/releases/tag/v0.8.0

https://github.com/rtrlib/rtrlib/commit/179e7efb59529008eed77b3cf783667435dfba9f

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoRevert "bgpd: Fix while(read()) for RPKI sync callback"
Donatas Abraitis [Tue, 3 May 2022 12:08:35 +0000 (15:08 +0300)]
Revert "bgpd: Fix while(read()) for RPKI sync callback"

This reverts commit b4fc876a327a89dc212efa48a04b76e53263722f.

2 years agoMerge pull request #11125 from FRRouting/mergify/bp/stable/8.2/pr-11090
Donald Sharp [Mon, 2 May 2022 18:14:14 +0000 (14:14 -0400)]
Merge pull request #11125 from FRRouting/mergify/bp/stable/8.2/pr-11090

lib: Ignore duplicate alist/plist entries in CLI (backport #11090)

3 years agoMerge pull request #11126 from FRRouting/mergify/bp/stable/8.2/pr-11122
Donatas Abraitis [Fri, 29 Apr 2022 20:08:25 +0000 (23:08 +0300)]
Merge pull request #11126 from FRRouting/mergify/bp/stable/8.2/pr-11122

bgpd: fix size of esi_buf (backport #11122)

3 years agoMerge pull request #11124 from FRRouting/mergify/bp/stable/8.2/pr-11106
Donatas Abraitis [Fri, 29 Apr 2022 18:46:27 +0000 (21:46 +0300)]
Merge pull request #11124 from FRRouting/mergify/bp/stable/8.2/pr-11106

Werror error error (backport #11106)

3 years agobgpd: fix size of esi_buf 11126/head
Dmitrii Turlupov [Fri, 29 Apr 2022 11:56:25 +0000 (14:56 +0300)]
bgpd: fix size of esi_buf

Fixes: #11111
Signed-off-by: Dmitrii Turlupov <dturlupov@factor-ts.ru>
(cherry picked from commit 5f933e1eca39ae7aed935502da0c469b8fb2c16a)

3 years agolib: Ignore duplicate alist/plist entries in CLI 11125/head
Donatas Abraitis [Mon, 25 Apr 2022 16:06:49 +0000 (19:06 +0300)]
lib: Ignore duplicate alist/plist entries in CLI

If duplicate value is entered, the whole plist/alist just dropped.

Before:
```
$ grep prefix-list /etc/frr/frr.conf
ip prefix-list test seq 5 permit 1.1.1.1/32
ip prefix-list test seq 10 permit 1.1.1.1/32
$ systemctl restart frr
$ vtysh -c 'show run | include prefix-list'
$
```

After:
```
$ grep prefix-list /etc/frr/frr.conf
ip prefix-list test seq 5 permit 1.1.1.1/32
ip prefix-list test seq 10 permit 1.1.1.1/32
$ systemctl restart frr
$ vtysh -c 'show run | include prefix-list'
ip prefix-list test seq 5 permit 1.1.1.1/32
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 1db0e0c6c8aba5023f807a1be03ca97d20f3c20d)

3 years agotests: Correctly align variable type in tests 11124/head
Donald Sharp [Wed, 27 Apr 2022 12:16:50 +0000 (08:16 -0400)]
tests: Correctly align variable type in tests

New compilers are noticing that the tests are compiling with
a pointer for the bgpd_privs variable while the bgp library
that is being linked against is not a pointer.  Since
these tests had the declaration just to make the compiler
happy, let's actually align the variable type to make the
compiler even happier.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit fcf6dce79a2e1ee4b7a5b4bb565f1755cda0d1f4)

3 years agobgpd: Ensure pkt_afi and pkt_safi are not used uninited in some cases
Donald Sharp [Wed, 27 Apr 2022 11:57:41 +0000 (07:57 -0400)]
bgpd: Ensure pkt_afi and pkt_safi are not used uninited in some cases

The compiler is, rightly, pointing out that in some cases it is
possible that the pkt_afi and pkt_safi values are not properly
set and could result in a use before initialized.  I do not
actually belive that this is possible, but let's make the compiler
happy.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit 617975d114f41116a15f81ecf6f6c57487fc2e82)

3 years agoMerge pull request #11117 from FRRouting/mergify/bp/stable/8.2/pr-11095
Donatas Abraitis [Fri, 29 Apr 2022 04:16:25 +0000 (07:16 +0300)]
Merge pull request #11117 from FRRouting/mergify/bp/stable/8.2/pr-11095

bgpd: ensure that the node gets unlocked in all cases (backport #11095)

3 years agobgpd: ensure that the node gets unlocked in all cases 11117/head
Carl Baldwin [Wed, 29 Dec 2021 21:32:33 +0000 (14:32 -0700)]
bgpd: ensure that the node gets unlocked in all cases

The logic to unlock dest if iteration completed without iterating the
entire node was flawed. Specifically, if iteration terminated due to
`gr_deferred == 0` then the node would not get unlocked.

This change takes into account the fact that dest will be NULL only in
the case when the entire table was iterated and all nodes were already
unlocked. In any other case, it needs to be unlocked.

Signed-off-by: Carl Baldwin <carl@ecbaldwin.net>
(cherry picked from commit 067ea16598a444b1ecfda5012f96acb038ba041e)

3 years agoMerge pull request #11100 from FRRouting/mergify/bp/stable/8.2/pr-11089
Donald Sharp [Tue, 26 Apr 2022 19:26:57 +0000 (15:26 -0400)]
Merge pull request #11100 from FRRouting/mergify/bp/stable/8.2/pr-11089

build: fix new gcc 11.2 warnings (backport #11089)

3 years agobuild: fix new gcc 11.2 warnings 11100/head
David Lamparter [Mon, 25 Apr 2022 12:07:41 +0000 (14:07 +0200)]
build: fix new gcc 11.2 warnings

Some recent improvement in GCC triggers 2 new warnings, and they're
actual bugs (reading beyond end of prefix_ipv6 by accessing it as
prefix, which is larger.)  Luckily it's only in sharpd.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
(cherry picked from commit 5c7a6fb36c0cf8113c19af7354782838988b263b)

3 years agoMerge pull request #11094 from FRRouting/mergify/bp/stable/8.2/pr-11081
Donatas Abraitis [Tue, 26 Apr 2022 06:12:34 +0000 (09:12 +0300)]
Merge pull request #11094 from FRRouting/mergify/bp/stable/8.2/pr-11081

bgpd: Fix import check removal (backport #11081)

3 years agobgpd: Fix import check removal 11094/head
Donald Sharp [Sun, 24 Apr 2022 20:52:46 +0000 (16:52 -0400)]
bgpd: Fix import check removal

Fix: 06e4e90132ad23815c6f288dd7e6be334f5ab233

Modified BGP to pay more attention the prefix returned from
zebra to ensure that a LPM wasn't accidently causing BGP
import checks to think it had a match when it did not.
This unfortunately removed the check to handle the route
removal.

This sequence of config and events would leave BGP in a bad state:
ip route 100.100.100.0/24 Null0
router bgp 32932
  bgp network import-check
  address-family ipv4 uni
    network 100.100.100.0/24

Then if you removed the static route the import check would
still think the route existed:

donatas-pc(config)# ip route 100.100.100.0/24 Null0

donatas-pc(config)# do sh ip bgp import-check-table
Current BGP import check cache:
 100.100.100.0 valid [IGP metric 0], #paths 1
  blackhole
  Last update: Sat Apr 23 22:51:34 2022

donatas-pc(config)# do sh ip nht
100.100.100.0
 resolved via static
 is directly connected, Null0
 Client list: bgp(fd 17)

donatas-pc(config)# do sh ip bgp neighbors 192.168.10.123 advertised-routes | include 100.100.100.0
*> 100.100.100.0/24 0.0.0.0                  0         32768 i

donatas-pc(config)# no ip route 100.100.100.0/24 Null0

donatas-pc(config)# do sh ip nht
100.100.100.0
 resolved via kernel
 via 192.168.10.1, enp3s0
 Client list: bgp(fd 17)

donatas-pc(config)# do sh ip bgp import-check-table
Current BGP import check cache:
 100.100.100.0 valid [IGP metric 0], #paths 1
  blackhole
  Last update: Sat Apr 23 22:51:34 2022

donatas-pc(config)# do sh ip bgp neighbors 192.168.10.123 advertised-routes | include 100.100.100.0
*> 100.100.100.0/24 0.0.0.0                  0         32768 i
donatas-pc(config)#

Fix this by moving the code to handle the prefix check to the
evaluation function and mark the bnc as not matching and actually
evaluate the bnc.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit 9f002fa5dd34e7d901b501e7d0306027d85b531a)

3 years agoMerge pull request #11082 from FRRouting/mergify/bp/stable/8.2/pr-11067
Donatas Abraitis [Mon, 25 Apr 2022 13:32:11 +0000 (16:32 +0300)]
Merge pull request #11082 from FRRouting/mergify/bp/stable/8.2/pr-11067

lib: Ensure an empty string does not get printed for host/domain (backport #11067)

3 years agolib: Ensure an empty string does not get printed for host/domain 11082/head
Donald Sharp [Thu, 21 Apr 2022 18:13:01 +0000 (14:13 -0400)]
lib: Ensure an empty string does not get printed for host/domain

End operator is showing:
!
frr version 8.0.1
frr defaults traditional
hostname test.example.com
domainname

domainname should not be printed in this case at all.  I do not
see any mechanism in current code that this could happen, but
what do I know?  Put some extra stupid insurance in place
to prevent bad config from being generated.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit a7141b85c8ded6f05edf51d5a61e063493fc85c7)

3 years agoMerge pull request #11057 from FRRouting/mergify/bp/stable/8.2/pr-11004
Donatas Abraitis [Wed, 20 Apr 2022 06:31:19 +0000 (09:31 +0300)]
Merge pull request #11057 from FRRouting/mergify/bp/stable/8.2/pr-11004

zebra: set ZEBRA_IFC_DOWN on connected routes for inactive interfaces (backport #11004)

3 years agoMerge pull request #11053 from opensourcerouting/fix/backport_c9e4abf81f32deb752fb55d...
Donald Sharp [Wed, 20 Apr 2022 00:02:32 +0000 (20:02 -0400)]
Merge pull request #11053 from opensourcerouting/fix/backport_c9e4abf81f32deb752fb55d8b1e3a9a7cdd9af31_8.2

zebra: [8.2] Allow system routes to recurse through themselves

3 years agozebra: set ZEBRA_IFC_DOWN on connected routes for inactive interfaces 11057/head
Volodymyr Huti [Mon, 11 Apr 2022 03:58:14 +0000 (06:58 +0300)]
zebra: set ZEBRA_IFC_DOWN on connected routes for inactive interfaces

If you are in a situation where you have multiple addresses on an
interface, zebra creates one connected route for them.
The issue is that the rib entry is not created if addresses were
added before the interface was running.

We add the address to a running interface in a typical flow.
Therefore, we handle the route & rib creation within a single ADD event.
In the opposite case, we create the route entries without activating them.
These are considered to be active since ZEBRA_IFC_DOWN is not set.
On the following interface UP, we ignore the same ADDR_ADD as it overlaps
with the existing prefixes -> rib is never created.

The minimal reproducible setup:
-----------------------------------------
ip link add name dummy0 type dummy
ip addr flush dev dummy0
ip link set dummy0 down
ip addr add 192.168.1.7/24 dev dummy0
ip addr add 192.168.1.8/24 dev dummy0
ip link set dummy0 up
vtysh -c 'show ip route' | grep dummy0

Signed-off-by: Volodymyr Huti <v.huti@vyos.io>
(cherry picked from commit 7fb9825cf7e762add68f5108df4eddda1247f198)

3 years agozebra: Allow system routes to recurse through themselves 11053/head
Donald Sharp [Sat, 9 Apr 2022 17:12:28 +0000 (13:12 -0400)]
zebra: Allow system routes to recurse through themselves

Currently if a end user has something like this:

Routing entry for 192.168.212.1/32
  Known via "kernel", distance 0, metric 100, best
  Last update 00:07:50 ago
  * directly connected, ens5

Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
       f - OpenFabric,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

K>* 0.0.0.0/0 [0/100] via 192.168.212.1, ens5, src 192.168.212.19, 00:00:15
C>* 192.168.212.0/27 is directly connected, ens5, 00:07:50
K>* 192.168.212.1/32 [0/100] is directly connected, ens5, 00:07:50

And FRR does a link flap, it refigures the route and rejects the default
route:

2022/04/09 16:38:20 ZEBRA: [NZNZ4-7P54Y] default(0:254):0.0.0.0/0: Processing rn 0x56224dbb5b00
2022/04/09 16:38:20 ZEBRA: [ZJVZ4-XEGPF] default(0:254):0.0.0.0/0: Examine re 0x56224dbddc20 (kernel) status: Changed Installed flags: Selected dist 0 metric 100
2022/04/09 16:38:20 ZEBRA: [GG8QH-195KE] nexthop_active_update: re 0x56224dbddc20 nhe 0x56224dbdd950 (7), curr_nhe 0x56224dedb550
2022/04/09 16:38:20 ZEBRA: [T9JWA-N8HM5] nexthop_active_check: re 0x56224dbddc20, nexthop 192.168.212.1, via ens5
2022/04/09 16:38:20 ZEBRA: [M7EN1-55BTH]         nexthop_active: Route Type kernel has not turned on recursion
2022/04/09 16:38:20 ZEBRA: [HJ48M-MB610]         nexthop_active_check: Unable to find active nexthop
2022/04/09 16:38:20 ZEBRA: [JPJF4-TGCY5] default(0:254):0.0.0.0/0: After processing: old_selected 0x56224dbddc20 new_selected 0x0 old_fib 0x56224dbddc20 new_fib 0x0

So the 192.168.212.1 route is matched for the nexthop but it is not connected and
zebra treats it as a problem.  Modify the code such that if a system route
matches through another system route, then it should work imo.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 years agoMerge pull request #11036 from ton31337/fix/backport_b17d5444f46c55fb131de4e0ab260bb1...
Donald Sharp [Tue, 19 Apr 2022 12:05:27 +0000 (08:05 -0400)]
Merge pull request #11036 from ton31337/fix/backport_b17d5444f46c55fb131de4e0ab260bb1bd7df93d_8.2

bgpd: [8.2] Pass non-transitive ext-communities between Route Server and RS clients

3 years agoMerge pull request #11041 from FRRouting/mergify/bp/stable/8.2/pr-11032
Donatas Abraitis [Tue, 19 Apr 2022 09:50:23 +0000 (12:50 +0300)]
Merge pull request #11041 from FRRouting/mergify/bp/stable/8.2/pr-11032

bgpd: fix NULL deference in evpn-mh's log (backport #11032)

3 years agobgpd: fix NULL deference in evpn-mh's log 11041/head
anlan_cs [Thu, 14 Apr 2022 07:45:48 +0000 (03:45 -0400)]
bgpd: fix NULL deference in evpn-mh's log

Fix NULL deference issue in log. And change one word - "vtep",
it should be with lowercase letters like other places.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
(cherry picked from commit 46281b21afc52b4cc23fb3bd19bce5eff0bbdd0c)

3 years agobgpd: Pass non-transitive ext-communities between Route Server and RS clients 11036/head
Donatas Abraitis [Wed, 13 Apr 2022 17:40:30 +0000 (20:40 +0300)]
bgpd: Pass non-transitive ext-communities between Route Server and RS clients

https://datatracker.ietf.org/doc/html/rfc7947#section-2.2

Optional recognized and unrecognized BGP attributes,
   whether transitive or non-transitive, SHOULD NOT be updated by the
   route server (unless enforced by local IXP operator configuration)
   and SHOULD be passed on to other route server clients.

By default LB ext-community works with iBGP peers. When we receive a route
from eBGP peer, we can send LB ext-community to iBGP peers.

With this patch, allow sending LB ext-community to iBGP/eBGP peers if they
are set as RS clients.

FRR does not send non-transitive ext-communities to eBGP peers, but for
example GoBGP sends and if it's set as RS client, we should pass those attributes
towards another RS client.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
3 years agoMerge pull request #11027 from FRRouting/mergify/bp/stable/8.2/pr-10987
Donatas Abraitis [Fri, 15 Apr 2022 05:07:46 +0000 (08:07 +0300)]
Merge pull request #11027 from FRRouting/mergify/bp/stable/8.2/pr-10987

bgpd: Do not forget to update conditional advertisements rmaps for peer-groups (backport #10987)

3 years agobgpd: Do not forget to update conditional advertisements rmaps for peer-groups 11027/head
Donatas Abraitis [Thu, 7 Apr 2022 20:01:02 +0000 (23:01 +0300)]
bgpd: Do not forget to update conditional advertisements rmaps for peer-groups

When the peer is configured for the first time:
```
neighbor P1 peer-group
neighbor P1 remote-as external
neighbor P1 advertise-map ADV exist-map EXIST
neighbor 10.10.10.1 peer-group P1
```

Conditional advertisements route-maps are not updated and cond. advertisements
do not work until FRR restarted. BGP sessions clear does not help.

Or even changing peer-group for a peer, causes this bug to kick in.

```
no neighbor 10.10.10.1
neighbor 10.10.10.1 peer-group P2
```

With this fix, cond. advertisements start working immediatelly.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 9118301e48af0dc0157184554601c767cbd25128)

3 years agoMerge pull request #11019 from opensourcerouting/fix/bgp_aliases_with_community_backp...
Russ White [Wed, 13 Apr 2022 18:56:47 +0000 (14:56 -0400)]
Merge pull request #11019 from opensourcerouting/fix/bgp_aliases_with_community_backport_8.2

bgpd: [8.2] Allow setting BGP [large]community in route-maps

3 years agobgpd: Allow setting BGP [large]community in route-maps 11019/head
Donatas Abraitis [Fri, 8 Apr 2022 19:57:47 +0000 (22:57 +0300)]
bgpd: Allow setting BGP [large]community in route-maps

Before:
```
spine1-debian-11(config-route-map)# bgp community alias 65001:65001 test1
spine1-debian-11(config)# route-map rm permit 10
spine1-debian-11(config-route-map)# set community 65001:65001
% Malformed communities attribute
```

After:
```
spine1-debian-11(config)# bgp community alias 65001:65001 test1
spine1-debian-11(config)# route-map rm permit 10
spine1-debian-11(config-route-map)# set community 65001:65001
spine1-debian-11(config-route-map)#
```

Same for large-communities.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
3 years agoMerge pull request #10990 from FRRouting/mergify/bp/stable/8.2/pr-10966
Donald Sharp [Sat, 9 Apr 2022 11:35:07 +0000 (07:35 -0400)]
Merge pull request #10990 from FRRouting/mergify/bp/stable/8.2/pr-10966

bgpd: RPKI changes (backport #10966)

3 years agoMerge pull request #10991 from FRRouting/mergify/bp/stable/8.2/pr-10971
Donald Sharp [Sat, 9 Apr 2022 11:34:42 +0000 (07:34 -0400)]
Merge pull request #10991 from FRRouting/mergify/bp/stable/8.2/pr-10971

bgpd: RPKI memory leak (backport #10971)

3 years agoMerge pull request #10992 from FRRouting/mergify/bp/stable/8.2/pr-10953
Donald Sharp [Sat, 9 Apr 2022 11:33:51 +0000 (07:33 -0400)]
Merge pull request #10992 from FRRouting/mergify/bp/stable/8.2/pr-10953

bgpd: Fix memory leak in subgroup_announce_check (backport #10953)

3 years agobgpd: Fix memory leak in subgroup_announce_check 10992/head
Xiao Liang [Sat, 2 Apr 2022 09:00:26 +0000 (17:00 +0800)]
bgpd: Fix memory leak in subgroup_announce_check

Flush dummy attr to release objects allocated by route-map.

Signed-off-by: Xiao Liang <shaw.leon@gmail.com>
(cherry picked from commit 7e7639f548cb3e3bfad8ee15ce6186a4ebe80488)

3 years agobgpd: Delay returning RPKI instance as running 10991/head
Donatas Abraitis [Tue, 5 Apr 2022 13:54:19 +0000 (16:54 +0300)]
bgpd: Delay returning RPKI instance as running

Start a separate timer which does the sync with the RPKI manager until
returns the synced status.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 1b2095d120e984a8d64496ca7d60ce59b7b3baa0)

3 years agobgpd: Return enum RPKI_NOT_BEING_USED instead of 0
Donatas Abraitis [Tue, 5 Apr 2022 12:52:40 +0000 (15:52 +0300)]
bgpd: Return enum RPKI_NOT_BEING_USED instead of 0

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit e1a05dd4101ffd0fdb64d0851f9726ca66dbe18c)

3 years agobgpd: Reuse is_stopping() in RPKI code same as with is_running()
Donatas Abraitis [Tue, 5 Apr 2022 11:14:00 +0000 (14:14 +0300)]
bgpd: Reuse is_stopping() in RPKI code same as with is_running()

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 9ca44fc8ef2a7193626e3bac1af698f877f5aa33)

3 years agobgpd: Reuse is_running() function in RPKI code for rtr_is_running
Donatas Abraitis [Tue, 5 Apr 2022 11:10:16 +0000 (14:10 +0300)]
bgpd: Reuse is_running() function in RPKI code for rtr_is_running

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 01fcc189829c0c14baa191595d9efe868761a02d)

3 years agobgpd: No need to check for NULL before calling XFREE() in RPKI code 10990/head
Donatas Abraitis [Tue, 5 Apr 2022 08:12:22 +0000 (11:12 +0300)]
bgpd: No need to check for NULL before calling XFREE() in RPKI code

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit c41a3cc5289f23d2aa70b5a9d8ddb7ebe408c54f)

3 years agobgpd: Track RTRLib memory allocations separately
Donatas Abraitis [Tue, 5 Apr 2022 08:02:07 +0000 (11:02 +0300)]
bgpd: Track RTRLib memory allocations separately

With fast `rpki reset`, seems that RTRLib related memory allocations leak
the memory. Need to figure this out later.

```
$ vtysh -c 'show memory | include RPKI'
BGP RPKI Cache server         :       12 variable       576       12       576
BGP RPKI Cache server group   :        0     48           0        1        56
BGP RPKI RTRLib               :   849657 variable  34453096   849662  41293504

$ for x in $(seq 1 60); do vtysh -c 'con' -c 'rpki' -c 'rpki reset'; sleep 1; done

$ vtysh -c 'show memory | include RPKI'
BGP RPKI Cache server         :       12 variable       576       12       576
BGP RPKI Cache server group   :        0     48           0        1        56
BGP RPKI RTRLib               :   849699 variable  69490616   849701  76323832
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 94ff78a7e3448a366288b14b674da8482f36afca)

3 years agoMerge pull request #10963 from FRRouting/mergify/bp/stable/8.2/pr-10946
Donatas Abraitis [Tue, 5 Apr 2022 06:09:55 +0000 (09:09 +0300)]
Merge pull request #10963 from FRRouting/mergify/bp/stable/8.2/pr-10946

pimd: Send immediate join( with possible SG RPT prune bit set (backport #10946)

3 years agopimd: Send immediate join( with possible SG RPT prune bit set 10963/head
Donald Sharp [Thu, 31 Mar 2022 17:07:06 +0000 (13:07 -0400)]
pimd: Send immediate join( with possible SG RPT prune bit set

When pimd has this setup:

src ----- rtr ------ receiver
           |
          rp

And the receiver sends a *,G join to rtr.  When the
src starts sending a S,G, rtr can wait up to one join/prune
interval before sending a S,G rpt prune.  This interval
causes the pimreg device to be in the S,G OIL as that the
RP does not know to prune this leg off.

before:

Timestamp: Thu Mar 31 10:15:18 2022 288767 usec
[MROUTE](10.103.0.5,239.0.0.4)           Iif: rtr-lan_src Oifs: rtr-lan  State: resolved Table: default
Timestamp: Thu Mar 31 10:15:18 2022 288777 usec
[MROUTE](10.103.0.5,239.0.0.4)           Iif: rtr-lan_src Oifs: rtr-lan rtr-lan-1  State: resolved Table: default
Timestamp: Thu Mar 31 10:15:18 2022 288789 usec
[MROUTE](10.103.0.5,239.0.0.4)           Iif: rtr-lan_src Oifs: pimreg rtr-lan rtr-lan-1  State: resolved Table: default
Timestamp: Thu Mar 31 10:15:49 2022 324995 usec
[MROUTE](10.103.0.5,239.0.0.4)           Iif: rtr-lan_src Oifs: rtr-lan rtr-lan-1  State: resolved Table: default
<31 seconds>

After:

Timestamp: Thu Mar 31 12:56:15 2022 501921 usec
(10.103.0.5,239.0.0.27)          Iif: rtr-lan_src Oifs: pimreg rtr-lan  State: resolved Table: default
Timestamp: Thu Mar 31 12:56:15 2022 501930 usec
(10.103.0.5,239.0.0.27)          Iif: rtr-lan_src Oifs: pimreg rtr-lan rtr-lan-1  State: resolved Table: default
Timestamp: Thu Mar 31 12:56:15 2022 502181 usec
(10.103.0.5,239.0.0.27)          Iif: rtr-lan_src Oifs: rtr-lan rtr-lan-1  State: resolved Table: default
<sub second>

What is actually happening:

rtr receives a *,G igmp join, sends a *,G join towards the rp
rtr receives a S,G packet <WRVIFWHOLE>
creates the S,G upstream, sends the register packet to the rp
the rp sees that it still has downstream interest so it forwards the packet on
After (up to 60 seconds ) the rtr, sends the normally scheduled join for
the G and sends the S,GRPT prune as part of it.

What is being done to fix it:

In wrvifwhole handling, when pimd detects that this is the FHR
and is not the RP *and* the incoming interface for the *,G
is different than the incomding interface for the S,G immediately
send a single join packet for the G( which will have the S,G RPT
prune in it ).  Only do this on the first time receiving the
WRVIFWHOLE.

Ticket: #2755650
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit 33ec4015b628143a09274421ad31debce788858d)

3 years agotests: Reduce some pim test timings to more manageable levels
Donald Sharp [Fri, 1 Apr 2022 12:47:38 +0000 (08:47 -0400)]
tests: Reduce some pim test timings to more manageable levels

a) Remove the retry mechanism to continue looking for 75%
of the time for pim code.

   This alone saves a bunch of time in tests that use lib/pim.py
   Effectively all the times given for retry are already long
   enough.  Additionally some tests are gathering data with
   the expectation that they will not find data so the entire
   time is being taken up in retry's.  Extending the retry
   mechanism makes this even worse.  This is especially bad
   for pim in that keep alive timers are counting down and
   state can be removed due to excessive time waiting.

b) Reduce verify verify_multicast_traffic from 40 seconds
to 20 seconds to gather traffic data.

   A bunch of tests are doing this:
   a) gather pre test start traffic data( taking about 70
   seconds to run, because a bunch of time it was looking
   for data that does not exist yet)
   b) run a change to introduce a different traffic flow
   c) gather post test traffic data ( taking about 70
   seconds to run )

   Why does this matter?  Tests were iterating through
   all the different routers looking for traffic flow
   as well as different mroute state.  This is against
   the keepalive timer of 210 seconds.  It does not take
   long before the stream can be removed and the test is
   still looking for data that is no longer there due
   to state timeout.

   The multicast_pim_sm_topo3/test_multicast_pim_sm_topo3.py
   test reduced run time from 398 seconds to 297 seconds.
   Greatly reducing keepalive timeout problems.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit de3d6b4db41eb3c3d3c88c0009ba647271d2f2b1)

3 years agoMerge pull request #10951 from FRRouting/mergify/bp/stable/8.2/pr-10945
Donald Sharp [Fri, 1 Apr 2022 19:12:58 +0000 (15:12 -0400)]
Merge pull request #10951 from FRRouting/mergify/bp/stable/8.2/pr-10945

zebra: don't send RAs w/o LLv6 or on bridge-ports (backport #10945)

3 years agozebra: don't send RAs w/o LLv6 or on bridge-ports 10951/head
Trey Aspelund [Thu, 31 Mar 2022 16:35:18 +0000 (16:35 +0000)]
zebra: don't send RAs w/o LLv6 or on bridge-ports

It's confusing for a user to see 'Tx RA failed' in the logs when
they've enabled RAs (either through interface config or BGP unnumbered)
on an interface that can't send them.  Let's avoid sending RAs on
interfaces that are bridge_slaves or don't have a link-local address,
since they are the two of the most common reasons for RA Tx failures.

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
(cherry picked from commit 436a6a3e5126549d4482d5813ddd57b8c02215af)

3 years agoMerge pull request #10949 from FRRouting/mergify/bp/stable/8.2/pr-10947
Donald Sharp [Fri, 1 Apr 2022 13:14:51 +0000 (09:14 -0400)]
Merge pull request #10949 from FRRouting/mergify/bp/stable/8.2/pr-10947

isisd, lib, ospfd, pathd: Null out free'd pointer (backport #10947)

3 years agoisisd, lib, ospfd, pathd: Null out free'd pointer 10949/head
Donald Sharp [Thu, 31 Mar 2022 19:56:24 +0000 (15:56 -0400)]
isisd, lib, ospfd, pathd: Null out free'd pointer

The commands:

router isis 1
  mpls-te on
  no mpls-te on
  mpls-te on
  no mpls-te on
!

Will crash

Valgrind gives us this:
==652336== Invalid read of size 8
==652336==    at 0x49AB25C: typed_rb_min (typerb.c:495)
==652336==    by 0x4943B54: vertices_const_first (link_state.h:424)
==652336==    by 0x493DCE4: vertices_first (link_state.h:424)
==652336==    by 0x493DADC: ls_ted_del_all (link_state.c:1010)
==652336==    by 0x47E77B: isis_instance_mpls_te_destroy (isis_nb_config.c:1871)
==652336==    by 0x495BE20: nb_callback_destroy (northbound.c:1131)
==652336==    by 0x495B5AC: nb_callback_configuration (northbound.c:1356)
==652336==    by 0x4958127: nb_transaction_process (northbound.c:1473)
==652336==    by 0x4958275: nb_candidate_commit_apply (northbound.c:906)
==652336==    by 0x49585B8: nb_candidate_commit (northbound.c:938)
==652336==    by 0x495CE4A: nb_cli_classic_commit (northbound_cli.c:64)
==652336==    by 0x495D6C5: nb_cli_apply_changes_internal (northbound_cli.c:250)
==652336==  Address 0x6f928e0 is 272 bytes inside a block of size 320 free'd
==652336==    at 0x48399AB: free (vg_replace_malloc.c:538)
==652336==    by 0x494BA30: qfree (memory.c:141)
==652336==    by 0x493D99D: ls_ted_del (link_state.c:997)
==652336==    by 0x493DC20: ls_ted_del_all (link_state.c:1018)
==652336==    by 0x47E77B: isis_instance_mpls_te_destroy (isis_nb_config.c:1871)
==652336==    by 0x495BE20: nb_callback_destroy (northbound.c:1131)
==652336==    by 0x495B5AC: nb_callback_configuration (northbound.c:1356)
==652336==    by 0x4958127: nb_transaction_process (northbound.c:1473)
==652336==    by 0x4958275: nb_candidate_commit_apply (northbound.c:906)
==652336==    by 0x49585B8: nb_candidate_commit (northbound.c:938)
==652336==    by 0x495CE4A: nb_cli_classic_commit (northbound_cli.c:64)
==652336==    by 0x495D6C5: nb_cli_apply_changes_internal (northbound_cli.c:250)
==652336==  Block was alloc'd at
==652336==    at 0x483AB65: calloc (vg_replace_malloc.c:760)
==652336==    by 0x494B6F8: qcalloc (memory.c:116)
==652336==    by 0x493D7D2: ls_ted_new (link_state.c:967)
==652336==    by 0x47E4DD: isis_instance_mpls_te_create (isis_nb_config.c:1832)
==652336==    by 0x495BB29: nb_callback_create (northbound.c:1034)
==652336==    by 0x495B547: nb_callback_configuration (northbound.c:1348)
==652336==    by 0x4958127: nb_transaction_process (northbound.c:1473)
==652336==    by 0x4958275: nb_candidate_commit_apply (northbound.c:906)
==652336==    by 0x49585B8: nb_candidate_commit (northbound.c:938)
==652336==    by 0x495CE4A: nb_cli_classic_commit (northbound_cli.c:64)
==652336==    by 0x495D6C5: nb_cli_apply_changes_internal (northbound_cli.c:250)
==652336==    by 0x495D23E: nb_cli_apply_changes (northbound_cli.c:268)

Let's null out the pointer.  After this change.  Valgrind no longer reports issues
and isisd no longer crashes.

Fixes: #10939
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit aa5ced0ac866d1645075bef6325884dcb71a3703)

3 years agoMerge pull request #10941 from FRRouting/mergify/bp/stable/8.2/pr-10937
Donald Sharp [Thu, 31 Mar 2022 17:40:11 +0000 (13:40 -0400)]
Merge pull request #10941 from FRRouting/mergify/bp/stable/8.2/pr-10937

bgpd: Show `match script SCRIPT` in running config (backport #10937)

3 years agobgpd: Show `match script SCRIPT` in running config 10941/head
Donatas Abraitis [Thu, 31 Mar 2022 06:34:14 +0000 (09:34 +0300)]
bgpd: Show `match script SCRIPT` in running config

Before:
```
route-map lua permit 10
exit
```

After:
```
route-map lua permit 10
 match script rm
exit
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 49ecb8b807eb429d8d09afb07b1af5e1b5408be4)

3 years agoMerge pull request #10929 from FRRouting/mergify/bp/stable/8.2/pr-10918
Igor Ryzhov [Thu, 31 Mar 2022 08:18:51 +0000 (11:18 +0300)]
Merge pull request #10929 from FRRouting/mergify/bp/stable/8.2/pr-10918

3 years agoMerge pull request #10930 from FRRouting/mergify/bp/stable/8.2/pr-10922
Donald Sharp [Wed, 30 Mar 2022 16:33:49 +0000 (12:33 -0400)]
Merge pull request #10930 from FRRouting/mergify/bp/stable/8.2/pr-10922

ospf6d: fix crash when applying a route-map on a temporary route (backport #10922)

3 years agoospf6d: fix crash when applying a route-map on a temporary route 10930/head
Igor Ryzhov [Tue, 29 Mar 2022 15:09:53 +0000 (18:09 +0300)]
ospf6d: fix crash when applying a route-map on a temporary route

ospf6_routemap_rule_match_interface uses route->ospf6 field for matching
so we must fill the field in our temporary variable.

Fixes #10911.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
(cherry picked from commit 68618ebca80938445959eb62e08f8ede67b53e0d)

3 years agoMerge pull request #10920 from FRRouting/mergify/bp/stable/8.2/pr-10834
Donald Sharp [Wed, 30 Mar 2022 12:28:03 +0000 (08:28 -0400)]
Merge pull request #10920 from FRRouting/mergify/bp/stable/8.2/pr-10834

ospfd: Default route becomes stale  route in nbrs even after flush from originator (backport #10834)

3 years agoMerge pull request #10921 from FRRouting/mergify/bp/stable/8.2/pr-10906
Donald Sharp [Wed, 30 Mar 2022 12:27:28 +0000 (08:27 -0400)]
Merge pull request #10921 from FRRouting/mergify/bp/stable/8.2/pr-10906

bgpd: Stop LLGR timer when the connection is established (backport #10906)

3 years agobgpd: Make sure we pop the table from the stack when decoding struct attr 10929/head
Donatas Abraitis [Tue, 29 Mar 2022 14:47:28 +0000 (17:47 +0300)]
bgpd: Make sure we pop the table from the stack when decoding struct attr

```
bgpd[81718]: bgpd/bgp_routemap.c:382: route_match_script(): assertion (lua_gettop(lfs->L) == 1) failed
BGP[81718]: Received signal 6 at 1648554165 (si_addr 0x6e00013f36, PC 0x7fcc5adebce1); aborting...
BGP[81718]: /usr/local/lib/libfrr.so.0(zlog_backtrace_sigsafe+0x5e) [0x7fcc5b1caf5e]
BGP[81718]: /usr/local/lib/libfrr.so.0(zlog_signal+0xe6) [0x7fcc5b1cb136]
BGP[81718]: /usr/local/lib/libfrr.so.0(+0xcd4b2) [0x7fcc5b1f54b2]
BGP[81718]: /lib/x86_64-linux-gnu/libpthread.so.0(+0x14140) [0x7fcc5af89140]
BGP[81718]: /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x141) [0x7fcc5adebce1]
BGP[81718]: /lib/x86_64-linux-gnu/libc.so.6(abort+0x123) [0x7fcc5add5537]
BGP[81718]: /usr/local/lib/libfrr.so.0(_zlog_assert_failed+0xd7) [0x7fcc5b21ecd7]
BGP[81718]: /usr/lib/frr/bgpd(+0x162710) [0x55ed70255710]
BGP[81718]: /usr/local/lib/libfrr.so.0(+0xc0e47) [0x7fcc5b1e8e47]
BGP[81718]: /usr/local/lib/libfrr.so.0(route_map_apply_ext+0x4b6) [0x7fcc5b1eaaf6]
BGP[81718]: /usr/lib/frr/bgpd(+0x13eb24) [0x55ed70231b24]
BGP[81718]: /usr/lib/frr/bgpd(bgp_update+0x7db) [0x55ed7023f81b]
BGP[81718]: /usr/lib/frr/bgpd(bgp_nlri_parse_ip+0x113) [0x55ed70241bc3]
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 9aa2174c3990169e46b23b6e07cd87c145e364ed)

3 years agobgpd: Do not print .lua extension twice
Donatas Abraitis [Tue, 29 Mar 2022 09:11:57 +0000 (12:11 +0300)]
bgpd: Do not print .lua extension twice

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 93b2d38aedcf6d42e63d50b353927134a832e57a)

3 years agobgpd: Stop LLGR timer when the connection is established 10921/head
Donatas Abraitis [Mon, 28 Mar 2022 08:41:35 +0000 (11:41 +0300)]
bgpd: Stop LLGR timer when the connection is established

When the connection goes up, the timer is not stopped and if we have a
subsequent GR event we have an old timer which is not as we expect.

Before:
```
spine1-debian-11# sh ip bgp 192.168.100.1/32
BGP routing table entry for 192.168.100.1/32, version 95
Paths: (1 available, best #1, table default, mark routes to be retained for a longer time. Requires support for Long-lived BGP Graceful Restart)
  Not advertised to any peer
  65001 47583, (stale)
    192.168.0.1 from 192.168.0.1 (100.100.200.100)
      Origin incomplete, valid, external, best (First path received)
      Community: llgr-stale
      Last update: Mon Mar 28 08:27:53 2022
      Time until Long-lived stale route deleted: 23 <<<<<<<<<<<<

spine1-debian-11# sh ip bgp 192.168.100.1/32
BGP routing table entry for 192.168.100.1/32, version 103
Paths: (1 available, best #1, table default)
  Advertised to non peer-group peers:
  192.168.0.1
  65001 47583
    192.168.0.1 from 192.168.0.1 (100.100.200.100)
      Origin incomplete, valid, external, best (First path received)
      Last update: Mon Mar 28 08:43:29 2022

spine1-debian-11# sh ip bgp 192.168.100.1/32
BGP routing table entry for 192.168.100.1/32, version 103
Paths: (1 available, best #1, table default, mark routes to be retained for a longer time. Requires support for Long-lived BGP Graceful Restart)
  Not advertised to any peer
  65001 47583, (stale)
    192.168.0.1 from 192.168.0.1 (100.100.200.100)
      Origin incomplete, valid, external, best (First path received)
      Community: llgr-stale
      Last update: Mon Mar 28 08:43:30 2022
      Time until Long-lived stale route deleted: 17 <<<<<<<<<<<<<<<
```

After:
```
spine1-debian-11# sh ip bgp 192.168.100.1/32
BGP routing table entry for 192.168.100.1/32, version 79
Paths: (1 available, best #1, table default, mark routes to be retained for a longer time. Requires support for Long-lived BGP Graceful Restart)
  Not advertised to any peer
  65001 47583, (stale)
    192.168.0.1 from 192.168.0.1 (0.0.0.0)
      Origin incomplete, valid, external, best (First path received)
      Community: llgr-stale
      Last update: Mon Mar 28 09:05:18 2022
      Time until Long-lived stale route deleted: 24 <<<<<<<<<<<<<<<

spine1-debian-11# sh ip bgp 192.168.100.1/32
BGP routing table entry for 192.168.100.1/32, version 87
Paths: (1 available, best #1, table default)
  Advertised to non peer-group peers:
  192.168.0.1
  65001 47583
    192.168.0.1 from 192.168.0.1 (100.100.200.100)
      Origin incomplete, valid, external, best (First path received)
      Last update: Mon Mar 28 09:05:25 2022

spine1-debian-11# sh ip bgp 192.168.100.1/32
BGP routing table entry for 192.168.100.1/32, version 87
Paths: (1 available, best #1, table default, mark routes to be retained for a longer time. Requires support for Long-lived BGP Graceful Restart)
  Not advertised to any peer
  65001 47583, (stale)
    192.168.0.1 from 192.168.0.1 (100.100.200.100)
      Origin incomplete, valid, external, best (First path received)
      Community: llgr-stale
      Last update: Mon Mar 28 09:05:29 2022
      Time until Long-lived stale route deleted: 29 <<<<<<<<<<<<<<
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 0d4532cd828b0538bf759ad2401e3cc1b7f7e135)

3 years agoospfd: Default route becomes stale route in nbrs even after flush from originator. 10920/head
rgirada [Mon, 21 Mar 2022 09:48:46 +0000 (02:48 -0700)]
ospfd: Default route becomes stale route in nbrs even after flush from originator.

Description:
Default route is not getting flushed from neighbours though originator
        triggered flush and deleted LSA from its database. It become as stale
        LSA in  neighbours databse forever. This could seen in the following
        sequence of configurations with less than a second interval b/w configs.
        And this could happen only when originator shouldnt have default route
        in its rib so it originates default route only when configure with 'always'
        option.

        step-1:default-information originate always
        step-2:no default-information originate always
        step-3:default-information originate

        In step-1, default route will be originated to AS.
        In step-2, default route will be flushed to AS, but neighbours will be
                   discarding this update due to minlsainterval condition.
                   And it is expected that DUT need to keep send this update
                   until it receives the ack from neighbours by adding each
                   neighbour's retransmission list.
        In Step-3: It is deleting the lsas from nbr's retransmission list
                   by assuming it initiated the flush. This is cuasing to not
                   send the lsa update anymore to neighbours which makes
                   stale lsa in nbrs forever.

Fix:
        Allowed to delete the lsa from retransmission list only when lsa is
        not in maxage during flushing procedure.

Signed-off-by: Rajesh Girada <rgirada@vmware.com>
(cherry picked from commit ab31275cf6243ae713e8e94df28fc2b8d887798e)

3 years agoMerge pull request #10907 from opensourcerouting/fix/pr10883_backport_8.2
Igor Ryzhov [Tue, 29 Mar 2022 09:29:15 +0000 (12:29 +0300)]
Merge pull request #10907 from opensourcerouting/fix/pr10883_backport_8.2

bgpd: [8.2] Fix possible insufficient stream data

3 years agoMerge pull request #10909 from FRRouting/mergify/bp/stable/8.2/pr-10878
Igor Ryzhov [Tue, 29 Mar 2022 09:28:33 +0000 (12:28 +0300)]
Merge pull request #10909 from FRRouting/mergify/bp/stable/8.2/pr-10878

bgpd: Fix crash for `show ip bgp vrf all all` (backport #10878)

3 years agobgpd: Fix crash for `show ip bgp vrf all all` 10909/head
Donatas Abraitis [Fri, 25 Mar 2022 09:35:39 +0000 (11:35 +0200)]
bgpd: Fix crash for `show ip bgp vrf all all`

When `all` is specified BGP pointer is always NULL, we need to iterate over
all instances separately.

```
BGP[170822]: Received signal 11 at 1648199394 (si_addr 0x30, PC 0x562e96597090); aborting...
BGP[170822]: /usr/local/lib/libfrr.so.0(zlog_backtrace_sigsafe+0x5e) [0x7f378a57ff6e]
BGP[170822]: /usr/local/lib/libfrr.so.0(zlog_signal+0xe6) [0x7f378a580146]
BGP[170822]: /usr/local/lib/libfrr.so.0(+0xcd4c2) [0x7f378a5aa4c2]
BGP[170822]: /lib/x86_64-linux-gnu/libpthread.so.0(+0x14140) [0x7f378a33e140]
BGP[170822]: /usr/lib/frr/bgpd(bgp_afi_safi_peer_exists+0) [0x562e96597090]
BGP[170822]: /usr/lib/frr/bgpd(+0x15c3b8) [0x562e9654a3b8]
BGP[170822]: /usr/local/lib/libfrr.so.0(+0x75a9e) [0x7f378a552a9e]
BGP[170822]: /usr/local/lib/libfrr.so.0(cmd_execute_command+0x5d) [0x7f378a552e2d]
BGP[170822]: /usr/local/lib/libfrr.so.0(cmd_execute+0xc0) [0x7f378a553070]
BGP[170822]: /usr/local/lib/libfrr.so.0(+0xe3697) [0x7f378a5c0697]
BGP[170822]: /usr/local/lib/libfrr.so.0(+0xe3db1) [0x7f378a5c0db1]
BGP[170822]: /usr/local/lib/libfrr.so.0(+0xe6c30) [0x7f378a5c3c30]
BGP[170822]: /usr/local/lib/libfrr.so.0(thread_call+0x73) [0x7f378a5bb743]
BGP[170822]: /usr/local/lib/libfrr.so.0(frr_run+0xd0) [0x7f378a578750]
BGP[170822]: /usr/lib/frr/bgpd(main+0x344) [0x562e964cf3f4]
BGP[170822]: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xea) [0x7f378a18bd0a]
BGP[170822]: /usr/lib/frr/bgpd(_start+0x2a) [0x562e964d10ea]
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit fa5ac3786591b1ea855e8789dead74aa3c36d366)

3 years agobgpd: Fix mixed print types for BGP_PREFIX_SID_SRV6_L3_SERVICE_SID_STRUCTURE_LENGTH 10907/head
Donatas Abraitis [Mon, 28 Mar 2022 08:08:33 +0000 (11:08 +0300)]
bgpd: Fix mixed print types for BGP_PREFIX_SID_SRV6_L3_SERVICE_SID_STRUCTURE_LENGTH

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
3 years agobgpd: Fix possible insufficient stream data
Donald Sharp [Fri, 25 Mar 2022 11:44:55 +0000 (07:44 -0400)]
bgpd: Fix possible insufficient stream data

When reading the BGP_PREFIX_SID_SRV6_L3_SERVICE_SID_STRUCTURE
it is possible that the length read in the packet is insufficiently
large enough to read a BGP_PREFIX_SID_SRV6_L3_SERVICE_SID_STRUCTURE.
Let's ensure that it is.

Fixes: #10860
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 years agoMerge pull request #10900 from FRRouting/mergify/bp/stable/8.2/pr-10894
Donatas Abraitis [Mon, 28 Mar 2022 06:45:51 +0000 (09:45 +0300)]
Merge pull request #10900 from FRRouting/mergify/bp/stable/8.2/pr-10894

babeld: Rehook up interface up events (backport #10894)

3 years agoMerge pull request #10898 from FRRouting/mergify/bp/stable/8.2/pr-10892
David Lamparter [Sun, 27 Mar 2022 20:04:41 +0000 (22:04 +0200)]
Merge pull request #10898 from FRRouting/mergify/bp/stable/8.2/pr-10892

3 years agobabeld: Rehook up interface up events 10900/head
Donald Sharp [Sun, 27 Mar 2022 00:46:36 +0000 (20:46 -0400)]
babeld: Rehook up interface up events

When babeld was switched over to the zapi
interface up/down callbacks the interface up
event was not properly put back in.

Fixes: #10893
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit 93d9b1afbec6e63d78ca087833d52036b294ed58)

3 years agolib: Ensure order of operations is expected with SECONDS 10898/head
Donald Sharp [Sat, 26 Mar 2022 20:20:53 +0000 (16:20 -0400)]
lib: Ensure order of operations is expected with SECONDS

These 3 values:
ONE_DAY_SECOND
ONE_WEEK_SECOND
ONE_YEAR_SECOND

Are defined based upon the number of seconds.  Unfortunately doing math
on these values say something like:

days = t->tv_sec / ONE_DAY_SECOND;

Once you go over about a day causes the order of operations to cause the multiplication
to get messed up:

204 if (!t)
(gdb) n
207 w = d = h = m = ms = 0;
(gdb) set t->tv_sec = ONE_DAY_SECOND + 30
(gdb) n
208 memset(buf, 0, size);
(gdb)
210 us = t->tv_usec;
(gdb)
211 if (us >= 1000) {
(gdb)
212 ms = us / 1000;
(gdb)
213 us %= 1000;
(gdb)
217 if (ms >= 1000) {
(gdb)
222 if (t->tv_sec > ONE_WEEK_SECOND) {
(gdb)
227 if (t->tv_sec > ONE_DAY_SECOND) {
(gdb)
228 d = t->tv_sec / ONE_DAY_SECOND;
(gdb) n
229 t->tv_sec -= d * ONE_DAY_SECOND;
(gdb) n
232 if (t->tv_sec >= HOUR_IN_SECONDS) {
(gdb) p d
$6 = 2073600
(gdb) p t->tv_sec
$7 = -179158953570
(gdb)

Converting to adding paranthesis around around the ONE_DAY_SECOND causes
the order of operations to work as expected.

Fixes: #10880
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit bddfc297419843cf075ae5524b6647735b00e9f9)

3 years agoMerge pull request #10872 from FRRouting/mergify/bp/stable/8.2/pr-10867
Donatas Abraitis [Sun, 27 Mar 2022 17:45:17 +0000 (20:45 +0300)]
Merge pull request #10872 from FRRouting/mergify/bp/stable/8.2/pr-10867

zebra: Fix use after deletion event in freebsd (backport #10867)

3 years agoMerge pull request #10886 from FRRouting/mergify/bp/stable/8.2/pr-10861
Donald Sharp [Fri, 25 Mar 2022 18:58:08 +0000 (14:58 -0400)]
Merge pull request #10886 from FRRouting/mergify/bp/stable/8.2/pr-10861

tools: Replace `strings` to `tr` for frrinit.sh (backport #10861)

3 years agoMerge pull request #10885 from FRRouting/mergify/bp/stable/8.2/pr-10879
Donald Sharp [Fri, 25 Mar 2022 14:46:12 +0000 (10:46 -0400)]
Merge pull request #10885 from FRRouting/mergify/bp/stable/8.2/pr-10879

bgpd: Fix crash for `show ip bgp vrf all all neighbors 192.168.0.1 ...` (backport #10879)

3 years agotools: Replace `strings` to `tr` for frrinit.sh 10886/head
Donatas Abraitis [Thu, 24 Mar 2022 13:26:26 +0000 (15:26 +0200)]
tools: Replace `strings` to `tr` for frrinit.sh

dc3bae68a2422ead82a12fa8480417fd4e351cdd added strings command, which is wrong.

It requires additional package to be installed on the system (binutils).

Let's just get use `tr`.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 3989029bc06733955138ba914529bbdb743d2066)

3 years agobgpd: Fix crash for `show ip bgp vrf all all neighbors 192.168.0.1 ...` 10885/head
Donatas Abraitis [Fri, 25 Mar 2022 09:53:47 +0000 (11:53 +0200)]
bgpd: Fix crash for `show ip bgp vrf all all neighbors 192.168.0.1 ...`

When `all` is specified BGP pointer is always NULL, we need to iterate over
all instances separately.

```
Received signal 11 at 1648199394 (si_addr 0x30, PC 0x562e96597090); aborting...
 /usr/local/lib/libfrr.so.0(zlog_backtrace_sigsafe+0x5e) [0x7f378a57ff6e]
 /usr/local/lib/libfrr.so.0(zlog_signal+0xe6) [0x7f378a580146]
 /usr/local/lib/libfrr.so.0(+0xcd4c2) [0x7f378a5aa4c2]
 /lib/x86_64-linux-gnu/libpthread.so.0(+0x14140) [0x7f378a33e140]
 /usr/lib/frr/bgpd(bgp_afi_safi_peer_exists+0) [0x562e96597090]
 /usr/lib/frr/bgpd(+0x15c3b8) [0x562e9654a3b8]
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 75ce3b14f3689f17621740db86f1522e1a8b4b0b)

3 years agoMerge pull request #10873 from FRRouting/mergify/bp/stable/8.2/pr-10854
Donald Sharp [Fri, 25 Mar 2022 13:58:54 +0000 (09:58 -0400)]
Merge pull request #10873 from FRRouting/mergify/bp/stable/8.2/pr-10854

pathd: bad order of nai adjacencies for ipv6 (backport #10854)

3 years agoMerge pull request #10870 from FRRouting/mergify/bp/stable/8.2/pr-10857
Donatas Abraitis [Fri, 25 Mar 2022 07:51:40 +0000 (09:51 +0200)]
Merge pull request #10870 from FRRouting/mergify/bp/stable/8.2/pr-10857

bgpd: Turn off thread when running `no bmp targets X` (backport #10857)

3 years agopathd: bad order of nai adjacencies for ipv6 10873/head
Philippe Guibert [Wed, 23 Mar 2022 16:03:53 +0000 (17:03 +0100)]
pathd: bad order of nai adjacencies for ipv6

The order of nai adjacencies ipv6 addresses was wrong.
The src and the destination addresses were swapped.
Change it.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
(cherry picked from commit a38d5b7af20b60a8eb0344e02f7875909b828b27)

3 years agozebra: Fix use after deletion event in freebsd 10872/head
Donald Sharp [Fri, 25 Mar 2022 00:02:33 +0000 (20:02 -0400)]
zebra: Fix use after deletion event in freebsd

In the FreeBSD code if you delete the interface
and it has no configuration, the ifp pointer will
be deleted from the system *but* zebra continues
to dereference the just freed pointer.

==58624== Invalid read of size 1
==58624==    at 0x48539F3: strlcpy (in /usr/local/libexec/valgrind/vgpreload_memcheck-amd64-freebsd.so)
==58624==    by 0x2B0565: ifreq_set_name (ioctl.c:48)
==58624==    by 0x2B0565: if_get_flags (ioctl.c:416)
==58624==    by 0x2B2D9E: ifan_read (kernel_socket.c:455)
==58624==    by 0x2B2D9E: kernel_read (kernel_socket.c:1403)
==58624==    by 0x499F46E: thread_call (thread.c:2002)
==58624==    by 0x495D2B7: frr_run (libfrr.c:1196)
==58624==    by 0x2B40B8: main (main.c:471)
==58624==  Address 0x6baa7f0 is 64 bytes inside a block of size 432 free'd
==58624==    at 0x484ECDC: free (in /usr/local/libexec/valgrind/vgpreload_memcheck-amd64-freebsd.so)
==58624==    by 0x4953A64: if_delete (if.c:283)
==58624==    by 0x2A93C1: if_delete_update (interface.c:874)
==58624==    by 0x2B2DF3: ifan_read (kernel_socket.c:453)
==58624==    by 0x2B2DF3: kernel_read (kernel_socket.c:1403)
==58624==    by 0x499F46E: thread_call (thread.c:2002)
==58624==    by 0x495D2B7: frr_run (libfrr.c:1196)
==58624==    by 0x2B40B8: main (main.c:471)
==58624==  Block was alloc'd at
==58624==    at 0x4851381: calloc (in /usr/local/libexec/valgrind/vgpreload_memcheck-amd64-freebsd.so)
==58624==    by 0x496A022: qcalloc (memory.c:116)
==58624==    by 0x49546BC: if_new (if.c:164)
==58624==    by 0x49546BC: if_create_name (if.c:218)
==58624==    by 0x49546BC: if_get_by_name (if.c:603)
==58624==    by 0x2B1295: ifm_read (kernel_socket.c:628)
==58624==    by 0x2A7FB6: interface_list (if_sysctl.c:129)
==58624==    by 0x2E99C8: zebra_ns_enable (zebra_ns.c:127)
==58624==    by 0x2E99C8: zebra_ns_init (zebra_ns.c:214)
==58624==    by 0x2B3FF2: main (main.c:401)
==58624==

Zebra needs to pass back whether or not the ifp pointer
was freed when if_delete_update is called and it should
then check in ifan_read as well as ifm_read that the
ifp pointer is still valid for use.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit d0438da6b09333d2b77a9eac2e9fffbbae6e603b)

3 years agobgpd: Turn off thread when running `no bmp targets X` 10870/head
Donatas Abraitis [Thu, 24 Mar 2022 10:00:57 +0000 (12:00 +0200)]
bgpd: Turn off thread when running `no bmp targets X`

Avoid use-after-free and prevent from crashing:

```
(gdb) bt
0  raise (sig=<optimized out>) at ../sysdeps/unix/sysv/linux/raise.c:50
1  0x00007f2a15c2c30d in core_handler (signo=11, siginfo=0x7fffb915e630, context=<optimized out>) at lib/sigevent.c:261
2  <signal handler called>
3  0x00007f2a156201e4 in bmp_stats (thread=<optimized out>) at bgpd/bgp_bmp.c:1330
4  0x00007f2a15c3d553 in thread_call (thread=thread@entry=0x7fffb915ebf0) at lib/thread.c:2001
5  0x00007f2a15bfa570 in frr_run (master=0x55c43a393ae0) at lib/libfrr.c:1196
6  0x000055c43930627c in main (argc=<optimized out>, argv=<optimized out>) at bgpd/bgp_main.c:519
(gdb)
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 4008aa1a24f8175831e2b4917555aaa71d5ebddd)

3 years agoMerge pull request #10841 from opensourcerouting/fix/backport_pim_igmp_query_check_8.2
mobash-rasool [Wed, 23 Mar 2022 09:25:52 +0000 (14:55 +0530)]
Merge pull request #10841 from opensourcerouting/fix/backport_pim_igmp_query_check_8.2

pimd: [8.2] Pim igmp query backport

3 years agopimd: fix igmp packet check 10841/head
ron [Wed, 19 Jan 2022 09:37:28 +0000 (17:37 +0800)]
pimd: fix igmp packet check

ip source 0.0.0.0 is OK (RFC 3376: 4.2.13.).

Signed-off-by: ron <lyq140hf2006@163.com>
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
3 years agopimd: fix igmp query packet
ron [Wed, 19 Jan 2022 09:35:30 +0000 (17:35 +0800)]
pimd: fix igmp query packet

'Max Resp Time' in v2 query needs no encode (RFC 2236: 2.2.).

Signed-off-by: ron <lyq140hf2006@163.com>
3 years agoMerge pull request #10840 from FRRouting/mergify/bp/stable/8.2/pr-10814
Donatas Abraitis [Tue, 22 Mar 2022 06:56:16 +0000 (08:56 +0200)]
Merge pull request #10840 from FRRouting/mergify/bp/stable/8.2/pr-10814

ospf6d: observed crash in ospf6_decrement_retrans_count. (backport #10814)