Lines Matching refs:key

97 	t_key key;  member
192 #define get_cindex(key, kv) (((key) ^ (kv)->key) >> (kv)->pos) argument
194 static inline unsigned long get_index(t_key key, struct key_vector *kv) in get_index() argument
196 unsigned long index = key ^ kv->key; in get_index()
325 static struct key_vector *leaf_new(t_key key, struct fib_alias *fa) in leaf_new() argument
334 l->key = key; in leaf_new()
346 static struct key_vector *tnode_new(t_key key, int pos, int bits) in tnode_new() argument
366 tn->key = (shift < KEYLENGTH) ? (key >> shift) << shift : 0; in tnode_new()
436 static inline void put_child_root(struct key_vector *tp, t_key key, in put_child_root() argument
442 put_child(tp, get_index(key, tp), n); in put_child_root()
484 put_child_root(tp, tn->key, tn); in replace()
513 tn = tnode_new(oldtnode->key, oldtnode->pos - 1, oldtnode->bits + 1); in inflate()
536 put_child(tn, get_index(inode->key, tn), inode); in inflate()
564 node1 = tnode_new(inode->key | m, inode->pos, inode->bits - 1); in inflate()
567 node0 = tnode_new(inode->key, inode->pos, inode->bits - 1); in inflate()
608 tn = tnode_new(oldtnode->key, oldtnode->pos + 1, oldtnode->bits - 1); in halve()
632 inode = tnode_new(node0->key, oldtnode->pos, 1); in halve()
667 put_child_root(tp, oldtnode->key, n); in collapse()
818 unsigned long cindex = get_index(tn->key, tp); in resize()
913 struct key_vector **tp, u32 key) in fib_find_node() argument
925 index = get_cindex(key, n); in fib_find_node()
990 struct fib_alias *new, t_key key) in fib_insert_node() argument
994 l = leaf_new(key, new); in fib_insert_node()
999 n = get_child(tp, get_index(key, tp)); in fib_insert_node()
1010 tn = tnode_new(key, __fls(key ^ n->key), 1); in fib_insert_node()
1016 put_child(tn, get_index(key, tn) ^ 1, n); in fib_insert_node()
1019 put_child_root(tp, key, tn); in fib_insert_node()
1028 put_child_root(tp, key, l); in fib_insert_node()
1040 struct fib_alias *fa, t_key key) in fib_insert_alias() argument
1043 return fib_insert_node(t, tp, new, key); in fib_insert_alias()
1084 u32 key; in fib_table_insert() local
1090 key = ntohl(cfg->fc_dst); in fib_table_insert()
1092 pr_debug("Insert table=%u %08x/%d\n", tb->tb_id, key, plen); in fib_table_insert()
1094 if ((plen < KEYLENGTH) && (key << plen)) in fib_table_insert()
1103 l = fib_find_node(t, &tp, key); in fib_table_insert()
1169 err = netdev_switch_fib_ipv4_add(key, plen, fi, in fib_table_insert()
1187 rtmsg_fib(RTM_NEWROUTE, htonl(key), new_fa, plen, in fib_table_insert()
1219 err = netdev_switch_fib_ipv4_add(key, plen, fi, tos, in fib_table_insert()
1229 err = fib_insert_alias(t, tp, l, new_fa, fa, key); in fib_table_insert()
1237 rtmsg_fib(RTM_NEWROUTE, htonl(key), new_fa, plen, new_fa->tb_id, in fib_table_insert()
1243 netdev_switch_fib_ipv4_del(key, plen, fi, tos, cfg->fc_type, tb->tb_id); in fib_table_insert()
1252 static inline t_key prefix_mismatch(t_key key, struct key_vector *n) in prefix_mismatch() argument
1254 t_key prefix = n->key; in prefix_mismatch()
1256 return (key ^ prefix) & (prefix | -prefix); in prefix_mismatch()
1267 const t_key key = ntohl(flp->daddr); in fib_table_lookup() local
1286 index = get_cindex(key, n); in fib_table_lookup()
1331 if (unlikely(prefix_mismatch(key, n)) || (n->slen == n->pos)) in fib_table_lookup()
1355 t_key pkey = pn->key; in fib_table_lookup()
1381 index = key ^ n->key; in fib_table_lookup()
1452 put_child_root(tp, l->key, NULL); in fib_remove_alias()
1476 u32 key; in fib_table_delete() local
1481 key = ntohl(cfg->fc_dst); in fib_table_delete()
1483 if ((plen < KEYLENGTH) && (key << plen)) in fib_table_delete()
1486 l = fib_find_node(t, &tp, key); in fib_table_delete()
1494 pr_debug("Deleting %08x/%d tos=%d t=%p\n", key, plen, tos, t); in fib_table_delete()
1521 netdev_switch_fib_ipv4_del(key, plen, fa_to_delete->fa_info, tos, in fib_table_delete()
1524 rtmsg_fib(RTM_DELROUTE, htonl(key), fa_to_delete, plen, tb->tb_id, in fib_table_delete()
1541 static struct key_vector *leaf_walk_rcu(struct key_vector **tn, t_key key) in leaf_walk_rcu() argument
1550 cindex = (key > pn->key) ? get_index(key, pn) : 0; in leaf_walk_rcu()
1561 if (IS_LEAF(n) && (n->key >= key)) in leaf_walk_rcu()
1569 t_key pkey = pn->key; in leaf_walk_rcu()
1611 t_key pkey = pn->key; in fib_trie_free()
1620 put_child_root(pn, n->key, NULL); in fib_trie_free()
1646 put_child_root(pn, n->key, NULL); in fib_trie_free()
1663 t_key key = 0; in fib_trie_unmerge() local
1674 while ((l = leaf_walk_rcu(&tp, key)) != NULL) { in fib_trie_unmerge()
1692 local_l = fib_find_node(lt, &local_tp, l->key); in fib_trie_unmerge()
1695 NULL, l->key)) in fib_trie_unmerge()
1700 key = l->key + 1; in fib_trie_unmerge()
1701 if (key < l->key) in fib_trie_unmerge()
1727 t_key pkey = pn->key; in fib_table_flush_external()
1771 netdev_switch_fib_ipv4_del(n->key, in fib_table_flush_external()
1781 put_child_root(pn, n->key, NULL); in fib_table_flush_external()
1803 t_key pkey = pn->key; in fib_table_flush()
1837 netdev_switch_fib_ipv4_del(n->key, in fib_table_flush()
1851 put_child_root(pn, n->key, NULL); in fib_table_flush()
1880 __be32 xkey = htonl(l->key); in fn_trie_dump_leaf()
1928 t_key key = cb->args[3]; in fib_table_dump() local
1930 while ((l = leaf_walk_rcu(&tp, key)) != NULL) { in fib_table_dump()
1932 cb->args[3] = key; in fib_table_dump()
1938 key = l->key + 1; in fib_table_dump()
1944 if (key < l->key) in fib_table_dump()
1948 cb->args[3] = key; in fib_table_dump()
2040 pkey = pn->key; in fib_trie_get_next()
2371 __be32 prf = htonl(n->key); in fib_trie_seq_show()
2379 __be32 val = htonl(n->key); in fib_trie_seq_show()
2430 t_key key; member
2439 t_key key; in fib_route_get_idx() local
2444 key = iter->key; in fib_route_get_idx()
2449 key = 0; in fib_route_get_idx()
2452 while ((l = leaf_walk_rcu(tp, key)) != NULL) { in fib_route_get_idx()
2453 key = l->key + 1; in fib_route_get_idx()
2462 if (!key) in fib_route_get_idx()
2467 iter->key = key; /* remember it */ in fib_route_get_idx()
2495 iter->key = 0; in fib_route_seq_start()
2504 t_key key = iter->key; in fib_route_seq_next() local
2509 if ((v == SEQ_START_TOKEN) || key) in fib_route_seq_next()
2510 l = leaf_walk_rcu(&iter->tnode, key); in fib_route_seq_next()
2513 iter->key = l->key + 1; in fib_route_seq_next()
2563 prefix = htonl(l->key); in fib_route_seq_show()