• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src/router/quagga/isisd/

Lines Matching defs:adj

57   struct isis_adjacency *adj;
59 adj = XCALLOC (MTYPE_ISIS_ADJACENCY, sizeof (struct isis_adjacency));
60 memcpy (adj->sysid, id, ISIS_SYS_ID_LEN);
62 return adj;
69 struct isis_adjacency *adj;
72 adj = adj_alloc (id); /* P2P kludge */
74 if (adj == NULL)
81 memcpy (adj->snpa, snpa, ETH_ALEN);
83 memset (adj->snpa, ' ', ETH_ALEN);
86 adj->circuit = circuit;
87 adj->level = level;
88 adj->flaps = 0;
89 adj->last_flap = time (NULL);
92 listnode_add (circuit->u.bc.adjdb[level - 1], adj);
93 adj->dischanges[level - 1] = 0;
96 adj->dis_record[(i * ISIS_LEVELS) + level - 1].dis
98 adj->dis_record[(i * ISIS_LEVELS) + level - 1].last_dis_change
103 return adj;
109 struct isis_adjacency *adj;
112 for (ALL_LIST_ELEMENTS_RO (adjdb, node, adj))
113 if (memcmp (adj->sysid, sysid, ISIS_SYS_ID_LEN) == 0)
114 return adj;
123 struct isis_adjacency *adj;
125 for (ALL_LIST_ELEMENTS_RO (adjdb, node, adj))
126 if (memcmp (adj->snpa, ssnpa, ETH_ALEN) == 0)
127 return adj;
135 struct isis_adjacency *adj = arg;
137 if (!adj)
140 THREAD_TIMER_OFF (adj->t_expire);
143 spftree_area_adj_del (adj->circuit->area, adj);
145 if (adj->area_addrs)
146 list_delete (adj->area_addrs);
147 if (adj->ipv4_addrs)
148 list_delete (adj->ipv4_addrs);
150 if (adj->ipv6_addrs)
151 list_delete (adj->ipv6_addrs);
154 XFREE (MTYPE_ISIS_ADJACENCY, adj);
178 isis_adj_state_change (struct isis_adjacency *adj, enum isis_adj_state new_state,
185 old_state = adj->adj_state;
186 adj->adj_state = new_state;
188 circuit = adj->circuit;
202 dyn = dynhn_find_by_id (adj->sysid);
206 adj_name = adj->sysid ? sysid_print (adj->sysid) : "unknown";
210 adj->circuit->interface->name,
220 if ((adj->level & level) == 0)
225 isis_event_adjacency_state_change (adj, new_state);
227 adj->last_flap = time (NULL);
228 adj->flaps++;
232 listnode_delete (circuit->u.bc.adjdb[level - 1], adj);
236 /* Clean lsp_queue when no adj is up. */
240 isis_event_adjacency_state_change (adj, new_state);
241 isis_delete_adj (adj);
260 if ((adj->level & level) == 0)
265 isis_event_adjacency_state_change (adj, new_state);
267 if (adj->sys_type == ISIS_SYSTYPE_UNKNOWN)
271 adj->last_flap = time (NULL);
272 adj->flaps++;
280 if (adj->circuit->u.p2p.neighbor == adj)
281 adj->circuit->u.p2p.neighbor = NULL;
285 /* Clean lsp_queue when no adj is up. */
289 isis_event_adjacency_state_change (adj, new_state);
290 isis_delete_adj (adj);
300 isis_adj_print (struct isis_adjacency *adj)
310 if (!adj)
312 dyn = dynhn_find_by_id (adj->sysid);
317 adj->sysid ? sysid_print (adj->sysid) : "unknown",
318 snpa_print (adj->snpa), adj->level, adj->hold_time);
319 if (adj->ipv4_addrs && listcount (adj->ipv4_addrs) > 0)
323 for (ALL_LIST_ELEMENTS_RO (adj->ipv4_addrs, node, ipv4_addr))
328 if (adj->ipv6_addrs && listcount (adj->ipv6_addrs) > 0)
331 for (ALL_LIST_ELEMENTS_RO (adj->ipv6_addrs, node, ipv6_addr))
338 zlog_debug ("Speaks: %s", nlpid2string (&adj->nlpids));
346 struct isis_adjacency *adj;
351 adj = THREAD_ARG (thread);
352 assert (adj);
353 adj->t_expire = NULL;
355 /* trigger the adj expire event */
356 isis_adj_state_change (adj, ISIS_ADJ_DOWN, "holding time expired");
365 isis_adj_print_vty (struct isis_adjacency *adj, struct vty *vty, char detail)
377 dyn = dynhn_find_by_id (adj->sysid);
380 else if (adj->sysid)
382 vty_out (vty, " %-20s", sysid_print (adj->sysid));
391 if (adj->circuit)
392 vty_out (vty, "%-12s", adj->circuit->interface->name);
395 vty_out (vty, "%-3u", adj->level); /* level */
396 vty_out (vty, "%-13s", adj_state2string (adj->adj_state));
398 if (adj->last_upd)
399 vty_out (vty, "%-9lu", adj->last_upd + adj->hold_time - now);
402 vty_out (vty, "%-10s", snpa_print (adj->snpa));
408 level = adj->level;
410 if (adj->circuit)
411 vty_out (vty, " Interface: %s", adj->circuit->interface->name);
414 vty_out (vty, ", Level: %u", adj->level); /* level */
415 vty_out (vty, ", State: %s", adj_state2string (adj->adj_state));
417 if (adj->last_upd)
419 time2string (adj->last_upd + adj->hold_time - now));
421 vty_out (vty, ", Expires in %s", time2string (adj->hold_time));
423 vty_out (vty, " Adjacency flaps: %u", adj->flaps);
424 vty_out (vty, ", Last: %s ago", time2string (now - adj->last_flap));
426 vty_out (vty, " Circuit type: %s", circuit_t2string (adj->circuit_t));
427 vty_out (vty, ", Speaks: %s", nlpid2string (&adj->nlpids));
429 vty_out (vty, " SNPA: %s", snpa_print (adj->snpa));
430 if (adj->circuit && (adj->circuit->circ_type == CIRCUIT_T_BROADCAST))
432 dyn = dynhn_find_by_id (adj->lanid);
435 dyn->name.name, adj->lanid[ISIS_SYS_ID_LEN]);
438 sysid_print (adj->lanid), adj->lanid[ISIS_SYS_ID_LEN]);
441 vty_out (vty, " LAN Priority: %u", adj->prio[adj->level - 1]);
444 isis_disflag2string (adj->dis_record[ISIS_LEVELS + level - 1].
445 dis), adj->dischanges[level - 1],
447 (adj->dis_record[ISIS_LEVELS + level - 1].
452 if (adj->area_addrs && listcount (adj->area_addrs) > 0)
456 for (ALL_LIST_ELEMENTS_RO (adj->area_addrs, node, area_addr))
460 if (adj->ipv4_addrs && listcount (adj->ipv4_addrs) > 0)
463 for (ALL_LIST_ELEMENTS_RO (adj->ipv4_addrs, node, ip_addr))
467 if (adj->ipv6_addrs && listcount (adj->ipv6_addrs) > 0)
470 for (ALL_LIST_ELEMENTS_RO (adj->ipv6_addrs, node, ipv6_addr))
485 struct isis_adjacency *adj;
494 for (ALL_LIST_ELEMENTS_RO (adjdb, node, adj))
496 if (!adj)
498 zlog_warn ("isis_adj_build_neigh_list(): NULL adj");
502 if ((adj->adj_state == ISIS_ADJ_UP ||
503 adj->adj_state == ISIS_ADJ_INITIALIZING))
504 listnode_add (list, adj->snpa);
512 struct isis_adjacency *adj;
521 for (ALL_LIST_ELEMENTS_RO (adjdb, node, adj))
523 if (!adj)
525 zlog_warn ("isis_adj_build_up_list(): NULL adj");
529 if (adj->adj_state == ISIS_ADJ_UP)
530 listnode_add (list, adj);