Good morning everyone, If I'm not wrong sk_buff is used by lower layer and socket to buffer incoming packets or out-going to higher layer. Am I right to say that higher layer cannot access sk_buff struct --> data directly?? Consider the following case (kernel space): Passing a extremely huge data block down to UDP, then IP will fragement it and out to the net dev. Since UDP has no flow control, if any fragment is lost. The whole data block is useless. Ok .. by now some of you might ask .. why use UDP, not TCP? I guess I would say is the overheads issue. I don't need all the TCP flow controls. What I want to just a simple frag and reassemble and retransmit. Ok .. I am thinking .. before passing the whole huge data block to UDP, I will fragment it first into much smaller blocks. Follow by UDP - -> IP. The other side will reassemble back the data block from UDP. Even if any fragment is lost, retransmit will de done. So now I need a method to store these fragments (fragmented by my progam, not the IP layer), so that retransmit and reassemble can be done. Can I use a ordered linked list, or make use of the struct iovec ??? Sorry for such a long email. :p Lee _________________________________________________________________ Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp - Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ IRC Channel: irc.openprojects.net / #kernelnewbies Web Page: http://www.kernelnewbies.org/