mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-11-08 12:18:42 +00:00
Use net_addr_ip4 instead of ip4_addr for printing prefixes
This commit is contained in:
parent
6522bc04e4
commit
98621a741a
@ -549,27 +549,48 @@ get_trie_depth(const struct trie_node *node)
|
||||
}
|
||||
|
||||
static void
|
||||
print_prefixes_helper(const struct trie_node *node, ip4_addr prefix, int depth)
|
||||
print_prefixes_helper(const struct trie_node *node, struct net_addr_ip4 address, int depth)
|
||||
{
|
||||
assert(node != NULL);
|
||||
|
||||
if (is_leaf(node))
|
||||
{
|
||||
log("%I4", prefix);
|
||||
log("%I4/%d\t-> %p", address.prefix, address.pxlen, node->bucket);
|
||||
return;
|
||||
}
|
||||
|
||||
if (node->bucket != NULL)
|
||||
log("%I4/%d\t-> %p", address.prefix, address.pxlen, node->bucket);
|
||||
|
||||
if (node->child[0])
|
||||
print_prefixes_helper(node->child[0], _MI4(_I(prefix) | (0 << (31 - depth))), depth + 1);
|
||||
{
|
||||
//print_prefixes_helper(node->child[0], _MI4(_I(prefix) | (0 << (31 - depth))), depth + 1);
|
||||
struct net_addr_ip4 new = {
|
||||
.prefix = (_I(address.prefix) | (0 << (31 - depth))),
|
||||
.pxlen = address.pxlen + 1,
|
||||
};
|
||||
|
||||
print_prefixes_helper(node->child[0], new, depth + 1);
|
||||
}
|
||||
|
||||
if (node->child[1])
|
||||
print_prefixes_helper(node->child[1], _MI4(_I(prefix) | (1 << (31 - depth))), depth + 1);
|
||||
{
|
||||
//print_prefixes_helper(node->child[1], _MI4(_I(prefix) | (1 << (31 - depth))), depth + 1);
|
||||
struct net_addr_ip4 new = {
|
||||
.prefix = (_I(address.prefix) | (1 << (31 - depth))),
|
||||
.pxlen = address.pxlen + 1,
|
||||
};
|
||||
|
||||
print_prefixes_helper(node->child[1], new, depth + 1);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
print_prefixes(const struct trie_node *node)
|
||||
{
|
||||
print_prefixes_helper(node, _MI4(0), 0);
|
||||
//print_prefixes_helper(node, _MI4(0), 0);
|
||||
struct net_addr_ip4 addr = { 0 };
|
||||
print_prefixes_helper(node, addr, 0);
|
||||
log("==== END PREFIXES ====");
|
||||
}
|
||||
|
||||
@ -1109,6 +1130,8 @@ aggregator_rt_notify(struct proto *P, struct channel *src_ch, net *net, rte *new
|
||||
{
|
||||
union net_addr_union *uptr = (net_addr_union *)rte->net->n.addr;
|
||||
trie_insert_prefix(uptr, p->root, bucket, p->trie_slab);
|
||||
const struct net_addr_ip4 * const ip4 = &uptr->ip4;
|
||||
log("insert %I4/%d", ip4->prefix.addr, ip4->pxlen);
|
||||
}
|
||||
}
|
||||
HASH_WALK_END;
|
||||
|
Loading…
Reference in New Issue
Block a user