rib_tree
RB_HEAD(rib_tree, rib_entry);
struct rib_tree tree;
RB_FOREACH_SAFE(re, rib_tree, rib_tree(&flowrib), next) {
RB_INIT(rib_tree(new));
for (re = RB_MIN(rib_tree, rib_tree(rib)); re != NULL; re = xre) {
xre = RB_NEXT(rib_tree, rib_tree(rib), re);
if (!RB_EMPTY(rib_tree(ribs[id]))) {
re = RB_FIND(rib_tree, rib_tree(rib), &xre);
if (RB_INSERT(rib_tree, rib_tree(rib), re) != NULL) {
if (RB_REMOVE(rib_tree, rib_tree(re_rib(re)), re) == NULL)
re = RB_NEXT(rib_tree, unused, re);
re = RB_MIN(rib_tree, rib_tree(rib));
next = RB_NEXT(rib_tree, unused, re);
RB_PROTOTYPE(rib_tree, rib_entry, rib_e, rib_compare);
RB_GENERATE(rib_tree, rib_entry, rib_e, rib_compare);
ctx->ctx_re = RB_NFIND(rib_tree, rib_tree(rib_byid(id)), &xre);
static inline struct rib_tree *