mp_safe SW_INTERFACE_DUMP, SW_INTERFACE_DETAILS, SW_INTERFACE_TAG_ADD_DEL,
[vpp.git] / src / vnet / interface_api.c
index c27f3e8..e5ecd87 100644 (file)
@@ -202,8 +202,7 @@ send_sw_interface_details (vpe_api_main_t * am,
   mp->link_up_down = (hi->flags & VNET_HW_INTERFACE_FLAG_LINK_UP) ? 1 : 0;
   mp->link_duplex = ((hi->flags & VNET_HW_INTERFACE_FLAG_DUPLEX_MASK) >>
                     VNET_HW_INTERFACE_FLAG_DUPLEX_SHIFT);
-  mp->link_speed = ((hi->flags & VNET_HW_INTERFACE_FLAG_SPEED_MASK) >>
-                   VNET_HW_INTERFACE_FLAG_SPEED_SHIFT);
+  mp->link_speed = ntohl (hi->link_speed);
   mp->link_mtu = ntohs (hi->max_packet_bytes);
   mp->mtu[VNET_MTU_L3] = ntohl (swif->mtu[VNET_MTU_L3]);
   mp->mtu[VNET_MTU_IP4] = ntohl (swif->mtu[VNET_MTU_IP4]);
@@ -1129,6 +1128,7 @@ vl_api_create_vlan_subif_t_handler (vl_api_create_vlan_subif_t * mp)
 
   clib_memset (&template, 0, sizeof (template));
   template.type = VNET_SW_INTERFACE_TYPE_SUB;
+  template.flood_class = VNET_FLOOD_CLASS_NORMAL;
   template.sup_sw_if_index = hi->sw_if_index;
   template.sub.id = id;
   template.sub.eth.raw_flags = 0;
@@ -1209,6 +1209,7 @@ vl_api_create_subif_t_handler (vl_api_create_subif_t * mp)
 
   clib_memset (&template, 0, sizeof (template));
   template.type = VNET_SW_INTERFACE_TYPE_SUB;
+  template.flood_class = VNET_FLOOD_CLASS_NORMAL;
   template.sup_sw_if_index = sw_if_index;
   template.sub.id = sub_id;
   template.sub.eth.flags.no_tags = mp->no_tags;
@@ -1376,6 +1377,11 @@ interface_api_hookup (vlib_main_t * vm)
   foreach_vpe_api_msg;
 #undef _
 
+  /* Mark these APIs as mp safe */
+  am->is_mp_safe[VL_API_SW_INTERFACE_DUMP] = 1;
+  am->is_mp_safe[VL_API_SW_INTERFACE_DETAILS] = 1;
+  am->is_mp_safe[VL_API_SW_INTERFACE_TAG_ADD_DEL] = 1;
+
   /*
    * Set up the (msg_name, crc, message-id) table
    */