NAME

SYNOPSIS

DESCRIPTION

The dman(7D)
network device driver is a loadable, clonable, STREAMS hardware driver that
supports the connectionless data link provider interface dlpi(7P) over the SUNW,dman
network controller. The dman controller provides a highly
available, secure communication channel between the dynamic system domains
and the Sun Fire 15K system controller.

The dman driver provides basic support for the SUNW,dman controller. Driver functions include network initialization,
frame transit and receive, multicast and promiscuous support, and error recovery
and reporting.

The dman controller is physically located in each
Sun Fire 15K dynamic system domain and connects to SUNWscman
controllers in the Sun Fire 15K chassis. See scman(7D).
All links are point-to-point and are internal to the Sun Fire 15K chassis.
Traffic between the dynamic system domains and the system controller is not
accessible by any third party; for example, another system domain within the
Sun Fire 15K chassis. Only the system controller is accessible through the dman controller.

The link layer frame format is identical to that used by Ethernet (sys/ethernet.h).

APPLICATION PROGRAMMING INTERFACE

The /dev/dman cloning character-special device
is used to access the SUNW,dman controller installed on
the system.

DLPI

The dman driver is a style 2
data link provider interface. All M_PROTO and M_PCPROTO type messages are interpreted as DLPI
primitives. Valid DLPI primitives are defined in sys/dlpi.h. Refer to dlpi(7P)
for more information. An explicit DL_ATTACH_REQ message
by the user is required to associate the opened stream with a particular device
or physical point of attachment (PPA).

The PPA ID is interpreted as an unsigned long data
type and indicates the corresponding device instance (unit) number. The only
valid unit number is 0. An error (DL_ERROR_ACK) is
returned by the driver if the PPA field value does not
correspond to a valid device instance number for this system. The device is
initialized on the first attach and deinitialized (stopped) upon the last
detach.

The values returned by the dman driver in the DL_INFO_ACK primitive in response to the DL_INFO_REQ
from the user are:

Maximum service data units (SDU) are 1500.

Minimum SDU is 0.

Data link service access point (DLSAP)
address length is 8.

Media access control (MAC) type is DL_ETHER.

Service access point (SAP) length value
is -2, meaning the physical address component is followed immediately by a
two-byte SAP component within the DLSAP
address.

Service mode is DL_CLDLS.

Optional quality of service (QOS) support
is not included; the QOS fields are 0.

Once in the DL_ATTACHED state, you can transmit a DL_BIND_REQ to associate a particular SAP with
the stream. The dman driver interprets the SAP field within the DL_BIND_REQ as an Ethernet
type; as a result, valid values for the SAP field are
in the 0 through 0xFFFF range. Only one Ethernet type can be bound to the
stream at any time.

If you select the SAP with a value of 0, the receiver
will be in 802.3 mode. All frames received from the
media having a type field in the range from 0 through 1500 are assumed to
be 802.3 frames and are routed up all open streams
that are bound to SAP value 0. If more than one stream
is in 802.3 mode, the frame is duplicated and routed
up multiple streams as DL_UNITDATA_IND messages.

In transmission, the driver checks the DL_BIND_REQ SAP field to determine if the SAP value is 0
and the destination type field is in the range from 0 through 1500. If either
is true, the driver computes the length of the message, not including the
initial M_PROTO message block (mblk),
of all subsequent DL_UNITDATA_REQ messages and transmits 802.3 frames that have this value in the MAC
frame header length field.

The dman driver DLSAP address
format consists of the six-byte physical (Ethernet) address component followed
immediately by the two-byte SAP (type) component producing
an eight-byte DLSAP address. Applications should not be hard-coded to this implementation-specific DLSAP address format, but instead use information returned in the DL_INFO_ACK primitive to compose and decompose DLSAP
addresses. The SAP length, full DLSAP
length, and SAP physical ordering are included within
the DL_INFO_ACK. The physical address length can be computed
by subtracting the SAP length from the full DLSAP address length or by issuing the DL_PHYS_ADDR_REQ to obtain the current physical address associated with the stream.

Once in the DL_BOUND state, youcan atransmit frames
on the Ethernet by sending DL_UNITDATA_REQ messages to
the dman driver. The dman driver routes
received Ethernet frames as DL_UNITDATA_IND messages up
all open and bound streams having a SAP matching the Ethernet
type. Received Ethernet frames are duplicated and routed up multiple open
streams, if necessary. The DLSAP address contained within
the DL_UNITDATA_REQ and DL_UNITDATA_IND
messages consists of both the SAP (type) and physical (Ethernet)
components.

PRIMITIVES

In addition to the mandatory connectionless DLPI
message set, the dman driver supports the following primitives.

The DL_ENABMULTI_REQ and DL_DISABMULTI_REQ primitives enable or disable 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 DL_ATTACHED.

The DL_PROMISCON_REQ and DL_PROMISCOFF_REQ primitives with the DL_PROMISC_PHYS flag set
in the dl_level field enables or disables reception
of all promiscuous mode frames on the media, including frames generated by
the local host. When used with the DL_PROMISC_SAP flag
set, this enables or disables reception of all SAP (Ethernet
type) values. When used with the DL_PROMISC_MULTI flag
set, this enables or disables reception of all multicast group addresses.
The effect of each is always on a per-stream basis and independent of other
SAP and physical level configurations on this stream or
other streams.

The DL_PHYS_ADDR_REQ primitive returns the six-octet
Ethernet address currently associated (attached) to the stream in the DL_PHYS_ADDR_ACK primitive. This primitive is valid only in states
following a successful DL_ATTACH_REQ.

The DL_SET_PHYS_ADDR_REQ primitive is not supported.

dman DRIVER

The dman driver operates at 10 Mbps, full-duplex.

PARAMETER LIST

The dman driver allows you to set and get various
parameters for the SUNW,dman device. The parameter list
includes current transceiver status, current link status, interpacket gap,
local transceiver capabilities, and link partner capabilities.