TechNote

Number: 03402-04
Date: October 1994

What does the LSL do?

The LSL (Link Support Layer) provides a standard interface between the protocol stacks and the Multiple Link Interface Drivers (MLIDs) in Novell's ODI. MLID is a Novell term for a LAN driver written to the ODI specification. For information on MLIDs, refer to TechNote 03403. When an MLID is loaded, it locates the LSL program and "registers" itself as an MLID, with the LSL. When registering, the MLID passes a pointer to a data structure called a configuration table. The configuration table contains information such as the frame type, name, hardware details, node address, supported frame size of the driver, and a blank 2-byte field known as the board number. When the LSL receives the pointer to the configuration table, it assigns the MLID a unique board number, which is then stored in an empty field in the configuration table. If an adapter supports more than one type of physical header (for example, token-ring 802.2 frames and token-ring SNAP frames), the MLID registers more than once with the LSL, using a different configuration table each time. Therefore, the LSL gives the MLID a different board number to represent the different frame types, which can be thought of as logical network adapters.

When a protocol is loaded, it locates the LSL and "registers" with it, in a simliar way to an MLID. When registering, the protocol passes two entry points to the LSL. One of these is for the LSL to call when it receives a frame for the protocol and the other is used by applications of the protocol. In return, the LSL gives the protocol a unique Stack ID, which is a 2-byte identifier similar to the board numbers given to MLIDs.

Having registered with the LSL, the protocol stack finds out which board numbers are available for sending and receiving frames. When a protocol wants to send a frame, it passes the frame and the appropriate board number to the LSL. The LSL forwards the frame to the MLID that has that particular board number.

Generally, the MLID creates the physical frame header using the 6-byte Protocol ID (PID) that the protocol supplies. It then sends the frame onto the wire. The PID is a unique byte sequence that defines the protocol.

When the LSL receives a frame from a particular board number, it can pass the frame to the appropriate protocol stack in one of three ways: