*/
gbp_subnet_t *gbp_subnet_pool;
+static fib_source_t gbp_fib_source;
+
static index_t
gbp_subnet_db_find (u32 fib_index, const fib_prefix_t * pfx)
{
gs->gs_fei = fib_table_entry_update_one_path (gs->gs_key->gsk_fib_index,
&gs->gs_key->gsk_pfx,
- FIB_SOURCE_PLUGIN_HI,
+ gbp_fib_source,
FIB_ENTRY_FLAG_NONE,
fib_proto_to_dpo (fproto),
&ADJ_BCAST_ADDR,
gs->gs_fei = fib_table_entry_special_dpo_update (gs->gs_key->gsk_fib_index,
&gs->gs_key->gsk_pfx,
- FIB_SOURCE_PLUGIN_HI,
+ gbp_fib_source,
FIB_ENTRY_FLAG_EXCLUSIVE,
&gfd);
gs->gs_fei = fib_table_entry_special_dpo_update (gs->gs_key->gsk_fib_index,
&gs->gs_key->gsk_pfx,
- FIB_SOURCE_PLUGIN_HI,
+ gbp_fib_source,
(FIB_ENTRY_FLAG_EXCLUSIVE |
FIB_ENTRY_FLAG_LOOSE_URPF_EXEMPT),
&gpd);
(GBP_SUBNET_L3_OUT == gs->gs_type
|| GBP_SUBNET_ANON_L3_OUT ==
gs->gs_type) ? FIB_SOURCE_SPECIAL :
- FIB_SOURCE_PLUGIN_HI);
+ gbp_fib_source);
gbp_subnet_db_del (gs);
gbp_route_domain_unlock (gs->gs_rd);
sw_if_index = ~0;
/* *INDENT-OFF* */
- pool_foreach (gs, gbp_subnet_pool,
- ({
+ pool_foreach (gs, gbp_subnet_pool)
+ {
grd = gbp_route_domain_get(gs->gs_rd);
switch (gs->gs_type)
if (WALK_STOP == cb (grd->grd_id, &gs->gs_key->gsk_pfx,
gs->gs_type, sw_if_index, sclass, ctx))
break;
- }));
+ }
/* *INDENT-ON* */
}
else
{
/* *INDENT-OFF* */
- pool_foreach_index(gsi, gbp_subnet_pool,
- ({
+ pool_foreach_index (gsi, gbp_subnet_pool)
+ {
vlib_cli_output (vm, "%U", format_gbp_subnet, gsi,
GBP_SUBNET_SHOW_BRIEF);
- }));
+ }
/* *INDENT-ON* */
}
{
gbp_subnet_db = hash_create_mem (0,
sizeof (gbp_subnet_key_t), sizeof (u32));
+ gbp_fib_source = fib_source_allocate ("gbp-subnet",
+ FIB_SOURCE_PRIORITY_HI,
+ FIB_SOURCE_BH_SIMPLE);
return (NULL);
}