interface: send proper link/admin status in event 89/23289/3
authorAlexander Chernavin <achernavin@netgate.com>
Wed, 6 Nov 2019 14:58:18 +0000 (09:58 -0500)
committerOle Trøan <otroan@employees.org>
Thu, 14 Nov 2019 16:24:33 +0000 (16:24 +0000)
Type: fix

Change-Id: I7cba9f911abe1ae82d8381a48f65e81b615ede76
Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
src/vnet/interface_api.c

index 0dad168..387ef32 100644 (file)
@@ -828,8 +828,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);
@@ -849,8 +850,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);