All of lore.kernel.org
 help / color / mirror / Atom feed
From: Olivier MATZ <olivier.matz-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
To: miroslaw.walukiewicz-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
	dev-VfR2kkLFssw@public.gmane.org
Subject: Re: [PATCH v2] pmd: Add generic support for TCP TSO (Transmit Segmentation Offload)
Date: Fri, 31 Oct 2014 16:49:44 +0100	[thread overview]
Message-ID: <5453AF98.8060502@6wind.com> (raw)
In-Reply-To: <20141021112946.30069.67329.stgit-tpi2AMbES9qir5R1eWH9hGt3HXsI98Cx0E9HWUfgJXw@public.gmane.org>

Hello Miroslaw,

On 10/21/2014 01:29 PM, miroslaw.walukiewicz-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org wrote:
> From: Miroslaw Walukiewicz <miroslaw.walukiewicz-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
> 
> The NICs supported by DPDK have a possibility to accelerate TCP
> traffic by sergnention offload. The application preprares a packet
> with valid TCP header with size up to 64K and NIC makes packet
> segmenation generating valid checksums and TCP segments.
> 
> The patch defines a generic support for TSO offload.
> - Add new  PKT_TX_TCP_SEG flag.
>   Only packets with this flag set in ol_flags will be handled as
>   TSO packets.
> 
> - Add new fields in indicating TCP TSO segment size and TCP header len.
>   The TSO requires from application setting following fields in mbuf.
>   1. L2 header len including MAC/VLANs/SNAP if present
>   2. L3 header len including IP options
>   3. L4 header len (new field) including TCP options
>   4. tso_segsz (new field) the size of TCP segment
> 
> The apllication has obligation to compute the pseudo header checksum
> instead of full TCP checksum and put it in the TCP header csum field.
> 
> Handling complexity of creation combined l2_l3_len field
> a new macro RTE_MBUF_TO_L2_L3_LEN() is defined to retrieve this
> part of rte_mbuf.
> 

The patch you submitted does not include any changes in a driver
(let's say ixgbe as it is the reference) taking advantage it.
So it's difficult to validate that your modifications are sufficient
to implement TSO.

In addition of a driver, I think that testpmd should be modified
to validate your changes and give an example to people wanting to use
this feature.

Based on your patch, I'll try to submit a series in the coming days
(maybe today if the winds are favourable) that includes the remaining
patches from the original TSO series [1] that were not applied by
Bruce's mbuf rework.

Regards,
Olivier

[1] http://dpdk.org/ml/archives/dev/2014-May/002537.html

  parent reply	other threads:[~2014-10-31 15:49 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-21 11:29 [PATCH v2] pmd: Add generic support for TCP TSO (Transmit Segmentation Offload) miroslaw.walukiewicz-ral2JQCrhuEAvxtiuMwx3w
     [not found] ` <20141021112946.30069.67329.stgit-tpi2AMbES9qir5R1eWH9hGt3HXsI98Cx0E9HWUfgJXw@public.gmane.org>
2014-10-31 15:49   ` Olivier MATZ [this message]
     [not found]     ` <5453AF98.8060502-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2014-11-03 13:14       ` Walukiewicz, Miroslaw

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5453AF98.8060502@6wind.com \
    --to=olivier.matz-pdr9zngts4eavxtiumwx3w@public.gmane.org \
    --cc=dev-VfR2kkLFssw@public.gmane.org \
    --cc=miroslaw.walukiewicz-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.