Lines Matching refs:fn
684 static struct rt6_info *find_rr_leaf(struct fib6_node *fn, in find_rr_leaf() argument
703 for (rt = fn->leaf; rt && rt != rr_head; rt = rt->dst.rt6_next) { in find_rr_leaf()
721 static struct rt6_info *rt6_select(struct fib6_node *fn, int oif, int strict) in rt6_select() argument
727 rt0 = fn->rr_ptr; in rt6_select()
729 fn->rr_ptr = rt0 = fn->leaf; in rt6_select()
731 match = find_rr_leaf(fn, rt0, rt0->rt6i_metric, oif, strict, in rt6_select()
739 next = fn->leaf; in rt6_select()
742 fn->rr_ptr = next; in rt6_select()
830 static struct fib6_node* fib6_backtrack(struct fib6_node *fn, in fib6_backtrack() argument
835 if (fn->fn_flags & RTN_TL_ROOT) in fib6_backtrack()
837 pn = fn->parent; in fib6_backtrack()
838 if (FIB6_SUBTREE(pn) && FIB6_SUBTREE(pn) != fn) in fib6_backtrack()
839 fn = fib6_lookup(FIB6_SUBTREE(pn), NULL, saddr); in fib6_backtrack()
841 fn = pn; in fib6_backtrack()
842 if (fn->fn_flags & RTN_RTINFO) in fib6_backtrack()
843 return fn; in fib6_backtrack()
851 struct fib6_node *fn; in ip6_pol_route_lookup() local
855 fn = fib6_lookup(&table->tb6_root, &fl6->daddr, &fl6->saddr); in ip6_pol_route_lookup()
857 rt = fn->leaf; in ip6_pol_route_lookup()
862 fn = fib6_backtrack(fn, &fl6->saddr); in ip6_pol_route_lookup()
863 if (fn) in ip6_pol_route_lookup()
1043 struct fib6_node *fn, *saved_fn; in ip6_pol_route() local
1053 fn = fib6_lookup(&table->tb6_root, &fl6->daddr, &fl6->saddr); in ip6_pol_route()
1054 saved_fn = fn; in ip6_pol_route()
1060 rt = rt6_select(fn, oif, strict); in ip6_pol_route()
1064 fn = fib6_backtrack(fn, &fl6->saddr); in ip6_pol_route()
1065 if (fn) in ip6_pol_route()
1070 fn = saved_fn; in ip6_pol_route()
1429 struct fib6_node *fn; in __ip6_route_redirect() local
1442 fn = fib6_lookup(&table->tb6_root, &fl6->daddr, &fl6->saddr); in __ip6_route_redirect()
1444 for (rt = fn->leaf; rt; rt = rt->dst.rt6_next) { in __ip6_route_redirect()
1466 fn = fib6_backtrack(fn, &fl6->saddr); in __ip6_route_redirect()
1467 if (fn) in __ip6_route_redirect()
2059 struct fib6_node *fn; in ip6_route_del() local
2069 fn = fib6_locate(&table->tb6_root, in ip6_route_del()
2073 if (fn) { in ip6_route_del()
2074 for (rt = fn->leaf; rt; rt = rt->dst.rt6_next) { in ip6_route_del()
2255 struct fib6_node *fn; in rt6_get_route_info() local
2264 fn = fib6_locate(&table->tb6_root, prefix, prefixlen, NULL, 0); in rt6_get_route_info()
2265 if (!fn) in rt6_get_route_info()
2268 for (rt = fn->leaf; rt; rt = rt->dst.rt6_next) { in rt6_get_route_info()