*/
dpo_id_t via_dpo = DPO_INVALID;
- fib_path_list_contribute_forwarding (l3xc->l3xc_pl,
- (FIB_PROTOCOL_IP4 == l3xc->l3xc_proto ?
- FIB_FORW_CHAIN_TYPE_UNICAST_IP4 :
- FIB_FORW_CHAIN_TYPE_UNICAST_IP6),
- FIB_PATH_LIST_FWD_FLAG_NONE, &via_dpo);
+ fib_path_list_contribute_forwarding (
+ l3xc->l3xc_pl,
+ (FIB_PROTOCOL_IP4 == l3xc->l3xc_proto ? FIB_FORW_CHAIN_TYPE_UNICAST_IP4 :
+ FIB_FORW_CHAIN_TYPE_UNICAST_IP6),
+ FIB_PATH_LIST_FWD_FLAG_COLLAPSE, &via_dpo);
dpo_stack_from_node ((FIB_PROTOCOL_IP4 == l3xc->l3xc_proto ?
l3xc_ip4_node.index :
0, &l3xci, sizeof (l3xci));
fib_path_list_child_remove (l3xc->l3xc_pl, l3xc->l3xc_sibling);
+ dpo_reset (&l3xc->l3xc_dpo);
l3xc_db_remove (l3xc->l3xc_sw_if_index, fproto);
pool_put (l3xc_pool, l3xc);
return (NULL);
}
-/* *INDENT-OFF* */
/**
* Create an L3XC policy.
*/
.short_help = "l3xc [add|del] <INTERFACE> via ...",
.is_mp_safe = 1,
};
-/* *INDENT-ON* */
static u8 *
format_l3xc (u8 * s, va_list * args)
{
u32 l3xci;
- /* *INDENT-OFF* */
- pool_foreach_index(l3xci, l3xc_pool,
- ({
+ pool_foreach_index (l3xci, l3xc_pool)
+ {
if (!cb(l3xci, ctx))
break;
- }));
- /* *INDENT-ON* */
+ }
}
static clib_error_t *
{
l3xc_t *l3xc;
- /* *INDENT-OFF* */
- pool_foreach(l3xc, l3xc_pool,
- ({
+ pool_foreach (l3xc, l3xc_pool)
+ {
vlib_cli_output(vm, "%U", format_l3xc, l3xc);
- }));
- /* *INDENT-ON* */
+ }
return (NULL);
}
-/* *INDENT-OFF* */
VLIB_CLI_COMMAND (l3xc_show_cmd_node, static) = {
.path = "show l3xc",
.function = l3xc_show_cmd,
.short_help = "show l3xc",
.is_mp_safe = 1,
};
-/* *INDENT-ON* */
static fib_node_t *
l3xc_get_node (fib_node_index_t index)
static clib_error_t *
l3xc_init (vlib_main_t * vm)
{
- l3xc_fib_node_type = fib_node_register_new_type (&l3xc_vft);
+ l3xc_fib_node_type = fib_node_register_new_type ("l3xc", &l3xc_vft);
return (NULL);
}