Lines Matching refs:oif
104 static int rt6_score_route(const struct fib6_nh *nh, u32 fib6_flags, int oif,
412 struct flowi6 *fl6, int oif, bool have_oif_match, in fib6_select_path() argument
447 if (rt6_score_route(nh, sibling->fib6_flags, oif, strict) < 0) in fib6_select_path()
463 const struct in6_addr *saddr, int oif, int flags) in __rt6_device_match() argument
471 if (oif) { in __rt6_device_match()
472 if (dev->ifindex == oif) in __rt6_device_match()
486 int oif; member
496 return __rt6_device_match(arg->net, nh, arg->saddr, arg->oif, in __rt6_nh_dev_match()
504 int oif, int flags) in rt6_nh_dev_match() argument
509 .oif = oif, in rt6_nh_dev_match()
523 const struct in6_addr *saddr, int oif, int flags) in rt6_device_match() argument
529 if (!oif && ipv6_addr_any(saddr)) { in rt6_device_match()
546 oif, flags); in rt6_device_match()
551 if (__rt6_device_match(net, nh, saddr, oif, flags)) in rt6_device_match()
560 if (oif && flags & RT6_LOOKUP_F_IFACE) { in rt6_device_match()
704 static int rt6_score_route(const struct fib6_nh *nh, u32 fib6_flags, int oif, in rt6_score_route() argument
709 if (!oif || nh->fib_nh_dev->ifindex == oif) in rt6_score_route()
727 int oif, int strict, int *mpri, bool *do_rr) in find_match() argument
741 m = rt6_score_route(nh, fib6_flags, oif, strict); in find_match()
764 int oif; member
776 return find_match(nh, arg->flags, arg->oif, arg->strict, in rt6_nh_find_match()
783 int oif, int strict, bool *do_rr, int *mpri) in __find_rr_leaf() argument
804 .oif = oif, in __find_rr_leaf()
824 if (find_match(nh, f6i->fib6_flags, oif, strict, in __find_rr_leaf()
838 struct fib6_info *rr_head, int oif, int strict, in find_rr_leaf() argument
846 oif, strict, do_rr, &mpri); in find_rr_leaf()
849 oif, strict, do_rr, &mpri); in find_rr_leaf()
855 oif, strict, do_rr, &mpri); in find_rr_leaf()
858 static void rt6_select(struct net *net, struct fib6_node *fn, int oif, in rt6_select() argument
889 find_rr_leaf(fn, leaf, rt0, oif, strict, &do_rr, res); in rt6_select()
1261 const struct in6_addr *saddr, int oif, in rt6_lookup() argument
1265 .flowi6_oif = oif, in rt6_lookup()
2174 int fib6_table_lookup(struct net *net, struct fib6_table *table, int oif, in fib6_table_lookup() argument
2183 oif = 0; in fib6_table_lookup()
2186 rt6_select(net, fn, oif, res, strict); in fib6_table_lookup()
2205 int oif, struct flowi6 *fl6, in ip6_pol_route() argument
2222 fib6_table_lookup(net, table, oif, fl6, &res, strict); in ip6_pol_route()
2226 fib6_select_path(net, &res, fl6, oif, false, skb, strict); in ip6_pol_route()
2803 int oif, u32 mark, kuid_t uid) in ip6_update_pmtu() argument
2808 .flowi6_oif = oif, in ip6_update_pmtu()
2825 int oif = sk->sk_bound_dev_if; in ip6_sk_update_pmtu() local
2828 if (!oif && skb->dev) in ip6_sk_update_pmtu()
2829 oif = l3mdev_master_ifindex(skb->dev); in ip6_sk_update_pmtu()
2831 ip6_update_pmtu(skb, sock_net(sk), mtu, oif, sk->sk_mark, sk->sk_uid); in ip6_sk_update_pmtu()
3017 void ip6_redirect(struct sk_buff *skb, struct net *net, int oif, u32 mark, in ip6_redirect() argument
3024 .flowi6_oif = oif, in ip6_redirect()
3038 void ip6_redirect_no_header(struct sk_buff *skb, struct net *net, int oif) in ip6_redirect_no_header() argument
3045 .flowi6_oif = oif, in ip6_redirect_no_header()
5871 int err, iif = 0, oif = 0; in inet6_rtm_getroute() local
5907 oif = nla_get_u32(tb[RTA_OIF]); in inet6_rtm_getroute()
5954 fl6.flowi6_oif = oif; in inet6_rtm_getroute()