*/
u32
-set_int_l2_mode (vlib_main_t * vm, vnet_main_t * vnet_main, u32 mode, u32 sw_if_index, u32 bd_index, /* for bridged interface */
- u32 bvi, /* the bridged interface is the BVI */
- u32 shg, /* the bridged interface's split horizon group */
- u32 xc_sw_if_index) /* peer interface for xconnect */
+set_int_l2_mode (vlib_main_t * vm, vnet_main_t * vnet_main, /* */
+ u32 mode, /* One of L2 modes or back to L3 mode */
+ u32 sw_if_index, /* sw interface index */
+ u32 bd_index, /* for bridged interface */
+ u32 bvi, /* the bridged interface is the BVI */
+ u32 shg, /* the bridged interface split horizon group */
+ u32 xc_sw_if_index) /* peer interface for xconnect */
{
l2input_main_t *mp = &l2input_main;
l2output_main_t *l2om = &l2output_main;
config->bd_index = 0;
config->feature_bitmap = L2INPUT_FEAT_DROP;
+ /* Clear L2 output config */
+ out_config = l2output_intf_config (sw_if_index);
+ memset (out_config, 0, sizeof (l2_output_config_t));
+
/* Make sure any L2-output packet to this interface now in L3 mode is
* dropped. This may happen if L2 FIB MAC entry is stale */
l2om->next_nodes.output_node_index_vec[sw_if_index] =
shg = 0; /* not used in xconnect */
}
- /* set up split-horizon group */
+ /* set up split-horizon group and set output feature bit */
config->shg = shg;
out_config = l2output_intf_config (sw_if_index);
out_config->shg = shg;
+ out_config->feature_bitmap |= L2OUTPUT_FEAT_OUTPUT;
/*
* Test: remove this when non-IP features can be configured.