[dpdk-dev] two tso related questions

Helmut Sim simhelmut at gmail.com
Wed Dec 17 08:17:37 CET 2014


thanks. i will check this

On Tue, Dec 16, 2014 at 4:04 PM, Alex Markuze <alex at weka.io> wrote:
>
>
>
> On Tue, Dec 16, 2014 at 2:24 PM, Helmut Sim <simhelmut at gmail.com> wrote:
>>
>> Thanks Alex,
>>
>> So i probably miss something...
>> what you are saying is correct for IP segmentation where the segmentation
>> is at the IP level, and all segments are identified according to the
>> Identification field in the IP header.
>>
>> However in TCP segmentation the segments are at the TCP level (isn't
>> it?), where each frame is at a size of
>> MSS+sizeof(tcp_hdr)+sizeof(ip_hdr)+sizeof(eth_hdr).
>> Hence, for each of the sent packets, the IP Identification is 0 and the
>> IP total length is MSS+sizeof(tcp_hdr)+sizeof(ip_hdr).
>>
>> Please correct me if i am wrong.
>>
> TSO - takes a one packet max size 64KB(not counting mac/vlan size). and
> brakes it into valid mtu sized packets each with its one IP and TCP header.
> I'm not sure what how the identificayion/Frag off fields are filled. you
> can easily check it by running a short tcp stream(perf/netperf) between two
> machines and capturing the packets with tcpdump (wireshark to open) use
> ethanol -K to disable LRO/GRO (the receive side kernel driver will
> rearrange the headers otherwise).
>
> I hope this helps.
>
>>
>>
> thanks.
>>
>> On Tue, Dec 16, 2014 at 11:10 AM, Alex Markuze <alex at weka.io> wrote:
>>>
>>>
>>>
>>> On Mon, Dec 15, 2014 at 10:20 PM, Helmut Sim <simhelmut at gmail.com>
>>> wrote:
>>>>
>>>> Hi,
>>>>
>>>> While working on TSO based solution I faced the following two questions:
>>>>
>>>> 1.
>>>> is there a maximum pkt_len to be used with TSO?, e.g. let's say if
>>>> seg_sz
>>>> is 1400 can the entire segmented pkt be 256K (higer than 64K) ?, then
>>>> the
>>>> driver gets a list of chanined mbufs while the first mbuf is set to TSO
>>>> offload.
>>>>
>>>
>>> TSO segments a TCP packet into mtu sied bits. The TCP/IP protocols are
>>> limited to 64K due to the length fields being 16bit wide. You can't build a
>>> valid packet longer then 64K regardless of the NIC.
>>>
>>>
>>>> 2.
>>>> I wonder, Is there a specific reason why TSO is supported only for IXGBE
>>>> and not for IGB ? the 82576 NIC supports TSO though.
>>>> Is it due to a kind of tecnical barrier or is it because of priorities?
>>>>
>>>> It will be great if someone from the forum could address this.
>>>>
>>>> Thanks,
>>>> Sim
>>>>
>>>


More information about the dev mailing list