Data Link Provider Interface Library Functions dlpiopen(3DLPI)
NAME
dlpiopen - open DLPI link
SYNOPSIS
cc [ flag ... ] file ... -ldlpi [ library ... ]
#include
int dlpiopen(const char *linkname, dlpihandlet *dhp,
uintt flags);
DESCRIPTION
The dlpiopen() function creates an open instance of the
DLPI Version 2 link named by linkname and associates it with
a dynamically-allocated dlpihandlet, which is returned to
the caller in dhp upon success. The DLPI handle is left in
the DLUNBOUND DLPI state after a successful open of the
DLPI link. The DLPI handles can only be used by one thread
at a time, but multiple handles can be used by multiple
threads. This function can open both DLSTYLE1 and DLSTYLE2
DLPI links.
By default (if DLPIDEVIPNET is not set in flags), the
dlpiopen() function scans the /dev/net and /dev directories
for DLPI links, in order. Within each scanned directory,
dlpiopen() first looks for a matching DLSTYLE1 link, then
for a matching DLSTYLE2 link. If provider is considered the
linkname with its trailing digits removed, a matching
DLSTYLE1 link has a filename of linkname, and a matching
DLSTYLE2 link has a filename of provider. If a DLSTYLE2
link is opened, dlpiopen() automatically performs the
necessary DLPI operations to place the DLPI link instance
and the associated DLPI handle in the DLUNBOUND state. See
dlpi(7P) for the definition of linkname.
If DLPIDEVIPNET is set in flags, dlpiopen() opens the file
linkname in /dev/ipnet as a DLSTYLE1 DLPI device and does
not look in any other directories.
The value of flags is constructed by a bitwise-inclusive-OR
of the flags listed below, defined in .
DLPIDEVIPNET Specify that the named DLPI device is an
IP observability device (see ipnet(7D)),
and dlopen() will open the device from
the /dev/ipnet/ directory.
SunOS 5.11 Last change: 17 Nov 2008 1
Data Link Provider Interface Library Functions dlpiopen(3DLPI)
DLPIPNETINFO This flag is applicable only when opening
IP Observability devices (with
DLPIDEVIPNET or by opening the /dev/lo0
device). This flag causes the ipnet driver
to prepend an ipnet header to each
received IP packet. See ipnet(7D) for the
contents of this header.
DLPINATIVE Enable DLPI native mode (see DLIOCNATIVE
in dlpi(7P)) on a DLPI link instance.
Native mode persists until the DLPI handle
is closed by dlpiclose(3DLPI).
DLPIPASIVE Enable DLPI passive mode (see
DLPASIVEREQ in dlpi(7P)) on a DLPI link
instance. Passive mode persists until the
DLPI handle is closed by
dlpiclose(3DLPI).
DLPIRAW Enable DLPI raw mode (see DLIOCRAW in
dlpi(7P)) on a DLPI link instance. Raw
mode persists until the DLPI handle is
closed by dlpiclose(3DLPI).
Each DLPI handle has an associated timeout value that is
used as a timeout interval for certain libdlpi operations.
The default timeout value ensures that DLPIETIMEDOUT is
returned from a libdlpi operation only in the event that the
DLPI link becomes unresponsive. The timeout value can be
changed with dlpisettimeout(3DLPI), although this should
seldom be necessary.
RETURN VALUES
Upon success, DLPISUCES is returned. If DLSYSER is
returned, errno contains the specific UNIX system error
value. Otherwise, a DLPI error value defined in
or listed in the following section is returned.
ERORS
The dlpiopen() function will fail if:
DLPIEBADLINK Bad DLPI link
DLPIEIPNETINFONOTSUP The DLPIPNETINFO flag was set but
the device opened does not support
the DLIOCIPNETINFO ioctl.
SunOS 5.11 Last change: 17 Nov 2008 2
Data Link Provider Interface Library Functions dlpiopen(3DLPI)
DLPIELINKNAMEINVAL Invalid DLPI linkname
DLPIENOLINK DLPI link does not exist
DLPIERAWNOTSUP DLPI raw mode not supported
DLPIETIMEDOUT DLPI operation timed out
DLPIFAILURE DLPI operation failed
ATRIBUTES
See attributes(5) for description of the following attri-
butes:
ATRIBUTE TYPE ATRIBUTE VALUE
Interface Stability Committed
MT-Level Safe
SEE ALSO
dlpiclose(3DLPI), dlpisettimeout(3DLPI), libdlpi(3LIB),
attributes(5), dlpi(7P), ipnet(7D)
SunOS 5.11 Last change: 17 Nov 2008 3
|