sxp(7D)
NAME
sxp - Rockwell 2200 SNAP Streams Driver
SYNOPSIS
/dev/sxp
DESCRIPTION
The sxp (also known as the SNAP ) driver is a loadable,
clonable, STREAMS driver that supports the connectionless
Data Link Provider Interface ( dlpi(7P)) over one or more
FDDI adapters (Rockwell 2200 Series). The cloning
character-special devices (/dev/sxp, /dev/snap, /dev/llc,
/dev/mac) are used to access the 2200 Series adapter(s).
The /dev/sxp device is equivalent to /dev/snap. /dev/sxp is
used so that the name SXP will show up in ifconfig. All
messages transmitted on a SNAP device have the 802.2 LLC and
Sub-Network Access Protocol (SNAP) and the FDDI MAC headers
( RFC -1188) prepended. For an LLC device, the LLC and
MAC headers are prepended, and for a MAC device only the MAC
header is prepended.
Received FDDI frames are delivered to the appropriate open
device. In response to a DL_INFO_REQ, the SNAP driver
returns the following values in the DL_INFO_ACK primitive:
o The maximum SDU is 4500.
o The minimum SDU is 0.
o The DLSAP address length is 8 (always true in the
Solaris environment).
o The address offset is 0 (prior to being attached).
o The MAC type is DL_FDDI.
o The sap length value is -2, which indicates that
within the DLSAP address, the physical address com-
ponent is followed immediately by a 2-byte service
access point ( SAP ) component.
o The service mode is DL_CLDLS.
o The quality of service (QOS) fields are 0, because
optional QOS is not supported.
o The provider style is DL_STYLE2.
o The broadcast address value is the IEEE broadcast
address (FF:FF:FF:FF:FF:FF).
Because the SNAP driver is a "style 2" Data Link Service
provider, an explicit DL_ATTACH_REQ message from the user
is required to associate the opened stream with a particular
network device (that is, ppa). The dl_ppa field within the
DL_ATTACH_REQ indicates the instance (unit) number of the
network device. If no currently attached ppa has the same
instance number and there are no unattached ppas available,
the driver returns an error (DL_ERROR_ACK). Once in the
DL_ATTACHED state, a DL_BIND_REQ is required to associate a
particular SAP with the stream.
Once in the DL_ATTACHED state, a DL_BIND_REQ is required to
associate a particular Service Access Point ( SAP ) with
the stream. For the sap field within the DL_BIND_REQ, valid
values are in the range [0-0xFFFF]. Values for 0-0xFF will
give LLC 802.2 service without SNAP encapsulation, unless a
later DL_HIERARCHIAL_BIND DL_SUBS_BIND_REQ is made. Values
from 0x100-0xFFFF will give LLC 802.2 with SNAP encapsula-
tion without the need for a DL_SUBS_BIND_REQ. Note that
DL_HIERARCHIAL_BIND class DL_SUBS_BIND_REQs are only sup-
ported on streams bound to the 0xAA SAP. After successful
completion of the DL_BIND_REQ, the ppa is initialized and
the stream is ready for use. In addition to the
DL_HIERARCHIAL_BIND class of DL_SUBS_BUD_REQ, the
DL_PEER_BIND class can be used to bind multiple SAP s with
a stream.
Frames may be transmitted on the FDDI ring by sending
DL_UNITDATA_REQ messages to the SNAP driver. The DLSAP
address contained within the DL_UNITDATA_REQ must consist of
both the SAP and physical (FDDI) components. For a SNAP
device, the SAP portion of the DLSAP address is placed in
the EtherType field of the 802.2 SNAP header. The DSAP and
SSAP fields of the 802.2 LLC header are both set to the
value 170, indicating a SNAP message and a MAC frame_type of
LLC. For an LLC device, the SAP portion of the DLSAP address
is placed in the DSAP field of the 802.2 LLC header. The
SSAP field is set to the SAP bound to the stream. The MAC
frame_type is LLC. For a MAC device, the SAP portion of the
DLSAP address is placed in the frame_control field of the
MAC header. Received FDDI frames are routed up the correct
stream(s) as DL_UNITDATA_IND messages (containing the DLSAP
address). The stream(s) are found by:
1. Comparing the EtherType field of the SNAP header with the
bound SAP of all of the SNAP streams
2. Comparing the DSAP field of the LLC header with the bound
SAP of all the LLC streams
3. Comparing the frame_control field of the MAC header with
the bound SAP of all the MAC streams.
If necessary, messages are duplicated. In addition to the
mandatory connectionless DLPI message set, the driver also
supports the following primitives: DL_ENABMULTI_REQ,
DL_DISABMULTI_REQ, DL_PROMISCON_REQ, DL_PROMISCOFF_REQ,
DL_PHYS_ADDR_REQ.
The DL_ENABMULTI_REQ and DL_DISABMULTI_REQ primitives enable
or disable reception of individual multicast group
addresses. Using these primitives, a set of multicast group
addresses may be iteratively created and modified on a per-
stream basis. These primitives are accepted by the driver in
any state following a successful DL_ATTACH_REQ. The
DL_PROMISCON_REQ and DL_PROMISCOFF_REQ primitives (with the
DL_PROMISC_PHYS flag set in the dl_levelfield) enable or
disable 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 values. When used with the
DL_PROMISC_MULTI flag (set), this enables or disables recep-
tion of all multicast group addresses. The affect of each
primitive is always on a per-stream basis, and is indepen-
dent of the other sap and physical level configurations on
this stream (or other streams). In the DL_PHYS_ADDR_ACK mes-
sage, the DL_PHYS_ADDR_REQ primitive returns the 6-octet
FDDI address (in canonical form) currently associated with
the stream. This primitive is valid only in states following
a successful DL_ATTACH_REQ. The driver also supports the
following ioctls (I/O controls): DLIOCRAW, SL_RAW,
SL_DATA_ENABLE, SL_DATA_DISABLE, and DRV_CONFIG. As defined
by Solaris, the DLIOCRAW ioctl puts the stream into raw
mode, which causes the driver to send the full MAC -level
packet up the stream in an M_DATA message, instead of
transforming it to the DL_UNITDATA_IND form. On this stream,
the driver will also accept formatted M_DATA messages for
transmission. To disable raw mode, the stream must be
closed. The DLIOCRAW ioctl requires no arguments. As defined
by Rockwell, the SL_RAW ioctl puts the stream into raw mode,
similar to the DLIOCRAW ioctl except that the frame-type
field of the MAC header is considered to be a long word
instead of a byte, preserving alignment. The SL_RAW ioctl
requires no arguments. As defined by Rockwell, the
SL_DATA_ENABLE and SL_DATA_DISABLE ioctls enable or disable
the transmission of data on the stream. By default,
transmission is enabled. The SL_DATA_ENABLE and
SL_DATA_DISABLE ioctls require no arguments.
FILES
/dev/sxp
SXP special character device
kernel/drv/sys_core
SXP loadable module
kernel/drv/sxp.conf
SXP configuration file
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Architecture | x86 |
|_____________________________|_____________________________|
SEE ALSO
attributes(5), dlpi(7P), rns_smt(7D)
Man(1) output converted with
man2html