diff options
Diffstat (limited to 'src/vnet/l2')
-rw-r--r-- | src/vnet/l2/l2.api | 2 | ||||
-rw-r--r-- | src/vnet/l2/l2_api.c | 7 | ||||
-rw-r--r-- | src/vnet/l2/l2_efp_filter.c | 2 |
3 files changed, 7 insertions, 4 deletions
diff --git a/src/vnet/l2/l2.api b/src/vnet/l2/l2.api index 0ff4a2d75e4..05b250bd885 100644 --- a/src/vnet/l2/l2.api +++ b/src/vnet/l2/l2.api @@ -470,7 +470,7 @@ autoreply define l2_interface_efp_filter u32 client_index; u32 context; u32 sw_if_index; - u32 enable_disable; + u8 enable_disable; }; /** \brief Interface set vpath request diff --git a/src/vnet/l2/l2_api.c b/src/vnet/l2/l2_api.c index ebb64ff2420..be3b75e9658 100644 --- a/src/vnet/l2/l2_api.c +++ b/src/vnet/l2/l2_api.c @@ -734,7 +734,7 @@ out: } extern void l2_efp_filter_configure (vnet_main_t * vnet_main, - u32 sw_if_index, u32 enable); + u32 sw_if_index, u8 enable); static void vl_api_l2_interface_efp_filter_t_handler (vl_api_l2_interface_efp_filter_t * @@ -744,10 +744,13 @@ vl_api_l2_interface_efp_filter_t_handler (vl_api_l2_interface_efp_filter_t * vl_api_l2_interface_efp_filter_reply_t *rmp; vnet_main_t *vnm = vnet_get_main (); + VALIDATE_SW_IF_INDEX (mp); + // enable/disable the feature - l2_efp_filter_configure (vnm, mp->sw_if_index, mp->enable_disable); + l2_efp_filter_configure (vnm, ntohl (mp->sw_if_index), mp->enable_disable); rv = vnm->api_errno; + BAD_SW_IF_INDEX_LABEL; REPLY_MACRO (VL_API_L2_INTERFACE_EFP_FILTER_REPLY); } diff --git a/src/vnet/l2/l2_efp_filter.c b/src/vnet/l2/l2_efp_filter.c index faf78153448..59f9f515d47 100644 --- a/src/vnet/l2/l2_efp_filter.c +++ b/src/vnet/l2/l2_efp_filter.c @@ -502,7 +502,7 @@ VLIB_INIT_FUNCTION (l2_efp_filter_init); /** Enable/disable the EFP Filter check on the subinterface. */ void -l2_efp_filter_configure (vnet_main_t * vnet_main, u32 sw_if_index, u32 enable) +l2_efp_filter_configure (vnet_main_t * vnet_main, u32 sw_if_index, u8 enable) { /* set the interface flag */ l2output_intf_bitmap_enable (sw_if_index, L2OUTPUT_FEAT_EFP_FILTER, enable); |