engine_iface
TAILQ_ENTRY(engine_iface) entry;
struct engine_iface *engine_iface;
if ((engine_iface = find_engine_iface_by_id(rs->if_index)) == NULL)
TAILQ_HEAD(, engine_iface) engine_interfaces;
if (engine_iface->ras_delayed)
engine_iface->ras_delayed = 1;
timespecsub(&now, &engine_iface->last_ra, &diff);
evtimer_add(&engine_iface->timer, &tv);
struct engine_iface*
struct engine_iface *engine_iface;
TAILQ_FOREACH(engine_iface, &engine_interfaces, entry) {
if (engine_iface->if_index == if_index)
return engine_iface;
struct engine_iface *engine_iface;
if ((engine_iface = find_engine_iface_by_id(if_index)) == NULL) {
engine_iface = calloc(1, sizeof(*engine_iface));
engine_iface->if_index = if_index;
evtimer_set(&engine_iface->timer, iface_timeout, engine_iface);
TAILQ_INSERT_TAIL(&engine_interfaces, engine_iface, entry);
evtimer_add(&engine_iface->timer, &tv);
struct engine_iface *engine_iface;
if ((engine_iface = find_engine_iface_by_id(if_index)) == NULL) {
send_ra.if_index = engine_iface->if_index;
TAILQ_REMOVE(&engine_interfaces, engine_iface, entry);
evtimer_del(&engine_iface->timer);
&engine_iface->if_index, sizeof(engine_iface->if_index));
free(engine_iface);
struct engine_iface *engine_iface = (struct engine_iface *)arg;
evtimer_add(&engine_iface->timer, &tv);
send_ra.if_index = engine_iface->if_index;
clock_gettime(CLOCK_MONOTONIC, &engine_iface->last_ra);
engine_iface->ras_delayed = 0;
struct engine_iface *find_engine_iface_by_id(uint32_t);