}
/*
- * Mark bucket with ID @id as present in bitmap of potential buckets in @node
+ * Insert @bucket to the set of potential buckets in @node
*/
static inline void
node_insert_potential_bucket(struct trie_node *node, const struct aggregator_bucket *bucket)
bucket_count += popcount32(target->potential_buckets[i]);
/*
- * If old and new value are different, the result of their XOR will be
- * non-zero, thus @changed will be set to non-zero - true as well.
+ * If old and new values are different, the result of their XOR will be
+ * non-zero, thus @changed will be set to non-zero - true, as well.
*/
changed |= !!(old[i] ^ target->potential_buckets[i]);
}
}
/*
- * Assign unique ID to all buckets
+ * Assign unique ID to @bucket
*/
static void
assign_bucket_id(struct aggregator_proto *p, struct aggregator_bucket *bucket)
/* Nodes with exactly one child */
if ((left && !right) || (!left && right))
{
-
if (left && !right)
right = &imaginary_node;
else if (!left && right)
if (p->p.proto_state != PS_UP)
return;
-
/* Find the objects for the old route */
if (old)
old_route = HASH_FIND(p->routes, AGGR_RTE, old);