static void
fib_entry_src_adj_init (fib_entry_src_t *src)
{
- src->adj.fesa_cover = FIB_NODE_INDEX_INVALID;
- src->adj.fesa_sibling = FIB_NODE_INDEX_INVALID;
+ src->u.adj.fesa_cover = FIB_NODE_INDEX_INVALID;
+ src->u.adj.fesa_sibling = FIB_NODE_INDEX_INVALID;
}
static void
* find the covering prefix. become a dependent thereof.
* there should always be a cover, though it may be the default route.
*/
- src->adj.fesa_cover = fib_table_get_less_specific(fib_entry->fe_fib_index,
- &fib_entry->fe_prefix);
+ src->u.adj.fesa_cover = fib_table_get_less_specific(fib_entry->fe_fib_index,
+ &fib_entry->fe_prefix);
- ASSERT(FIB_NODE_INDEX_INVALID != src->adj.fesa_cover);
- ASSERT(fib_entry_get_index(fib_entry) != src->adj.fesa_cover);
+ ASSERT(FIB_NODE_INDEX_INVALID != src->u.adj.fesa_cover);
+ ASSERT(fib_entry_get_index(fib_entry) != src->u.adj.fesa_cover);
- cover = fib_entry_get(src->adj.fesa_cover);
+ cover = fib_entry_get(src->u.adj.fesa_cover);
ASSERT(cover != fib_entry);
- src->adj.fesa_sibling =
+ src->u.adj.fesa_sibling =
fib_entry_cover_track(cover,
fib_entry_get_index(fib_entry));
if (FIB_ENTRY_FLAG_ATTACHED & fib_entry_get_flags_i(cover))
{
fib_entry_src_path_list_walk_cxt_t ctx = {
- .cover_itf = fib_entry_get_resolving_interface(src->adj.fesa_cover),
+ .cover_itf = fib_entry_get_resolving_interface(src->u.adj.fesa_cover),
.flags = FIB_PATH_EXT_ADJ_FLAG_NONE,
.src = src,
};
const fib_entry_t *fib_entry)
{
fib_entry_src_path_list_walk_cxt_t ctx = {
- .cover_itf = fib_entry_get_resolving_interface(src->adj.fesa_cover),
+ .cover_itf = fib_entry_get_resolving_interface(src->u.adj.fesa_cover),
.flags = FIB_PATH_EXT_ADJ_FLAG_NONE,
.src = src,
};
/*
* remove the depednecy on the covering entry
*/
- ASSERT(FIB_NODE_INDEX_INVALID != src->adj.fesa_cover);
- cover = fib_entry_get(src->adj.fesa_cover);
+ ASSERT(FIB_NODE_INDEX_INVALID != src->u.adj.fesa_cover);
+ cover = fib_entry_get(src->u.adj.fesa_cover);
- fib_entry_cover_untrack(cover, src->adj.fesa_sibling);
+ fib_entry_cover_untrack(cover, src->u.adj.fesa_sibling);
/*
* tell the cover this entry no longer needs exporting
*/
fib_attached_export_covered_removed(cover, fib_entry_get_index(fib_entry));
- src->adj.fesa_cover = FIB_NODE_INDEX_INVALID;
+ src->u.adj.fesa_cover = FIB_NODE_INDEX_INVALID;
}
static u8*
fib_entry_src_adj_format (fib_entry_src_t *src,
u8* s)
{
- return (format(s, " cover:%d", src->adj.fesa_cover));
+ return (format(s, " cover:%d", src->u.adj.fesa_cover));
}
static void
*/
fib_entry_t *cover;
- ASSERT(FIB_NODE_INDEX_INVALID != src->adj.fesa_cover);
- cover = fib_entry_get(src->adj.fesa_cover);
+ ASSERT(FIB_NODE_INDEX_INVALID != src->u.adj.fesa_cover);
+ cover = fib_entry_get(src->u.adj.fesa_cover);
fib_attached_export_covered_added(cover,
fib_entry_get_index(fib_entry));
res.bw_reason = FIB_NODE_BW_REASON_FLAG_EVALUATE;
}
+ FIB_ENTRY_DBG(fib_entry, "adj-src-cover-changed");
return (res);
}
};
fib_entry_t *cover;
- ASSERT(FIB_NODE_INDEX_INVALID != src->adj.fesa_cover);
+ ASSERT(FIB_NODE_INDEX_INVALID != src->u.adj.fesa_cover);
- cover = fib_entry_get(src->adj.fesa_cover);
+ cover = fib_entry_get(src->u.adj.fesa_cover);
res.install = (FIB_ENTRY_FLAG_ATTACHED & fib_entry_get_flags_i(cover));
+ FIB_ENTRY_DBG(fib_entry, "adj-src-cover-updated");
+
return (res);
}