From ad8015be47a8d7d4c1f94b51ad9c70e37cc29cbf Mon Sep 17 00:00:00 2001 From: Steven Date: Sun, 29 Oct 2017 22:10:46 -0700 Subject: devices: Add binary API for set interface rx-mode Also add vat test code to test the subject API. The format is sw_interface_set_rx_mode sw_if_index [queue ] Change-Id: Ib810d85d430077865bead8cc08a070f8ae478225 Signed-off-by: Steven --- src/vnet/interface_api.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'src/vnet/interface_api.c') diff --git a/src/vnet/interface_api.c b/src/vnet/interface_api.c index c19f0a84297..a6414bc9ac6 100644 --- a/src/vnet/interface_api.c +++ b/src/vnet/interface_api.c @@ -54,6 +54,7 @@ _(SW_INTERFACE_SET_MTU, sw_interface_set_mtu) \ _(WANT_INTERFACE_EVENTS, want_interface_events) \ _(SW_INTERFACE_DUMP, sw_interface_dump) \ _(SW_INTERFACE_ADD_DEL_ADDRESS, sw_interface_add_del_address) \ +_(SW_INTERFACE_SET_RX_MODE, sw_interface_set_rx_mode) \ _(SW_INTERFACE_SET_TABLE, sw_interface_set_table) \ _(SW_INTERFACE_GET_TABLE, sw_interface_get_table) \ _(SW_INTERFACE_SET_UNNUMBERED, sw_interface_set_unnumbered) \ @@ -907,6 +908,34 @@ out: REPLY_MACRO (VL_API_SW_INTERFACE_SET_MAC_ADDRESS_REPLY); } +static void vl_api_sw_interface_set_rx_mode_t_handler + (vl_api_sw_interface_set_rx_mode_t * mp) +{ + vl_api_sw_interface_set_rx_mode_reply_t *rmp; + vnet_main_t *vnm = vnet_get_main (); + u32 sw_if_index = ntohl (mp->sw_if_index); + vnet_sw_interface_t *si; + clib_error_t *error; + int rv = 0; + + VALIDATE_SW_IF_INDEX (mp); + + si = vnet_get_sw_interface (vnm, sw_if_index); + error = set_hw_interface_change_rx_mode (vnm, si->hw_if_index, + mp->queue_id_valid, + ntohl (mp->queue_id), mp->mode); + if (error) + { + rv = VNET_API_ERROR_UNIMPLEMENTED; + clib_error_report (error); + goto out; + } + + BAD_SW_IF_INDEX_LABEL; +out: + REPLY_MACRO (VL_API_SW_INTERFACE_SET_RX_MODE_REPLY); +} + /* * vpe_api_hookup * Add vpe's API message handlers to the table. -- cgit 1.2.3-korg