]> git.puffer.fish Git - matthieu/frr.git/log
matthieu/frr.git
21 months agoMerge pull request #14042 from FRIDM636/extcomm-list-delete
Donatas Abraitis [Mon, 31 Jul 2023 12:50:16 +0000 (15:50 +0300)]
Merge pull request #14042 from FRIDM636/extcomm-list-delete

bgp: add set BGP extended community for deletion command

21 months agotests: test set extended-comm-list <> delete command
Farid Mihoub [Wed, 12 Jul 2023 10:05:38 +0000 (12:05 +0200)]
tests: test set extended-comm-list <> delete command

Signed-off-by: Farid Mihoub <farid.mihoub@6wind.com>
21 months agobgpd: add set extended-comm-list <> delete command
Farid Mihoub [Wed, 14 Jun 2023 14:16:55 +0000 (16:16 +0200)]
bgpd: add set extended-comm-list <> delete command

Signed-off-by: Farid Mihoub <farid.mihoub@6wind.com>
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
21 months agoMerge pull request #14109 from taspelund/noreset_update_src
Donatas Abraitis [Mon, 31 Jul 2023 07:03:28 +0000 (10:03 +0300)]
Merge pull request #14109 from taspelund/noreset_update_src

bgpd: skip reset when removing dup update-source

21 months agoMerge pull request #14112 from donaldsharp/test_sponging
Donatas Abraitis [Mon, 31 Jul 2023 07:02:36 +0000 (10:02 +0300)]
Merge pull request #14112 from donaldsharp/test_sponging

Test sponging

21 months agoMerge pull request #14111 from opensourcerouting/isisd-tilfa-topotest-fixes
Donald Sharp [Sat, 29 Jul 2023 23:22:34 +0000 (19:22 -0400)]
Merge pull request #14111 from opensourcerouting/isisd-tilfa-topotest-fixes

tests: improve stability of the IS-IS TI-LFA topotest

21 months agoMerge pull request #14103 from opensourcerouting/reload-keychain
Donald Sharp [Sat, 29 Jul 2023 18:01:31 +0000 (14:01 -0400)]
Merge pull request #14103 from opensourcerouting/reload-keychain

tools: fix key chain reload removal

21 months agoMerge pull request #14104 from rampxxxx/bfd_audit
Donald Sharp [Sat, 29 Jul 2023 17:57:33 +0000 (13:57 -0400)]
Merge pull request #14104 from rampxxxx/bfd_audit

bfdd: add additional parameters to json command

21 months agotests: Convert isis to use 1 and 10 for hello/multiplier
Donald Sharp [Thu, 27 Jul 2023 19:36:33 +0000 (15:36 -0400)]
tests: Convert isis to use 1 and 10 for hello/multiplier

Current isis tests use a variety of hello timers as well
as hello-multiplier, let's modify all of the isis test
cases to use 1 and 10.  This cleans up some spurious test
failures I was seeing locally.  As an example without
these changes running isis_tilfa_topo1 2r6 times I would
see 5-10 test failures now I am seeing ~2 test failures.

In any event part of the problem was that some tests were
not fully converged when looking at them under heavy
system load.  Changing this to 1/10 gives us 10 chances
to see the incoming packet.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
21 months agotests: bfd_bgp_cbit_topo3 allow bgp to converge before testing
Donald Sharp [Sat, 29 Jul 2023 17:26:26 +0000 (13:26 -0400)]
tests: bfd_bgp_cbit_topo3 allow bgp to converge before testing

This test was failing upstream a bunch of times.  Upon examining
the log files as well as the test script it was noticed that
the bfd peers were checked to see that they had come up.  But
both the timers used for bgp as well as not checking that bgp
has actually come up would cause the test to fail in subsuquent
steps if bgp has not come up.  Test that bgp peering is actually
established before testing link down events.  It's possible
this test might need to be revisited to ensure that the routes
are actually installed and ready to go before as well, but I am
not seeing that right now.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
21 months agotests: Fix zebra_seg6_route to give more time for routes to be installed
Donald Sharp [Sat, 29 Jul 2023 17:24:55 +0000 (13:24 -0400)]
tests: Fix zebra_seg6_route to give more time for routes to be installed

This test is failing upstream regularly, when inspecting the log
files we see that the route being looked for is in a queued state
when the test fails.  Give this test more time for when the
system is under severe load.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
21 months agotests: isis_te_topo1 can fail occassionally
Donald Sharp [Sat, 29 Jul 2023 17:22:39 +0000 (13:22 -0400)]
tests: isis_te_topo1 can fail occassionally

Upstream ( and locally ) this test fails.  The adj-sid value
being looked for in the testing is a dynamic value that is
assigned based upon how the network comes up.  The reality
is that there is no enforced order of what the adj-sid
can be.  As such this test looking for this value makes
no sense.  Let's remove that from the test.

Additionally bring the isis hello-interval to 1 down
from 3 to make things converge faster.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
21 months agotests: zebra_netlink ensure the address is installed
Donald Sharp [Fri, 28 Jul 2023 14:31:30 +0000 (10:31 -0400)]
tests: zebra_netlink ensure the address is installed

Ran test under high load and system rejected the sharp
install of routes.  Only reason that that would happen
would be if the address had not been set by the kernel
yet.  The test log files had timestamp precision and the
addition of the sharp routes was under 1/10 of a second
after the address was attempted to be installed.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
21 months agotests: increase wait timer in TI-LFA topotest
Renato Westphal [Sat, 29 Jul 2023 14:46:54 +0000 (11:46 -0300)]
tests: increase wait timer in TI-LFA topotest

Starting from step 11, this topotest focuses on validating the TI-LFA
switchover functionality, where the backup nexthops are activated
after an adjacency expires, either with or without BFD.

Currently, the test checks the RIB shortly after the switchover using
a tight 5 seconds interval to ensure that the RIB update is due to the
switchover and not an SPF update (which is configured with an initial
delay of 15 seconds). However, it was observed that the kernel might
take longer than 5 seconds to install routes when the system is under
heavy load. To account for that, double the wait interval so that
this topotest will succeed even in those conditions.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
21 months agotests: ensure BFD session is up before proceeding to the next step
Renato Westphal [Sat, 29 Jul 2023 01:32:17 +0000 (22:32 -0300)]
tests: ensure BFD session is up before proceeding to the next step

In this topotest, BFD is configured at the end of step 13. However,
in certain cases where the testing machine is exceptionally fast (e.g.,
Donald's quantum computer), there is a possibility that the interface
shutdown event from step 14 may occur before BFD has had sufficient
time to establish the session, which leads to a test failure. To fix
this problem, ensure the BFD session is up before proceeding to the
next step.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
21 months agoisisd: update Node-SID flag dynamically
Renato Westphal [Thu, 27 Jul 2023 23:35:10 +0000 (20:35 -0300)]
isisd: update Node-SID flag dynamically

Node-SIDs refer to Prefix-SIDs associated with host prefixes of
loopback addresses. As such, whenever an interface address is added
or deleted, all configured Prefix-SIDs must be reevaluated to check
if the N-flag needs to be set or unset.

This change fixes some race conditions in the TI-LFA topotest where
specific sequence of events could cause Prefix-SIDs to not have the
N-flag set when they should, resulting in various failures.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
21 months agotests: increase hello multiplier in TI-LFA topotest
Renato Westphal [Tue, 25 Jul 2023 22:50:14 +0000 (19:50 -0300)]
tests: increase hello multiplier in TI-LFA topotest

In this topotest, the IS-IS hello interval is set to 1 for fast
convergence. However, the current hello multiplier of 3 results in a
tight IS-IS adjacency holdtime of 3 seconds. This tight timeframe can
cause failures when the testing machine is running multiple tests at
full capacity. To improve stability under such conditions, this commit
raises the hello multiplier to 10, providing a more forgiving holdtime
and reducing the likelihood of failures.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
21 months agobfdd: add debug flag around log
lynnemorrison [Fri, 28 Jul 2023 15:46:30 +0000 (11:46 -0400)]
bfdd: add debug flag around log

Signed-off-by: Lynne Morrison <lynne.morrison@ibm.com>
21 months agobgpd: skip reset when removing dup update-source
Trey Aspelund [Mon, 24 Jul 2023 20:16:08 +0000 (20:16 +0000)]
bgpd: skip reset when removing dup update-source

When 'no neighbor .. update-source' is issued for a regular peer, that
peer is always reset.  This is unnecessary if the peer is a member of a
peer-group and it inherits an identical update-source, so let's skip
the reset/Notification for that condition.

Config:
------------
router bgp 1
 neighbor PG peer-group
 neighbor PG remote-as internal
 neighbor PG update-source 100.64.0.3
 neighbor 192.168.122.99 peer-group PG
 neighbor 192.168.122.99 update-source 100.64.0.3

Before:
------------
ub20-2(config-router)# do show ip bgp sum | include .99
192.168.122.99  4          1        36        34        0    0    0 00:00:17            0        0 N/A
ub20-2(config-router)# do show ip bgp neighbors 192.168.122.99 | include Local host
Local host: 100.64.0.3, Local port: 46083
ub20-2(config-router)# no neighbor 192.168.122.99 update-source
ub20-2(config-router)# do show ip bgp sum | include .99
192.168.122.99  4          1        36        35        0    0    0 00:00:01         Idle        0 N/A
ub20-2(config-router)# do show ip bgp neighbors 192.168.122.99 | include Local host
Local host: 100.64.0.3, Local port: 39847

After:
------------
ub20-2(config-router)# do show ip bgp sum | include .99
192.168.122.99  4          1         3         3        0    0    0 00:00:20            0        0 N/A
ub20-2(config-router)# do show ip bgp neighbors 192.168.122.99 | include Local host
Local host: 100.64.0.3, Local port: 39415
ub20-2(config-router)# no neighbor 192.168.122.99 update-source
ub20-2(config-router)# do show ip bgp sum | include .99
192.168.122.99  4          1         3         3        0    0    0 00:00:28            0        0 N/A
ub20-2(config-router)# do show ip bgp neighbors 192.168.122.99 | include Local host
Local host: 100.64.0.3, Local port: 39415

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
21 months agobfdd: add additional parameters to json command
lynnemorrison [Thu, 27 Jul 2023 15:10:49 +0000 (11:10 -0400)]
bfdd: add additional parameters to json command

Add parameters to the "show bfd peers json" command to
display interface and type of BFD session.

Signed-off-by: Lynne Morrison <lynne.morrison@ibm.com>
21 months agotools: fix key chain reload removal
Rafael Zalamena [Thu, 27 Jul 2023 13:47:23 +0000 (10:47 -0300)]
tools: fix key chain reload removal

When deleting a key chain with frr-reload track if the whole root node
is being removed or not.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
21 months agoMerge pull request #12524 from leonshaw/fix/evpn-nh-order
Russ White [Thu, 27 Jul 2023 11:30:23 +0000 (07:30 -0400)]
Merge pull request #12524 from leonshaw/fix/evpn-nh-order

lib, zebra: Fix EVPN nexthop config order

21 months agolib, zebra: Fix EVPN nexthop config order
Xiao Liang [Thu, 15 Dec 2022 09:04:32 +0000 (17:04 +0800)]
lib, zebra: Fix EVPN nexthop config order

Delay EVPN route addition to synchronize with rib_delete(), which now
uses early route queue.

Signed-off-by: Xiao Liang <shaw.leon@gmail.com>
21 months agoMerge pull request #14064 from donaldsharp/pim_cleanup
mobash-rasool [Wed, 26 Jul 2023 16:03:29 +0000 (21:33 +0530)]
Merge pull request #14064 from donaldsharp/pim_cleanup

Cleanup from examining gcov runs

21 months agoMerge pull request #13417 from donaldsharp/elf_py_fd_semantics
Mark Stapp [Wed, 26 Jul 2023 11:18:06 +0000 (07:18 -0400)]
Merge pull request #13417 from donaldsharp/elf_py_fd_semantics

lib: Fix elf_py.c for coverity

21 months agoMerge pull request #14093 from mjstapp/fix_pbr_style
Jafar Al-Gharaibeh [Wed, 26 Jul 2023 02:38:39 +0000 (21:38 -0500)]
Merge pull request #14093 from mjstapp/fix_pbr_style

lib,pbrd: clean up style issues

21 months agolib,pbrd: clean up style issues
Mark Stapp [Tue, 25 Jul 2023 15:09:29 +0000 (11:09 -0400)]
lib,pbrd: clean up style issues

Fix a couple of style warnings introduced by recent PR 14050.

Signed-off-by: Mark Stapp <mjs@labn.net>
21 months agoMerge pull request #14050 from LabNConsulting/ziemba-pbr-zapi-common
Russ White [Tue, 25 Jul 2023 14:55:50 +0000 (10:55 -0400)]
Merge pull request #14050 from LabNConsulting/ziemba-pbr-zapi-common

pbrd: 2/3 zapi PBR common encode/decode

21 months agoMerge pull request #14056 from achernavin22/ospf-fix-def-metric-upd
Russ White [Tue, 25 Jul 2023 14:35:04 +0000 (10:35 -0400)]
Merge pull request #14056 from achernavin22/ospf-fix-def-metric-upd

ospfd: fix default-metric change if external LSAs already sent

21 months agoMerge pull request #14072 from LabNConsulting/ziemba-pbr-coverity-230721
Donald Sharp [Tue, 25 Jul 2023 14:29:44 +0000 (10:29 -0400)]
Merge pull request #14072 from LabNConsulting/ziemba-pbr-coverity-230721

pbrd: fix coverity issue in pbr_map_match_vlan_tag

21 months agoMerge pull request #14081 from donaldsharp/bgp_ringbuf_cleanup
Russ White [Tue, 25 Jul 2023 14:24:12 +0000 (10:24 -0400)]
Merge pull request #14081 from donaldsharp/bgp_ringbuf_cleanup

Bgp ringbuf cleanup

21 months agoMerge pull request #14086 from qlyoung/fix-strncpy-warning
Russ White [Tue, 25 Jul 2023 14:23:35 +0000 (10:23 -0400)]
Merge pull request #14086 from qlyoung/fix-strncpy-warning

tests: fix strncpy warning

21 months agoMerge pull request #14080 from anlancs/fix/zebra-nhg-reinstall
Russ White [Tue, 25 Jul 2023 14:23:10 +0000 (10:23 -0400)]
Merge pull request #14080 from anlancs/fix/zebra-nhg-reinstall

zebra: fix nhg out of sync between zebra and kernel

21 months agoMerge pull request #13945 from pguibert6WIND/redistribute_isis_table
Russ White [Tue, 25 Jul 2023 14:16:46 +0000 (10:16 -0400)]
Merge pull request #13945 from pguibert6WIND/redistribute_isis_table

Redistribute isis table

21 months agoMerge pull request #14088 from anlancs/fix/add-debug-zebra
Donald Sharp [Tue, 25 Jul 2023 13:48:38 +0000 (09:48 -0400)]
Merge pull request #14088 from anlancs/fix/add-debug-zebra

zebra: add several fields for debug

21 months agoMerge pull request #14079 from donaldsharp/last_reset_cause_slimming
Mark Stapp [Tue, 25 Jul 2023 13:25:43 +0000 (09:25 -0400)]
Merge pull request #14079 from donaldsharp/last_reset_cause_slimming

bgpd: The last_reset_cause in the peer structure is too large

21 months agozebra: add several fields for debug
anlan_cs [Tue, 25 Jul 2023 05:15:44 +0000 (13:15 +0800)]
zebra: add several fields for debug

Two changes for debug:
1. Add a field to indicate its vrf for nexthop.  When the interface changes
vrf, we can't easily know the vrf of this nexthop according to current log.
2. Add a field to indicate operation type.  We can't know whether to add or
remove route according to current log.

Before:
```
zebra_nhg_increment_ref: nhe 0x555623eb82c0 (76[if 6]) 0 => 1
zebra_interface_nhg_reinstall install nhe 75[77.75.1.75 if 6] nh type 3 flags 0x1
Route 77.75.1.0/24(8) queued for processing into sub-queue Early Route Processing
Route 77.75.1.0/24(8) queued for processing into sub-queue Early Route Processing
```

After:
```
zebra_nhg_increment_ref: nhe 0x555623eb82c0 (76[if 6 vrfid 9]) 0 => 1
zebra_interface_nhg_reinstall install nhe 75[77.75.1.75 if 6 vrfid 8] nh type 3 flags 0x1
Route 77.75.1.0/24(8) (add) queued for processing into sub-queue Early Route Processing
Route 77.75.1.0/24(8) (delete) queued for processing into sub-queue Early Route Processing
```

Signed-off-by: anlan_cs <anlan_cs@tom.com>
21 months agoMerge pull request #14083 from chiragshah6/fdev1
Donatas Abraitis [Tue, 25 Jul 2023 06:14:54 +0000 (09:14 +0300)]
Merge pull request #14083 from chiragshah6/fdev1

bgpd: non pretty json output for neighbor routes

21 months agobgpd: The last_reset_cause in the peer structure is too large
Donald Sharp [Mon, 24 Jul 2023 00:30:47 +0000 (20:30 -0400)]
bgpd: The last_reset_cause in the peer structure is too large

The last_reset_cause is a plain old BGP_MAX_PACKET_SIZE buffer
that is really enlarging the peer data structure.  Let's just
copy the stream that failed and only allocate how ever much
the packet size actually was.  While it's likely that we have
a reset reason, the packet typically is not going to be 65k
in size.  Let's save space.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
21 months agotests: fix strncpy warning
Quentin Young [Mon, 24 Jul 2023 23:01:51 +0000 (19:01 -0400)]
tests: fix strncpy warning

GCC/clang warns about using strncpy in such a way that it does not copy
the null byte of a string; as implemented it was fine, but to fix the
warning, just use strlcat which was purpose made for the task being
accomplished here.

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
21 months agobgpd: non pretty json output for neighbor routes
Sindhu Parvathi Gopinathan [Wed, 12 Jul 2023 10:45:26 +0000 (03:45 -0700)]
bgpd: non pretty json output for neighbor routes

Currently, json output of show BGP commands are no pretty format.

This is an extremely expensive operation for huge scale (lots of
routes with lots of paths).

BGP json non-pretty commands support added:

```
show bgp neighbors <nbr-id> advertised-routes json
show bgp neighbors <nbr-id> received-routes json
show bgp neighbors <nbr-id> advertised-routes detail json
show bgp neighbors <nbr-id> received-routes detail json
```

Ticket:#3513256
Issue:3513256

Testing: UT done

Signed-off-by: Sindhu Parvathi Gopinathan's <sgopinathan@nvidia.com>
21 months agolib: Fix elf_py.c for coverity
Donald Sharp [Tue, 2 May 2023 13:25:04 +0000 (09:25 -0400)]
lib: Fix elf_py.c for coverity

David rightly pointed out that having a test for fd > 0 would
technically not be right, but not wrong for this portion of the
code since we know that we would never get a fd = 0 in this section.
In any event let's make coverity happy and move on with our life.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
21 months agobgpd: Reduce size of ibuf_work ringbuf
Donald Sharp [Mon, 24 Jul 2023 14:33:21 +0000 (10:33 -0400)]
bgpd: Reduce size of ibuf_work ringbuf

The ringbuf is 650k in size.  This is obscenely large and
in practical experimentation FRR never even approaches
that size at all.  Let's reduce this to 1.5 max packet sizes.

If a BGP_MAX_PACKET_SIZE packet is ever received having a bit
of extra space ensures that we can read at least 1 packet.

This also will significantly reduce memory usage when the
operator has a lot of peers.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
21 months agobgpd: With io limit allow parsing to continue even if memory is low
Donald Sharp [Mon, 24 Jul 2023 14:13:32 +0000 (10:13 -0400)]
bgpd: With io limit allow parsing to continue even if memory is low

Commit: a0b937de428e14e869b8541f0b7810113d619c2e

Introduced the idea of a input Q packet limit.  Say you read in
635000 bytes of data and the input Q is already at it's limit
(currently 1000) then when bgp_process_reads runs it will
assert because there is less then a BGP_MAX_PACKET_SIZE in ibuf_work.

Don't assert as that it's irrelevant.  Even if we can't read a full packet
in let's let the whole system keep working as that as the input Q length
comes down we will start pulling down the ibuf_work and it will be ok.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
21 months agozebra: fix nhg out of sync between zebra and kernel
anlan_cs [Mon, 24 Jul 2023 06:40:22 +0000 (14:40 +0800)]
zebra: fix nhg out of sync between zebra and kernel

PR#13413 introduces reinstall mechanism, but there is problem with the route
leak scenario.

With route leak configuration: ( `x1` and `x2` are binded to `vrf1` )
```
vrf vrf2
 ip route 75.75.75.75/32 77.75.1.75 nexthop-vrf vrf1
 ip route 75.75.75.75/32 77.75.2.75 nexthop-vrf vrf1
exit-vrf
```

Firstly, all are ok.  But after `x1` is set down and up ( The interval
between the down and up operations should be less than 180 seconds. ) ,
`x1` is lost from the nexthop group:
```
anlan# ip nexthop
id 121 group 122/123 proto zebra
id 122 via 77.75.1.75 dev x1 scope link proto zebra
id 123 via 77.75.2.75 dev x2 scope link proto zebra
anlan# ip route show table 2
75.75.75.75 nhid 121 proto 196 metric 20
        nexthop via 77.75.1.75 dev x1 weight 1
        nexthop via 77.75.2.75 dev x2 weight 1
anlan# ip link set dev x1 down
anlan# ip link set dev x1 up
anlan# ip route show table 2 <- Wrong, one nexthop lost from group
75.75.75.75 nhid 121 via 77.75.2.75 dev x2 proto 196 metric 20
anlan# ip nexthop
id 121 group 123 proto zebra
id 122 via 77.75.1.75 dev x1 scope link proto zebra
id 123 via 77.75.2.75 dev x2 scope link proto zebra
anlan# show ip route vrf vrf2 <- Still ok
VRF vrf2:
S>* 75.75.75.75/32 [1/0] via 77.75.1.75, x1 (vrf vrf1), weight 1, 00:00:05
  *                      via 77.75.2.75, x2 (vrf vrf1), weight 1, 00:00:05
```

From the impact on kernel:
The `nh->type` of `id 122` is *always* `NEXTHOP_TYPE_IPV4` in the route leak
case.  Then, `nexthop_is_ifindex_type()` introduced by commit `5bb877` always
returns `false`, so its dependents can't be reinstalled.  After `x1` is down,
there is only `id 123` in the group of `id 121`.  So, Finally `id 121` remains
unchanged after `x1` is up, i.e., `id 122` is not added to the group even it is
reinstalled itself.

From the impact on zebra:
The `show ip route vrf vrf2` is still ok because the `id`s are reused/reinstalled
successfully within 180 seconds after `x1` is down and up.  The group of `id 121`
is with old `NEXTHOP_GROUP_INSTALLED` flag, and it is still the group of `id 122`
and `id 123` as before.

In this way, kernel and zebra have become out of sync.

The `nh->type` of `id 122` should be adjusted to `NEXTHOP_TYPE_IPV4_IFINDEX`
after nexthop resolved.  This commit is for doing this to make that reinstall
mechanism work.

Signed-off-by: anlan_cs <anlan_cs@tom.com>
21 months agoMerge pull request #14076 from chiragshah6/fdev1
Donatas Abraitis [Sat, 22 Jul 2023 07:30:05 +0000 (10:30 +0300)]
Merge pull request #14076 from chiragshah6/fdev1

zebra: non pretty json format for rib and evpn operational commands

21 months agoMerge pull request #14075 from donaldsharp/bgp_memory_fun
Donatas Abraitis [Fri, 21 Jul 2023 20:14:29 +0000 (23:14 +0300)]
Merge pull request #14075 from donaldsharp/bgp_memory_fun

Remove unused memory allocations associated with bgp

21 months agozebra: non pretty json output for evpn route
Sindhu Parvathi Gopinathan [Wed, 19 Jul 2023 07:00:24 +0000 (00:00 -0700)]
zebra: non pretty json output for evpn route

Currently, json output of evpn route command are no pretty format.
This is an extremely expensive operation at high VNI scale

EVPN json non-pretty command support added:

```
show evpn mac vni <vni-id> detail json
show evpn vni detail json
```

Ticket:#3513256
Issue:3513256

Testing: UT done

Signed-off-by: Sindhu Parvathi Gopinathan's <sgopinathan@nvidia.com>
21 months agozebra: non pretty json output for show ip route
Sindhu Parvathi Gopinathan [Wed, 19 Jul 2023 06:53:15 +0000 (23:53 -0700)]
zebra: non pretty json output for show ip route

Currently, json output of show ip route command are no pretty format.
This is an extremely expensive operation at high scale
(with high number of routes with many paths).

Zebra json non-pretty command support added:

```
show ip route json
```

Ticket:#3513256

Issue:3513256

Testing: UT done

Signed-off-by: Sindhu Parvathi Gopinathan's <sgopinathan@nvidia.com>
21 months agobgpd: Replace peer->ibuf_scratch
Donald Sharp [Fri, 21 Jul 2023 17:10:03 +0000 (13:10 -0400)]
bgpd: Replace peer->ibuf_scratch

The peer->ibuf_scratch was allocating 65535 * 10 bytes
for scratch space to hold data incoming from a read
from a peer.  When you have 4k peers this is 262,1400,000
or 262 mb of data.  Which is crazy large.  Especially
since the i/o pthread is reading per peer without
any chance of having the data interfere with other reads.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
21 months agobgpd: Remove withdraw_low from system, it is never used
Donald Sharp [Fri, 21 Jul 2023 16:46:31 +0000 (12:46 -0400)]
bgpd: Remove withdraw_low from system, it is never used

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
21 months agobgpd: Remove peer->sync array
Donald Sharp [Fri, 21 Jul 2023 16:41:35 +0000 (12:41 -0400)]
bgpd: Remove peer->sync array

It is never used.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
21 months agobgpd: Remove peer->obuf_work
Donald Sharp [Fri, 21 Jul 2023 16:23:23 +0000 (12:23 -0400)]
bgpd: Remove peer->obuf_work

This is never used.  Free up another 65k of stream data
never used per peer.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
21 months agopbrd: fix coverity issue
G. Paul Ziemba [Fri, 21 Jul 2023 12:41:07 +0000 (05:41 -0700)]
pbrd: fix coverity issue

Signed-off-by: G. Paul Ziemba <paulz@labn.net>
21 months agobgpd: Remove peer->scratch
Donald Sharp [Fri, 21 Jul 2023 16:14:59 +0000 (12:14 -0400)]
bgpd: Remove peer->scratch

This was only ever being allocated and de-allocated.
Let's save 65k per peer

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
21 months agoMerge pull request #14065 from opensourcerouting/bfd-label-doc
Mark Stapp [Fri, 21 Jul 2023 12:59:50 +0000 (08:59 -0400)]
Merge pull request #14065 from opensourcerouting/bfd-label-doc

doc: remove BFD label command references

21 months agozebra: Remove unused functionality
Donald Sharp [Thu, 20 Jul 2023 16:29:09 +0000 (12:29 -0400)]
zebra: Remove unused functionality

The nl_rta_putXXX functions are never used.  Let's just remove them.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
21 months agobgpd: Cleanup bgp_zebra_announce_default to be cleaner
Donald Sharp [Thu, 20 Jul 2023 16:12:57 +0000 (12:12 -0400)]
bgpd: Cleanup bgp_zebra_announce_default to be cleaner

Over time the bgp_zebra_announce_default function has gotten
slightly convoluted, clean it up so it's easier to read

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
21 months agopimd: Remove pim_addr_dump
Donald Sharp [Thu, 20 Jul 2023 15:24:48 +0000 (11:24 -0400)]
pimd: Remove pim_addr_dump

This function is no longer used, remove it from the system.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
21 months agopimd: Convert usage of pim_addr_dump to %pFXh
Donald Sharp [Thu, 20 Jul 2023 15:22:02 +0000 (11:22 -0400)]
pimd: Convert usage of pim_addr_dump to %pFXh

pim_addr_dump would dump the group data as a v4 or v6 address
let's just convert to our internal printf handler.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
21 months agoMerge pull request #14034 from LabNConsulting/aceelindem/ospf_prefix_suppression
Donatas Abraitis [Fri, 21 Jul 2023 07:14:22 +0000 (10:14 +0300)]
Merge pull request #14034 from LabNConsulting/aceelindem/ospf_prefix_suppression

ospfd: Implement OSPF prefix-suppression as specified in RFC 6860

21 months agoMerge pull request #14066 from opensourcerouting/fix/libyang_2.1.80
Donald Sharp [Fri, 21 Jul 2023 03:08:28 +0000 (23:08 -0400)]
Merge pull request #14066 from opensourcerouting/fix/libyang_2.1.80

Switch to libyang 2.1.80

21 months agodocker: Use libyang 2.1.80 for Alpine builds
Donatas Abraitis [Thu, 20 Jul 2023 20:16:38 +0000 (23:16 +0300)]
docker: Use libyang 2.1.80 for Alpine builds

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agodocker: Move Alpine dependency packages to APKBUILD file
Donatas Abraitis [Thu, 20 Jul 2023 19:39:14 +0000 (22:39 +0300)]
docker: Move Alpine dependency packages to APKBUILD file

Do not mix APKBUILD and Dockerfile when installing dependencies.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agodocker: Install protobuf-c-devel for ubi8-minimal
Donatas Abraitis [Thu, 20 Jul 2023 19:33:10 +0000 (22:33 +0300)]
docker: Install protobuf-c-devel for ubi8-minimal

configure: error: in `/src':
configure: error: protobuf requested but protoc-c not found.  Install protobuf-c.
See `config.log' for more details

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agodocker: Use Alpine Linux 3.18
Donatas Abraitis [Thu, 20 Jul 2023 19:11:03 +0000 (22:11 +0300)]
docker: Use Alpine Linux 3.18

It has the newer libyang version 2.1.55, while 3.17 has 2.1.30.

3.19 will have 2.1.80.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agodocker: Use libyang 2.1.80
Donatas Abraitis [Thu, 20 Jul 2023 19:10:19 +0000 (22:10 +0300)]
docker: Use libyang 2.1.80

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agoospfd: Implement OSPF prefix-suppression as specified in RFC 6860
Acee [Mon, 17 Jul 2023 17:47:16 +0000 (13:47 -0400)]
ospfd: Implement OSPF prefix-suppression as specified in RFC 6860

Signed-off-by: Acee <aceelindem@gmail.com>
21 months agoredhat: Require libyang 2.1.80
Donatas Abraitis [Thu, 20 Jul 2023 18:54:22 +0000 (21:54 +0300)]
redhat: Require libyang 2.1.80

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agodebian: Require libyang 2.1.80
Donatas Abraitis [Thu, 20 Jul 2023 18:52:26 +0000 (21:52 +0300)]
debian: Require libyang 2.1.80

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agodoc: remove BFD label command references
Rafael Zalamena [Wed, 19 Jul 2023 14:10:28 +0000 (11:10 -0300)]
doc: remove BFD label command references

`label` command is already gone and now we are going to remove all label
references.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
21 months agosnapcraft: Use libyang 2.1.80
Donatas Abraitis [Thu, 20 Jul 2023 18:46:38 +0000 (21:46 +0300)]
snapcraft: Use libyang 2.1.80

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agolib: zapi PBR common encode/decode
G. Paul Ziemba [Mon, 17 Jul 2023 16:31:06 +0000 (09:31 -0700)]
lib: zapi PBR common encode/decode

    bgpd, pbrd: use common pbr encoder
    zebra: use common pbr decoder
    tests: pbr_topo1: check more filter fields

    Purpose:
1. Reduce likelihood of zapi format mismatches when adding
   PBR fields due to multiple parallel encoder implementations
2. Encourage common PBR structure usage among various daemons
3. Reduce coding errors via explicit per-field enable flags

Signed-off-by: G. Paul Ziemba <paulz@labn.net>
21 months agoMerge pull request #14003 from iqras23/coverity
Donald Sharp [Thu, 20 Jul 2023 14:16:46 +0000 (10:16 -0400)]
Merge pull request #14003 from iqras23/coverity

bgpd: Fix coverity for EVPN

21 months agoMerge pull request #14006 from AbhishekNR/mld_core
Donald Sharp [Thu, 20 Jul 2023 12:23:28 +0000 (08:23 -0400)]
Merge pull request #14006 from AbhishekNR/mld_core

pim6d: Fixing core while running MLD conformance test.

21 months agoMerge pull request #13605 from anlancs/fix/pimd-promote-interface
Donald Sharp [Thu, 20 Jul 2023 12:16:17 +0000 (08:16 -0400)]
Merge pull request #13605 from anlancs/fix/pimd-promote-interface

pimd: Fix missing promotion for primary address

21 months agoMerge pull request #14026 from LabNConsulting/pbr-add-vlan-filters
Donald Sharp [Thu, 20 Jul 2023 12:01:24 +0000 (08:01 -0400)]
Merge pull request #14026 from LabNConsulting/pbr-add-vlan-filters

pbrd: 1/3: add vty support for vlan filtering and send to zebra

21 months agoMerge pull request #14055 from guoguojia2021/route_lock
Donatas Abraitis [Thu, 20 Jul 2023 07:06:47 +0000 (10:06 +0300)]
Merge pull request #14055 from guoguojia2021/route_lock

zebra:unlock node after route_next

21 months agoMerge pull request #14058 from kuldeepkash/pim_v6
Donald Sharp [Wed, 19 Jul 2023 19:45:09 +0000 (15:45 -0400)]
Merge pull request #14058 from kuldeepkash/pim_v6

tests: Update join state in verify_upstream_iif API

21 months agoMerge pull request #14054 from zice312963205/zly_evpn
Donald Sharp [Wed, 19 Jul 2023 19:44:42 +0000 (15:44 -0400)]
Merge pull request #14054 from zice312963205/zly_evpn

zebra:fix a zebra crash issue caused by mac change

21 months agopbrd: add vlan filters pcp/vlan-id/vlan-flags; ip-protocol any (doc, tests)
G. Paul Ziemba [Wed, 19 Jul 2023 14:49:18 +0000 (07:49 -0700)]
pbrd: add vlan filters pcp/vlan-id/vlan-flags; ip-protocol any (doc, tests)

    Subset: doc and tests

    doc
PBR section updated with new fields and some copy-editing

    tests
pbr_topo1: ensure new vlan fields arrive at zebra

    Changes by:
Josh Werner <joshuawerner@mitre.org>
Eli Baum <ebaum@mitre.org>
G. Paul Ziemba <paulz@labn.net>

Signed-off-by: G. Paul Ziemba <paulz@labn.net>
21 months agopbrd: add vlan filters pcp/vlan-id/vlan-flags; ip-protocol any (zebra dplane)
G. Paul Ziemba [Wed, 19 Jul 2023 14:50:11 +0000 (07:50 -0700)]
pbrd: add vlan filters pcp/vlan-id/vlan-flags; ip-protocol any (zebra dplane)

    Subset: zebra dataplane

    Add new vlan filter fields. No kernel dataplane
    implementation yet (linux does not support).

    Changes by:
Josh Werner <joshuawerner@mitre.org>
Eli Baum <ebaum@mitre.org>
G. Paul Ziemba <paulz@labn.net>

Signed-off-by: G. Paul Ziemba <paulz@labn.net>
21 months agopbrd: add vlan filters pcp/vlan-id/vlan-flags; ip-protocol any (zapi)
G. Paul Ziemba [Wed, 19 Jul 2023 14:59:04 +0000 (07:59 -0700)]
pbrd: add vlan filters pcp/vlan-id/vlan-flags; ip-protocol any (zapi)

    Subset: ZAPI changes to send the new data

    Also adds filter_bm field; currently for PBR_FILTER_PCP, but in the
    future to be used for all of the filter fields.

    Changes by:
Josh Werner <joshuawerner@mitre.org>
Eli Baum <ebaum@mitre.org>
G. Paul Ziemba <paulz@labn.net>

Signed-off-by: G. Paul Ziemba <paulz@labn.net>
21 months agopbrd: add vlan filters pcp/vlan-id/vlan-flags; ip-protocol any (pbr feature)
G. Paul Ziemba [Wed, 19 Jul 2023 14:58:02 +0000 (07:58 -0700)]
pbrd: add vlan filters pcp/vlan-id/vlan-flags; ip-protocol any (pbr feature)

    Subset: feature in PBR

    New PBR rule fields:

    match ip-protocol (was only tcp|udp, now any value in /etc/protocols)
    match pcp (0-7)
    match vlan (1-4094)
    match vlan (tagged|untagged|untagged-or-zero)

    Filter flags
Add filter_bm (flags) field internally to indicate which
filter fields should be considered active. Bit definitions
as in lib/pbr.h.

This commit uses only the PBR_FILTER_PCP bit, but other
fields will be added in future commits. (Fixes bug related
to determining set/not-set state of pcp filter)

Shift vlan filter flags to lib/pbr.h

    Changes by:
Josh Werner <joshuawerner@mitre.org>
Eli Baum <ebaum@mitre.org>
G. Paul Ziemba <paulz@labn.net>

Signed-off-by: G. Paul Ziemba <paulz@labn.net>
21 months agoMerge pull request #13629 from anlancs/fix/pimd-order-pimreg
Donald Sharp [Wed, 19 Jul 2023 14:34:05 +0000 (10:34 -0400)]
Merge pull request #13629 from anlancs/fix/pimd-order-pimreg

pimd: Fix wrong creating order for pimreg

21 months agozebra:fix a zebra crash issue caused by mac change
Jack.zhang [Wed, 19 Jul 2023 09:46:46 +0000 (17:46 +0800)]
zebra:fix a zebra crash issue caused by mac change

When the MAC address of the neighbor changes, a possible crash issue may occur.

In the zebra_evpn_local_neigh_update function, the value of old_zmac (n->mac) will be updated to the new MAC address when the neighbor's MAC address changes.
The pointer to the memory that this pointer points to may be released in the zebra_evpn_local_neigh_deref_mac function. This will cause old_zmac to become a dangling pointer. Accessing this dangling pointer in the zebra_evpn_ip_inherit_dad_from_mac function below will cause the zebra process to crash.

Here is the backtrace:
(gdb) bt
0  0x00007fc12c5f1fbf in raise () from /lib/x86_64-linux-gnu/libpthread.so.0
1  0x00007fc12d52e19c in core_handler (signo=11, siginfo=0x7ffda1fd1570, context=<optimized out>) at lib/sigevent.c:262
2  <signal handler called>
3  zebra_evpn_ip_inherit_dad_from_mac (zvrf=<optimized out>, old_zmac=0x5579ac3ca520, new_zmac=0x5579aba82f80, nbr=0x5579abd65ec0) at zebra/ze
4  0x00005579aa8dbf6d in zebra_evpn_local_neigh_update (zevpn=0x5579abb81440, ifp=ifp@entry=0x5579ab8a1640, ip=ip@entry=0x7ffda1fd1b40, macadd
   local_inactive=local_inactive@entry=253, dp_static=false) at zebra/zebra_evpn_neigh.c:1729
5  0x00005579aa9190a9 in zebra_vxlan_handle_kernel_neigh_update (ifp=ifp@entry=0x5579ab8a1640, link_if=link_if@entry=0x5579abd14f90, ip=ip@ent
   is_ext=is_ext@entry=false, is_router=<optimized out>, local_inactive=false, dp_static=false) at zebra/zebra_vxlan.c:3791
6  0x00005579aa8b3048 in netlink_ipneigh_change (h=0x7ffda1fd1d50, len=<optimized out>, ns_id=<optimized out>) at zebra/rt_netlink.c:3649
7  0x00005579aa8ac667 in netlink_parse_info (filter=filter@entry=0x5579aa8ab630 <netlink_information_fetch>, nl=nl@entry=0x5579ab5861e8, zns=z
   startup=startup@entry=0) at zebra/kernel_netlink.c:965
8  0x00005579aa8ac8c8 in kernel_read (thread=<optimized out>) at zebra/kernel_netlink.c:402
9  0x00007fc12d53e60b in thread_call (thread=thread@entry=0x7ffda1fd9fd0) at lib/thread.c:1834
10 0x00007fc12d4fba78 in frr_run (master=0x5579ab3a1740) at lib/libfrr.c:1155
11 0x00005579aa89c6e3 in main (argc=11, argv=0x7ffda1fda3c8) at zebra/main.c:485
(gdb) f 3
3  zebra_evpn_ip_inherit_dad_from_mac (zvrf=<optimized out>, old_zmac=0x5579ac3ca520, new_zmac=0x5579aba82f80, nbr=0x5579abd65ec0) at zebra/ze
1230 zebra/zebra_evpn_neigh.c: No such file or directory.
(gdb) p *old_zmac
Cannot access memory at address 0x5579ac3ca520
(gdb)

To fix this issue, the ZEBRA_MAC_DUPLICATE flag should be retrieved before old_zmac is released and used in the zebra_evpn_ip_inherit_dad_from_mac function.

Signed-off-by: Jack.zhang <hanyu.zly@alibaba-inc.com>
21 months agotests: Update join state in verify_upstream_iif API
Kuldeep Kashyap [Wed, 19 Jul 2023 13:51:01 +0000 (19:21 +0530)]
tests: Update join state in verify_upstream_iif API

When JoinState is not passed to API it is expected to
be in Joined state, there was a minor bug in API, where
it was printng JoinState as None, which is default value
in API. Updated value to print Joined when verification
fails.

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
21 months agoMerge pull request #13951 from fdumontet6WIND/as_path_exclude_reg
Donatas Abraitis [Wed, 19 Jul 2023 13:35:33 +0000 (16:35 +0300)]
Merge pull request #13951 from fdumontet6WIND/as_path_exclude_reg

bgpd: add set as-path exclude acl-list command

21 months agoospfd: fix default-metric change if external LSAs already sent
Alexander Chernavin [Wed, 19 Jul 2023 12:03:46 +0000 (12:03 +0000)]
ospfd: fix default-metric change if external LSAs already sent

Currently, when redistribution of routes was configured, external LSAs
were already advertised to peers, and then default-metric is changed,
external LSAs refresh will not occur. In other words, the peers will not
receive the refreshed external LSAs with the new metric.

With this fix, changing default-metric will cause external LSAs to be
refreshed and flooded.

There is a similar task to refresh external LSAs when NSSA settings are
changed. And there is a function that accomplishes it -
ospf_schedule_asbr_nssa_redist_update(). Since the function does the
general work of refreshing external LSAs and is not specific to NSSA
settings, the idea is to give it a more general name and call it when
default-metric changes in order to fix the problem.

Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
21 months agobgpd: Fix coverity for EVPN
Kantesh Mundaragi [Mon, 30 May 2022 13:42:06 +0000 (06:42 -0700)]
bgpd: Fix coverity for EVPN

Reported Warning:
Compare member by member to check object equality

RCA:
struct evpn_addr contains padding

Authored-by: Kantesh Mundaragi <kmundaragi@vmware.com>
Signed-off-by: Iqra Siddiqui <imujeebsiddi@vmware.com>
21 months agoMerge pull request #14049 from opensourcerouting/fix/initialize_some_bools
mobash-rasool [Wed, 19 Jul 2023 11:41:24 +0000 (17:11 +0530)]
Merge pull request #14049 from opensourcerouting/fix/initialize_some_bools

bgpd: Initialize bgp_nht_ifp_table_handle() bools

21 months agozebra:unlock node after route_next
guozhongfeng [Wed, 19 Jul 2023 11:39:22 +0000 (19:39 +0800)]
zebra:unlock node after route_next

When route_next return node, it has lock the node. if return or break loop, should unlock node.
Signed-off-by: guozhongfeng <guozhongfeng.gzf@alibaba-inc.com>
21 months agotests: add one test to bgp_exclude_aspath_exclude.py
Francois Dumontet [Wed, 12 Jul 2023 17:55:52 +0000 (19:55 +0200)]
tests: add one test to bgp_exclude_aspath_exclude.py

add support of  set as-path exclude as-path-access-list

Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
21 months agodoc: set as-path exclude as-path-access-list
Francois Dumontet [Wed, 12 Jul 2023 17:54:37 +0000 (19:54 +0200)]
doc: set as-path exclude as-path-access-list

Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
21 months agobgpd: add set as-path exclude acl-list command
Francois Dumontet [Wed, 12 Jul 2023 17:44:02 +0000 (19:44 +0200)]
bgpd: add set as-path exclude acl-list command

A route-map applied on incoming BGP updates is not able
to exclude the unwanted as segments, based on an AS path
access-list.

The below configuration illustrates the case:

router bgp 65001

address-family ipv4 unicast
 neighbor 192.168.1.2 route-map rule_2 in
exit-address-family

bgp as-path access-list RULE permit ^65

route-map rule_2 permit 10
 set as-path exclude as-path-access-list RULE

```
BGP routing table entry for 10.10.10.10/32, version 13
Paths: (1 available, best #1, table default)
  Advertised to non peer-group peers:
  192.168.10.65
  65000 1 2 3 123
    192.168.10.65 from 192.168.10.65 (10.10.10.11)
      Origin IGP, metric 0, valid, external, best (First path received)
```

After:

```
do show ip bgp 10.10.10.10/32
BGP routing table entry for 10.10.10.10/32, version 15
    Paths: (1 available, best #1, table default)
      Advertised to non peer-group peers:
      192.168.10.65
      2 3 123
        192.168.10.65 from 192.168.10.65 (10.10.10.11)
          Origin IGP, metric 0, valid, external, best (First path
received)
```

Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
21 months agoMerge pull request #14048 from LabNConsulting/chopps/staticd-stop-parsing
Donald Sharp [Tue, 18 Jul 2023 23:18:12 +0000 (19:18 -0400)]
Merge pull request #14048 from LabNConsulting/chopps/staticd-stop-parsing

static: stop vtysh from sending VRF commands to staticd

21 months agobgpd: Initialize bgp_nht_ifp_table_handle() bools
Donatas Abraitis [Tue, 18 Jul 2023 17:45:47 +0000 (20:45 +0300)]
bgpd: Initialize bgp_nht_ifp_table_handle() bools

Assuming field 'ifindex_ipv6_ll' is not equal to field 'ifindex', then
nhop_found is just a garbage, let's avoid that.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agostatic: stop sending VRF commands to staticd from vtysh
Christian Hopps [Tue, 18 Jul 2023 16:45:04 +0000 (12:45 -0400)]
static: stop sending VRF commands to staticd from vtysh

Signed-off-by: Christian Hopps <chopps@labn.net>
21 months agoMerge pull request #10136 from idryzhov/frr-reload-exit
Mark Stapp [Tue, 18 Jul 2023 16:19:10 +0000 (12:19 -0400)]
Merge pull request #10136 from idryzhov/frr-reload-exit

tools: always append "exit" in frr-reload.py

21 months agoMerge pull request #13918 from rameshabhinay/evpn_memleak
Jafar Al-Gharaibeh [Tue, 18 Jul 2023 15:59:20 +0000 (10:59 -0500)]
Merge pull request #13918 from rameshabhinay/evpn_memleak

bgpd: fix bgp evpn cli memory leaks.