diff options
Diffstat (limited to 'src/vnet/gso')
-rw-r--r-- | src/vnet/gso/gro_func.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/vnet/gso/gro_func.h b/src/vnet/gso/gro_func.h index c9464bdc063..c7649318c43 100644 --- a/src/vnet/gso/gro_func.h +++ b/src/vnet/gso/gro_func.h @@ -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]; |