Re: Linux TCP code (was Re: 2.1.X and its separation...)

ak@muc.de
Sun, 8 Feb 1998 17:02:51 +0100


On Sat, Feb 07, 1998 at 06:32:44PM +0100, A.N.Kuznetsov wrote:
> In article <Pine.SUN.3.95q.980206115032.12199A-100000@clueless.isr.umd.edu> you wrote:
> : 2) This is the one I really like: do what we already do for the link layer
> : headers. In other words, just reserve the space for the IP and TCP headers
> : and fill in the segment with data. Then, just before sending, create the
> : TCP header, then create the IP header, and then dev_queue_xmit() or
> : whatever... This is probably the way it should be anyways, it's just a
> : matter of putting the layers in their correct order ;)
>
> : The problem is (2) requires quite a bit of work and I never got around to
> : doing it. But I do think it's the Right Way.
>
> I believe it's right way. At least in 2.1.79 the attempt
> to invert this order (only for link layer headers) is made and
> I see no reasons why not to complete this inversion.

I agree.

>
> The only problem is that we must allocate skb with necessary room
> at head now. SACKS (and extension headers) would require to overincrease
> MAX_HEADER space.

I don't see this as a big problem. For most skbs we waste a lot of
memory anyways because they they have to fit into the power-of-2 blocks
of the slab allocator. BTW did you have any luck with the slab skb
patch?

>
> : Or am I horribly wrong? Also is anybody working on the SACK?
>
> Dave said something about SACKS, but I do not know details.
> Andy, I suspect you already did it. I mean not SACKS, but inversion
> of header filling order. IPv6 exthdrs seems to be much more natural
> in this case.

I didn't touch TCP for extension headers yet (other than some minor cleanups
in tcp_ipv6.c). My extension header code worked only for UDP and RAW
sockets so far.

-Andi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu