netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Non-linear SKBs
@ 2007-10-11 22:54 Kristian Evensen
  2007-10-12  0:00 ` David Miller
  0 siblings, 1 reply; 4+ messages in thread
From: Kristian Evensen @ 2007-10-11 22:54 UTC (permalink / raw)
  To: netdev; +Cc: linux-net

Hello,

I have developed a small patch for the TCP code in 2.6.19 and it works 
flawlessly. A couple of days ago I decided to make it compatible with 
2.6.22.5 and have stumbled upon a problem I cannot solve.

In 2.6.19 it seems that all packets (at least the ones my patch work 
with) are linear, while they are non-linear in 2.6.22.5. I have searched 
through the code (focusing on tcp_sendmsg) to try to figure out what 
happens, but can't find any differences that would explain this. Does 
anyone know what might be the cause and if there is an easy way to 
return to linear skbs (unless that is totally stupid)? I would also like 
the benefits offered by the collapsing when retransmitting (which 
requires number of fragments to be 0).

Currently I us e the skb_linearize(skb) on all fragmentet packets, which 
is not nice :) Both kernels are vanilla kernels with the patch applied, 
and I used OpenSuse with 2.6.19 and Ubuntu with 2.6.22.5 (but I guess 
that shouldn't matter in this case).

The reason this is a problem is that I copy data between SKBs, and in 
2.6.19 I have used memcpy for this purpose. I have looked at the way the 
kernel copies data into a non-linear skb in the else-part of the large 
if-test in tcp_sendmsg and the skb_copy_bits-function, but I have to 
admit that I think the first one is a bit advanced and I don't quite 
understand how to use the last one. Does anyone have any easier to 
understand examples or explanations on how to copy data from one 
non-linear skb to another?

Thanks.

-Kristian

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2007-10-13 14:49 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-11 22:54 Non-linear SKBs Kristian Evensen
2007-10-12  0:00 ` David Miller
2007-10-12 13:15   ` kristrev
2007-10-13 14:53     ` Kristian Evensen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).