From f1a1703a0a2c2ecd81f50ccd384dcdb7e0c1a793 Mon Sep 17 00:00:00 2001 From: Julian Klaiber Date: Mon, 2 Sep 2024 15:13:40 +0200 Subject: [PATCH] tools: Allow deleting of interfaces The frr-reload script currently deletes configurations line-by-line under an interface context, if the interface was removed. This approach fails when the interface has already been removed from the system. This change enables whole interface removal using a single command (no interface ), simplifying the reload process and reducing reload errors. Signed-off-by: Julian Klaiber --- tools/frr-reload.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/tools/frr-reload.py b/tools/frr-reload.py index 3ea63ce2a378..a138e4e23911 100755 --- a/tools/frr-reload.py +++ b/tools/frr-reload.py @@ -1757,12 +1757,13 @@ def compare_context_objects(newconf, running): delete_bgpd = True lines_to_del.append((running_ctx_keys, None)) - # We cannot do 'no interface' or 'no vrf' in FRR, and so deal with it - elif ( - running_ctx_keys[0].startswith("interface") - or running_ctx_keys[0].startswith("vrf") - or running_ctx_keys[0].startswith("router pim") - ): + elif running_ctx_keys[0].startswith("interface"): + lines_to_del.append((running_ctx_keys, None)) + + # We cannot do 'no vrf' in FRR, and so deal with it + elif running_ctx_keys[0].startswith("vrf") or running_ctx_keys[ + 0 + ].startswith("router pim"): for line in running_ctx.lines: lines_to_del.append((running_ctx_keys, line))