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