Subject: Re: sctp_peeloff()

From: Caitlin Bestler <[email-masked]>
Date: Tue, 9 Dec 2003 12:15:03 -0600

On Dec 9, 2003, at 3:54 AM, Kacheong Poon wrote:

> I'd like to gather opinions about making sctp_peeloff()
> work in one-one style SCTP socket.  The semantics is
> creating a new socket for a particular stream of an
> association. The stream number will be passed in the
> place of the assoc_id in the current sctp_peeloff().
>
> Do people think that their apps can benefit from this?
> Thanks.

There is a major benefit to being able to use stream
specific buffers when reading.

But with the sockets API that has to be weighed against
the overhead of using poll/select to find out which
stream has supplied the buffer.

If you migrate to more of an asynchronous interface,
I believe the ideal is to allow receive buffers to be
pre-posted on a per-stream basis, but to receive the
completions on a consolidated socket. In terms of a
VIA/IB/RDMA style interface, each stream has its own
Send and Receive Queues, but the  entire association
has a single Completion Queue.

Personally, I believe there is more value in trying
to add that type of functionality to the API than in
running a classic synchronous socket for each stream.
However, I would agree that there are uses for both.

In particular, having to provide the target buffer
for a read *before* knowing what stream the next
message is for has always struck me as awkward.

-- 
Caitlin Bestler - [email-masked] - http://asomi.com/
http://asomi.com/CaitlinBestlerPublicPgpKey.html