home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
-
-
-
-
-
- Chapter 11
- Streams Interface
-
-
-
- Streams is a set of tools consisting of system calls,
- kernel resources, and kernel utility routines. These
- tools are used to create, use, or dismantle a stream--a
- full-duplex processing and data transfer path between the
- driver on the low kernel end of the NetWare OS and the
- user application on the high end. (The NetWare
- implementation of Streams was developed from AT&T's
- STREAMS, available on UNIX System V. For more detailed
- information on STREAMS, refer to the AT&T STREAMS Primer
- and the STREAMS Programmers Guide.)
-
- A stream defines the interface for character I/O within
- the kernel and between the kernel and the rest of the
- operating system. It is made up of three basic parts:
-
- ■ The Stream head that interfaces with user
- applications
-
- ■ Modules (optional) used to process data traveling
- between the Stream head and the Stream end
-
- ■ The Stream end or driver providing an external
- interface by means of a character I/O device
-
- The Transport Level Interface (TLI) is an application
- programming interface that sits between the streams and
- user applications, allowing interface with transport
- level protocols such as SPX.
- NetWare 386 implements Streams as a number of NetWare
- Loadable Modules (NLMs). One NLM includes the STREAMS
- application interface routines, the utility routines for
- STREAMS modules, the log device, and a driver for the
- Open Data-Link Interface. The utility routines in the
- NLM include all common functions used by STREAMS modules.
-
- Other, NLMs include a number of Streams modules to
- provide communication protocols such as IPX/SPX or
- TCP/IP. The graphic on the next page illustrates a
- NetWare 386 server with Streams support.
- ┌────────────────────────────────┐
- NetWare Operating System │ NetWare OS Routines │
- └────────────────────────────────┘
-
- ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐
- │ │ │ │ │ │ │ │
- │ N │ │ A │ │ N │ │ S │
- Service Protocol Stacks │ C │ │ F │ │ F │ │ M │
- │ P │ │ P │ │ S │ │ B │
- │ │ │ │ │ │ │ │
- └─────┘ └─────┘ └─────┘ └─────┘
-
- Transport Layer Interface ┌────────────────────────────────┐
- ┌─┤ Stream Head Interface ├─┐ ■─┐
- │▒└────────────────────────────────┘▒│ │
- │▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│ │
- │▒┌────────┐▒▒┌────────┐▒▒┌────────┐▒│ │
- │▒│ │▒▒│ │▒▒│ │▒│ │
- │▒│ │▒▒│ │▒▒│ │▒│ │
- │▒│ │▒▒│ │▒▒│ │▒│ │
- Communication Protocol Stacks │▒│ IPX │▒▒│ Apple │▒▒│ TCP/IP │▒│ │
- Streams │▒│ │▒▒│ Talk │▒▒│ │▒│ │
- │▒│ │▒▒│ │▒▒│ │▒│ │
- │▒│ │▒▒│ │▒▒│ │▒│ │
- │▒└────────┘▒▒└────────┘▒▒└────────┘▒│ │
- │▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│ │
- │▒┌────────────────────────────────┐▒│ │
- └─┤ Streams to LSL ├─┘ ■─┘
- └────────────────────────────────┘
-
- ┌────────────────────────────────┐
- │ Link Support Layer (LSL) │
- └────────────────────────────────┘
-
- ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐
- │ │ │ │ │ │ │ │
- │ T │ │ E │ │ R │ │ │
- Multiple Link Interface Drivers │ o │ │ t │ │ X │ │ │
- │ k │ │ h │ │ N │ │ │
- (MLIDs) │ e │ │ e │ │ E │ │ │
- │ n │ │ r │ │ T │ │ │
- │ │ │ │ │ │ │ │
- └─────┘ └─────┘ └─────┘ └─────┘
-
- ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
- │┌────────┴┐ │┌────────┴┐ │┌────────┴┐ │┌────────┴┐
- Multiple LAN Adapters └┤ │ └┤┌────────┴┐ └┤┌────────┴┐ └┤┌────────┴┐
- └─────────┘ └┤┌────────┴┐ └┤┌────────┴┐ └┤┌────────┴┐
- └┤ │ └┤ │ └┤ │
- └─────────┘ └─────────┘ └─────────┘
-
- NetWare 386 STREAMS Interface