The Data Link Provider Interface (DLPI) is a UNIX STREAMS standard that defines the interface to the Data Link Layer of the OSI reference model. For SCO SVR5 1 and 2 systems, DLPI is used to implement network adapters. On all versions of SVR5 and SCO OpenServer 5, DLPI is used to implement network protocol stacks.
For SVR5 and SCO OpenServer 5, the DLPI driver is separate from the network card driver interface; network adapters are implemented with the MDI, and DLPI is used only to implement support for protocol stacks and for media types that are not supported by MDI. Instances of a DLPI ``module'' are linked to individual MDI drivers to provide common media-dependent services. DLPI exists as a driver that is separate from the network adapter driver. It is accessed through the netX device node (where X is the number of the associated network adapter). The network adapter has a separate device node that is an open-once type device which the DLPI support daemons hold open. MDI commands can be passed through the DLPI device down to the MDI network adapter device.
For example, if two Western Digital 8013 network adapters are configured, the first one uses the /dev/net0 DLPI device and the /dev/mdi/wdn0 MDI device. The second network adapter that is configured uses the /dev/net1 DLPI device and the /dev/mdi/wdn1 MDI device. If the second MDI device is a different type of network adapter, the MDI device node would be 0, so /dev/mdi/cet0 might be the MDI device node that corresponds to the net1 DLPI device.
The SVR5 and SCO OpenServer 5 DLPI supports all SCO SVR5 2.0 protocol stacks. Early releases of SVR5 systems provided backward compatibility for most SCO SVR5 2.0 DLPI drivers, allowing them to be installed and executed but not rebuilt. Beginning with SVR5 Release 7.1, these SCO SVR5 2.0 DLPI drivers are not supported at all. Among other system changes, the <sys/dlpi_ether.h> header file has been removed; this was used only for very old drivers that used the DLIOC* ioctls that were replaced by DL_ primitives in the DLPI 2.x standard, first released in 1991.
Drivers for Ethernet, Token Ring, FDDI, and ISDN should be implemented using MDI for both SCO OpenServer 5 and SVR5. This allows these devices to be configured by the Network Configuration Manager and provides access to advanced features such as failover and feature sets. An MDI driver does not require extra coding for per-sap demultiplexing because it is provided as part of the interface. MDI drivers should not #include either the <sys/dlpi_ether.h> or the <sys/dlpi.h> header file.
For more information about the DLPI module, see the dlpid manual page. The DL_* primitives are documented on the Intro(D7dlpi) manual page.