STREAMS-UX Programmer's Guide (February 2007)
Multiplexing
Connecting and Disconnecting Multiplexor Configurations
Chapter 5
117
Characteristics of Multiplexing Configurations
In a multiplexing configuration, streams opened to the multiplexor are referred to as upper streams and
those linked below the multiplexor are referred to as lower streams.
•An I_LINK is required for each lower stream connected to the driver. Additional upper streams can be
connected to the multiplexing driver by open() calls.
• An upper stream provides the only interface between the user processes and the lower stream(s). The
lower stream(s) are not accessible from the user space.
• System calls (except close()) on the lower stream return EINVAL. Therefore, all modules that need to be
pushed on the lower stream need to be pushed before an I_LINK operation.
• No direct linakge is established between the upper and lower streams.
• Messages flowing upstream from the driver enter the multiplexing driver's read side put procedure. The
multiplexing driver then has to route the messages to the appropriate upper or lower stream(s).
Similarly, messages flowing downstream from user space or any upper stream(s) to the multiplexing
driver have to be to be processed and routed by the multiplexing driver.
• STREAMS flow-control needs to be handled by the multiplexing driver as there is no direct linkage
between upper and lower streams.
• Multiplexing drivers must be implemented so that new streams can be dynamically connected to (and
existing streams disconnected from) the driver without interfering with its operation. The number of
streams that can be connected to a multiplexor is implementation dependent.