Lines Matching refs:rtnh

464 static int fib_count_nexthops(struct rtnexthop *rtnh, int remaining,  in fib_count_nexthops()  argument
469 while (rtnh_ok(rtnh, remaining)) { in fib_count_nexthops()
471 rtnh = rtnh_next(rtnh, &remaining); in fib_count_nexthops()
484 static int fib_get_nhs(struct fib_info *fi, struct rtnexthop *rtnh, in fib_get_nhs() argument
493 if (!rtnh_ok(rtnh, remaining)) { in fib_get_nhs()
499 if (rtnh->rtnh_flags & (RTNH_F_DEAD | RTNH_F_LINKDOWN)) { in fib_get_nhs()
506 (cfg->fc_flags & ~0xFF) | rtnh->rtnh_flags; in fib_get_nhs()
507 nexthop_nh->nh_oif = rtnh->rtnh_ifindex; in fib_get_nhs()
508 nexthop_nh->nh_weight = rtnh->rtnh_hops + 1; in fib_get_nhs()
510 attrlen = rtnh_attrlen(rtnh); in fib_get_nhs()
512 struct nlattr *nla, *attrs = rtnh_attrs(rtnh); in fib_get_nhs()
547 rtnh = rtnh_next(rtnh, &remaining); in fib_get_nhs()
636 struct rtnexthop *rtnh; in fib_nh_match() local
664 rtnh = cfg->fc_mp; in fib_nh_match()
670 if (!rtnh_ok(rtnh, remaining)) in fib_nh_match()
673 if (rtnh->rtnh_ifindex && rtnh->rtnh_ifindex != nh->nh_oif) in fib_nh_match()
676 attrlen = rtnh_attrlen(rtnh); in fib_nh_match()
678 struct nlattr *nla, *attrs = rtnh_attrs(rtnh); in fib_nh_match()
690 rtnh = rtnh_next(rtnh, &remaining); in fib_nh_match()
1360 struct rtnexthop *rtnh; in fib_dump_info() local
1368 rtnh = nla_reserve_nohdr(skb, sizeof(*rtnh)); in fib_dump_info()
1369 if (!rtnh) in fib_dump_info()
1372 rtnh->rtnh_flags = nh->nh_flags & 0xFF; in fib_dump_info()
1380 rtnh->rtnh_flags |= RTNH_F_DEAD; in fib_dump_info()
1383 rtnh->rtnh_hops = nh->nh_weight - 1; in fib_dump_info()
1384 rtnh->rtnh_ifindex = nh->nh_oif; in fib_dump_info()
1399 rtnh->rtnh_len = nlmsg_get_pos(skb) - (void *) rtnh; in fib_dump_info()