Connectionless Mode Only DLPI Driver versus Connectionless/Connection-Oriented DLPI Driver
This section explains the connectionless mode only DLPI Driver versus connectionless/connection-oriented DLPI driver.
- For binary compatibility purposes, there are no new statistics added for the connection-oriented functions. Statistics for the connection-oriented functions will be provided in a future release of the operating system.
- For binary compatibility purposes, a DL_UNITDATA_IND header is provided in the messages
for promiscuous mode and raw mode. Be aware that this header will be removed in a future release of
the operating system. The following sample code fragment works with the 4.1 and later versions of DLPI:
if (raw_mode) { if (mp->b_datap->db_type == M_PROTO) { union DL_primitives *p; p = (union DL_primitives *)mp->b_rptr; if (p->dl_primitive == DL_UNITDATA_IND) { mblk_t *mpl = mp->b_cont; freeb(mp); mp = mpl; } } }The above code fragment discards the DL_UNITDATA_IND header. For compatibility with future releases, it is recommended that you parse the frame yourself. The MAC and LLC headers are presented in the M_DATA message for both promiscuous mode and raw mode.
Raw mode currently accepts, but does not require, a DL_UNITDATA_REQ. In a future release of the operating system, raw mode will not accept a DL_UNITDATA_REQ; only M_DATA will be accepted.
The dlpi driver supports the 802.2 connection-oriented service over the CDLI-based media 802.3, token ring, and FDDI. Other CDLI-based media can be supported provided the media implementation follows the IEEE 802.x recommendations.
The DL_OUTPUT_RESOLVE and DL_INPUT_RESOLVE ioctl commands replace the default address resolution routines for the current stream. They are no longer accepted from user space; the message type must be M_CTL (not M_IOCTL), and they are only accepted before the stream is bound. DL_INPUT_RESOLVE is accepted as an M_IOCTL message only if its argument is zero; this allows the user to disable input address resolution. Output address resolution cannot be disabled—use the raw mode if transparent access to the medium is required.
The DL_PKT_FORMAT ioctl command now recognizes and handles the following packet formats: NS_PROTO, NS_PROTO_SNAP, NS_PROTO_DL_DONTCARE, NS_PROTO_DL_COMPAT, NS_INCLUDE_LLC, and NS_INCLUDE_MAC.
New ioctl commands are now supported: DL_ROUTE, DL_TUNE_LLC, DL_ZERO_STATS, and DL_SET_REMADDR. Refer to ioctl Specifics.