fib6_node
struct fib6_node __rcu *fib6_node;
struct fib6_node *fn;
fn = rcu_dereference(f6i->fib6_node);
struct fib6_node *root, *node;
struct fib6_node tb6_root;
struct fib6_node *fib6_node_lookup(struct fib6_node *root,
struct fib6_node *fib6_locate(struct fib6_node *root,
int fib6_add(struct fib6_node *root, struct fib6_info *rt,
if (!rcu_dereference_protected(f6i->fib6_node,
struct fib6_node __rcu *parent;
struct fib6_node __rcu *left;
struct fib6_node __rcu *right;
struct fib6_node __rcu *subtree;
struct fib6_node *fn;
if (!ifp->rt || !ifp->rt->fib6_node) {
if (ifp->rt && !rcu_access_pointer(ifp->rt->fib6_node)) {
static void fib6_purge_rt(struct fib6_info *rt, struct fib6_node *fn,
static int fib6_add_rt2node(struct fib6_node *fn, struct fib6_info *rt,
struct fib6_node *fn;
fn = rcu_dereference_protected(f6i->fib6_node,
rcu_assign_pointer(rt->fib6_node, fn);
rcu_assign_pointer(rt->fib6_node, fn);
iter->fib6_node = NULL;
iter->fib6_node = NULL;
static int fib6_add_rt2node_nh(struct fib6_node *fn, struct fib6_info *rt,
struct fib6_node *fn = rcu_dereference_protected(rt->fib6_node,
int fib6_add(struct fib6_node *root, struct fib6_info *rt,
struct fib6_node *fn;
struct fib6_node *pn = NULL;
struct fib6_node *sn;
struct fib6_node *sfn;
static struct fib6_node *fib6_node_lookup_1(struct fib6_node *root,
struct fib6_node *fn;
struct fib6_node *next;
struct fib6_node *subtree = FIB6_SUBTREE(fn);
struct fib6_node *sfn;
struct fib6_node *fib6_node_lookup(struct fib6_node *root,
struct fib6_node *fn;
WARN_ON(f6i->fib6_node);
static struct fib6_node *fib6_locate_1(struct fib6_node *root,
struct fib6_node *fn, *prev = NULL;
struct fib6_node *fib6_locate(struct fib6_node *root,
struct fib6_node *fn;
struct fib6_node *subtree = FIB6_SUBTREE(fn);
struct fib6_node *fn)
struct fib6_node *child_left, *child_right;
static struct fib6_node *node_alloc(struct net *net)
static struct fib6_node *fib6_repair_tree(struct net *net,
struct fib6_node *fn)
struct fib6_node *child;
struct fib6_node *fn_r = rcu_dereference_protected(fn->right,
struct fib6_node *fn;
struct fib6_node *fn_l = rcu_dereference_protected(fn->left,
struct fib6_node *pn = rcu_dereference_protected(fn->parent,
struct fib6_node *pn_r = rcu_dereference_protected(pn->right,
struct fib6_node *pn_l = rcu_dereference_protected(pn->left,
static void node_free_immediate(struct net *net, struct fib6_node *fn)
static void fib6_del_route(struct fib6_table *table, struct fib6_node *fn,
rt->fib6_node = NULL;
static void node_free(struct net *net, struct fib6_node *fn)
struct fib6_node *fn;
fn = rcu_dereference_protected(rt->fib6_node,
struct fib6_node *fn, *pn, *left, *right;
rcu_access_pointer(rt->fib6_node),
static void fib6_clean_tree(struct net *net, struct fib6_node *root,
fib6_node_kmem = KMEM_CACHE(fib6_node,
struct fib6_node *fn);
static struct fib6_node *fib6_repair_tree(struct net *net,
struct fib6_node *fn);
static struct fib6_node *fib6_add_1(struct net *net,
struct fib6_node *root,
struct fib6_node *fn, *in, *ln;
struct fib6_node *pn = NULL;
static struct fib6_node* fib6_backtrack(struct fib6_node *fn,
struct fib6_node *pn, *sn;
struct fib6_node *fn;
struct fib6_node *fn, *saved_fn;
struct fib6_node *fn;
fn = rcu_dereference(from->fib6_node);
struct fib6_node *fn;
struct fib6_node *fn;
fn = rcu_dereference_protected(rt->fib6_node,
struct fib6_node *fn;
struct fib6_node *fn;
fn = rcu_dereference(rt->fib6_node);
struct fib6_node *fn;
struct fib6_node *fn;
fn = rcu_dereference_protected(rt->fib6_node,
struct fib6_node *fn;
fn = rcu_dereference(rt->fib6_node);
if (!rcu_access_pointer(f6i->fib6_node))
static void find_rr_leaf(struct fib6_node *fn, struct fib6_info *leaf,
static void rt6_select(struct net *net, struct fib6_node *fn, int oif,
if (next->fib6_node)