WALK_LIST(a, i->addrs)
{
ifa_dump(a);
- ASSERT((a != i->addr) == !(a->flags & IA_PRIMARY));
+ ASSERT(!!(a->flags & IA_PRIMARY) ==
+ ((a == i->addr4) || (a == i->addr6) || (a == i->llv6)));
}
}
void
fib_check(struct fib *f)
{
-#if 0
- uint i, ec, lo, nulls;
+ uint i, ec, nulls;
ec = 0;
for(i=0; i<f->hash_size; i++)
{
struct fib_node *n;
- lo = 0;
for(n=f->hash_table[i]; n; n=n->next)
{
struct fib_iterator *j, *j0;
- uint h0 = ipa_hash(n->prefix);
- if (h0 < lo)
- bug("fib_check: discord in hash chains");
- lo = h0;
- if ((h0 >> f->hash_shift) != i)
+ uint h0 = fib_hash(f, n->addr);
+ if (h0 != i)
bug("fib_check: mishashed %x->%x (order %d)", h0, i, f->hash_order);
j0 = (struct fib_iterator *) n;
nulls = 0;
}
if (ec != f->entries)
bug("fib_check: invalid entry count (%d != %d)", ec, f->entries);
-#endif
return;
}
struct pollfd *pfd = loop->poll_fd.data;
sock **psk = loop->poll_sk.data;
- int i = 0;
+ uint i = 0;
node *n;
WALK_LIST(n, loop->sock_list)
/* We store interesting area-scoped LSAs in array hea and
global-scoped (LSA_T_EXT) LSAs in array hex */
- int num = p->gr->hash_entries;
+ uint num = p->gr->hash_entries;
struct top_hash_entry *hea[num];
struct top_hash_entry *hex[verbose ? num : 0];
struct top_hash_entry *he;