Lines Matching refs:fn

650 static struct rt6_info *find_rr_leaf(struct fib6_node *fn,  in find_rr_leaf()  argument
662 for (rt = fn->leaf; rt && rt != rr_head && rt->rt6i_metric == metric; in find_rr_leaf()
669 static struct rt6_info *rt6_select(struct fib6_node *fn, int oif, int strict) in rt6_select() argument
675 rt0 = fn->rr_ptr; in rt6_select()
677 fn->rr_ptr = rt0 = fn->leaf; in rt6_select()
679 match = find_rr_leaf(fn, rt0, rt0->rt6i_metric, oif, strict, in rt6_select()
687 next = fn->leaf; in rt6_select()
690 fn->rr_ptr = next; in rt6_select()
773 static struct fib6_node* fib6_backtrack(struct fib6_node *fn, in fib6_backtrack() argument
778 if (fn->fn_flags & RTN_TL_ROOT) in fib6_backtrack()
780 pn = fn->parent; in fib6_backtrack()
781 if (FIB6_SUBTREE(pn) && FIB6_SUBTREE(pn) != fn) in fib6_backtrack()
782 fn = fib6_lookup(FIB6_SUBTREE(pn), NULL, saddr); in fib6_backtrack()
784 fn = pn; in fib6_backtrack()
785 if (fn->fn_flags & RTN_RTINFO) in fib6_backtrack()
786 return fn; in fib6_backtrack()
794 struct fib6_node *fn; in ip6_pol_route_lookup() local
798 fn = fib6_lookup(&table->tb6_root, &fl6->daddr, &fl6->saddr); in ip6_pol_route_lookup()
800 rt = fn->leaf; in ip6_pol_route_lookup()
805 fn = fib6_backtrack(fn, &fl6->saddr); in ip6_pol_route_lookup()
806 if (fn) in ip6_pol_route_lookup()
918 struct fib6_node *fn, *saved_fn; in ip6_pol_route() local
931 fn = fib6_lookup(&table->tb6_root, &fl6->daddr, &fl6->saddr); in ip6_pol_route()
932 saved_fn = fn; in ip6_pol_route()
935 rt = rt6_select(fn, oif, strict); in ip6_pol_route()
939 fn = fib6_backtrack(fn, &fl6->saddr); in ip6_pol_route()
940 if (fn) in ip6_pol_route()
945 fn = saved_fn; in ip6_pol_route()
1208 struct fib6_node *fn; in __ip6_route_redirect() local
1221 fn = fib6_lookup(&table->tb6_root, &fl6->daddr, &fl6->saddr); in __ip6_route_redirect()
1223 for (rt = fn->leaf; rt; rt = rt->dst.rt6_next) { in __ip6_route_redirect()
1245 fn = fib6_backtrack(fn, &fl6->saddr); in __ip6_route_redirect()
1246 if (fn) in __ip6_route_redirect()
1793 struct fib6_node *fn; in ip6_route_del() local
1803 fn = fib6_locate(&table->tb6_root, in ip6_route_del()
1807 if (fn) { in ip6_route_del()
1808 for (rt = fn->leaf; rt; rt = rt->dst.rt6_next) { in ip6_route_del()
1993 struct fib6_node *fn; in rt6_get_route_info() local
2002 fn = fib6_locate(&table->tb6_root, prefix, prefixlen, NULL, 0); in rt6_get_route_info()
2003 if (!fn) in rt6_get_route_info()
2006 for (rt = fn->leaf; rt; rt = rt->dst.rt6_next) { in rt6_get_route_info()