virtio: integrate with new tx infra
[vpp.git] / src / vnet / gso / gro_func.h
index c9464bd..c764931 100644 (file)
@@ -25,6 +25,7 @@
 #include <vnet/udp/udp_packet.h>
 #include <vnet/tcp/tcp_packet.h>
 #include <vnet/vnet.h>
+#include <vnet/interface.h>
 
 #define GRO_MIN_PACKET_SIZE    256
 #define GRO_PADDED_PACKET_SIZE 64
@@ -444,9 +445,9 @@ vnet_gro_flow_table_flush (vlib_main_t * vm, gro_flow_table_t * flow_table,
 }
 
 static_always_inline void
-vnet_gro_flow_table_schedule_node_on_dispatcher (vlib_main_t * vm,
-                                                gro_flow_table_t *
-                                                flow_table)
+vnet_gro_flow_table_schedule_node_on_dispatcher (vlib_main_t *vm,
+                                                vnet_hw_if_tx_queue_t *txq,
+                                                gro_flow_table_t *flow_table)
 {
   if (gro_flow_table_is_timeout (vm, flow_table))
     {
@@ -457,9 +458,13 @@ vnet_gro_flow_table_schedule_node_on_dispatcher (vlib_main_t * vm,
        {
          u32 node_index = flow_table->node_index;
          vlib_frame_t *f = vlib_get_frame_to_node (vm, node_index);
+         vnet_hw_if_tx_frame_t *ft = vlib_frame_scalar_args (f);
          u32 *f_to = vlib_frame_vector_args (f);
          u32 i = 0;
 
+         ft->shared_queue = txq->shared_queue;
+         ft->queue_id = txq->queue_id;
+
          while (i < n_to)
            {
              f_to[f->n_vectors] = to[i];