diff options
Diffstat (limited to 'nest')
-rw-r--r-- | nest/iface.c | 3 | ||||
-rw-r--r-- | nest/rt-fib.c | 12 |
2 files changed, 5 insertions, 10 deletions
diff --git a/nest/iface.c b/nest/iface.c index 303a52b2..54c16c58 100644 --- a/nest/iface.c +++ b/nest/iface.c @@ -93,7 +93,8 @@ if_dump(struct iface *i) 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))); } } diff --git a/nest/rt-fib.c b/nest/rt-fib.c index 60c3da55..24a7facc 100644 --- a/nest/rt-fib.c +++ b/nest/rt-fib.c @@ -568,22 +568,17 @@ found: 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; @@ -604,7 +599,6 @@ fib_check(struct fib *f) } if (ec != f->entries) bug("fib_check: invalid entry count (%d != %d)", ec, f->entries); -#endif return; } |