]> git.proxmox.com Git - mirror_frr.git/blobdiff - isisd/isis_events.c
zebra, lib: fix the ZEBRA_INTERFACE_VRF_UPDATE zapi message
[mirror_frr.git] / isisd / isis_events.c
index 52a0b9fac6a739ebc45dfcec86648184aeb8f5a1..4da23c591261a1b98588830877a98149003d4d39 100644 (file)
@@ -77,47 +77,29 @@ void isis_event_circuit_state_change(struct isis_circuit *circuit,
 
 static void circuit_commence_level(struct isis_circuit *circuit, int level)
 {
-       if (level == 1) {
-               if (!circuit->is_passive)
+       if (!circuit->is_passive) {
+               if (level == 1) {
                        thread_add_timer(master, send_l1_psnp, circuit,
                                         isis_jitter(circuit->psnp_interval[0],
                                                     PSNP_JITTER),
                                         &circuit->t_send_psnp[0]);
-
-               if (circuit->circ_type == CIRCUIT_T_BROADCAST) {
-                       thread_add_timer(master, isis_run_dr_l1, circuit,
-                                        2 * circuit->hello_interval[0],
-                                        &circuit->u.bc.t_run_dr[0]);
-
-                       thread_add_timer(master, send_lan_l1_hello, circuit,
-                                        isis_jitter(circuit->hello_interval[0],
-                                                    IIH_JITTER),
-                                        &circuit->u.bc.t_send_lan_hello[0]);
-
-                       circuit->u.bc.lan_neighs[0] = list_new();
-               }
-       } else {
-               if (!circuit->is_passive)
+               } else {
                        thread_add_timer(master, send_l2_psnp, circuit,
                                         isis_jitter(circuit->psnp_interval[1],
                                                     PSNP_JITTER),
                                         &circuit->t_send_psnp[1]);
-
-               if (circuit->circ_type == CIRCUIT_T_BROADCAST) {
-                       thread_add_timer(master, isis_run_dr_l2, circuit,
-                                        2 * circuit->hello_interval[1],
-                                        &circuit->u.bc.t_run_dr[1]);
-
-                       thread_add_timer(master, send_lan_l2_hello, circuit,
-                                        isis_jitter(circuit->hello_interval[1],
-                                                    IIH_JITTER),
-                                        &circuit->u.bc.t_send_lan_hello[1]);
-
-                       circuit->u.bc.lan_neighs[1] = list_new();
                }
        }
 
-       return;
+       if (circuit->circ_type == CIRCUIT_T_BROADCAST) {
+               thread_add_timer(master, isis_run_dr,
+                                &circuit->level_arg[level - 1],
+                                2 * circuit->hello_interval[level - 1],
+                                &circuit->u.bc.t_run_dr[level - 1]);
+
+               send_hello_sched(circuit, level, TRIGGERED_IIH_DELAY);
+               circuit->u.bc.lan_neighs[level - 1] = list_new();
+       }
 }
 
 static void circuit_resign_level(struct isis_circuit *circuit, int level)
@@ -134,7 +116,7 @@ static void circuit_resign_level(struct isis_circuit *circuit, int level)
                circuit->lsp_regenerate_pending[idx] = 0;
                circuit->u.bc.run_dr_elect[idx] = 0;
                if (circuit->u.bc.lan_neighs[idx] != NULL)
-                       list_delete_and_null(&circuit->u.bc.lan_neighs[idx]);
+                       list_delete(&circuit->u.bc.lan_neighs[idx]);
        }
 
        return;
@@ -158,7 +140,7 @@ void isis_circuit_is_type_set(struct isis_circuit *circuit, int newtype)
 
        if (!(newtype & circuit->area->is_type)) {
                flog_err(
-                       ISIS_ERR_CONFIG,
+                       EC_ISIS_CONFIG,
                        "ISIS-Evt (%s) circuit type change - invalid level %s because area is %s",
                        circuit->area->area_tag, circuit_t2string(newtype),
                        circuit_t2string(circuit->area->is_type));
@@ -216,25 +198,6 @@ void isis_circuit_is_type_set(struct isis_circuit *circuit, int newtype)
  *
  * ***********************************************************************/
 
-void isis_event_adjacency_state_change(struct isis_adjacency *adj, int newstate)
-{
-       /* adjacency state change event.
-        * - the only proto-type was supported */
-
-       /* invalid arguments */
-       if (!adj || !adj->circuit || !adj->circuit->area)
-               return;
-
-       if (isis->debugs & DEBUG_EVENTS)
-               zlog_debug("ISIS-Evt (%s) Adjacency State change",
-                          adj->circuit->area->area_tag);
-
-       /* LSP generation again */
-       lsp_regenerate_schedule(adj->circuit->area, IS_LEVEL_1 | IS_LEVEL_2, 0);
-
-       return;
-}
-
 /* events supporting code */
 
 int isis_event_dis_status_change(struct thread *thread)