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 >>> >>