]> git.puffer.fish Git - mirror/frr.git/commitdiff
isisd: purge on correct level
authorChristian Franke <chris@opensourcerouting.org>
Tue, 10 Nov 2015 17:21:44 +0000 (18:21 +0100)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 30 Mar 2016 00:26:21 +0000 (20:26 -0400)
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
Acked-by: Donald Sharp <sharpd@cumulusnetworks.com>
isisd/isis_lsp.c
isisd/isis_lsp.h
isisd/isis_pdu.c

index ed4ce25637306dbb922b577727290a645f08b91e..5de08325aafc013b6097b06d511b51b84d85dab2 100644 (file)
@@ -2345,7 +2345,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;
@@ -2355,8 +2356,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
index 92a5dfe595274e9051da81c9b32f2df82393676e..a35bfa7622b4d28d0d2a74979031eead6ab8d81b 100644 (file)
@@ -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
index 361a90be85d321d8e71ab0862393dbca3c5138ee..02d6fffc72670de392206488d6ba5f514ed52107 100644 (file)
@@ -1529,7 +1529,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 */