<div dir="ltr"><div>I see the receiving side also .Packets are not assembled by ip-defrag . now where packets are assembled at transport layer ?<br></div>if yes then how they are assembled ? <br><br><br></div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Tue, Jun 4, 2013 at 7:24 PM, Craig Jackson <span dir="ltr"><<a href="mailto:cjackson@ebscohost.com" target="_blank">cjackson@ebscohost.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">> -----Original Message-----<br>
> From: Varun Sharma [mailto:<a href="mailto:vsdssd@gmail.com">vsdssd@gmail.com</a>]<br>
> Sent: Tuesday, June 04, 2013 2:45 AM<br>
> To: Craig Jackson; <a href="mailto:kernelnewbies@kernelnewbies.org">kernelnewbies@kernelnewbies.org</a>;<br>
> <a href="mailto:Valdis.Kletnieks@vt.edu">Valdis.Kletnieks@vt.edu</a><br>
> Subject: Re: assembly of packets<br>
><br>
> On receving side upto tcp layer skb->len=1480 now where is packet<br>
> assembled on tcp layer ?<br>
> or it is directly copies into user space buffer.<br>
><br>
> I am sending len = 10000 in send system call.<br>
><br>
>> On Mon, Jun 3, 2013 at 9:45 PM, Craig Jackson <<a href="mailto:cjackson@ebscohost.com">cjackson@ebscohost.com</a>><br>
>> wrote:<br>
>> In my experience, the second paragraph isn't quite true. What you see<br>
>> with TSO is the pre-segmentation "packet", up to 65k. (By this I mean<br>
>> the set of data which is given to the offload hardware to segment.) So<br>
>> you need to make sure that your "-s" value is big enough to see<br>
>> everything.<br>
>><br>
>> (Speaking as someone who was bitten by bugs in the early versions of<br>
>> TSO.)<br>
>><br>
>> Craig<br>
><br>
>>> -----Original Message-----<br>
>>> From: kernelnewbies-bounces+cjackson=<a href="mailto:ebscohost.com@kernelnewbies.org">ebscohost.com@kernelnewbies.org</a><br>
>>> [mailto:<a href="mailto:kernelnewbies-bounces%2Bcjackson">kernelnewbies-bounces+cjackson</a>=<a href="mailto:ebscohost.com@kernelnewbies.org">ebscohost.com@kernelnewbies.org</a>]<br>
>>> On Behalf Of <a href="mailto:Valdis.Kletnieks@vt.edu">Valdis.Kletnieks@vt.edu</a><br>
>>> Sent: Monday, June 03, 2013 12:03 PM<br>
>>> To: Varun Sharma<br>
>>> Cc: <a href="mailto:kernelnewbies@kernelnewbies.org">kernelnewbies@kernelnewbies.org</a><br>
>>> Subject: Re: assembly of packets<br>
>>><br>
>>> On Mon, 03 Jun 2013 14:48:41 +0530, Varun Sharma said:<br>
>>><br>
>>> > If TSO(tcp segmentation offload ) is enabled then nic card handle<br>
>>> > segmentation then where is assembly of packets happens ? Is it<br>
>>> > tcp_rcv_established function ?<br>
><br>
>>> The whole *point* of TSO is so the NIC does all the segmentation<br>
>>> reassembly and DMA, and wake the kernel up when all the data is already<br>
>>> stashed in buffers fully processed.<br>
><br>
>>> Incidentally, this is why if you run tcpdump on an interface that has<br>
>>> TSO enabled, you'll only see the first 3 handshaking packets and the<br>
>>> final FIN packets - the other packets wake up the TCP stack at a point<br>
>>> after where tcpdump's tap would have seen the packet.<br>
<br>
</div></div>Sorry for top-posting before. It's incredibly hard to get Outlook 2007 to do things right.<br>
<br>
Varun, I now see we may not have answered the question you have. TSO (TCP Segementation Offload)<br>
is associated with sending packets, not receiving them. They are re-assembled at the receiving<br>
end in the standard manner.<br>
<br>
Are you actually thinking of GRO (Generic Receive Offload)?<br>
<span class="HOEnZb"><font color="#888888"><br>
Craig<br>
</font></span></blockquote></div><br></div>