'\" te
.\"  Copyright (c) 1999, Sun Microsystems, Inc.
.\"  All Rights Reserved
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
.TH IDN 7D "Jun 3, 1999"
.SH NAME
idn \- inter-domain network device driver
.SH SYNOPSIS
.LP
.nf
\fB/dev/idn\fR
.fi

.SH DESCRIPTION
.sp
.LP
The \fBidn\fR driver is a multi-thread, loadable, clonable, STREAMS-based
pseudo driver that supports the connectionless Data Link Provider Interface
\fBdlpi\fR(7P) over the Sun Enterprise 10000 Gigplane-XB Interconnect. This
connection is permitted only between domains within the same Sun Enterprise
10000 server.
.sp
.LP
The \fBidn\fR driver supports 1 to 32 logical network interfaces that can be
connected to domains linked to the local domain through the
\fBdomain_link\fR(1M) command. (See \fBdomain_link\fR(1M) in the \fISun
Enterprise 10000 SSP 3.5 Reference Manual\fR for more information.) The
\fBidn\fR driver works in conjunction with the System Service Processor (SSP)
to perform domain linking/unlinking and automated linking upon host bootup.
.sp
.LP
The \fB/dev/idn\fR device is used to access all IDN services provided by the
system.
.SS "IDN and DLPI"
.sp
.LP
The \fBidn\fR driver is a style-2 Data Link Service provider. All \fBM_PROTO\fR
and \fBM_PCPROTO\fR-type messages are interpreted as \fBDLPI \fRprimitives.
For the \fBidn\fR driver to associate the opened stream with a particular
device (ppa), you must send an explicit \fBDL_ATTACH_REQ\fR message. The ppa ID
is interpreted as an unsigned long and indicates the corresponding device
instance (unit) number. The \fBDL_ERROR_ACK\fR error is returned by the driver
if the ppa field value does not correspond to a valid device-instance number
for the system. The device is initialized on first attach and de-initialized
(stopped) on the last detach.
.RS +4
.TP
.ie t \(bu
.el o
The maximum SDU is configurable by using the  \fBidn.conf\fR file and has a
range of 512 bytes to 512 Kbytes. The default value is 16384 bytes.
.RE
.RS +4
.TP
.ie t \(bu
.el o
The minimum SDU is 0.
.RE
.RS +4
.TP
.ie t \(bu
.el o
The Service Access Pointer (SAP) address length is 8.
.RE
.RS +4
.TP
.ie t \(bu
.el o
The MAC type is \fBDL_ETHER\fR.
.RE
.RS +4
.TP
.ie t \(bu
.el o
The \fBSAP\fR length value is \fI-2\fR, meaning the physical address component
is followed immediately by a 2-byte \fBSAP \fRcomponent within the \fBDLSAP\fR
address.
.RE
.RS +4
.TP
.ie t \(bu
.el o
The service mode is \fBDL_CLDLS\fR.
.RE
.RS +4
.TP
.ie t \(bu
.el o
Optional quality of service (\fBQOS\fR) is not presently supported;
accordingly, the \fBQOS \fRfields are 0.
.RE
.RS +4
.TP
.ie t \(bu
.el o
The provider style is \fBDL_STYLE2\fR.
.RE
.RS +4
.TP
.ie t \(bu
.el o
The version is \fBDL_VERSION_2\fR.
.RE
.RS +4
.TP
.ie t \(bu
.el o
The broadcast address value is Ethernet/IEEE broadcast address (0xFFFFFF). The
\fBidn\fR driver supports broadcast by issuing messages to each target
individually. The \fBidn\fR driver is inherently a point-to-point network
between domains. When the \fBidn\fR driver is in the \fBDL_ATTACHED\fR state,
the user must send a \fBDL_BIND_REQ\fR request to associate a particular \fBSAP
\fRwith the stream. The \fBidn\fR driver interprets the \fBSAP \fRfield within
the \fBDL_BIND_REQ\fR message as an Ethernet type and valid values for the
\fBSAP \fRfield are in the range of \fI0\fR to \fI0xFFFF\fR. Only one Ethernet
type can be bound to the stream at any time.
.RE
.sp
.LP
If a \fBSAP \fRwith a value of 0 is selected, the receiver will be in 802.3
mode. All frames received from the media having a type field in the range of 0
to 1500 are assumed to be 802.3 frames and are routed up all open streams which
are bound to \fBSAP \fR value 0. If more than one stream is in 802.3 mode, then
the frame will be duplicated and routed up as multiple stream
\fBDL_UNITDATA_IND\fR messages.
.sp
.LP
In transmission, the driver checks the \fBSAP\fR field of the \fBDL_BIND_REQ\fR
to determine if the SAP value is 0, and if the destination type field is in the
range of \fI 0\fR to \fI1500\fR. If either is true, the driver computes the
length of the message, (excluding the initial message block \fBM_PROTO mblk)\fR
of all subsequent \fBDL_UNITDATA_REQ\fR messages and transmits 802.3 frames
that have this value in the MAC frame header length field.
.sp
.LP
The driver also supports raw \fBM_DATA\fR mode. When the user sends a
\fBDLIOCRAW\fR ioctl, the particular stream is put in raw mode. A complete
frame and a proper ether header is expected as part of the data.
.sp
.LP
The \fBDLSAP\fR address format consists of the 6-byte, physical address
component (Ethernet) followed immediately by the 2-byte \fBSAP \fRcomponent
(type), producing an 8-byte \fBDLSAP\fR address. Applications should \fBnot\fR
hardcode to this particular implementation-specific \fBDLSAP\fR address format,
but instead should use information returned in the \fBDL_INFO_ACK\fR primitive
to compose and decompose \fBDLSAP\fR addresses. The \fBSAP \fRlength, full
\fBDLSAP \fR length, and \fBSAP \fRphysical ordering are included within the
\fBDL_INFO_ACK\fR primitive. The physical address length can be computed by
subtracting the \fBSAP \fRlength from the full \fBDLSAP\fR address length or by
issuing the \fBDL_PHYS_ADDR_REQ\fR message to obtain the current physical
address associated with the stream.
.sp
.LP
When the \fBidn\fR driver is in the \fBDL_BOUND\fR state, you can transmit
frames on the IDN by sending \fBDL_UNITDATA_REQ\fR messages to the driver. The
driver then routes received IDN frames up the open and bound streams having a
\fBSAP \fRwhich matches the Ethernet type as \fBDL_UNITDATA_IND\fR messages.
If necessary, received IDN frames are duplicated and routed up multiple open
streams. The \fBDLSAP\fR address contained within the \fBDL_UNITDATA_REQ\fR and
\fBDL_UNITDATA_IND\fR messages consists of both the \fBSAP \fR(type) and
physical (Ethernet) components.
.SS "IDN Primitives"
.sp
.LP
In addition to the mandatory connectionless DLPI message set, the \fBidn\fR
driver supports the following primitives:
.sp
.LP
The \fBDL_ENABMULTI_REQ\fR and \fBDL_DISABMULTI_REQ\fR primitives which enable
or disable, respectively, the reception of individual multicast group
addresses. A set of multicast addresses may be iteratively created and modified
on a per-stream basis using these primitives. These primitives are accepted by
the driver in any state following the \fBDL_ATTACHED\fR state.
.sp
.LP
The \fBDL_PROMISCON_REQ\fR and \fBDL_PROMISCOFF_REQ\fR primitives, which with
the \fBDL_PROMISC_PHYS\fR flag set in the \fBdl_level\fR field, enable or
disable, respectively, the reception of all promiscuous frames on the media,
including frames generated by the local domain. When used with the
\fBDL_PROMISC_SAP\fR flag set in the \fBdl_level\fR field, these primitives
enable or disable, respectively, the reception of all \fBSAP \fR (Ethernet
type) values. When used with the \fBDL_PROMISC_MULTI\fR flag set in the
\fBdl_level\fR field, these primitives enable or disable, respectively, the
reception of all multicast group addresses. The effect of each is always on a
per-stream basis and independent of the other \fBSAP \fRand physical level
configurations on this stream or other streams.
.sp
.LP
The \fBDL_PHYS_ADDR_REQ\fR primitive which returns the 6-octet, Ethernet
address associated with (or attached to) the stream in the
\fBDL_PHYS_ADDR_ACK\fR primitive. This primitive is valid only in states
following a successful \fBDL_ATTACH_REQ\fR request.
.sp
.LP
Because the driver maintains domain address information in the address to
direct packets to the correct destination, the \fBDL_SET_PHYS_ADDR_REQ\fR
primitive is not allowed.
.SH FILES
.sp
.LP
The following files are supported:
.sp
.ne 2
.na
\fB\fB/dev/idn \fR\fR
.ad
.sp .6
.RS 4n
IDN special character device
.RE

.sp
.ne 2
.na
\fB\fB/platform/SUNW,Ultra-Enterprise-10000/kernel/drv/idn.conf \fR\fR
.ad
.sp .6
.RS 4n
System-wide and per-interface default device driver properties
.RE

.SH SEE ALSO
.sp
.LP
\fBnetstat\fR(1M), \fBndd\fR(1M), \fBdlpi\fR(7P)
.sp
.LP
\fBdomain_link\fR(1M) in the \fISun Enterprise 10000 SSP 3.5 Reference
Manual\fR.
.sp
.LP
\fISun Enterprise 10000 InterDomain Networks User Guide\fR
.SH NOTES
.sp
.LP
The \fBidn\fR driver supports a set of properties that can be set by using the
\fBdriver.conf\fR file for the IDN. See the \fISun Enterprise 10000 InterDomain
Networks User Guide\fR for more information about the properties in the
\fBdriver.conf\fR(4), (\fBidn.conf\fR, for IDNs).