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:
hasso 2004-09-20 14:55:29 +00:00
parent 12a5cae75e
commit a211d65dfd
4 changed files with 27 additions and 44 deletions

View file

@ -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>
* isis_spf.h: Renamed t_spf_periodic to t_spf as it's not used to

View file

@ -311,12 +311,10 @@ isis_dr_commence (struct isis_circuit *circuit, int level)
circuit->u.bc.run_dr_elect[level - 1] = 0;
if (level == 1)
THREAD_TIMER_ON (master, circuit->u.bc.t_run_dr[0], isis_run_dr_l1,
circuit, 2 * circuit->hello_multiplier[0] *
circuit->hello_interval[0]);
circuit, 2 * circuit->hello_interval[0]);
else
THREAD_TIMER_ON (master, circuit->u.bc.t_run_dr[1], isis_run_dr_l2,
circuit, 2 * circuit->hello_multiplier[1] *
circuit->hello_interval[1]);
circuit, 2 * circuit->hello_interval[1]);
circuit->u.bc.is_dr[level - 1] = 1;
if (level == 1)

View file

@ -146,8 +146,6 @@ isis_event_area_addr_change (struct isis_area *area)
void
circuit_commence_level (struct isis_circuit *circuit, int level)
{
uint32_t interval;
if (level == 1)
{
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)
{
interval =
circuit->hello_multiplier[0] * (circuit->hello_interval[0]);
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],
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)
{
interval =
circuit->hello_multiplier[1] * (circuit->hello_interval[1]);
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],
send_lan_l2_hello, circuit,

View file

@ -825,40 +825,26 @@ process_lan_hello (int level, struct isis_circuit *circuit, u_char * ssnpa)
circuit->u.bc.lan_neighs[level - 1]);
}
switch (level)
{
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)
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))
{
thread_add_event (master, isis_event_dis_status_change, circuit, 0);
memcpy (&circuit->u.bc.l1_desig_is, hdr.lan_id,
ISIS_SYS_ID_LEN + 1);
}
break;
case 2:
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);
if (adj->dis_record[level-1].dis == ISIS_IS_DIS)
}
break;
case 2:
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);
memcpy (&circuit->u.bc.l2_desig_is, hdr.lan_id,
ISIS_SYS_ID_LEN + 1);
}
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
}
break;
}
adj->hold_time = hdr.hold_time;
adj->last_upd = time (NULL);