Lines Matching refs:flags
62 struct fib6_result *res, int flags) in fib6_lookup() argument
71 .flags = FIB_LOOKUP_NOREF, in fib6_lookup()
77 flowi6_to_flowi(fl6), flags, &arg); in fib6_lookup()
80 fl6, res, flags); in fib6_lookup()
83 oif, fl6, res, flags); in fib6_lookup()
91 int flags, pol_lookup_t lookup) in fib6_rule_lookup() argument
99 .flags = FIB_LOOKUP_NOREF, in fib6_rule_lookup()
106 flowi6_to_flowi(fl6), flags, &arg); in fib6_rule_lookup()
113 rt = lookup(net, net->ipv6.fib6_local_tbl, fl6, skb, flags); in fib6_rule_lookup()
116 ip6_rt_put_flags(rt, flags); in fib6_rule_lookup()
117 rt = lookup(net, net->ipv6.fib6_main_tbl, fl6, skb, flags); in fib6_rule_lookup()
120 ip6_rt_put_flags(rt, flags); in fib6_rule_lookup()
123 if (!(flags & RT6_LOOKUP_F_DST_NOREF)) in fib6_rule_lookup()
128 static int fib6_rule_saddr(struct net *net, struct fib_rule *rule, int flags, in fib6_rule_saddr() argument
136 if ((rule->flags & FIB_RULE_FIND_SADDR) && in fib6_rule_saddr()
137 r->src.plen && !(flags & RT6_LOOKUP_F_HAS_SADDR)) { in fib6_rule_saddr()
141 rt6_flags2srcprefs(flags), &saddr)) in fib6_rule_saddr()
154 int flags, struct fib_lookup_arg *arg) in fib6_rule_action_alt() argument
181 err = fib6_table_lookup(net, table, *oif, flp6, res, flags); in fib6_rule_action_alt()
183 err = fib6_rule_saddr(net, rule, flags, flp6, in fib6_rule_action_alt()
192 int flags, struct fib_lookup_arg *arg) in __fib6_rule_action() argument
228 rt = lookup(net, table, flp6, arg->lookup_data, flags); in __fib6_rule_action()
230 err = fib6_rule_saddr(net, rule, flags, flp6, in __fib6_rule_action()
241 ip6_rt_put_flags(rt, flags); in __fib6_rule_action()
247 if (!(flags & RT6_LOOKUP_F_DST_NOREF)) in __fib6_rule_action()
255 int flags, struct fib_lookup_arg *arg) in fib6_rule_action() argument
258 return fib6_rule_action_alt(rule, flp, flags, arg); in fib6_rule_action()
260 return __fib6_rule_action(rule, flp, flags, arg); in fib6_rule_action()
263 static bool fib6_rule_suppress(struct fib_rule *rule, int flags, struct fib_lookup_arg *arg) in fib6_rule_suppress() argument
290 ip6_rt_put_flags(rt, flags); in fib6_rule_suppress()
294 static int fib6_rule_match(struct fib_rule *rule, struct flowi *fl, int flags) in fib6_rule_match() argument
309 if (flags & RT6_LOOKUP_F_HAS_SADDR) { in fib6_rule_match()
313 } else if (!(r->common.flags & FIB_RULE_FIND_SADDR)) in fib6_rule_match()