/* Assign bucket to the last node */
node->original_bucket = bucket;
node->status = IN_FIB;
+ node->px_origin = ORIGINAL;
return node;
}
/* Assign bucket to the last node */
node->original_bucket = bucket;
node->status = IN_FIB;
+ node->px_origin = ORIGINAL;
return node;
}
NON_FIB = 2,
};
+enum prefix_origin {
+ SOURCELESS = 0,
+ ORIGINAL = 1,
+ AGGREGATED = 2,
+};
+
struct trie_node {
struct trie_node *parent;
struct trie_node *child[2];
struct aggregator_bucket *selected_bucket;
u32 potential_buckets[POTENTIAL_BUCKETS_BITMAP_SIZE];
enum fib_status status;
+ enum prefix_origin px_origin;
int potential_buckets_count;
int depth;
};