STREAMS: problem of listen connect.ind in module
Yarran A Lu
yarran at ccicpg.UUCP
Sat Oct 22 04:34:01 AEST 1988
In implementing connection-oriented protocol module there is a problem when
the next downstream module/driver is also a connection-oriented protocol.
The listening queue which is connected to the next downstream module/driver is
used to receive connect.indication primitives and seems it is better to be
always kept in the listening state. When the module gets the connect.ind
primitive, it responds back to the lower layer module/driver with a connect.
response primitive in order to accept the call. The problem arises on whether
the listening module should accept the call on the listening queue or create
a new queue to accept the call. In the former case, the listening queue will
be changed into data transfer state and no more connect.indication primitives
can be put into the queue anymore, until the user process finally receives the
call and create a second queue to accept the call (by using ioctl I_FDINSERT).
During this period, all the following connect.indications have to be either
queued in the lower layer module/driver or be discarded. In the latter case,
unfortunately, AT&T did not supply any STREAMS function call for creating
a queue between modules. Of course, you can probably avoid this case by
implementing it as a mux driver and pre-allocate all the queues. But this
approach is undocumented and seems violate the original intent of mux driver.
Is there any STREAMS guru or AT&T STREAMS architect knowing the answer?
More information about the Comp.unix.wizards
mailing list