Lines Matching defs:rn
402 struct rt_node *rn;
416 if ((rn = rt_find(e->address.s_addr, e->mask.s_addr)) == NULL) {
419 rn = rt_new_rr(e, metric);
420 rt_insert(rn);
421 rde_send_change_kroute(rn);
422 route_start_timeout(rn);
423 triggered_update(rn);
429 if (rn->flags & F_KERNEL)
432 if (metric < rn->metric) {
433 rn->metric = metric;
434 rn->nexthop.s_addr = e->nexthop.s_addr;
435 rn->ifindex = e->ifindex;
436 rde_send_change_kroute(rn);
437 triggered_update(rn);
438 } else if (e->nexthop.s_addr == rn->nexthop.s_addr &&
439 metric > rn->metric) {
440 rn->metric = metric;
441 rde_send_change_kroute(rn);
442 triggered_update(rn);
443 if (rn->metric == INFINITY)
444 route_start_garbage(rn);
445 } else if (e->nexthop.s_addr != rn->nexthop.s_addr &&
446 metric == rn->metric) {
454 evtimer_pending(&rn->timeout_timer, &tv);
456 rn->nexthop.s_addr = e->nexthop.s_addr;
457 rn->ifindex = e->ifindex;
458 rde_send_change_kroute(rn);
462 if (e->nexthop.s_addr == rn->nexthop.s_addr &&
463 rn->metric < INFINITY)
464 route_reset_timers(rn);
471 triggered_update(struct rt_node *rn)
475 rr.address.s_addr = rn->prefix.s_addr;
476 rr.mask.s_addr = rn->netmask.s_addr;
477 rr.nexthop.s_addr = rn->nexthop.s_addr;
478 rr.metric = rn->metric;
479 rr.ifindex = rn->ifindex;