isisd.c :
set/reset overload-bit using "set-overload-bit" or "no set-overload-bit"
commands fails to set the bit in LSP header. This is because
area = vty->index does not find a valid area.

Signed-off-by: Amritha Nambiar <[email protected]>
---
 isisd/isisd.c |   23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/isisd/isisd.c b/isisd/isisd.c
index 9c9b918..287ef81 100644
--- a/isisd/isisd.c
+++ b/isisd/isisd.c
@@ -2143,12 +2143,13 @@ DEFUN (set_overload_bit,
        "Set overload bit\n")
 {
   struct isis_area *area;
+  struct listnode *anode;
 
-  area = vty->index;
-  assert (area);
-
-  area->overload_bit = LSPBIT_OL;
-  lsp_regenerate_schedule (area, IS_LEVEL_1 | IS_LEVEL_2, 1);
+  for (ALL_LIST_ELEMENTS_RO (isis->area_list, anode, area))
+    {
+      area->overload_bit = LSPBIT_OL;
+      lsp_regenerate_schedule (area, IS_LEVEL_1 | IS_LEVEL_2, 1);
+    }
 
   return CMD_SUCCESS;
 }
@@ -2160,13 +2161,13 @@ DEFUN (no_set_overload_bit,
        "Reset overload bit\n")
 {
   struct isis_area *area;
+  struct listnode *anode;
 
-  area = vty->index;
-  assert (area);
-
-  area->overload_bit = 0;
-  lsp_regenerate_schedule (area, IS_LEVEL_1 | IS_LEVEL_2, 1);
-
+  for (ALL_LIST_ELEMENTS_RO (isis->area_list, anode, area))
+    {
+      area->overload_bit = 0;
+      lsp_regenerate_schedule (area, IS_LEVEL_1 | IS_LEVEL_2, 1);
+    }
   return CMD_SUCCESS;
 }
 


_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev

Reply via email to