-----Original Message-----
From: bunty [mailto:bunty123_4@rediffmail.com]
Sent: Friday, April 30, 2004 11:38 AM
To: Deepankar Vidyarthi
Cc: kernelnewbies@nl.linux.org
Subject: Re: RE: RE: Re: more questions on skbuff allocation
hello Deepankar,
as given in skbuff.h skb_put is used to add data to buffer. I also found 3 skb_put functions call in ip_output.c for fragments. Is they for creating a new packet and fill it? .So as i understand that at each layer skbuff is filled freshly (???) that is data from eg. (tcp)above layer that contains tcp header+data that is taken by IP layer as data and added ip header. So in an all IP layer reuirs skb_put to put data from above layer and skb_push to add IP header. Is that right? IS that way packet build at IP layer...?
regards,
parag.
On Thu, 29 Apr 2004 Deepankar Vidyarthi wrote :
>This is an sk_buff API function available to you to add data at the end.
>It may not always be needed.
>One situation where it might be useful is in data link layer where frame
>trailers are
>added to the packet at the end.
>And for that matter any trailing data/control information can be added using
>skb_put.
>
>Deepankar.
As you
said the skb_puts are used in ip_output.c to create fragments, they are not
freshly creating all the packets
that
come in IP layer. Its only for the fragments where you will need to create new
packets and pass on the
data
from the original buffer to various fragments.
In
general there won't be any copy of data in between buffers in IP
layer.
Deepankar.