Skip to content

Commit

Permalink
app/testpmd: fix GRO packets flush on timeout
Browse files Browse the repository at this point in the history
In heavy-weight mode GRO which is based on timer, the GRO packets
will not be flushed in spite of timer expiry if there is no packet
in the current poll.

If timer mode GRO is enabled the rte_gro_timeout_flush API should be
invoked.

Fixes: b7091f1 ("app/testpmd: enable the heavyweight mode TCP/IPv4 GRO")
Cc: [email protected]

Signed-off-by: Kumara Parameshwaran <[email protected]>
Reviewed-by: Ferruh Yigit <[email protected]>
  • Loading branch information
kparam1992 authored and ferruhy committed Feb 21, 2024
1 parent b36f0b1 commit 461c287
Showing 1 changed file with 17 additions and 4 deletions.
21 changes: 17 additions & 4 deletions app/test-pmd/csumonly.c
Original file line number Diff line number Diff line change
Expand Up @@ -870,16 +870,28 @@ pkt_burst_checksum_forward(struct fwd_stream *fs)

/* receive a burst of packet */
nb_rx = common_fwd_stream_receive(fs, pkts_burst, nb_pkt_per_burst);
if (unlikely(nb_rx == 0))
if (unlikely(nb_rx == 0)) {
#ifndef RTE_LIB_GRO
return false;
#else
gro_enable = gro_ports[fs->rx_port].enable;
/*
* Check if packets need to be flushed in the GRO context
* due to a timeout.
*
* Continue only in GRO heavyweight mode and if there are
* packets in the GRO context.
*/
if (!gro_enable || (gro_flush_cycles == GRO_DEFAULT_FLUSH_CYCLES) ||
(rte_gro_get_pkt_count(current_fwd_lcore()->gro_ctx) == 0))
return false;
#endif
}

rx_bad_ip_csum = 0;
rx_bad_l4_csum = 0;
rx_bad_outer_l4_csum = 0;
rx_bad_outer_ip_csum = 0;
#ifdef RTE_LIB_GRO
gro_enable = gro_ports[fs->rx_port].enable;
#endif

txp = &ports[fs->tx_port];
tx_offloads = txp->dev_conf.txmode.offloads;
Expand Down Expand Up @@ -1110,6 +1122,7 @@ pkt_burst_checksum_forward(struct fwd_stream *fs)
}

#ifdef RTE_LIB_GRO
gro_enable = gro_ports[fs->rx_port].enable;
if (unlikely(gro_enable)) {
if (gro_flush_cycles == GRO_DEFAULT_FLUSH_CYCLES) {
nb_rx = rte_gro_reassemble_burst(pkts_burst, nb_rx,
Expand Down

0 comments on commit 461c287

Please sign in to comment.