rt_metric
|| rt->rt_metric > ifp->int_metric) {
|| rt->rt_metric > ifp->int_metric)) {
j = (rt->rt_metric
j = rt->rt_metric+1;
metric = RT->rt_metric;
|| rt->rt_metric+ws.metric >= def_metric) {
def_metric = rt->rt_metric+ws.metric;
metric = RT->rt_metric;
if (rt->rt_metric != new->rts_metric) {
if (rt->rt_metric == new->rts_metric
-(new->rts_metric == rt->rt_metric),
&& RT->rt_poison_metric < RT->rt_metric)
rt->rt_metric);
if (rt->rt_metric >= UNREACHABLE) {
if (((u_int)(rcount + 1) == no) || (rt == NULL) || (rt->rt_metric == 1)) {
*p++ = (r->rt_parent == vifi && r->rt_metric != UNREACHABLE) ?
(char)(r->rt_metric + UNREACHABLE) : /* "poisoned reverse" */
(char)(r->rt_metric);
fprintf(fp, (r->rt_metric == UNREACHABLE) ? " NR " : "%4u ",
r->rt_metric);
if (r->rt_metric != UNREACHABLE &&
if (r->rt_metric != UNREACHABLE) {
r->rt_metric = UNREACHABLE;
if (r->rt_metric != UNREACHABLE) {
rtp->rt_metric = UNREACHABLE; /* temporary; updated below */
if (r->rt_metric == UNREACHABLE) {
r->rt_metric = adj_metric;
if (adj_metric == r->rt_metric)
else if (adj_metric < r->rt_metric) {
r->rt_metric = adj_metric;
(adj_metric < r->rt_metric ||
(adj_metric == r->rt_metric &&
if (r->rt_parent != vifi || adj_metric < r->rt_metric) {
r->rt_metric = adj_metric;
if (metric < r->rt_metric ||
(metric == r->rt_metric &&
(metric > r->rt_metric ||
(metric == r->rt_metric &&
else if (r->rt_metric != UNREACHABLE) {
r->rt_metric = UNREACHABLE;
r->rt_metric = UNREACHABLE;
*p++ = (r->rt_parent == vifi && r->rt_metric != UNREACHABLE) ?
(char)(r->rt_metric + UNREACHABLE) : /* "poisoned reverse" */
(char)(r->rt_metric);
&& (r->rt_metric > 1)) {
u_char rt_metric; /* cost of route back to origin */
long_return = rt->rt_metric;