isisd: purge on correct level

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
Acked-by: Donald Sharp <sharpd@cumulusnetworks.com>
diff --git a/isisd/isis_lsp.c b/isisd/isis_lsp.c
index dc18aa0..1c472c0 100644
--- a/isisd/isis_lsp.c
+++ b/isisd/isis_lsp.c
@@ -2345,7 +2345,8 @@
  * -> 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 = 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