Thanks for looking into this.  Yes, this patch is incorrect. Please abandon the 
patch. My bad, I was not testing the functionality right. The current 
implementation works, is totally correct and does not need a fix. So the steps 
to manage this bit are as follows:

        enable
        configure terminal
        router isis <Routing area>
        set-overload-bit

Thanks,
Amritha

From: Donald Sharp [mailto:[email protected]] 
Sent: Thursday, July 2, 2015 8:08 PM
To: Nambiar, Amritha
Cc: [email protected]
Subject: Re: [quagga-dev 12849] [PATCH] isisd: Fix overload-bit

I don't believe this patch is correct:

!
router isis GREEN
 metric-style wide
 set-overload-bit
!
router isis BLUE
 metric-style wide
 is-type level-1
 spf-interval 5
!

If I am reading your code right, set-overload-bit will cause the overload bit 
to be set for both GREEN and BLUE.  The correct fix is to figure out what is 
going wrong in the router_isis_cmd and isis_area_get() functionality.

donald

On Thu, Jul 2, 2015 at 10:51 PM, Nambiar, Amritha <[email protected]> 
wrote:
I believe so, although I have only tested the overload-bit command among them.

Thanks,
Amritha

From: Donald Sharp [mailto:[email protected]]
Sent: Thursday, July 2, 2015 7:33 PM
To: Nambiar, Amritha
Cc: [email protected]
Subject: Re: [quagga-dev 12849] [PATCH] isisd: Fix overload-bit

I see lots of commands in isisd.c that have 'area = vty->index'.  Does this 
patch imply that they are all broken as well?

doanld

On Thu, Jul 2, 2015 at 10:16 PM, Amritha Nambiar <[email protected]> 
wrote:
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

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

Reply via email to