Hotfix to solve an issue with delaying timers reported by Aleksey Chudov.
This commit is contained in:
parent
9d969be5f2
commit
2bf59bf4d3
2 changed files with 11 additions and 5 deletions
|
@ -2734,7 +2734,7 @@ other than equally configured BIRD. I have warned you.
|
||||||
<tag>period <M>number</M>
|
<tag>period <M>number</M>
|
||||||
</tag>specifies the number of seconds between periodic updates. Default is 30 seconds. A lower
|
</tag>specifies the number of seconds between periodic updates. Default is 30 seconds. A lower
|
||||||
number will mean faster convergence but bigger network
|
number will mean faster convergence but bigger network
|
||||||
load. Do not use values lower than 10.
|
load. Do not use values lower than 12.
|
||||||
|
|
||||||
<tag>timeout time <M>number</M>
|
<tag>timeout time <M>number</M>
|
||||||
</tag>specifies how old route has to be to be considered unreachable. Default is 4*<cf/period/.
|
</tag>specifies how old route has to be to be considered unreachable. Default is 4*<cf/period/.
|
||||||
|
@ -2764,7 +2764,7 @@ other than equally configured BIRD. I have warned you.
|
||||||
protocol rip MyRIP_test {
|
protocol rip MyRIP_test {
|
||||||
debug all;
|
debug all;
|
||||||
port 1520;
|
port 1520;
|
||||||
period 10;
|
period 12;
|
||||||
garbage time 60;
|
garbage time 60;
|
||||||
interface "eth0" { metric 3; mode multicast; };
|
interface "eth0" { metric 3; mode multicast; };
|
||||||
interface "eth*" { metric 2; mode broadcast; };
|
interface "eth*" { metric 2; mode broadcast; };
|
||||||
|
|
|
@ -596,8 +596,12 @@ rip_start(struct proto *p)
|
||||||
init_list( &P->interfaces );
|
init_list( &P->interfaces );
|
||||||
P->timer = tm_new( p->pool );
|
P->timer = tm_new( p->pool );
|
||||||
P->timer->data = p;
|
P->timer->data = p;
|
||||||
P->timer->randomize = 5;
|
P->timer->randomize = 2;
|
||||||
P->timer->recurrent = (P_CF->period / 6)+1;
|
P->timer->recurrent = (P_CF->period / 6) - 1;
|
||||||
|
if (P_CF->period < 12) {
|
||||||
|
log(L_WARN "Period %d is too low. So I am using 12 which is the lowest possible value.", P_CF->period);
|
||||||
|
P->timer->recurrent = 1;
|
||||||
|
}
|
||||||
P->timer->hook = rip_timer;
|
P->timer->hook = rip_timer;
|
||||||
tm_start( P->timer, 5 );
|
tm_start( P->timer, 5 );
|
||||||
rif = new_iface(p, NULL, 0, NULL); /* Initialize dummy interface */
|
rif = new_iface(p, NULL, 0, NULL); /* Initialize dummy interface */
|
||||||
|
@ -956,9 +960,11 @@ rip_rte_insert(net *net UNUSED, rte *rte)
|
||||||
static void
|
static void
|
||||||
rip_rte_remove(net *net UNUSED, rte *rte)
|
rip_rte_remove(net *net UNUSED, rte *rte)
|
||||||
{
|
{
|
||||||
// struct proto *p = rte->attrs->proto;
|
#ifdef LOCAL_DEBUG
|
||||||
|
struct proto *p = rte->attrs->proto;
|
||||||
CHK_MAGIC;
|
CHK_MAGIC;
|
||||||
DBG( "rip_rte_remove: %p\n", rte );
|
DBG( "rip_rte_remove: %p\n", rte );
|
||||||
|
#endif
|
||||||
rem_node( &rte->u.rip.garbage );
|
rem_node( &rte->u.rip.garbage );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue