#include <sys/stropts.h> #define PIFNET_IOCTL_UNIT 1236
type arg );
int fildes, command;
ifnet is a STREAMS-based module that provides a bridge between STREAMS-based device drivers written to the Data Link Provider Interface (DLPI) and sockets. By using ifnet, STREAMS-based DLPI device drivers can work with TCP/IP, or any other networking protocols, implemented using sockets.
An application pushes the ifnet module onto a Stream opened to the device driver. The application must then send an I_STR ioctl with a command of IFNET_IOCTL_UNIT to notify ifnet of the driver's unit number. It must then send a DL_BIND_REQ downstream to bind the appropriate protocol.
Once the Stream or Streams are set up, the application has no work to do but must stay around to keep the Streams alive. This can be done with the pause(3) function.
The following example illustrates how to send an I_STR ioctl with a command of
IFNET_IOCTL_UNIT to notify ifnet of the driver's unit number.
struct strioctl str;
. str.ic_cmd = IFNET_IOCTL_UNIT; str.ic_dp = &unit; /* unit number of device */ ioctl(fd, I_STR, &str);
Network Programmer's Guide