sxp(7D) Devices sxp(7D)NAMEsxp - 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:
· The maximum SDU is 4500.
· The minimum SDU is 0.
· The DLSAP address length is 8 (always true in the Solaris environ‐
ment).
· The address offset is 0 (prior to being attached).
· The MAC type is DL_FDDI.
· The sap length value is −2, which indicates that within the DLSAP
address, the physical address component is followed immediately by
a 2-byte service access point ( SAP ) component.
· The service mode is DL_CLDLS.
· The quality of service (QOS) fields are 0, because optional QOS is
not supported.
· The provider style is DL_STYLE2.
· 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 encapsu‐
lation without the need for a DL_SUBS_BIND_REQ. Note that DL_HIERAR‐
CHIAL_BIND class DL_SUBS_BIND_REQs are only supported 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) compo‐
nents. 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 primi‐
tives, 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 recep‐
tion 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 independent of the other sap and
physical level configurations on this stream (or other streams). In the
DL_PHYS_ADDR_ACK message, 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 con‐
trols): DLIOCRAW, SL_RAW, SL_DATA_ENABLE, SL_DATA_DISABLE, and DRV_CON‐
FIG. 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_UNIT‐
DATA_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 align‐
ment. 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 argu‐
ments.
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 attributes:
┌─────────────────────────────┬─────────────────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├─────────────────────────────┼─────────────────────────────┤
│Architecture │x86 │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOattributes(5), dlpi(7P)SunOS 5.10 1 Jan 1997 sxp(7D)