Re: zero-copy TCP

From: Alan Cox (alan@lxorguk.ukuu.org.uk)
Date: Sat Sep 02 2000 - 18:00:13 EST


> There is a checksum field in IPX, but it always contains xFFFF. Drew
> always assumed upper layer programs, like NDS, would do heir own
> checksumming for integrity, and in fact, this is how it's instrumented
> in NetWare.

Which is actually a design flaw on a modern architecture since it may cause
the packet to bounce twice through cache if the network controller is PIO.
Much less of an issue at the time netware 3 was designed

> IPX headers and responses, in fact, the entire **REAL** IPX interface is
> completely built around this concept internal to NetWare, and everything
> is treated like a fragment list.

(Fragmented on wire I mean here - sorry - I forgot netware folks use other
terminology)

> **NCP** is does not reside in IPX at all. That's why the implementation
> in Linux is busted. The window size is variable and keys off of HOW
> MANY FREE ECBS ARE IN THE SYSTEM. It doe not belong in the IPX/SPX
> stack, but inside of MARS-NWE proper.

Packet burst is in MARS-NWE not the kernel IPX code. Our IPX code actually
doesnt know about NCP at all - so it has no fast paths or kernel helpers for
the cache. It means we are materially poorer but we dont have to maintain
magic for NCP. If you were doing a Linux netware clone you would want a
kncpd for the cache hit cases

> > The I/O size was typically 512-1024 bytes so you couldnt do page flipping, but
> > since these were all trusted paths nobody I suspect worried to much.
>
> 576 bytes. Drew came up with this because he did not want to fuck

(minus headers)

> > You could build the same architecture with NFS and a very smart card. The acenic
> > has firmware powerful enough to do the require RPC parsing.
>
> Good idea.

Alan

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Sep 07 2000 - 21:00:14 EST