sk98sol(7D) Devices sk98sol(7D)NAMEsk98sol - SysKonnect Gigabit Ethernet SK-98xx device driver
SYNOPSIS
/dev/skge
/kernel/drv/sk98sol
DESCRIPTION
The sk98sol driver is a multi-threaded, loadable, clonable, STREAMS
hardware driver supporting the connectionless Data Link Provider Inter‐
face (DLPI), over a SysKonnect Gigabit Ethernet adapter (SK-98xx
series). The driver supports multiple installed SysKonnect SK-98xx
adapters. Functions include chip initialization, frame transmit and
receive, multicast and promiscuous support, and error recovery and
reporting.
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 rep‐
resents the device instance number.
sk98sol and DLPI
The sk98sol driver is a Style 1 and Style 2 Data Link Service (DLS)
provider. All M_PROTO and M_PCPROTO type messages are interpreted as
DLPI primitives. Valid
DLPI primitives 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 file.
The values returned in the DL_INFO_ACK primitive in response to the
DL_INFO_REQ request are:
· Maximum SDU is 1500 (9000 if JumboFrames are enabled).
· Minimum SDU is 0.
· DLSAP address length is 8 bytes.
· MAC type is DL_CSMACD.
· SAP length value is -2, meaning the physical address component is
followed immediately by a 2-byte SAP component within the DLSAP
address.
· Service mode is DL_CLDLS.
· Optional quality of service (QOS) support is not included; as a
result, the QOS field values are 0.
·
Provider style is DL_STYLE2.
· Version is DL_VERSION_2.
OPTIONS
Parameters are set in the /kernel/drv/sk98sol.conf configuration 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. Parameter names and values are
case sensitive and you should use them exactly as shown.
Note - You can increase sk98sol performance by tuning certain TCP and
UDP parameters. However, you should be aware that this act may
adversely impact the performance of other network cards.
To tune specific parameters to increase sk98sol performance, do
the following:
ndd -set /dev/tcp tcp_xmit_hiwat 65536
ndd -set /dev/tcp tcp_xmit_lowat 32768
ndd -set /dev/tcp tcp_recv_hiwat 65536
ndd -set /dev/udp udp_xmit_hiwat 65536
ndd -set /dev/udp udp_xmit_lowat 327
ndd -set /dev/udp udp_recv_hiwat 65536
Per-Port Parameters
The parameters discussed in this section can be set for each port on
the adapter.
In each of the following descriptions, ? represents port A or B.
AutoNegotiation_?
Type: String
Values: On, Off, Sense
Default: Sense (for SK-984x fiber
adapters).
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 DuplexCapa‐
bilities_? parameters manually. Do not set the AutoNegotiation_? param‐
eter 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.
DuplexCapabilities_?
Type: String
Values: Half, Full, Both
Default: Both
Set the DuplexCapabilities_? parameter only if the AutoNegotiation_?
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.
FlowControl_?
Type: String
Values: Sym, SymOrRem, LocSend, None
Default: SymOrRem
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.
SymOrRem SymetricOrRemote flow control, where both link partners
or only the remote partner are allowed to send PAUSE
frames.
LocSend LocalSend flow control, where only the local link part‐
ner 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."
Role_?
Type: String
Values: Auto, Master, Slave
Default: Auto
Use the Role_? parameter only for the SK-9821 and SK-9822 adapters.
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 estab‐
lishment. 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.
Per-Adapter Parameters
PreferredPort
Type: String
Values: A, B
Default: A
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.
RlmtMode
Type: integer
Values: 1, 2, 3
Default: 1
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, net‐
works without routers between the ports).
3. Check other port and segmentation: RLMT checks the other port and
also requests information from the Gigabit Ethernet switch next to
each port to determine if the network is segmented between the
ports. Only use this mode if you have Gigabit Ethernet switches
installed and configured to use the Spanning Tree protocol.
Note that modes 2 and 3 are meant to operate in configurations 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.
JumboFrames
Type: String
Values: Off, On
Default: Off
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 subnetwork sup‐
ports them; currently many switches do not support JumboFrames).
Devices without Jumbo Support 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.)
CopyThreshold
Type: Integer
Values: 0-1500
Default: 1500
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 per‐
forms better with only smaller frames copied.
To use more complex syntax for setting different parameters on multi‐
ple adapters, see driver.conf(4). For example:
name="sk98sol" parent="/pci@1f,4000" unit-address="2" AutoNe‐
gotiation_A="Off";
name="sk98sol" parent="/pci@1f,2000" unit-address="2" AutoNe‐
gotiation_B="Sense";
DIAGNOSTICS
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 correctly.
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.
FILES
/dev/skge Character special device
/dev/skgex Per-adapter character special device,
where x is the adapter ppa
/kernel/drv/sk98sol ELF kernel module
/kernel/drv/sparcv9/sk98sol 64-bit ELF kernel module
/kernel/drv/sk98sol.conf Driver configuration file
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
┌─────────────────────────────┬─────────────────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
│Architecture │IA, SPARC │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOifconfig(1M), netstat(1M), driver.conf(4), attributes(5), dlpi(7P).
sk98sol.txt driver README file — Included in the driver package; also
available from www.syskonnect.com.
SunOS 5.10 19 May 2003 sk98sol(7D)