DLPI(7) RISC/os Reference Manual DLPI(7)
NAME
dlpi - data link provider interface
SUMMARY
#include <sys/dlpi.h>
#include <sys/dlpisif.h>
open("/dev/dlpi",...)
putmsg(DL_ATTACH to PPA)
putmsg(DL_BIND to port)
putmsg(DL_UNITDATA_REQ to send data)
getmsg(expecting DL_UNITDATA_IND messages to receive data)
putmsg(DL_UNBIND)
putmsg(DL_DETTACH)
close()
DESCRIPTION
The DLPI is a kernel level interface, based on the STREAMS
development environment, that supports the services of the
Open Systems Interconnection (OSI) Data Link Layer. The
DLPI interface is accessed from STREAMS protocol modules via
STREAMS messages or directly from user programs via the
putmsg(2) and getmsg(2) system calls. The Data Link Service
(DLS) provider is configured as a STREAMS driver and the DLS
user accesses the provider using open(2) to establish a
stream to the DLS provider. The stream acts as a communica-
tion endpoint between a DLS user and the DLS provider.
IEEE 802.2 Logical Link Control (LLC) Service Access Points
(SAP) are the "upper" interface to DLPI. Protocol stacks
register themselves with DLPI which indicates the types of
packets which the stack will process. The DLPI directs
incoming packets to the appropriate protocol stack. Out-
bound packets are directed to DLPI which sends them to the
appropriate MAC layer drivers. RISComm-X.25 uses the DLPI
to support LLC2 protocol (X.25 over Ethernet). The level of
access is variable from raw packets to Unnumbered Informa-
tion (UI) data packets. XID and TEST packets are also pro-
cessed.
802.3 support coexists with standard TCP/IP allowing multi-
ple protocol formats to use the same interface(s). Indivi-
dual, Multicast-Group and Broadcast addresses are all sup-
ported.
PRIMITIVES
There are two modes supported by DLPI: connection (circuit-
oriented) and connectionless (message-oriented). RISC/os
5.0 supports the connectionless mode (DL_CLDLS) only.
The following services are provided and are divided into the
following phases. More details may be found in <sys/dlpi.h>
Printed 11/19/92 Page 1
DLPI(7) RISC/os Reference Manual DLPI(7)
and the AT&T "Streams-Based DLPI, NPI, TPI White Papers".
A.) Local Management
1. Information Reporting Primitives
DL_INFO_REQ
DL_INFO_ACK
DL_ERROR_ACK
2. Attach Primitives
DL_ATTACH_REQ
DL_DETACH_REQ
DL_OK_ACK
DL_ERROR_ACK
3. Bind Primitives
DL_BIND_REQ
DL_BIND_ACK
DL_SUBS_BIND_REQ
DL_SUBS_BIND_ACK
DL_UNBIND_REQ
DL_OK_ACK
DL_ERROR_ACK
B.) Connectionless-mode Data Transfer
1. Data Transfer Primitives
DL_UNITDATA_REQ
DL_UNITDATA_IND
2. Error Reporting Primitives
DL_UDERROR_IND
IOCTL Support
These are accessed via the STREAMS IOCTL putmsg(2). More
information on the "SIOCxxxx" calls may be found in if(7n).
DLPISIF_CONFPPA
Configure PPA - Arrange a Physical Point of Attachment
to physical ethernet interface association. The
/etc/dlconfig program uses this during system startup.
The structure, dlpisif_sifname_t, is passed to the ker-
nel with the configuration information. See
<sys/dlpisif.h> for more details.
SIOCSLAF
Set all logical addresses filter - Accept any multicast
address.
SIOCADDMULTI
Add multicast address to list of accepted and arrange
address filter to accept this address.
Page 2 Printed 11/19/92
DLPI(7) RISC/os Reference Manual DLPI(7)
SIOCDELMULTI
Clear multicast address - Remove multicast address from
list of accepted and remove from address filter.
SIOCSPROMISC
Set promiscuous mode - Arrange ethernet interface to
accept all transmissions, not just those addressed to
this interface.
DLATTACH FLAGS
These flags are used in the DL_ATTACH phase. Please see
<sys/dlpisif.h> for more details.
DLPISIF_PROMISC
Set promiscuous mode (Not yet implemented, use
SIOCPROMISC above)
DLPISIF_RAW
Connect to RAW input data stream - Do not filter input
data or process loopback or test requests.
DLPISIF_MBUF
Send Mbuf's up (via IF_ENQUEUE) - used for the socket
interface.
DLPISIF_NOLLCHD
Remove LLC header.
OTHER NOTES
The dlpi interface supports the concept of a Global SAP
address, LLC_GLOBAL_SAP. This can be bound to on both the
send and receive ports.
SEE ALSO
if(7n)
/etc/init.d/dlpi
<sys/dlpi.h>
<sys/dlpisif.h> - (dlpi to socket interface [ethernet])
Printed 11/19/92 Page 3