Re: 2.2.0 wishlist

Alan Cox (alan@lxorguk.ukuu.org.uk)
Sun, 23 Jun 1996 17:01:31 +0100 (BST)


> but it does not mean that they are deemed to be slow.
> Alan, who inhibited to use pbufs with STREAMS?

Streams uses chains of buffers because you don't know how much space is needed
lower down. People do use tricks like having the IP layer preallocate 14 bytes
extra room so the lower layer is faster. The problems are much more

o A streams head is more complex than a socket, it has multiple modes,
and control interactions by message passing

o Streams is strictly layered which basically prevents header copying and
the single pass copy/checksum/fragment/sent type operations.

o According to various SMP experts streams has a lot of shared state
which is bad for scalability.

I see XTI (TLI is notionally at least not a real standard, X/Open and POSIX both
specify the subtley different XTI standard for their streams) support as mostly
user space possibly with a few kernel pieces, and contrary to a few opinions I
at least don't see anything wrong with those kernel extras existing providing
they are either tiny or optional, and don't impact any of the existing fast
data paths.

> Do you know that:
> -TLI can pass IP options (and other things that required by RFCs)
> with every datagram.

So can IP if you implement it.

> -a lot of more things (f.e. selective accept, data with SYN, expedited
> data handling)

Data with SYN is a) illegal unless you are doing TTCP, and b) supported by
TTCP extensions if you use them. Most of the other handling like selective
accept is added cleanly by posix 1003.1g (as happily is a coherent world view
of recvmsg() sendmsg() and returning multiple control blocks. You can for
example recvmsg() on a listening socket to see whats up.

> BTW I never read POSIX socket api draft. Is it possible to get
> it from somewhere?

Not for free.

> Resume:
> - TLI conforms to IPv4 RFC requirements, BSD sockets are not.

Actually the BSD socket API just needs a few tidyups, the BSD API meets the
important other rules. Easy to do easy things, fast, possible to do hard stuff.

> Looking at the last draft of IPv6 socket interface I am crying...
> apparently, its authors decided to preserve the worst features
> of BSD sockets.

There are stil two strands of IPv6 socket interface thought. I'm still hoping
the Digital view wins.

Alan