frr/tools
Chirag Shah 3ef97f0e2f tools: fix frr-reload for nbr deletion of no form cmds
When a bgp neighbor removed from associated to peer-group,
the neighbor is fully deleted, subsequent deletion of any
configuration related to the neighbor leads to failure
in frr-reload.
Handle any 'no neighbor ...' part of lines_to_del list

Testing:
Below first line would delete the neighbor swp1.10,
the existing code before the change handles to remove
config starts with 'neighbor swp1.10 ...' but not
'no neighbor swp1.10 ...'.

(Pdb) (lines_to_del)
 (('router bgp 100',), 'neighbor swp1.10 interface peer-group dpeergrp_2'),
 (('router bgp 100',), 'neighbor swp1.10 advertisement-interval 1'),
 (('router bgp 100',), 'neighbor swp1.10 timers 3 9'),
 (('router bgp 100',), 'neighbor swp1.10 timers connect 1'),
 (('router bgp 100',), 'no neighbor swp1.10 capability dynamic'),

Before fix:

(Pdb) (lines_to_del)
[(('router bgp 100',), 'neighbor swp1.10 interface peer-group dpeergrp_2'),
 (('router bgp 100',), 'no neighbor swp1.10 capability dynamic')]

frr-reload log:
2025-01-13 05:13:11,172  INFO: Executed "router bgp 100  no neighbor swp1.10 interface peer-group dpeergrp_2 exit"
2025-01-13 05:13:11,227 ERROR: Failed to execute router bgp 100  neighbor swp1.10 capability dynamic exit
2025-01-13 05:13:11,228 ERROR: "router bgp 100 --  neighbor swp1.10 capability dynamic -- exit" we failed to remove this command

After fix:

(Pdb)(lines_to_del)
 [(('router bgp 100',), 'neighbor swp1.10 interface peer-group dpeergrp_2')]

Signed-off-by: Chirag Shah <chirag@nvidia.com>
2025-01-13 11:53:18 -08:00
..
coccinelle bgpd: Use route_map_result_t for route_map_apply() as return type 2022-09-20 10:45:02 +03:00
etc tools: Add rip support bundle commands 2024-12-13 10:56:17 -05:00
gcc-plugins tools/gcc-plugins: don't crash on array parameters 2024-10-15 13:35:24 +02:00
.gitignore build: ignore frr-llvm-cg binary 2021-03-27 20:59:39 +01:00
build-debian-package.sh *: manual SPDX License ID conversions 2023-02-09 14:09:07 +01:00
checkpatch.pl tools: we specifically added %Lu to our sprintfrr so allow it 2025-01-07 01:34:13 -05:00
checkpatch.sh tools: checkpatch updated with darr_foreach iter macros 2023-11-06 17:44:58 -05:00
cocci.h *: Add missing SPDX-License-Identifier for some .c/.h files 2024-03-21 16:46:58 +02:00
convert-fixedwidth.sh tools, doc: update checkpatch for u_int_* 2018-03-27 15:00:23 -04:00
emacs.dir-locals.el style: add format checker config that matches FRR style standards 2023-04-18 05:18:26 -04:00
fixup-deprecated.py *: manual SPDX License ID conversions 2023-02-09 14:09:07 +01:00
frr-llvm-cg.c build: add -Wimplicit-fallthrough 2023-10-12 21:23:18 +03:00
frr-llvm-debuginfo.cpp *: manual SPDX License ID conversions 2023-02-09 14:09:07 +01:00
frr-llvm-debuginfo.h *: manual SPDX License ID conversions 2023-02-09 14:09:07 +01:00
frr-reload tools: Add helper frr-reload shell script for clean error 2018-03-14 17:31:29 -07:00
frr-reload.py tools: fix frr-reload for nbr deletion of no form cmds 2025-01-13 11:53:18 -08:00
frr.in build: homologize path handling 2024-01-27 19:02:52 +01:00
frr.service.in build: homologize path handling 2024-01-27 19:02:52 +01:00
frr.vim *: manual SPDX License ID conversions 2023-02-09 14:09:07 +01:00
frr@.service.in build: homologize path handling 2024-01-27 19:02:52 +01:00
frr_babeltrace.py tools: fix style check babletrace file 2024-11-25 09:00:03 -08:00
frrcommon.sh.in build: homologize path handling 2024-01-27 19:02:52 +01:00
frrinit.sh.in build: homologize path handling 2024-01-27 19:02:52 +01:00
gen_northbound_callbacks.c tools: add new-style get operation callback support 2025-01-07 05:33:32 -05:00
gen_yang_deviations.c lib: add flag to have libyang load internal ietf-yang-library module 2024-10-07 03:32:44 +00:00
generate_support_bundle.py *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
git-reindent-branch.py *: reformat python files 2020-10-07 17:22:26 -04:00
indent.py tools/indent.py: fix encoded byte stream handling 2024-04-10 16:05:03 +10:00
lua.scr bgpd: Add lua match command 2018-09-26 21:21:23 -04:00
Makefile build: non-recursive watchfrr & tools 2017-09-07 16:18:50 +02:00
mrlg.txt mrlg: Remove obsolete version. 2016-05-26 01:16:28 +00:00
multiple-bgpd.sh tools: update to use FRR name 2017-07-12 13:26:22 -05:00
nhrpd-event-handler.sh *: manual SPDX License ID conversions 2023-02-09 14:09:07 +01:00
permutations.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
release_notes.py tools: Skip decorating commits with references (branch name, remote) 2022-02-04 23:24:03 +02:00
releasedate.py doc, tools: Update release dates in workflow.rst 2022-05-27 08:25:12 +03:00
render_md.py *: manual SPDX License ID conversions 2023-02-09 14:09:07 +01:00
rrcheck.pl tools: use standard interpreter path in all Perl scripts 2012-04-30 16:13:47 +02:00
rrlookup.pl tools: use standard interpreter path in all Perl scripts 2012-04-30 16:13:47 +02:00
start-stop-daemon.c tools: remove strncpy() use 2024-10-22 14:53:52 +02:00
stringmangle.py *: manual SPDX License ID conversions 2023-02-09 14:09:07 +01:00
subdir.am tools: remove strncpy() use 2024-10-22 14:53:52 +02:00
symalyzer.html *: manual SPDX License ID conversions 2023-02-09 14:09:07 +01:00
symalyzer.py *: manual SPDX License ID conversions 2023-02-09 14:09:07 +01:00
valgrind.supp tools: suppress some reachable external lib "leaks" 2023-11-11 21:10:45 +01:00
vty_index.sh *: fix remaining vty->index & add coccinelle patch 2016-12-09 17:36:25 +01:00
watchfrr.sh.in build: homologize path handling 2024-01-27 19:02:52 +01:00
zc.pl *: manual SPDX License ID conversions 2023-02-09 14:09:07 +01:00
zebra.el Initial revision 2002-12-13 20:15:29 +00:00