summaryrefslogtreecommitdiffstats
path: root/src/vnet/interface_api.c
diff options
context:
space:
mode:
authorAlexander Chernavin <achernavin@netgate.com>2019-11-06 09:58:18 -0500
committerAndrew Yourtchenko <ayourtch@gmail.com>2019-11-28 10:02:33 +0000
commit5371a224a812af99e20c1904ba31ddf5556bce5a (patch)
tree6fe79e47670fab3cac755d5e70ba88792312678f /src/vnet/interface_api.c
parentbedc513fc2deddaf1e2724cccf4b11943437e6c9 (diff)
interface: send proper link/admin status in event
Type: fix Change-Id: I7cba9f911abe1ae82d8381a48f65e81b615ede76 Signed-off-by: Alexander Chernavin <achernavin@netgate.com> (cherry picked from commit aa27dcb84cb312277370b77370a69b2a3596c4c5)
Diffstat (limited to 'src/vnet/interface_api.c')
-rw-r--r--src/vnet/interface_api.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/vnet/interface_api.c b/src/vnet/interface_api.c
index d170b71e07f..dd78d2aa8a7 100644
--- a/src/vnet/interface_api.c
+++ b/src/vnet/interface_api.c
@@ -793,8 +793,9 @@ link_up_down_function (vnet_main_t * vm, u32 hw_if_index, u32 flags)
if (vam->link_state_process_up)
{
- enum api_events event =
- flags ? API_LINK_STATE_UP_EVENT : API_LINK_STATE_DOWN_EVENT;
+ enum api_events event = ((flags & VNET_HW_INTERFACE_FLAG_LINK_UP) ?
+ API_LINK_STATE_UP_EVENT :
+ API_LINK_STATE_DOWN_EVENT);
vlib_process_signal_event (vam->vlib_main,
link_state_process_node.index, event,
hi->sw_if_index);
@@ -814,8 +815,8 @@ admin_up_down_function (vnet_main_t * vm, u32 sw_if_index, u32 flags)
*/
if (vam->link_state_process_up)
{
- enum api_events event =
- flags ? API_ADMIN_UP_EVENT : API_ADMIN_DOWN_EVENT;
+ enum api_events event = ((flags & VNET_SW_INTERFACE_FLAG_ADMIN_UP) ?
+ API_ADMIN_UP_EVENT : API_ADMIN_DOWN_EVENT);
vlib_process_signal_event (vam->vlib_main,
link_state_process_node.index, event,
sw_if_index);