sk98sol(7D)




NAME

     sk98sol - 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 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
     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 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
     file.

     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.


OPTIONS

     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.

  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 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.

     DuplexCapabilities_?

     Type:                         String
     Values:                       Half, Full, Both
     Default:                      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.

     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
           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."

     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 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.

  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,  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.

     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  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.)

     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 performs better with only smaller
     frames copied.

     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-
               address="2" AutoNegotiation_A="Off";

               name="sk98sol"     parent="/pci@1f,2000"     unit-
               address="2" AutoNegotiation_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
           ELF kernel module (64-bit SPARC version)

     /kernel/drv/sk98sol.conf
           Driver configuration file


ATTRIBUTES

     See attributes(5) for descriptions of the  following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    | Architecture                | IA, SPARC                   |
    |_____________________________|_____________________________|


SEE ALSO

     ifconfig(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.


Man(1) output converted with man2html