interface api: restore order of context value 97/35697/4
authorVratko Polak <vrpolak@cisco.com>
Thu, 17 Mar 2022 17:57:40 +0000 (18:57 +0100)
committerDamjan Marion <dmarion@me.com>
Mon, 4 Apr 2022 22:29:43 +0000 (22:29 +0000)
vl_api_sw_interface_tx_placement_get_t_handler is autoendian.
So (contrary to most other uses) the context is in native order there.
Thus, send_interface_tx_placement_details needs to convert back
before using REPLY_MACRO_DETAILS5 macro.

Type: fix
Fixes: 0d05c0d214ffd326e531bea58f3c971bb9a58252

Change-Id: I00a3734cafa66d7d76c7edaea526a1eae0448ad9
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
src/vnet/interface_api.c

index 938f3bb..00a1ce3 100644 (file)
@@ -1214,7 +1214,7 @@ out:
 static void
 send_interface_tx_placement_details (vnet_hw_if_tx_queue_t **all_queues,
                                     u32 index, vl_api_registration_t *rp,
-                                    u32 context)
+                                    u32 native_context)
 {
   vnet_main_t *vnm = vnet_get_main ();
   vl_api_sw_interface_tx_placement_details_t *rmp;
@@ -1223,6 +1223,7 @@ send_interface_tx_placement_details (vnet_hw_if_tx_queue_t **all_queues,
   uword *bitmap = q[0]->threads;
   u32 hw_if_index = q[0]->hw_if_index;
   vnet_hw_interface_t *hw_if = vnet_get_hw_interface (vnm, hw_if_index);
+  u32 context = clib_host_to_net_u32 (native_context);
 
   n_bits = clib_bitmap_count_set_bits (bitmap);
   u32 n = n_bits * sizeof (u32);