STREAMS Programming Guide

Answers to Frequently Asked Questions

Solaris 7 Ethernet drivers, le(7D) and eepro(7D) both support Data Link Provider Interfaces (DLPI).

When an ifconfig device0 plumb is issued, the driver immediately receives a DL_INFO_REQ. The information requested by DL_INFO_ACK is shown in the dl_info_ack_t struct in /usr/include/sys/dlpi.h.

A driver can be a CLONE driver and also a DLPI Style 2 provider. Mapping minor numbers selected in the open routine to an instance prior to a DL_ATTACH_REQ using the instance in the getinfo routine is not valid prior to the DL_ATTACH_REQ. The DL_ATTACH_REQ request is to assign a physical point of attachment (PPA) to a Stream. The DL_ATTACH_REQ request can be issued any time after a file or Stream is opened. The DL_ATTACH_REQ request is not involved in assigning, retrieving, or mapping minor or instance numbers. You can issue a DL_ATTACH_REQ request for a file or Stream with a desired major/minor number. Mapping minor number to instance reflects, in most cases, that the minor number (getmino(dev)) is the instance number.

Each time a driver's attach routine is called, a minor node is created. If a non-CLONE driver needs to attach to multiple boards, that is, to have multiple instances and still create only one minor node, it is possible to use the bits of information in a particular minor number; for example `FF' to map to all other minor nodes.