forked from Mirror/frr
2004-09-20 LIU Xin <lx at ns.6test.edu.cn>
* isis_dr.c, isis_events.c: Remove hello multiplier usage while scheduling DIS election. * isis_pdu.c: Don't call isis_event_dis_status_change() whenever l[1|2]_desig_is is different from hdr.lan_id.
This commit is contained in:
parent
12a5cae75e
commit
a211d65dfd
|
@ -1,3 +1,10 @@
|
||||||
|
2004-09-20 LIU Xin <lx at ns.6test.edu.cn>
|
||||||
|
|
||||||
|
* isis_dr.c, isis_events.c: Remove hello multiplier usage while
|
||||||
|
scheduling DIS election.
|
||||||
|
* isis_pdu.c: Don't call isis_event_dis_status_change() whenever
|
||||||
|
l[1|2]_desig_is is different from hdr.lan_id.
|
||||||
|
|
||||||
2004-09-19 Hasso Tepper <hasso at quagga.net>
|
2004-09-19 Hasso Tepper <hasso at quagga.net>
|
||||||
|
|
||||||
* isis_spf.h: Renamed t_spf_periodic to t_spf as it's not used to
|
* isis_spf.h: Renamed t_spf_periodic to t_spf as it's not used to
|
||||||
|
|
|
@ -311,12 +311,10 @@ isis_dr_commence (struct isis_circuit *circuit, int level)
|
||||||
circuit->u.bc.run_dr_elect[level - 1] = 0;
|
circuit->u.bc.run_dr_elect[level - 1] = 0;
|
||||||
if (level == 1)
|
if (level == 1)
|
||||||
THREAD_TIMER_ON (master, circuit->u.bc.t_run_dr[0], isis_run_dr_l1,
|
THREAD_TIMER_ON (master, circuit->u.bc.t_run_dr[0], isis_run_dr_l1,
|
||||||
circuit, 2 * circuit->hello_multiplier[0] *
|
circuit, 2 * circuit->hello_interval[0]);
|
||||||
circuit->hello_interval[0]);
|
|
||||||
else
|
else
|
||||||
THREAD_TIMER_ON (master, circuit->u.bc.t_run_dr[1], isis_run_dr_l2,
|
THREAD_TIMER_ON (master, circuit->u.bc.t_run_dr[1], isis_run_dr_l2,
|
||||||
circuit, 2 * circuit->hello_multiplier[1] *
|
circuit, 2 * circuit->hello_interval[1]);
|
||||||
circuit->hello_interval[1]);
|
|
||||||
circuit->u.bc.is_dr[level - 1] = 1;
|
circuit->u.bc.is_dr[level - 1] = 1;
|
||||||
|
|
||||||
if (level == 1)
|
if (level == 1)
|
||||||
|
|
|
@ -146,8 +146,6 @@ isis_event_area_addr_change (struct isis_area *area)
|
||||||
void
|
void
|
||||||
circuit_commence_level (struct isis_circuit *circuit, int level)
|
circuit_commence_level (struct isis_circuit *circuit, int level)
|
||||||
{
|
{
|
||||||
uint32_t interval;
|
|
||||||
|
|
||||||
if (level == 1)
|
if (level == 1)
|
||||||
{
|
{
|
||||||
THREAD_TIMER_ON (master, circuit->t_send_psnp[0], send_l1_psnp, circuit,
|
THREAD_TIMER_ON (master, circuit->t_send_psnp[0], send_l1_psnp, circuit,
|
||||||
|
@ -155,11 +153,8 @@ circuit_commence_level (struct isis_circuit *circuit, int level)
|
||||||
|
|
||||||
if (circuit->circ_type == CIRCUIT_T_BROADCAST)
|
if (circuit->circ_type == CIRCUIT_T_BROADCAST)
|
||||||
{
|
{
|
||||||
interval =
|
|
||||||
circuit->hello_multiplier[0] * (circuit->hello_interval[0]);
|
|
||||||
|
|
||||||
THREAD_TIMER_ON (master, circuit->u.bc.t_run_dr[0], isis_run_dr_l1,
|
THREAD_TIMER_ON (master, circuit->u.bc.t_run_dr[0], isis_run_dr_l1,
|
||||||
circuit, interval);
|
circuit, 2 * circuit->hello_interval[1]);
|
||||||
|
|
||||||
THREAD_TIMER_ON (master, circuit->u.bc.t_send_lan_hello[0],
|
THREAD_TIMER_ON (master, circuit->u.bc.t_send_lan_hello[0],
|
||||||
send_lan_l1_hello, circuit,
|
send_lan_l1_hello, circuit,
|
||||||
|
@ -176,11 +171,8 @@ circuit_commence_level (struct isis_circuit *circuit, int level)
|
||||||
|
|
||||||
if (circuit->circ_type == CIRCUIT_T_BROADCAST)
|
if (circuit->circ_type == CIRCUIT_T_BROADCAST)
|
||||||
{
|
{
|
||||||
interval =
|
|
||||||
circuit->hello_multiplier[1] * (circuit->hello_interval[1]);
|
|
||||||
|
|
||||||
THREAD_TIMER_ON (master, circuit->u.bc.t_run_dr[1], isis_run_dr_l2,
|
THREAD_TIMER_ON (master, circuit->u.bc.t_run_dr[1], isis_run_dr_l2,
|
||||||
circuit, interval);
|
circuit, 2 * circuit->hello_interval[1]);
|
||||||
|
|
||||||
THREAD_TIMER_ON (master, circuit->u.bc.t_send_lan_hello[1],
|
THREAD_TIMER_ON (master, circuit->u.bc.t_send_lan_hello[1],
|
||||||
send_lan_l2_hello, circuit,
|
send_lan_l2_hello, circuit,
|
||||||
|
|
|
@ -825,40 +825,26 @@ process_lan_hello (int level, struct isis_circuit *circuit, u_char * ssnpa)
|
||||||
circuit->u.bc.lan_neighs[level - 1]);
|
circuit->u.bc.lan_neighs[level - 1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (level)
|
if(adj->dis_record[level-1].dis==ISIS_IS_DIS)
|
||||||
{
|
switch (level)
|
||||||
case 1:
|
{
|
||||||
if (memcmp (circuit->u.bc.l1_desig_is, hdr.lan_id, ISIS_SYS_ID_LEN + 1))
|
case 1:
|
||||||
{
|
if (memcmp (circuit->u.bc.l1_desig_is, hdr.lan_id, ISIS_SYS_ID_LEN + 1))
|
||||||
thread_add_event (master, isis_event_dis_status_change, circuit, 0);
|
{
|
||||||
if (adj->dis_record[level-1].dis == ISIS_IS_DIS)
|
thread_add_event (master, isis_event_dis_status_change, circuit, 0);
|
||||||
memcpy (&circuit->u.bc.l1_desig_is, hdr.lan_id,
|
memcpy (&circuit->u.bc.l1_desig_is, hdr.lan_id,
|
||||||
ISIS_SYS_ID_LEN + 1);
|
ISIS_SYS_ID_LEN + 1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if (memcmp (circuit->u.bc.l2_desig_is, hdr.lan_id, ISIS_SYS_ID_LEN + 1))
|
if (memcmp (circuit->u.bc.l2_desig_is, hdr.lan_id, ISIS_SYS_ID_LEN + 1))
|
||||||
{
|
{
|
||||||
thread_add_event (master, isis_event_dis_status_change, circuit, 0);
|
thread_add_event (master, isis_event_dis_status_change, circuit, 0);
|
||||||
if (adj->dis_record[level-1].dis == ISIS_IS_DIS)
|
|
||||||
memcpy (&circuit->u.bc.l2_desig_is, hdr.lan_id,
|
memcpy (&circuit->u.bc.l2_desig_is, hdr.lan_id,
|
||||||
ISIS_SYS_ID_LEN + 1);
|
ISIS_SYS_ID_LEN + 1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
/* Old solution: believe the lan-header always
|
|
||||||
*/
|
|
||||||
if (level == 1)
|
|
||||||
{
|
|
||||||
memcpy (circuit->u.bc.l1_desig_is, hdr.lan_id, ISIS_SYS_ID_LEN + 1);
|
|
||||||
}
|
|
||||||
else if (level == 2)
|
|
||||||
{
|
|
||||||
memcpy (circuit->u.bc.l2_desig_is, hdr.lan_id, ISIS_SYS_ID_LEN + 1);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
adj->hold_time = hdr.hold_time;
|
adj->hold_time = hdr.hold_time;
|
||||||
adj->last_upd = time (NULL);
|
adj->last_upd = time (NULL);
|
||||||
|
|
Loading…
Reference in a new issue