Lines Matching refs:rtnh
4357 struct rtnexthop *rtnh; in ip6_route_multipath_add() local
4375 rtnh = (struct rtnexthop *)cfg->fc_mp; in ip6_route_multipath_add()
4380 while (rtnh_ok(rtnh, remaining)) { in ip6_route_multipath_add()
4382 if (rtnh->rtnh_ifindex) in ip6_route_multipath_add()
4383 r_cfg.fc_ifindex = rtnh->rtnh_ifindex; in ip6_route_multipath_add()
4385 attrlen = rtnh_attrlen(rtnh); in ip6_route_multipath_add()
4387 struct nlattr *nla, *attrs = rtnh_attrs(rtnh); in ip6_route_multipath_add()
4400 r_cfg.fc_flags |= (rtnh->rtnh_flags & RTNH_F_ONLINK); in ip6_route_multipath_add()
4415 rt->fib6_nh.nh_weight = rtnh->rtnh_hops + 1; in ip6_route_multipath_add()
4424 rtnh = rtnh_next(rtnh, &remaining); in ip6_route_multipath_add()
4502 struct rtnexthop *rtnh; in ip6_route_multipath_del() local
4508 rtnh = (struct rtnexthop *)cfg->fc_mp; in ip6_route_multipath_del()
4511 while (rtnh_ok(rtnh, remaining)) { in ip6_route_multipath_del()
4513 if (rtnh->rtnh_ifindex) in ip6_route_multipath_del()
4514 r_cfg.fc_ifindex = rtnh->rtnh_ifindex; in ip6_route_multipath_del()
4516 attrlen = rtnh_attrlen(rtnh); in ip6_route_multipath_del()
4518 struct nlattr *nla, *attrs = rtnh_attrs(rtnh); in ip6_route_multipath_del()
4530 rtnh = rtnh_next(rtnh, &remaining); in ip6_route_multipath_del()
4643 struct rtnexthop *rtnh; in rt6_add_nexthop() local
4646 rtnh = nla_reserve_nohdr(skb, sizeof(*rtnh)); in rt6_add_nexthop()
4647 if (!rtnh) in rt6_add_nexthop()
4650 rtnh->rtnh_hops = rt->fib6_nh.nh_weight - 1; in rt6_add_nexthop()
4651 rtnh->rtnh_ifindex = dev ? dev->ifindex : 0; in rt6_add_nexthop()
4656 rtnh->rtnh_flags = flags; in rt6_add_nexthop()
4659 rtnh->rtnh_len = nlmsg_get_pos(skb) - (void *)rtnh; in rt6_add_nexthop()