From 2e1c8967faf4e9f7b45471df02e4e5b07fbb520a Mon Sep 17 00:00:00 2001 From: Ole Troan Date: Wed, 10 Apr 2019 09:44:23 +0200 Subject: API: Fix shared memory only action handlers. Some API action handlers called vl_msg_ai_send_shmem() directly. That breaks Unix domain socket API transport. A couple (bond / vhost) also tried to send a sw_interface_event directly, but did not send the message to all that had registred interest. That scheme never worked correctly. Refactored and improved the interface event code. Change-Id: Idb90edfd8703c6ae593b36b4eeb4d3ed7da5c808 Signed-off-by: Ole Troan --- src/vnet/devices/tap/tapv2_api.c | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) (limited to 'src/vnet/devices/tap/tapv2_api.c') diff --git a/src/vnet/devices/tap/tapv2_api.c b/src/vnet/devices/tap/tapv2_api.c index 1260afdd24f..40ff22eaeaa 100644 --- a/src/vnet/devices/tap/tapv2_api.c +++ b/src/vnet/devices/tap/tapv2_api.c @@ -136,31 +136,12 @@ vl_api_tap_create_v2_t_handler (vl_api_tap_create_v2_t * mp) vl_api_send_msg (reg, (u8 *) rmp); } -static void -tap_send_sw_interface_event_deleted (vpe_api_main_t * am, - vl_api_registration_t * reg, - u32 sw_if_index) -{ - vl_api_sw_interface_event_t *mp; - - mp = vl_msg_api_alloc (sizeof (*mp)); - clib_memset (mp, 0, sizeof (*mp)); - mp->_vl_msg_id = ntohs (VL_API_SW_INTERFACE_EVENT); - mp->sw_if_index = ntohl (sw_if_index); - - mp->admin_up_down = 0; - mp->link_up_down = 0; - mp->deleted = 1; - vl_api_send_msg (reg, (u8 *) mp); -} - static void vl_api_tap_delete_v2_t_handler (vl_api_tap_delete_v2_t * mp) { vnet_main_t *vnm = vnet_get_main (); vlib_main_t *vm = vlib_get_main (); int rv; - vpe_api_main_t *vam = &vpe_api_main; vl_api_tap_delete_v2_reply_t *rmp; vl_api_registration_t *reg; u32 sw_if_index = ntohl (mp->sw_if_index); @@ -179,10 +160,7 @@ vl_api_tap_delete_v2_t_handler (vl_api_tap_delete_v2_t * mp) vl_api_send_msg (reg, (u8 *) rmp); if (!rv) - { - vnet_clear_sw_interface_tag (vnm, sw_if_index); - tap_send_sw_interface_event_deleted (vam, reg, sw_if_index); - } + vnet_clear_sw_interface_tag (vnm, sw_if_index); } static void -- cgit 1.2.3-korg