]> git.proxmox.com Git - mirror_frr.git/blobdiff - isisd/isisd.c
Merge pull request #5280 from qlyoung/doc-clean-topotest-json
[mirror_frr.git] / isisd / isisd.c
index 172c00e2684c455a9a4c6ff68c1dbc657371d949..f15d7a9c7eccca6e42c4d9ac567ae36ba391b2ef 100644 (file)
@@ -57,6 +57,7 @@
 #include "isisd/isis_te.h"
 #include "isisd/isis_mt.h"
 #include "isisd/fabricd.h"
+#include "isisd/isis_nb.h"
 
 struct isis *isis = NULL;
 
@@ -75,12 +76,13 @@ int clear_isis_neighbor_common(struct vty *, const char *id);
 int isis_config_write(struct vty *);
 
 
-void isis_new(unsigned long process_id)
+void isis_new(unsigned long process_id, vrf_id_t vrf_id)
 {
        isis = XCALLOC(MTYPE_ISIS, sizeof(struct isis));
        /*
         * Default values
         */
+       isis->vrf_id = vrf_id;
        isis->max_area_addrs = 3;
        isis->process_id = process_id;
        isis->router_id = 0;
@@ -88,13 +90,11 @@ void isis_new(unsigned long process_id)
        isis->init_circ_list = list_new();
        isis->uptime = time(NULL);
        isis->nexthops = list_new();
-       isis->nexthops6 = list_new();
        dyn_cache_init();
        /*
         * uncomment the next line for full debugs
         */
        /* isis->debugs = 0xFFFF; */
-       isisMplsTE.status = disable; /* Only support TE metric */
 
        QOBJ_REG(isis, isis);
 }
@@ -255,6 +255,10 @@ int isis_area_destroy(const char *area_tag)
        if (fabricd)
                fabricd_finish(area->fabricd);
 
+       /* Disable MPLS if necessary before flooding LSP */
+       if (IS_MPLS_TE(area->mta))
+               area->mta->status = disable;
+
        if (area->circuit_list) {
                for (ALL_LIST_ELEMENTS(area->circuit_list, node, nnode,
                                       circuit)) {
@@ -269,7 +273,7 @@ int isis_area_destroy(const char *area_tag)
        lsp_db_fini(&area->lspdb[1]);
 
        /* invalidate and verify to delete all routes from zebra */
-       isis_area_invalidate_routes(area, ISIS_LEVEL1 & ISIS_LEVEL2);
+       isis_area_invalidate_routes(area, area->is_type);
        isis_area_verify_routes(area);
 
        spftree_area_del(area);
@@ -735,11 +739,7 @@ DEFUN (clear_isis_neighbor_arg,
  */
 void print_debug(struct vty *vty, int flags, int onoff)
 {
-       char onoffs[4];
-       if (onoff)
-               strcpy(onoffs, "on");
-       else
-               strcpy(onoffs, "off");
+       const char *onoffs = onoff ? "on" : "off";
 
        if (flags & DEBUG_ADJ_PACKETS)
                vty_out(vty,
@@ -2122,7 +2122,6 @@ int isis_config_write(struct vty *vty)
                        write += area_write_mt_settings(area, vty);
                        write += fabricd_write_settings(area, vty);
                }
-               isis_mpls_te_config_write_router(vty);
        }
 
        return write;