STREAMS-UX Programmer's Guide (February 2007)
Multiplexing
STREAMS Multiplexor
Chapter 5
138
Multiplexor Specific Design Guidelines
The following is a list of general multiplexor design guidelines, in addition to the guidelines specified for the
driver development in Chapter 4.
1. The upper-half of the multiplexor must be designed to act as the stream end, or driver, for the streams
above the multiplexor.
2. The lower-half of the multiplexor must be designed to act as the stream head for the streams linked below
the multiplexor.
3. The routing of message between the upper and lower-half of the multiplexor is based on multiplexor
specific criteria.
4. When multiple streams are feeding a single stream, the receiving stream can get flow controlled. This
possibly requires more than one feeding queue to be backenabled. When the flow control is lifted, the
receiving queue’s service procedure should properly backenable all the feeding queues that are holding on
to messages. This is to prevent the feeding queues from being blocked indefinitely.
5. When one stream is feeding multiple streams, one of the receiving streams may get flow controlled.
Depending on the functionality and the requirements of the multiplexing driver, the other streams that
are not flow controlled may be starved. However, selectively forwarding the messages could result in the
loss of relative time ordering of the messages.