Signed-off-by: Christian Franke <[email protected]>
---
 isisd/isis_lsp.c | 6 +++---
 isisd/isis_lsp.h | 3 ++-
 isisd/isis_pdu.c | 2 +-
 3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/isisd/isis_lsp.c b/isisd/isis_lsp.c
index b2059a0..0eb968e 100644
--- a/isisd/isis_lsp.c
+++ b/isisd/isis_lsp.c
@@ -2342,7 +2342,8 @@ lsp_purge_pseudo (u_char * id, struct isis_circuit 
*circuit, int level)
  * -> Do as in 7.3.16.4
  */
 void
-lsp_purge_non_exist (struct isis_link_state_hdr *lsp_hdr,
+lsp_purge_non_exist (int level,
+                    struct isis_link_state_hdr *lsp_hdr,
                     struct isis_area *area)
 {
   struct isis_lsp *lsp;
@@ -2352,8 +2353,7 @@ lsp_purge_non_exist (struct isis_link_state_hdr *lsp_hdr,
    */
   lsp = XCALLOC (MTYPE_ISIS_LSP, sizeof (struct isis_lsp));
   lsp->area = area;
-  lsp->level = ((lsp_hdr->lsp_bits & LSPBIT_IST) == IS_LEVEL_1) ?
-    IS_LEVEL_1 : IS_LEVEL_2;
+  lsp->level = level;
   lsp->pdu = stream_new(LLC_LEN + area->lsp_mtu);
   lsp->isis_header = (struct isis_fixed_hdr *) STREAM_DATA (lsp->pdu);
   fill_fixed_hdr (lsp->isis_header, (lsp->level == IS_LEVEL_1) ? L1_LINK_STATE
diff --git a/isisd/isis_lsp.h b/isisd/isis_lsp.h
index 92a5dfe..a35bfa7 100644
--- a/isisd/isis_lsp.h
+++ b/isisd/isis_lsp.h
@@ -87,7 +87,8 @@ void lsp_build_list_ssn (struct isis_circuit *circuit, u_char 
num_lsps,
 
 void lsp_search_and_destroy (u_char * id, dict_t * lspdb);
 void lsp_purge_pseudo (u_char * id, struct isis_circuit *circuit, int level);
-void lsp_purge_non_exist (struct isis_link_state_hdr *lsp_hdr,
+void lsp_purge_non_exist (int level,
+                         struct isis_link_state_hdr *lsp_hdr,
                          struct isis_area *area);
 
 #define LSP_EQUAL 1
diff --git a/isisd/isis_pdu.c b/isisd/isis_pdu.c
index 0c3f57f..d2be27b 100644
--- a/isisd/isis_pdu.c
+++ b/isisd/isis_pdu.c
@@ -1557,7 +1557,7 @@ dontcheckadj:
       if (!lsp)
        {
          /* 7.3.16.4: initiate a purge */
-         lsp_purge_non_exist (hdr, circuit->area);
+         lsp_purge_non_exist(level, hdr, circuit->area);
          return ISIS_OK;
        }
       /* 7.3.15.1 d) - If this is our own lsp and we have it */
-- 
2.6.1


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

Reply via email to