From e3a846754d8fc973903cc64c9024a548ecb337a4 Mon Sep 17 00:00:00 2001 From: anlan_cs Date: Sat, 5 Oct 2024 16:43:53 +0800 Subject: [PATCH] tools: fix some special commands for reloading pim The issue is we can't remove all pim configurations including some special configurations (e.g., `no ip pim bsm`) for one interface. For one pim-disable interface, all such pim depdendent options (including `ip pim ` and `no ip pim `) should be completely removed. Also append `no ip multicast` for the same purpose, it is no use at present, but for future use. The running config: ``` interface A ip pim no ip pim bsm exit ``` Reload the new config: ``` interface A exit ``` Before: ``` 2024-10-05 20:52:33,467 INFO: Executed "interface A no ip pim exit" 2024-10-05 20:52:33,482 INFO: Executed "interface A ip pim bsm exit" ``` And the pim configurations in running configuration are not removed after reloading: ``` interface A ip pim <- Wrong exit ``` After: ``` 2024-10-05 20:56:27,489 INFO: Executed "interface A no ip pim exit" ``` And all the pim configuration are removed. Signed-off-by: anlan_cs --- tools/frr-reload.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tools/frr-reload.py b/tools/frr-reload.py index 53bb6513e21a..08a1f1e07eac 100755 --- a/tools/frr-reload.py +++ b/tools/frr-reload.py @@ -1163,7 +1163,12 @@ def pim_delete_move_lines(lines_to_add, lines_to_del): ctx_keys[0] in pim_disable and ctx_keys[0].startswith("interface") and line - and (line.startswith("ip pim ") or line.startswith("ip multicast ")) + and ( + line.startswith("ip pim ") + or line.startswith("no ip pim ") + or line.startswith("ip multicast ") + or line.startswith("no ip multicast ") + ) ): lines_to_del_to_del.append((ctx_keys, line))