Hi Ferruh, Thomas,
Please note that this patch should be merged before the net/tap TSO patches:

https://dpdk.org/dev/patchwork/patch/38666/
https://dpdk.org/dev/patchwork/patch/38667/

Regards,
Ophir

> -----Original Message-----
> From: Ophir Munk
> Sent: Sunday, April 22, 2018 5:21 PM
> To: dev@dpdk.org; Jiayu Hu <jiayu...@intel.com>
> Cc: Thomas Monjalon <tho...@monjalon.net>; Olga Shern
> <ol...@mellanox.com>; Pascal Mazon <pascal.ma...@6wind.com>; Ophir
> Munk <ophi...@mellanox.com>; sta...@dpdk.org
> Subject: [PATCH v1] gso: fix marking TCP checksum flag in TCP segments
> 
> Large TCP packets which are marked with PKT_TX_TCP_SEG flag are
> segmented and the flag is cleared in the resulting segments, however, the
> segments checksum is not updated. It is therefore required to set the
> PKT_TX_TCP_CKSUM flag in each TCP segment in order to mark for the
> sending driver the need to update the TCP checksum before transmitting the
> segment.
> 
> Fixes: 119583797b6a ("gso: support TCP/IPv4 GSO")
> Cc: sta...@dpdk.org
> 
> Signed-off-by: Ophir Munk <ophi...@mellanox.com>
> ---
>  lib/librte_gso/rte_gso.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/lib/librte_gso/rte_gso.c b/lib/librte_gso/rte_gso.c index
> a44e3d4..e9ce9ce 100644
> --- a/lib/librte_gso/rte_gso.c
> +++ b/lib/librte_gso/rte_gso.c
> @@ -50,12 +50,14 @@ rte_gso_segment(struct rte_mbuf *pkt,
>                       ((IS_IPV4_GRE_TCP4(pkt->ol_flags) &&
>                        (gso_ctx->gso_types &
> DEV_TX_OFFLOAD_GRE_TNL_TSO)))) {
>               pkt->ol_flags &= (~PKT_TX_TCP_SEG);
> +             pkt->ol_flags |= PKT_TX_TCP_CKSUM;
>               ret = gso_tunnel_tcp4_segment(pkt, gso_size, ipid_delta,
>                               direct_pool, indirect_pool,
>                               pkts_out, nb_pkts_out);
>       } else if (IS_IPV4_TCP(pkt->ol_flags) &&
>                       (gso_ctx->gso_types &
> DEV_TX_OFFLOAD_TCP_TSO)) {
>               pkt->ol_flags &= (~PKT_TX_TCP_SEG);
> +             pkt->ol_flags |= PKT_TX_TCP_CKSUM;
>               ret = gso_tcp4_segment(pkt, gso_size, ipid_delta,
>                               direct_pool, indirect_pool,
>                               pkts_out, nb_pkts_out);
> --
> 2.7.4

Reply via email to