Commit a6f79ca5 authored by Ondřej Zajíček's avatar Ondřej Zajíček

Timers: Revert temporary names and remove old timer.h

parent 574b2324
......@@ -52,7 +52,7 @@
#include "lib/resource.h"
#include "lib/string.h"
#include "lib/event.h"
#include "sysdep/unix/timer.h"
#include "lib/timer.h"
#include "conf/conf.h"
#include "filter/filter.h"
......@@ -341,9 +341,9 @@ config_commit(struct config *c, int type, uint timeout)
undo_available = 1;
if (timeout)
tm2_start(config_timer, timeout S);
tm_start(config_timer, timeout S);
else
tm2_stop(config_timer);
tm_stop(config_timer);
if (configuring)
{
......@@ -384,7 +384,7 @@ config_confirm(void)
if (config_timer->expires == 0)
return CONF_NOTHING;
tm2_stop(config_timer);
tm_stop(config_timer);
return CONF_CONFIRM;
}
......@@ -420,7 +420,7 @@ config_undo(void)
return CONF_NOTHING;
undo_available = 0;
tm2_stop(config_timer);
tm_stop(config_timer);
if (configuring)
{
......@@ -468,7 +468,7 @@ config_init(void)
config_event = ev_new(&root_pool);
config_event->hook = config_done;
config_timer = tm2_new(&root_pool);
config_timer = tm_new(&root_pool);
config_timer->hook = config_timeout;
}
......
......@@ -13,7 +13,7 @@
#include "lib/ip.h"
#include "lib/hash.h"
#include "lib/resource.h"
#include "sysdep/unix/timer.h"
#include "lib/timer.h"
/* Configuration structure */
......
......@@ -11,16 +11,6 @@ CF_HDR
#define PARSER 1
#include "nest/bird.h"
#include "conf/conf.h"
#include "lib/resource.h"
#include "lib/socket.h"
#include "sysdep/unix/timer.h"
#include "lib/string.h"
#include "nest/protocol.h"
#include "nest/iface.h"
#include "nest/route.h"
#include "nest/cli.h"
#include "filter/filter.h"
#include "lib/flowspec.h"
......
......@@ -93,17 +93,17 @@ current_real_time(void)
static void
tm2_free(resource *r)
tm_free(resource *r)
{
timer2 *t = (timer2 *) r;
timer *t = (void *) r;
tm2_stop(t);
tm_stop(t);
}
static void
tm2_dump(resource *r)
tm_dump(resource *r)
{
timer2 *t = (timer2 *) r;
timer *t = (void *) r;
debug("(code %p, data %p, ", t->hook, t->data);
if (t->randomize)
......@@ -117,25 +117,25 @@ tm2_dump(resource *r)
}
static struct resclass tm2_class = {
static struct resclass tm_class = {
"Timer",
sizeof(timer2),
tm2_free,
tm2_dump,
sizeof(timer),
tm_free,
tm_dump,
NULL,
NULL
};
timer2 *
tm2_new(pool *p)
timer *
tm_new(pool *p)
{
timer2 *t = ralloc(p, &tm2_class);
timer *t = ralloc(p, &tm_class);
t->index = -1;
return t;
}
void
tm2_set(timer2 *t, btime when)
tm_set(timer *t, btime when)
{
struct timeloop *loop = timeloop_current();
uint tc = timers_count(loop);
......@@ -145,17 +145,17 @@ tm2_set(timer2 *t, btime when)
t->index = ++tc;
t->expires = when;
BUFFER_PUSH(loop->timers) = t;
HEAP_INSERT(loop->timers.data, tc, timer2 *, TIMER_LESS, TIMER_SWAP);
HEAP_INSERT(loop->timers.data, tc, timer *, TIMER_LESS, TIMER_SWAP);
}
else if (t->expires < when)
{
t->expires = when;
HEAP_INCREASE(loop->timers.data, tc, timer2 *, TIMER_LESS, TIMER_SWAP, t->index);
HEAP_INCREASE(loop->timers.data, tc, timer *, TIMER_LESS, TIMER_SWAP, t->index);
}
else if (t->expires > when)
{
t->expires = when;
HEAP_DECREASE(loop->timers.data, tc, timer2 *, TIMER_LESS, TIMER_SWAP, t->index);
HEAP_DECREASE(loop->timers.data, tc, timer *, TIMER_LESS, TIMER_SWAP, t->index);
}
#ifdef CONFIG_BFD
......@@ -166,13 +166,13 @@ tm2_set(timer2 *t, btime when)
}
void
tm2_start(timer2 *t, btime after)
tm_start(timer *t, btime after)
{
tm2_set(t, current_time() + MAX(after, 0));
tm_set(t, current_time() + MAX(after, 0));
}
void
tm2_stop(timer2 *t)
tm_stop(timer *t)
{
if (!t->expires)
return;
......@@ -180,7 +180,7 @@ tm2_stop(timer2 *t)
struct timeloop *loop = timeloop_current();
uint tc = timers_count(loop);
HEAP_DELETE(loop->timers.data, tc, timer2 *, TIMER_LESS, TIMER_SWAP, t->index);
HEAP_DELETE(loop->timers.data, tc, timer *, TIMER_LESS, TIMER_SWAP, t->index);
BUFFER_POP(loop->timers);
t->index = -1;
......@@ -202,7 +202,7 @@ void
timers_fire(struct timeloop *loop)
{
btime base_time;
timer2 *t;
timer *t;
times_update(loop);
base_time = loop->last_time;
......@@ -222,10 +222,10 @@ timers_fire(struct timeloop *loop)
if (t->randomize)
when += random() % (t->randomize + 1);
tm2_set(t, when);
tm_set(t, when);
}
else
tm2_stop(t);
tm_stop(t);
/* This is ugly hack, we want to log just timers executed from the main I/O loop */
if (loop == &main_timeloop)
......
......@@ -7,18 +7,18 @@
* Can be freely distributed and used under the terms of the GNU GPL.
*/
#ifndef _BIRD_TIMER2_H_
#define _BIRD_TIMER2_H_
#ifndef _BIRD_TIMER_H_
#define _BIRD_TIMER_H_
#include "nest/bird.h"
#include "lib/buffer.h"
#include "lib/resource.h"
typedef struct timer2
typedef struct timer
{
resource r;
void (*hook)(struct timer2 *);
void (*hook)(struct timer *);
void *data;
btime expires; /* 0=inactive */
......@@ -26,11 +26,11 @@ typedef struct timer2
uint recurrent; /* Timer recurrence */
int index;
} timer2;
} timer;
struct timeloop
{
BUFFER(timer2 *) timers;
BUFFER(timer *) timers;
btime last_time;
btime real_time;
};
......@@ -38,7 +38,7 @@ struct timeloop
static inline uint timers_count(struct timeloop *loop)
{ return loop->timers.used - 1; }
static inline timer2 *timers_first(struct timeloop *loop)
static inline timer *timers_first(struct timeloop *loop)
{ return (loop->timers.used > 1) ? loop->timers.data[1] : NULL; }
extern struct timeloop main_timeloop;
......@@ -50,28 +50,28 @@ btime current_real_time(void);
//#define now_real (current_real_time() TO_S)
extern btime boot_time;
timer2 *tm2_new(pool *p);
void tm2_set(timer2 *t, btime when);
void tm2_start(timer2 *t, btime after);
void tm2_stop(timer2 *t);
timer *tm_new(pool *p);
void tm_set(timer *t, btime when);
void tm_start(timer *t, btime after);
void tm_stop(timer *t);
static inline int
tm2_active(timer2 *t)
tm_active(timer *t)
{
return t->expires != 0;
}
static inline btime
tm2_remains(timer2 *t)
tm_remains(timer *t)
{
btime now_ = current_time();
return (t->expires > now_) ? (t->expires - now_) : 0;
}
static inline timer2 *
tm2_new_init(pool *p, void (*hook)(struct timer2 *), void *data, uint rec, uint rand)
static inline timer *
tm_new_init(pool *p, void (*hook)(struct timer *), void *data, uint rec, uint rand)
{
timer2 *t = tm2_new(p);
timer *t = tm_new(p);
t->hook = hook;
t->data = data;
t->recurrent = rec;
......@@ -80,17 +80,17 @@ tm2_new_init(pool *p, void (*hook)(struct timer2 *), void *data, uint rec, uint
}
static inline void
tm2_set_max(timer2 *t, btime when)
tm_set_max(timer *t, btime when)
{
if (when > t->expires)
tm2_set(t, when);
tm_set(t, when);
}
static inline void
tm2_start_max(timer2 *t, btime after)
tm_start_max(timer *t, btime after)
{
btime rem = tm2_remains(t);
tm2_start(t, MAX_(rem, after));
btime rem = tm_remains(t);
tm_start(t, MAX_(rem, after));
}
/* In sysdep code */
......
......@@ -1083,8 +1083,8 @@ graceful_restart_init(void)
}
graceful_restart_state = GRS_ACTIVE;
gr_wait_timer = tm2_new_init(proto_pool, graceful_restart_done, NULL, 0, 0);
tm2_start(gr_wait_timer, config->gr_wait S);
gr_wait_timer = tm_new_init(proto_pool, graceful_restart_done, NULL, 0, 0);
tm_start(gr_wait_timer, config->gr_wait S);
}
/**
......@@ -1135,7 +1135,7 @@ graceful_restart_show_status(void)
cli_msg(-24, "Graceful restart recovery in progress");
cli_msg(-24, " Waiting for %d channels to recover", graceful_restart_locks);
cli_msg(-24, " Wait timer is %t/%u", tm2_remains(gr_wait_timer), config->gr_wait);
cli_msg(-24, " Wait timer is %t/%u", tm_remains(gr_wait_timer), config->gr_wait);
}
/**
......@@ -1181,7 +1181,7 @@ channel_graceful_restart_unlock(struct channel *c)
graceful_restart_locks--;
if ((graceful_restart_state == GRS_ACTIVE) && !graceful_restart_locks)
tm2_start(gr_wait_timer, 0);
tm_start(gr_wait_timer, 0);
}
......@@ -1288,7 +1288,7 @@ protos_build(void)
#endif
proto_pool = rp_new(&root_pool, "Protocols");
proto_shutdown_timer = tm2_new(proto_pool);
proto_shutdown_timer = tm_new(proto_pool);
proto_shutdown_timer->hook = proto_shutdown_loop;
}
......@@ -1328,7 +1328,7 @@ proto_schedule_down(struct proto *p, byte restart, byte code)
p->down_sched = restart ? PDS_RESTART : PDS_DISABLE;
p->down_code = code;
tm2_start_max(proto_shutdown_timer, restart ? 250 MS : 0);
tm_start_max(proto_shutdown_timer, restart ? 250 MS : 0);
}
......
......@@ -12,7 +12,6 @@
#include "lib/lists.h"
#include "lib/resource.h"
#include "lib/event.h"
#include "sysdep/unix/timer.h"
#include "nest/route.h"
#include "conf/conf.h"
......
......@@ -11,7 +11,6 @@
#include "lib/lists.h"
#include "lib/resource.h"
#include "sysdep/unix/timer.h"
#include "lib/net.h"
struct ea_list;
......
......@@ -1433,14 +1433,14 @@ babel_iface_timer(timer *t)
btime next_event = MIN(ifa->next_hello, ifa->next_regular);
if (ifa->want_triggered) next_event = MIN(next_event, ifa->next_triggered);
tm2_set(ifa->timer, next_event);
tm_set(ifa->timer, next_event);
}
static inline void
babel_iface_kick_timer(struct babel_iface *ifa)
{
if (ifa->timer->expires > (current_time() + 100 MS))
tm2_start(ifa->timer, 100 MS);
tm_start(ifa->timer, 100 MS);
}
static void
......@@ -1454,7 +1454,7 @@ babel_iface_start(struct babel_iface *ifa)
ifa->next_regular = current_time() + (random() % ifa->cf->update_interval);
ifa->next_triggered = current_time() + MIN(1 S, ifa->cf->update_interval / 2);
ifa->want_triggered = 0; /* We send an immediate update (below) */
tm2_start(ifa->timer, 100 MS);
tm_start(ifa->timer, 100 MS);
ifa->up = 1;
babel_send_hello(ifa);
......@@ -1487,7 +1487,7 @@ babel_iface_stop(struct babel_iface *ifa)
}
}
tm2_stop(ifa->timer);
tm_stop(ifa->timer);
ifa->up = 0;
}
......@@ -1585,7 +1585,7 @@ babel_add_iface(struct babel_proto *p, struct iface *new, struct babel_iface_con
init_list(&ifa->neigh_list);
ifa->hello_seqno = 1;
ifa->timer = tm2_new_init(ifa->pool, babel_iface_timer, ifa, 0, 0);
ifa->timer = tm_new_init(ifa->pool, babel_iface_timer, ifa, 0, 0);
init_list(&ifa->msg_queue);
ifa->send_event = ev_new(ifa->pool);
......@@ -2050,7 +2050,7 @@ static inline void
babel_kick_timer(struct babel_proto *p)
{
if (p->timer->expires > (current_time() + 100 MS))
tm2_start(p->timer, 100 MS);
tm_start(p->timer, 100 MS);
}
......@@ -2214,8 +2214,8 @@ babel_start(struct proto *P)
OFFSETOF(struct babel_entry, n), 0, babel_init_entry);
init_list(&p->interfaces);
p->timer = tm2_new_init(P->pool, babel_timer, p, 1 S, 0);
tm2_start(p->timer, 1 S);
p->timer = tm_new_init(P->pool, babel_timer, p, 1 S, 0);
tm_start(p->timer, 1 S);
p->update_seqno = 1;
p->router_id = proto_get_router_id(&cf->c);
......
......@@ -23,7 +23,7 @@
#include "lib/lists.h"
#include "lib/socket.h"
#include "lib/string.h"
#include "sysdep/unix/timer.h"
#include "lib/timer.h"
#define EA_BABEL_METRIC EA_CODE(EAP_BABEL, 0)
#define EA_BABEL_ROUTER_ID EA_CODE(EAP_BABEL, 1)
......
......@@ -64,16 +64,15 @@
* ready, the protocol just creates a BFD request like any other protocol.
*
* The protocol uses a new generic event loop (structure &birdloop) from |io.c|,
* which supports sockets, timers and events like the main loop. Timers
* (structure &timer2) are new microsecond based timers, while sockets and
* events are the same. A birdloop is associated with a thread (field @thread)
* in which event hooks are executed. Most functions for setting event sources
* (like sk_start() or tm2_start()) must be called from the context of that
* thread. Birdloop allows to temporarily acquire the context of that thread for
* the main thread by calling birdloop_enter() and then birdloop_leave(), which
* also ensures mutual exclusion with all event hooks. Note that resources
* associated with a birdloop (like timers) should be attached to the
* independent resource pool, detached from the main resource tree.
* which supports sockets, timers and events like the main loop. A birdloop is
* associated with a thread (field @thread) in which event hooks are executed.
* Most functions for setting event sources (like sk_start() or tm_start()) must
* be called from the context of that thread. Birdloop allows to temporarily
* acquire the context of that thread for the main thread by calling
* birdloop_enter() and then birdloop_leave(), which also ensures mutual
* exclusion with all event hooks. Note that resources associated with a
* birdloop (like timers) should be attached to the independent resource pool,
* detached from the main resource tree.
*
* There are two kinds of interaction between the BFD core (running in the BFD
* thread) and the rest of BFD (running in the main thread). The first kind are
......@@ -177,7 +176,7 @@ bfd_session_update_tx_interval(struct bfd_session *s)
return;
/* Set timer relative to last tx_timer event */
tm2_set(s->tx_timer, s->last_tx + tx_int_l);
tm_set(s->tx_timer, s->last_tx + tx_int_l);
}
static void
......@@ -191,7 +190,7 @@ bfd_session_update_detection_time(struct bfd_session *s, int kick)
if (!s->last_rx)
return;
tm2_set(s->hold_timer, s->last_rx + timeout);
tm_set(s->hold_timer, s->last_rx + timeout);
}
static void
......@@ -212,16 +211,16 @@ bfd_session_control_tx_timer(struct bfd_session *s, int reset)
goto stop;
/* So TX timer should run */
if (reset || !tm2_active(s->tx_timer))
if (reset || !tm_active(s->tx_timer))
{
s->last_tx = 0;
tm2_start(s->tx_timer, 0);
tm_start(s->tx_timer, 0);
}
return;
stop:
tm2_stop(s->tx_timer);
tm_stop(s->tx_timer);
s->last_tx = 0;
}
......@@ -380,7 +379,7 @@ bfd_find_session_by_addr(struct bfd_proto *p, ip_addr addr)
}
static void
bfd_tx_timer_hook(timer2 *t)
bfd_tx_timer_hook(timer *t)
{
struct bfd_session *s = t->data;
......@@ -389,7 +388,7 @@ bfd_tx_timer_hook(timer2 *t)
}
static void
bfd_hold_timer_hook(timer2 *t)
bfd_hold_timer_hook(timer *t)
{
bfd_session_timeout(t->data);
}
......@@ -433,8 +432,8 @@ bfd_add_session(struct bfd_proto *p, ip_addr addr, ip_addr local, struct iface *
s->passive = ifa->cf->passive;
s->tx_csn = random_u32();
s->tx_timer = tm2_new_init(p->tpool, bfd_tx_timer_hook, s, 0, 0);
s->hold_timer = tm2_new_init(p->tpool, bfd_hold_timer_hook, s, 0, 0);
s->tx_timer = tm_new_init(p->tpool, bfd_tx_timer_hook, s, 0, 0);
s->hold_timer = tm_new_init(p->tpool, bfd_hold_timer_hook, s, 0, 0);
bfd_session_update_tx_interval(s);
bfd_session_control_tx_timer(s, 1);
......
......@@ -140,8 +140,8 @@ struct bfd_session
btime last_tx; /* Time of last sent periodic control packet */
btime last_rx; /* Time of last received valid control packet */
timer2 *tx_timer; /* Periodic control packet timer */
timer2 *hold_timer; /* Timer for session down detection time */
timer *tx_timer; /* Periodic control packet timer */
timer *hold_timer; /* Timer for session down detection time */
list request_list; /* List of client requests (struct bfd_request) */
btime last_state_change; /* Time of last state change */
......
......@@ -477,7 +477,7 @@ static void *
birdloop_main(void *arg)
{
struct birdloop *loop = arg;
timer2 *t;
timer *t;
int rv, timeout;
birdloop_set_current(loop);
......@@ -492,7 +492,7 @@ birdloop_main(void *arg)
if (events_waiting(loop))
timeout = 0;
else if (t = timers_first(&loop->time))
timeout = (tm2_remains(t) TO_MS) + 1;
timeout = (tm_remains(t) TO_MS) + 1;
else
timeout = -1;
......
......@@ -328,10 +328,10 @@ bgp_start_timer(timer *t, uint value)
/* The randomization procedure is specified in RFC 4271 section 10 */
btime time = value S;
btime randomize = random() % ((time / 4) + 1);
tm2_start(t, time - randomize);
tm_start(t, time - randomize);
}
else
tm2_stop(t);
tm_stop(t);
}
/**
......@@ -517,7 +517,7 @@ bgp_conn_enter_established_state(struct bgp_conn *conn)
int peer_gr_ready = peer->gr_aware && !(peer->gr_flags & BGP_GRF_RESTART);
if (p->gr_active_num)
tm2_stop(p->gr_timer);
tm_stop(p->gr_timer);
/* Number of active channels */
int num = 0;
......@@ -616,7 +616,7 @@ bgp_conn_enter_close_state(struct bgp_conn *conn)
int os = conn->state;
bgp_conn_set_state(conn, BS_CLOSE);
tm2_stop(conn->keepalive_timer);
tm_stop(conn->keepalive_timer);
conn->sk->rx_hook = NULL;
/* Timeout for CLOSE state, if we cannot send notification soon then we just hangup */
......@@ -779,7 +779,7 @@ bgp_send_open(struct bgp_conn *conn)
DBG("BGP: Sending open\n");
conn->sk->rx_hook = bgp_rx;
conn->sk->tx_hook = bgp_tx;
tm2_stop(conn->connect_timer);
tm_stop(conn->connect_timer);
bgp_schedule_packet(conn, NULL, PKT_OPEN);
bgp_conn_set_state(conn, BS_OPENSENT);
bgp_start_timer(conn->hold_timer, conn->bgp->cf->initial_hold_time);
......@@ -888,9 +888,9 @@ bgp_setup_conn(struct bgp_proto *p, struct bgp_conn *conn)
conn->last_channel = 0;
conn->last_channel_count = 0;
conn->connect_timer = tm2_new_init(p->p.pool, bgp_connect_timeout, conn, 0, 0);
conn->hold_timer = tm2_new_init(p->p.pool, bgp_hold_timeout, conn, 0, 0);
conn->keepalive_timer = tm2_new_init(p->p.pool, bgp_keepalive_timeout, conn, 0, 0);
conn->connect_timer = tm_new_init(p->p.pool, bgp_connect_timeout, conn, 0, 0);
conn->hold_timer = tm_new_init(p->p.pool, bgp_hold_timeout, conn, 0, 0);
conn->keepalive_timer = tm_new_init(p->p.pool, bgp_keepalive_timeout, conn, 0, 0);
conn->tx_ev = ev_new(p->p.pool);
conn->tx_ev->hook = bgp_kick_tx;
......@@ -1303,8 +1303,8 @@ bgp_start(struct proto *P)
p->event->hook = bgp_decision;
p->event->data = p;
p->startup_timer = tm2_new_init(p->p.pool, bgp_startup_timeout, p, 0, 0);
p->gr_timer = tm2_new_init(p->p.pool, bgp_graceful_restart_timeout, p, 0, 0);
p->startup_timer = tm_new_init(p->p.pool, bgp_startup_timeout, p, 0, 0);
p->gr_timer = tm_new_init(p->p.pool, bgp_graceful_restart_timeout, p, 0, 0);
p->local_id = proto_get_router_id(P->cf);
if (p->rr_client)
......@@ -2004,18 +2004,18 @@ bgp_show_proto_info(struct proto *P)
struct bgp_conn *oc = &p->outgoing_conn;
if ((p->start_state < BSS_CONNECT) &&
(tm2_active(p->startup_timer)))
(tm_active(p->startup_timer)))
cli_msg(-1006, " Error wait: %t/%u",
tm2_remains(p->startup_timer), p->startup_delay);
tm_remains(p->startup_timer), p->startup_delay);
if ((oc->state == BS_ACTIVE) &&
(tm2_active(oc->connect_timer)))
(tm_active(oc->connect_timer)))
cli_msg(-1006, " Connect delay: %t/%u",
tm2_remains(oc->connect_timer), p->cf->connect_delay_time);
tm_remains(oc->connect_timer), p->cf->connect_delay_time);
if (p->gr_active_num && tm2_active(p->gr_timer))
if (p->gr_active_num && tm_active(p->gr_timer))
cli_msg(-1006, " Restart timer: %t/-",
tm2_remains(p->gr_timer));
tm_remains(p->gr_timer));
}
else if (P->proto_state == PS_UP)
{
......@@ -2037,9 +2037,9 @@ bgp_show_proto_info(struct proto *P)
*/
cli_msg(-1006, " Source address: %I", p->source_addr);
cli_msg(-1006, " Hold timer: %t/%u",
tm2_remains(p->conn->hold_timer), p->conn->hold_time);
tm_remains(p->conn->hold_timer), p->conn->hold_time);
cli_msg(-1006, " Keepalive timer: %t/%u",
tm2_remains(p->conn->keepalive_timer), p->conn->keepalive_time);
tm_remains(p->conn->keepalive_timer), p->conn->keepalive_time);
}
if ((p->last_error_class != BE_NONE) &&
......
......@@ -279,8 +279,8 @@ ospf_process_dbdes(struct ospf_proto *p, struct ospf_packet *pkt, struct ospf_ne
req->lsa = lsa;
req->lsa_body = LSA_BODY_DUMMY;
if (!tm2_active(n->lsrq_timer))
tm2_start(n->lsrq_timer, 0);
if (!tm_active(n->lsrq_timer))
tm_start(n->lsrq_timer, 0);
}
}
......@@ -366,7 +366,7 @@ ospf_receive_dbdes(struct ospf_packet *pkt, struct ospf_iface *ifa,
n->options = rcv_options;
n->myimms &= ~DBDES_MS;
n->imms = rcv_imms;
tm2_stop(n->dbdes_timer);
tm_stop(n->dbdes_timer);
ospf_neigh_sm(n, INM_NEGDONE);
ospf_send_dbdes(p, n);
break;
......@@ -422,13 +422,13 @@ ospf_receive_dbdes(struct ospf_packet *pkt, struct ospf_iface *ifa,
if (!(n->myimms & DBDES_M) && !(n->imms & DBDES_M))
{
tm2_stop(n->dbdes_timer);
tm_stop(n->dbdes_timer);
ospf_neigh_sm(n, INM_EXDONE);
break;
}
ospf_send_dbdes(p, n);
tm2_start(n->dbdes_timer, n->ifa->rxmtint S);
tm_start(n->dbdes_timer, n->ifa->rxmtint S);
}
else
{
......
......@@ -263,13 +263,13 @@ ospf_iface_down(struct ospf_iface *ifa)
ospf_neigh_sm(n, INM_KILLNBR);
if (ifa->hello_timer)
tm2_stop(ifa->hello_timer);
tm_stop(ifa->hello_timer);
if (ifa->poll_timer)
tm2_stop(ifa->poll_timer);
tm_stop(ifa->poll_timer);
if (ifa->wait_timer)
tm2_stop(ifa->wait_timer);
tm_stop(ifa->wait_timer);
ospf_flush2_lsa(p, &ifa->link_lsa);
ospf_flush2_lsa(p, &ifa->net_lsa);
......@@ -396,15 +396,15 @@ ospf_iface_sm(struct ospf_iface *ifa, int event)
{
ospf_iface_chstate(ifa, OSPF_IS_WAITING);
if (ifa->wait_timer)
tm2_start(ifa->wait_timer, ifa->waitint S);
tm_start(ifa->wait_timer, ifa->waitint S);
}
}
if (ifa->hello_timer)
tm2_start(ifa->hello_timer, ifa->helloint S);
tm_start(ifa->hello_timer, ifa->helloint S);
if (ifa->poll_timer)
tm2_start(ifa->poll_timer, ifa->pollint S);
tm_start(ifa->poll_timer, ifa->pollint S);
ospf_send_hello(ifa, OHS_HELLO, NULL);
}
......@@ -494,13 +494,13 @@ ospf_iface_add(struct object_lock *lock)
if (! ifa->stub)
{
ifa->hello_timer = tm2_new_init(ifa->pool, hello_timer_hook, ifa, ifa->helloint S, 0);
ifa->hello_timer = tm_new_init(ifa->pool, hello_timer_hook, ifa, ifa->helloint S, 0);