In my experience, the second paragraph isn't quite true. What you see with TSO is the pre-segmentation "packet", up to 65k. (By this I mean the set of data which is given to the offload hardware to segment.) So you need to make sure that your "-s" value is big enough to see everything. (Speaking as someone who was bitten by bugs in the early versions of TSO.) Craig -----Original Message----- From: kernelnewbies-bounces+cjackson=ebscohost.com@xxxxxxxxxxxxxxxxx [mailto:kernelnewbies-bounces+cjackson=ebscohost.com@xxxxxxxxxxxxxxxxx] On Behalf Of Valdis.Kletnieks@xxxxxx Sent: Monday, June 03, 2013 12:03 PM To: Varun Sharma Cc: kernelnewbies@xxxxxxxxxxxxxxxxx Subject: Re: assembly of packets On Mon, 03 Jun 2013 14:48:41 +0530, Varun Sharma said: > If TSO(tcp segmentation offload ) is enabled then nic card handle > segmentation then where is assembly of packets happens ? Is it > tcp_rcv_established function ? The whole *point* of TSO is so the NIC does all the segmentation reassembly and DMA, and wake the kernel up when all the data is already stashed in buffers fully processed. Incidentally, this is why if you run tcpdump on an interface that has TSO enabled, you'll only see the first 3 handshaking packets and the final FIN packets - the other packets wake up the TCP stack at a point after where tcpdump's tap would have seen the packet. _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies