DLPI_PROMISCON(3DLPI) Data Link Provider Interface Library Functions DLPI_PROMISCON(3DLPI)

dlpi_promiscon, dlpi_promiscoff
enable or disable DLPI promiscuous mode

Data Link Provider Interface (DLPI) Library (libdlpi, -ldlpi)

#include <libdlpi.h>

int
dlpi_promiscon(dlpi_handle_t, dh, uint_t, level);

int
dlpi_promiscoff(dlpi_handle_t, dh, uint_t, level);

dlpi_promiscon() enables promiscuous mode on a dlpi(4P) link instance associated with a DLPI handle dh, at the specified level. Multiple levels can be combined; the new level is enabled in addition to any previously enabled levels. After enabling promiscuous mode, the caller will be able to receive all messages destined for the DLPI link instance at the specified level. This operation can be performed in any DLPI state of a handle.

dlpi_promiscoff() disables promiscuous mode on a dlpi(4P) link instance associated with DLPI handle dh, at the specified level. This operation can be performed in any DLPI state of a handle in which promiscuous mode is enabled at the specified level.

The level modes are:

Promiscuous mode at the physical level
Promiscuous mode at the SAP level
Promiscuous mode for all multicast addresses
When one or more of the above promiscuous modes is also enabled, this option modifies it so that only inbound traffic is received. When using this level, it is recommended to set it before the others.

On successful completion, dlpi_promiscon() and dlpi_promiscoff() return DLPI_SUCCESS. If DL_SYSERR is returned, errno contains the specific UNIX system error value. Otherwise, a DLPI error value defined in <sys/dlpi.h>, or an error value listed in the following section is returned.

Bad DLPI message
Invalid DLPI handle
Invalid argument
Operation timed out

Committed

Safe

libdlpi(3LIB), dlpi(4P), attributes(7)
April 29, 2021 OmniOS