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