sk98sol - SysKonnect Gigabit Ethernet SK-98xx device driver
The sk98sol driver is a multi-threaded, loadable, clonable,
STREAMS hardware driver supporting the connectionless Data
Link Provider Interface (DLPI), over a SysKonnect Gigabit
Ethernet adapter (SK-98xx series). The driver supports mul-
tiple installed SysKonnect SK-98xx adapters. Functions
include chip initialization, frame transmit and receive,
multicast and promiscuous support, and error recovery and
APPLICATION PROGRAMMING INTERFACE
The driver provides the /dev/skge cloning character-special
device as well as per-adapter character-special devices
/dev/skgex, where x represents the device instance number.
sk98sol and DLPI
The sk98sol driver is a Style 1 and Style 2 Data Link Ser-
vice (DLS) provider. All M_PROTO and M_PCPROTO type mes-
sages are interpreted as DLPI primitives. Valid DLPI prim-
itives are defined in <sys/dlpi.h>. See dlpi(7P).
An explicit DL_ATTACH_REQ message by the user is required to
associate the opened Stream with a particular device (ppa).
This is unnecessary and invalid for DLPI Style 1. The ppa ID
is interpreted as an unsigned long data type and indicates
the corresponding device instance (unit) number. 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 the system.
The device is initialized on first attach and de-initialized
(stopped) upon last detach. Valid device numbers for all
detected adapters are displayed on the console at driver
startup time and are written to the /var/adm/messages log
The values returned in the DL_INFO_ACK primitive in response
to the DL_INFO_REQ request are:
o Maximum SDU is 1500 (9000 if JumboFrames are enabled).
o Minimum SDU is 0.
o DLSAP address length is 8 bytes.
o MAC type is DL_CSMACD.
o SAP length value is -2, meaning the physical address
component is followed immediately by a 2-byte SAP com-
ponent within the DLSAP address.
o Service mode is DL_CLDLS.
o Optional quality of service (QOS) support is not
included; as a result, the QOS field values are 0.
o Provider style is DL_STYLE2.
o Version is DL_VERSION_2.
Parameters are set in the /kernel/drv/sk98sol.conf confi-
guration file, which is created during installation. See
driver.conf(4). You can edit the /kernel/drv/sk98sol.conf
file to reflect your settings and reboot the system to use
the new parameter values. If the file exists prior to driver
installation, the new parameter values will be used as soon
as the driver is installed.
String parameter values must be surrounded with double
quotes ("), while integer parameter values are not. Parame-
ter names and values are case sensitive and you should use
them exactly as shown.
The parameters discussed in this section can be set for each
port on the adapter.
In each of the following descriptions, ? represents port A
Values: On, Off, Sense
Default: Sense (for SK-984x fiber
Default: On (for SK-982x copper adapters.)
The Sense value automatically detects whether the link
partner supports autonegotiation. If your link partner is
configured to half duplex with autonegotiation turned off,
set the AutoNegotiation_? and DuplexCapabilities_? parame-
ters manually. Do not set the AutoNegotiation_? parameter
value to Sense, as it will fail.
Do not use Sense for 1000Base-T (copper) adapters. If Sense
is selected, it will be mapped to On automatically.
Values: Half, Full, Both
Set the DuplexCapabilities_? parameter only if the AutoNego-
tiation_? parameter is set to the On or Off values. If
AutoNegotiation_? is set to On, all three AutoNegotiation_?
values are possible; however, if set to Off, only the Full
and Half values are allowed.
Use the DuplexCapabilities_? parameter if your link partner
does not support all possible combinations.
Values: Sym, SymOrRem, LocSend, None
Use the FlowControl_? parameter to set the flow control
capabilities reported by the port during autonegotiation:
Sym Symetric flow control, where both link partners are
allowed to send PAUSE frames.
SymetricOrRemote flow control, where both link
partners or only the remote partner are allowed to
send PAUSE frames.
LocalSend flow control, where only the local link
partner is allowed to send PAUSE frames.
None No flow control, where no link partner is allowed to
send PAUSE frames.
The FlowControl_? parameter is ignored if AutoNegotiation_?
is set to "Off."
Values: Auto, Master, Slave
Use the Role_? parameter only for the SK-9821 and SK-9822
1000Base-T communication between two ports requires one port
to act as the master (and provide timing information) and
the other as slave. Normally, this is negotiated between the
two ports during link establishment. If this fails, use the
Role_? parameter to force the master and slave roles on the
ports. If AutoNegotiation_? is set to "Off," then the
Role_? parameter must be set manually.
Values: A, B
Use the PreferredPort parameter to force the preferred port
to A or B (on two-port NICs). The preferred port is the port
selected if both ports are detected as fully functional.
Values: 1, 2, 3
RLMT (Redundant Link Management Technology) provides three
modes to determine if a port is available for use.
1. Check link state only: use the link state reported by the
adapter hardware for each individual port.
2. Check other port: RLMT sends test frames from one port to
another and checks if they are received. The ports must
be connected to the network that allow LLC test frames
to be exchanged (that is, networks without routers
between the ports).
3. Check other port and segmentation: RLMT checks the other
port and also requests information from the Gigabit Eth-
ernet switch next to each port to determine if the net-
work is segmented between the ports. Only use this mode
if you have Gigabit Ethernet switches installed and con-
figured to use the Spanning Tree protocol.
Note that modes 2 and 3 are meant to operate in configura-
tions where a network path exists between the ports on a
single adapter. They are not designed to work in networks
where adapters are connected back-to-back.
Values: Off, On
To enable support for JumboFrames (frames with a length of
up to 9014 bytes), set JumboFrames to "On." Because longer
frames reduce operating system overhead, JumboFrames
increases network throughput.
For full JumboFrames support, the maximum transfer unit
(MTU) size used by TCP/IP must also be changed by using the
ifconfig(1M) command. To do this, remove the comment sign
(#) before the ifconfig line in the /etc/rcS.d/S50sk98sol
file. You should also ensure that the adapter device number
(skge0) matches the attach number displayed during system
startup. The MTU must be set to 9000, not including the 14
bytes of MAC address header.
JumboFrames can only be used if all equipment in your sub-
network supports them; currently many switches do not sup-
port JumboFrames). Devices without Jumbo Support will drop
the longer frames (and might report them as error frames).
If you experience problems with this, connect two SK-98xx
adapters (with JumboFrames enabled) back-to-back.)
During transmit, the driver relies on the frame's physical
memory address to tell the hardware where to find the frame
data. Setting up the DMA address can take time on Solaris;
it may be more convenient to copy the frame data to a buffer
that you have set up in advance. All frames with a length
less than or equal to the CopyThreshold parameter value are
copied into buffers; for longer frames, the real DMA setup
is done. By default (without JumboFrames support), all
frames are copied. You can experiment with this parameter
to find out if your system performs better with only smaller
To use more complex syntax for setting different parameters
on multiple adapters, see driver.conf(4). For example:
name="sk98sol" parent="/pci@1f,4000" unit-
name="sk98sol" parent="/pci@1f,2000" unit-
If multiple NICs are installed in the system, the following
message may appear on the console and in the
/var/adm/messages log file:
Allocation of descriptor memory failed
You can avoid this message by tuning the lomempages kernel
parameter. By default, the value of this parameter is 36
pages. Each SK-98xx adapter requires a determined number of
pages, so increase the value of the lomempages parameter in
increments of ten pages until all NICs in the system run
To modify the value of this parameter to 46 pages, append
the set lomempages=46 line to the /etc/system file and
reboot the system.
Character special device
Per-adapter character special device, where x is the
ELF kernel module
ELF kernel module (64-bit SPARC version)
Driver configuration file
See attributes(5) for descriptions of the following attri-
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
| Architecture | IA, SPARC |
ifconfig(1M), netstat(1M), driver.conf(4), attributes(5),
sk98sol.txt driver README file - Included in the driver
package; also available from www.syskonnect.com.
Man(1) output converted with