Lines Matching refs:oif
237 int oif,
243 if (!oif && ipv6_addr_any(saddr))
249 if (oif) {
250 if (dev->ifindex == oif)
254 sprt->rt6i_idev->dev->ifindex != oif) {
255 if (flags & RT6_LOOKUP_F_IFACE && oif)
257 if (local && (!oif ||
258 local->rt6i_idev->dev->ifindex == oif))
270 if (oif) {
319 static inline int rt6_check_dev(struct rt6_info *rt, int oif)
322 if (!oif || dev->ifindex == oif)
325 rt->rt6i_idev && rt->rt6i_idev->dev->ifindex == oif)
353 static int rt6_score_route(struct rt6_info *rt, int oif,
358 m = rt6_check_dev(rt, oif);
370 static struct rt6_info *find_match(struct rt6_info *rt, int oif, int strict,
378 m = rt6_score_route(rt, oif, strict);
397 u32 metric, int oif, int strict)
405 match = find_match(rt, oif, strict, &mpri, match);
408 match = find_match(rt, oif, strict, &mpri, match);
413 static struct rt6_info *rt6_select(struct fib6_node *fn, int oif, int strict)
418 RT6_TRACE("%s(fn->leaf=%p, oif=%d)\n",
419 __func__, fn->leaf, oif);
425 match = find_rr_leaf(fn, rt0, rt0->rt6i_metric, oif, strict);
549 rt = rt6_device_match(net, rt, &fl->fl6_src, fl->oif, flags);
559 const struct in6_addr *saddr, int oif, int strict)
562 .oif = oif,
697 static struct rt6_info *ip6_pol_route(struct net *net, struct fib6_table *table, int oif,
716 rt = rt6_select(fn, oif, strict | reachable);
803 return ip6_pol_route(net, table, fl->oif, fl, flags);
1427 if (fl->oif != rt->rt6i_dev->ifindex)
1454 .oif = dev->ifindex,
2353 fl.oif = nla_get_u32(tb[RTA_OIF]);