fib6_rules.c (71af75b6929458d85f63c0649dc26d6f4c19729e) | fib6_rules.c (cdef485217d30382f3bf6448c54b4401648fe3f1) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * net/ipv6/fib6_rules.c IPv6 Routing Policy Rules 4 * 5 * Copyright (C)2003-2006 Helsinki University of Technology 6 * Copyright (C)2003-2006 USAGI/WIDE Project 7 * 8 * Authors --- 253 unchanged lines hidden (view full) --- 262{ 263 if (arg->lookup_ptr == fib6_table_lookup) 264 return fib6_rule_action_alt(rule, flp, flags, arg); 265 266 return __fib6_rule_action(rule, flp, flags, arg); 267} 268 269INDIRECT_CALLABLE_SCOPE bool fib6_rule_suppress(struct fib_rule *rule, | 1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * net/ipv6/fib6_rules.c IPv6 Routing Policy Rules 4 * 5 * Copyright (C)2003-2006 Helsinki University of Technology 6 * Copyright (C)2003-2006 USAGI/WIDE Project 7 * 8 * Authors --- 253 unchanged lines hidden (view full) --- 262{ 263 if (arg->lookup_ptr == fib6_table_lookup) 264 return fib6_rule_action_alt(rule, flp, flags, arg); 265 266 return __fib6_rule_action(rule, flp, flags, arg); 267} 268 269INDIRECT_CALLABLE_SCOPE bool fib6_rule_suppress(struct fib_rule *rule, |
270 int flags, |
|
270 struct fib_lookup_arg *arg) 271{ 272 struct fib6_result *res = arg->result; 273 struct rt6_info *rt = res->rt6; 274 struct net_device *dev = NULL; 275 276 if (!rt) 277 return false; --- 11 unchanged lines hidden (view full) --- 289 * belonging to a forbidden interface group 290 */ 291 if (rule->suppress_ifgroup != -1 && dev && dev->group == rule->suppress_ifgroup) 292 goto suppress_route; 293 294 return false; 295 296suppress_route: | 271 struct fib_lookup_arg *arg) 272{ 273 struct fib6_result *res = arg->result; 274 struct rt6_info *rt = res->rt6; 275 struct net_device *dev = NULL; 276 277 if (!rt) 278 return false; --- 11 unchanged lines hidden (view full) --- 290 * belonging to a forbidden interface group 291 */ 292 if (rule->suppress_ifgroup != -1 && dev && dev->group == rule->suppress_ifgroup) 293 goto suppress_route; 294 295 return false; 296 297suppress_route: |
297 if (!(arg->flags & FIB_LOOKUP_NOREF)) 298 ip6_rt_put(rt); | 298 ip6_rt_put_flags(rt, flags); |
299 return true; 300} 301 302INDIRECT_CALLABLE_SCOPE int fib6_rule_match(struct fib_rule *rule, 303 struct flowi *fl, int flags) 304{ 305 struct fib6_rule *r = (struct fib6_rule *) rule; 306 struct flowi6 *fl6 = &fl->u.ip6; --- 209 unchanged lines hidden --- | 299 return true; 300} 301 302INDIRECT_CALLABLE_SCOPE int fib6_rule_match(struct fib_rule *rule, 303 struct flowi *fl, int flags) 304{ 305 struct fib6_rule *r = (struct fib6_rule *) rule; 306 struct flowi6 *fl6 = &fl->u.ip6; --- 209 unchanged lines hidden --- |