Lines Matching refs:rtnh
457 static int fib_count_nexthops(struct rtnexthop *rtnh, int remaining) in fib_count_nexthops() argument
461 while (rtnh_ok(rtnh, remaining)) { in fib_count_nexthops()
463 rtnh = rtnh_next(rtnh, &remaining); in fib_count_nexthops()
470 static int fib_get_nhs(struct fib_info *fi, struct rtnexthop *rtnh, in fib_get_nhs() argument
479 if (!rtnh_ok(rtnh, remaining)) in fib_get_nhs()
483 (cfg->fc_flags & ~0xFF) | rtnh->rtnh_flags; in fib_get_nhs()
484 nexthop_nh->nh_oif = rtnh->rtnh_ifindex; in fib_get_nhs()
485 nexthop_nh->nh_weight = rtnh->rtnh_hops + 1; in fib_get_nhs()
487 attrlen = rtnh_attrlen(rtnh); in fib_get_nhs()
489 struct nlattr *nla, *attrs = rtnh_attrs(rtnh); in fib_get_nhs()
522 rtnh = rtnh_next(rtnh, &remaining); in fib_get_nhs()
624 struct rtnexthop *rtnh; in fib_nh_match() local
648 rtnh = cfg->fc_mp; in fib_nh_match()
654 if (!rtnh_ok(rtnh, remaining)) in fib_nh_match()
657 if (rtnh->rtnh_ifindex && rtnh->rtnh_ifindex != nh->nh_oif) in fib_nh_match()
660 attrlen = rtnh_attrlen(rtnh); in fib_nh_match()
662 struct nlattr *nla, *attrs = rtnh_attrs(rtnh); in fib_nh_match()
674 rtnh = rtnh_next(rtnh, &remaining); in fib_nh_match()
1279 struct rtnexthop *rtnh; in fib_dump_info() local
1289 rtnh = nla_reserve_nohdr(skb, sizeof(*rtnh)); in fib_dump_info()
1290 if (!rtnh) in fib_dump_info()
1293 rtnh->rtnh_flags = nh->nh_flags & 0xFF; in fib_dump_info()
1298 rtnh->rtnh_flags |= RTNH_F_DEAD; in fib_dump_info()
1300 rtnh->rtnh_hops = nh->nh_weight - 1; in fib_dump_info()
1301 rtnh->rtnh_ifindex = nh->nh_oif; in fib_dump_info()
1314 rtnh->rtnh_len = nlmsg_get_pos(skb) - (void *) rtnh; in fib_dump_info()