QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1140|回复: 1

sk98sol驱动在solaris下面的资料

[复制链接]
发表于 2005-5-24 23:13:16 | 显示全部楼层 |阅读模式
http://www.syskonnect.com/support/driver/readme/gesol/skge_amd.html

[quote]

©Copyright 1998-2005 Marvell®.
All rights reserved.

skge.htm created 17-Mar-2005

Readme File for skge v8.10.3.2 (beta) SysKonnect Gigabit Ethernet Adapter
families driver for Solaris


This file contains

      1  Overview
      2  Required files
      3  Installation
            3.1  Installation using "pkgadd"
            3.2  Installation using "admintool"
            3.3  Procedures during installation
            3.4  Deinstallation
            3.5  Adding adapters
      4  Driver parameters
            4.1  Port parameters
            4.2  Adapter parameters
            4.3  Global driver parameters
      5  Dual Net operation mode
      6  VLAN configuration and parameters
            6.1  VLAN configuration using the script "skge_vlan_config"
            6.2  Manual VLAN configuration
      7  PCI Hot Plug and power management
            7.1  PCI Hot Plug
            7.2  Power Management
      8  Tuning
      9  "ndd" support
      10  Virtual Cable Tester(TM) (VCT)
      11  Troubleshooting
      12  Error messages

1  Overview

The skge driver supports the SysKonnect SK-98xx, SK-95xx and SK-9Sxx
Adapter families on Solaris 7 up to Solaris 10. Both SPARC and x86
systems with a PCI 64/32 bit bus are supported by the respective driver
version. For all supported Solaris SPARC versions up to Solaris 9 there
are both 32 and 64 bit drivers, for Solaris 10 there is only a 64 bit
driver available.

The skge driver also supports the SK-9Exx Adapter family on x86 platforms
with a PCI Express bus on Solaris 9 9/04 and Solaris 10.

Make sure you have the correct version.

This package supports Solaris/x64 in 64 bit mode.

2  Required files

The driver installation package files are located in the "SKGEsolx"
subdirectory on the SysKonnect driver CD-ROM. You may copy this directory
to a location of your choice on your system, as long as you do not change
the files within the directory.

3  Installation

There are two tools available for installation: 'pkgadd' and 'admintool'.
'pkgadd' runs from the command line, while 'admintool' uses the graphical
interface.

NOTE: If you want to configure an adapter for the use of VLANs, you
      have to do this after driver installation is finished. Please refer
      to section 6 for details.

Before installing the driver package, the package has to be copied from
the SysKonnect installation CD-ROM or downloaded from the SysKonnect
web site.

To install the package from the SysKonnect installation CD-ROM, proceed as
follows:

1. Insert the installation CD-ROM into your CD-ROM drive.
2. On the start page, click "Drivers".
   A list showing all available network technologies is displayed.
3. Select the network technology "Gigabit Ethernet".
4. Select the product family "SK-98xx Gigabit Ethernet Adapter family".
   A list showing all available network adapters of this product family
   is displayed.
5. Select your network adapter, e.g. "SK-9821".
   A list showing all available drivers for this adapter is displayed.
6. Select the appropriate driver package for your platform from the list,
   e.g. "Solaris 7/8/9 (SPARC64)".
   The readme file is displayed.
7. To download the driver package click the button "Browse the driver
   directory" on top of the page.
   The directory containing the subdirectory "SKGEsolx" is displayed.
8. Now you can copy the subdirectory "SKGEsolx", which contains the driver
   package, to a directory of your choice or you can install the driver
   directly from the CD-ROM.
   Do not change the files within the subdirectory "SKGEsolx"!

To download the driver package from the SysKonnect web site, proceed as
follows:

1. Go to the SysKonnect web site: www.syskonnect.com.
2. Select "Driver Library".
   A list showing all available network technologies is displayed.
3. Select the network technology "Gigabit Ethernet".
4. Select the product family "SK-98xx Gigabit Ethernet Adapter family".
   A list with all available drivers is displayed.
5. Select the needed driver, e.g. "SUN Solaris 7, 8 and 9 (Sparc 64-bit
   Edition)", from the list.
6. Download the packed driver package (<package_name>.tar.Z) to a
   directory of your choice.
7. Unpack the file <package_name>.tar.Z with the command:
     uncompress <package_name>.tar.Z
   The unpacked file will have the following format:
   <package_name>.tar
8. Untar this file with the command:
     tar -xvf <package name>.tar
   The result is the subdirectory "SKGEsolx" containing the driver package.
   In your actual directory you will also find the driver readme file as
   a text version (skge.txt) and as a HTML version (skge.htm).
   Do not change the files within the subdirectory "SKGEsolx"!

WARNING: The Solaris 7, 8, 9 or 10 OS x86 editions have a very old
         SysKonnect driver installation package "SK98sol" included.
         If you are using one of the mentioned editions and if you had
         one or more SysKonnect adapters installed on your machine during
         installation of Solaris x86, Solaris had automatically added the
         "SK98sol" driver installation package to the machine.

         Due to this the installation of "SKGEsolx" will fail until you have
         removed the old package with the following command:
           pkgrm SK98sol

Now you are able to install the driver package on your system.



3.1  Installation using "pkgadd"

There are two possibilities to install the driver using 'pkgadd':
- Manual installation (user input required)
- Automatic installation (no user input required)

Manual installation with "pkgadd"
---------------------------------
To install the driver using 'pkgadd', proceed as follows:

1. Go to the directory where the driver subdirectory "SKGEsolx"
   is located.
2. Execute 'pkgadd':
     pkgadd -d . SKGEsolx
   A shell window will come up and you will be asked whether you
   want to configure IP interfaces during installation or not.
3. If yes, enter name, IP address and network number for every interface
   you want to set up (in case you have more than one adapter installed
   on your system).
   After 'pkgadd' has run, the adapter is fully functional.
4. If no, only the driver will be loaded and you have to configure all
   interfaces manually.

   In both cases the system prompts you to reboot after successful
   installation, but this may be ignored.



Automatic installation with "pkgadd"
------------------------------------
During automatic installation, no input from the user is required.
After 'pkgadd' has run, the driver is added to the system, but no IP
interfaces have been attached to it. You have to do this manually
after installation is finished.

To start automatic installation, proceed as follows:

1. Go to the directory where the driver subdirectory "SKGEsolx"
   is located.
2. To suppress user interaction, create a response file named response
   in the working directory (or choose any other name and/or location)
   that is used by 'pkgadd' during installation:
     Execute:  touch response
3. The file must exist but remains empty.
4. Now check the admin file /var/sadm/install/admin/default for the
   following entry:
     action=ask
5. This entry has to be set to
     action=nocheck
   Otherwise you will be prompted to allow execution of commands that
   need root authority during installation.
6. The file /var/sadm/install/admin/default is not writable. To assign
   the value above, create a new admin file named default in the working
   directory (or choose any other name and/or location).
   For more information on the admin file, refer to the man page admin(4).
7. Execute the 'pkgadd' command with the following options:
     pkgadd -d . -r ./respone -a ./default SKGEsolx
8. If necessary exchange ./response and/or ./default with the name
   and/or location you have chosen for the response and/or admin file.
   Now the package will be installed without any further input needed.
   
   After successful installation the system will prompt you to reboot,
   but this may be ignored.



3.2  Installation using "admintool"

NOTE: 'admintool' is obsolete since Solaris 9 and can't any longer
      be used for software package installation or removal.

To install the driver using 'admintool', proceed as follows:

1. Start 'admintool'.
2. Select Browse->Software.
3. Select Edit->Add.
4. In the dialog box, select the location of the "SKGEsolx" subdirectory.
   The left panel shows the available software packages.
5. Select "SysKonnect Gigabit Ethernet Adapter families".
6. Press "Add".
   A shell window will come up and you will be asked whether you
   want to configure IP interfaces during installation or not:
7. If yes, enter name, IP address and network number for every interface
   you want to set up (in case you have more than one adapter installed
   on your system).
   Once you have entered all information, every adapter with a configured
   interface is fully functional.
8. If no, only the driver will be loaded and you have to configure all
   interfaces manually.
   
   In both cases 'admintool' will prompt you to reboot after successful
   installation, but this may be ignored.



3.3  Procedures during installation

This is a short description of what happens during installation. This
information is not needed to install and use the driver but it may
be useful if any problems occur:

- The driver software package is added to the Solaris package database.
- The driver binary is copied to /kernel/drv (or /kernel/drv/amd64 on
  64 bit systems).
- The sample configuration file skge.conf is copied to /kernel/drv.
- The startup script S50skge for modifying network settings is copied
  to /etc/rcS.d.
- The VLAN configuration script skge_vlan_config is copied to /usr/sbin.
- The man page skge.7d is copied to /usr/share/man/man7d.
- The driver is added to the system and loaded with the add_drv command.
- If you do not choose automatic installation, the following entries are
  made for each adapter:
  -- a line with the IP address and interface name is added to /etc/hosts
  -- a line with the network address and netmask is added to /etc/netmasks
  -- a file /etc/hostname.skgeX is created, where X is the number to
     which the adapter is attached. The file contains only one line with
     the name of the corresponding interface.
- If you do not choose automatic installation, the IP interface(s) is
  (are) started with the 'ifconfig' command.



3.4  Deinstallation

NOTE: In case you have changed the configuration settings in the skge.conf
      file and you want to keep the settings, make a backup file before
      deinstalling the driver.

To remove the driver, proceed as follows:

1. Enter:       pkgrm SKGEsolx
2. Remove all according lines with the IP addresses in /etc/hosts.
3. Remove all according lines with the netmasks in /etc/netmasks.



3.5  Adding adapters

There are two ways of adding additional adapters to an existing
installation:
- Remove the driver with 'pkgrm', insert the additional adapters,
  and then reinstall the driver with 'pkgadd'.
- Add the necessary adapters manually.

Using 'pkgrm' and 'pkgadd'
--------------------------
To add additional adapters using 'pkgrm', proceed as follows:

1. Enter : pkgrm SKGEsolx
   You do not need to clean up /etc/hosts, /etc/netmasks, and the
   configuration file.
2. Insert the additional adapter(s).
3. Reinstall the driver with 'pkgadd'.
4. Use the same interface name(s) as before.
   The corresponding entries will be found and can be reused.
5. In case the addresses have been swapped after reinstallation, swap the
   numbers of the corresponding /etc/hostname.skgeX files (or simply swap
   the cables).
6. Reboot (may not be done).

Manual addition
---------------
To manually add additional adapters, proceed as follows:

1. Look in /etc/path_to_inst for lines including "skge" before and
   after installation of the additional adapter(s) to find out which
   instance number to use for the hostname.skgeX file.
2. Insert the additional adapter(s).
3. Enter the necessary entries for each additional adapter (IP address,
   interface name, network address, netmask) in the corresponding files
   as described above under "Procedures during installation".
4. Reboot (may not be done).
5. Look in /etc/path_to_inst again (see step 1).

4  Driver parameters

All parameters can be set using the file skge.conf as described below.
But some parameters can be changed using the 'ndd' tool without the
necessity to unload the driver. These parameters are:

- Speed_A, Speed_B
- LinkMode_A, LinkMode_B
- FlowControl_A, FlowControl_B
- Role_A, Role_B
- PreferredPort
- RlmtMode

The LinkMode parameter is a combination of the AutoNegotiation_?_InstX
and DuplexCapabilities_?_InstX parameters as described in section 4.1.
Please refer to section 9 for a description of the 'ndd' handling.

The file skge.conf in the directory /kernel/drv is created during
installation, but does only contain comments. Edit it to review your
settings. The syntax for this file is (see also: 'man driver.conf'):

- for string parameters:
  ParamName="string";

- for integer parameters:
  ParamName=value;

WARNING: All parameters and values are case sensitive. Write them
         exactly as shown here!
         All parameters have to be followed by a semicolon!

Parameters in this file will be used immediately if you create
this file before installing the driver (Installation will then ask
to overwrite the file). If you change it while the driver is already
running, you have three possibilities to use the new settings:

- Reboot the system.
- Unload the driver with rem_drv and load it again with add_drv.

Please refer to section 5 for details about these two ways.

- Unload and reload the driver with modunload/modload.

NOTE: modunload/modload does not reload the driver parameters on
      Solaris 10, so this method does not work.

Unload and reload the driver with modunload/modload
---------------------------------------------------
To use this possibility, proceed as follows:

1. Deactivate the IP interfaces of all adapters with the following
   command executed for each interface:
     ifconfig <interface_name> unplumb

   Example: ifconfig skge0 unplumb

2. Make sure that no other application or OS daemon is connected to
   any of the adapters.

3. First you need the module ID of the skge driver. You can retrieve it
   by entering the following command:
     modinfo | grep skge

   You will see one line like this:

     "69 1026bb64  322bb  67   1  skge ...

   The module ID is the first value in the row above, in our example "69".
   This ID is needed to unload the driver with the command modunload.
4. Remove the driver module from the kernel with the command:
     modunload -i <module_id>

   If there are any remaining connections to any of the adapters
   (see steps 1 and 2), you will see the following error messages:

     "can't unload the module: Device busy"

5. Exchange <module_id> with the value from step 3.
6. Load the driver again into the kernel with the command
     modload /kernel/drv/sparcv9/skge

   on a 64 bit system or with the command
     modload /kernel/drv/skge

   on a 32 bit system.

   For more details about modinfo, modunload or modload, please refer
   to the manual pages by executing the commands 'man modinfo', 'man
   modunload' or 'man modload' accordingly.
7. After loading the driver, set up the IP interfaces manually using the
   ifconfig command. To start the interfaces, enter the following command
   for each interface:
     ifconfig skge<X> plumb <hostname> up
8. Exchange <X> with the interface number.
9. Exchange <hostname> with the hostname you have chosen in /etc/hosts
   for the IP address.



4.1  Port parameters

These settings are available for each port on the adapter.
In the following description, '?' stands for the port for
which you set the parameter (A or B), 'X' stands for the
instance number of the adapter.

AutoNegotiation_?_InstX
-----------------------
Type:          string
Default value: "On"
Valid values:  "On"
               "Off"
               "Sense"

The "Sense"-mode automatically detects whether the link
partner supports auto-negotiation or not.                 

NOTE: "Sense"-mode will fail if your link partner is configured to
      half-duplex with no auto-negotiation enabled. AutoNegotiation_? and
      DuplexCapabilities_? have to be set manually in this case.

NOTE: "Sense"-mode is not possible with 1000Base-T (copper) adapters.
      If you select "Sense", it will be mapped to "On" automatically.

DuplexCapabilities_?_InstX
--------------------------
Type:          string
Default value: "Both"
Valid values:  "Half"
               "Full"
               "Both"

"Both": Port can connect with full-duplex and half-duplex.
"Full": Port connects with full-duplex.
"Half": Port connects with half-duplex.

NOTE: This parameter is ignored if 'AutoNegotiation' is set to "Sense".

If auto-negotiation is set to "On", all three values are possible. If it
is set to "Off", only "Full" or "Half" are allowed. This parameter is
useful if your link partner does not support all possible combinations.

FlowControl_?_InstX
-------------------
Type:          string
Default value: "SymOrRem"
Valid values:  "Sym"
               "SymOrRem"
               "LocSend"
               "None"

This parameter can be used to set the flow control capabilities
the port reports during auto-negotiation.

The values represent the following configurations:
- "SymOrRem" = SymmetricOrRemote
  Both or only the remote link partner are allowed to send PAUSE frames
  (possible results: symmetrical flow control, asymmetrical flow control
  towards local station, no flow control).
- "Sym" = Symmetric
  Both link partners are allowed to send PAUSE frames (possible results:
  symmetrical flow control, no flow control).
- "LocSend" = LocalSend
  Asymmetrical flow control to other station: only the local link partner
  is allowed to send PAUSE frames (possible results: flow control to other
  station, no flow control).
- "None"
  No link partner is allowed to send PAUSE frames (possible result:
  no flow control).

NOTE: This parameter is ignored if auto-negotiation is set to "Off".

JumboFrames_?_InstX
-------------------
Type:          string
Default value: "Off"
Valid values:  "On"
               "Off"  

NOTE: This parameter is only valid in Dual Net mode. For Single Net
      mode and further details about Jumbo Frames please refer to
      section 4.2 (adapter parameters).

Role_?_InstX
------------
Type:          string
Default value: "Auto"
Valid values:  "Auto"
               "Master"
               "Slave"

This parameter defines the role of the port for the physical clock
generation. In order for two 1000Base-T ports to communicate, one must
take the role as master (providing timing information), while the other
must be slave. Usually, this is negotiated between the two ports during
link establishment. If this fails, a port can be forced to a specific
setting with this parameter.

NOTE: This parameter is only valid for 1000Base-T adapters (SK-982x,
      SK-9821 V2.0, SK-9521 V2.0, SK-9S2x, SK-9E21D and SK-9E2x).

NOTE: If auto-negotiation is set to "Off", the correct role must be set
      manually.

Speed_?_InstX
-------------
Type:          string
Default value: "Auto"
Valid values:  "Auto"
               "1000"
               "100"
               "10"

This parameter sets the link speed of the port to the specified
value. If you choose "Auto", the adapter will negotiate the speed
with the link partner automatically.

NOTE: This parameter is only valid for SK-9521 V2.0, SK-9821 V2.0,
      SK-9S2x, SK-9E21D and SK-9E2x adapters.



4.2  Adapter parameters

In the following description, 'X' stands for the instance number of
the according adapter.

PreferredPort_InstX
-------------------
Type:          string
Default value: "A"
Valid values:  "A"
               "B"

This parameter determines the preferred port RLMT (Redundant Link
Management Technology) will use for all network traffic, if more
than one port has an active link to the network.

NOTE: This parameter is only valid for dual port adapters.

RlmtMode_InstX
--------------
Type:          string
Default value: "CLS"
Valid values:  "CLS
               "CLP"
               "CLPSS"
               "DualNet"

Use this parameter to set the operational mode for the Redundant
Link Management Technology (RLMT, the driver function that decides
which port to use):

- "CLS" (Check Link State): RLMT uses the link state reported by the
  adapter hardware for each individual port to determine whether a port
  can be used for all network traffic or not.

- "CLP" (Check Local Port): In this mode, RLMT monitors the network
  path between the two ports of an adapter by regularly exchanging packets
  between them. Please configure your network in a way that the link
  between the ports sends LLC test packets. This mode requires a network
  configuration in which the two ports "see" each other (i.e. no router
  between the ports).

- "CLPSS" (Check Local Port and Segmentation Status): This mode
  supports the same functions as the CLP mode, and additionally checks
  network segmentation by sending BPDU hello packets. Thus, this mode is
  only to be used if Gigabit Ethernet switches are installed on the
  network that have been configured to use the Spanning Tree protocol.

- "DualNet": In this mode, the two ports on one adapter are treated
   as separate interfaces, with different IP addresses and independent
   operation. Please refer to section 5 for details.

NOTE: This parameter is only valid for dual port adapters.

NOTE: RLMT modes "CLP" and "CLPSS" are designed to operate in
      configurations where a network path between the ports on one adapter
      exists. Moreover, they are not designed to work where adapters are
      connected back-to-back or for adapters operated in Dual Net mode.
        
NOTE: If the adapter is configured for the use of VLANs, make sure that
      both switch ports belong to the same VLAN as both adapter ports.

RlmtChgBCPrio_InstX
-------------------
Type:          string
Default value: "Off"
Valid values:  "On"
               "Off"
  
This parameter specifies whether received broadcast packets have the
highest priority for the port switch decision ("Off") or not ("On").

NOTE: This parameter is only valid for dual port adapters.

JumboFrames_InstX
-----------------
Type:          string
Default value: "Off"
Valid values:  "On"
               "Off"  

NOTE: This parameter is only valid in Single Net mode. For Dual Net
      mode please refer to section 4.1 (port parameters).

To enable support for Jumbo Frames (frames with a length of up to
9014 bytes or up to 9018 bytes in case of VLAN frames), set this
parameter to "On". Using Jumbo Frames can speed up network throughput,
because longer frames reduce the overhead in the operating system.

For full Jumbo Frame support, the MTU (Maximum Transfer Unit) size
used by TCP/IP must also be changed. This can be done with the
'ifconfig' command.

To change the MTU size, proceed as follows:

1. The file /etc/rcS.d/S50skge contains a line to set MTU size during
   system start. Edit this file.
2. Remove the "#" before the ifconfig line.
3. If necessary, change the adapter device number from skge0 to the
   attached number displayed during driver startup.
4. Set the MTU size to 9000, the 14 bytes of the MAC address header or
   18 bytes in case of a VLAN MAC address header are not counted.
  
NOTE: Jumbo Frames can only be used if all the equipment in your
      subnetwork support Jumbo Frames (many current switches do not)!
      Devices without Jumbo Frame Support will simply drop the longer
      frames (and possibly report them as error frames).
      If problems occur, try to connect two SysKonnect adapters (with
      Jumbo Frames enabled) back-to-back.
      If problems occur, try to connect two SysKonnect (with Jumbo Frames
      enabled) back-to-back.

RxRingSize_InstX
----------------
Type:          integer
Default value: 1280 on SPARC
               128  on Intel and for jumbo frames on both platforms
Valid range:   100 - 5000

NOTE: This parameter is only valid for SK-9521 V2.0, SK-98xx
      and SK-98xx V2.0 adapters.

TxRingSize_InstX
----------------
Type:           integer
Default value:  128
Valid range:    50 - 2500

NOTE: This parameter is only valid for SK-9521 V2.0, SK-98xx
      and SK-98xx V2.0 adapters.

WARNING: If you want to increase the size of the transmit and/or receive
         descriptor rings, bear in mind that every descriptor needs about
         2 KByte of memory for normal ethernet frames and about 10 KByte
         of memory for jumbo frames. If you choose the maximum ring sizes
         for transmit and receive descriptor rings and you have one dual
         link adapter installed, you would need about 300 MByte of memory
         for the descriptors (a dual link adapter has two transmit and two
         receive descriptor rings, one for each port respectively) only!
         
         So it is easily possible that you need too much system memory for
         your installed adapter(s)!
         
         Please check the amount of memory you would need for your chosen
         ring sizes on all installed adapters and compare this value with
         the memory size of your machine (you can obtain this value with
         the command 'prtconf | more').

RxLeSize_InstX
--------------
Type:          integer
Default value: 128
Valid range:   128 - 3968 on single port adapters
               128 - 1920 on dual port adapters

This parameter sets the number of list elements in the receive ring. The
number of receive buffers will be set to the same value automatically.

NOTE: The values must be multiples of 128!

NOTE: This parameter is only valid for SK-9Sxx, SK-9E21D
      and SK-9Exx adapters.

TxLeSize_InstX
--------------
Type:          integer
Default value: 128
Valid range:   128 - 3968 on single port adapters
               128 - 1920 on dual port adapters

This parameter sets the number of list elements in the transmit ring. The
number of receive buffers will be set to the same value automatically.

NOTE: The values must be multiples of 128!

NOTE: This parameter is only valid for SK-9Sxx, SK-9E21D
      and SK-9Exx adapters.

CopyThreshold_InstX
-------------------
Type:          integer
Default value: 1500
Valid range:   46 - 1500

During transmit, the driver needs the physical memory address of
frames to inform the hardware where to find the frame data.
Setting the DMA address on Solaris is rather slow, so in many cases
it is faster to copy the frame data to a buffer that has been set up
in advance during driver load.
All frames with a length <= CopyThreshold are copied to such buffers.
For longer frames, the real DMA setup is executed.
By default (without Jumbo Frame support!), all frames are copied. You
can experiment with this parameter to find out if your system performs
better with only smaller frames copied.

Ignore_LenErr_InstX
-------------------
Type:          string
Default value: "Off"
Valid values:  "Off"
               "On"

Ignore_LenErr_InstX can be used as a workaround for the EDP frame
problem. EDP (Extreme Discovery Protocol) is a proprietary protocol
that is used by Extreme Gigabit switches to exchange information about
connected switches etc. These frames (at least the ones we have seen
on a Extreme Summit 1) have a length field indicating 316 bytes, but
a real frame length of 338 bytes. Such frames are counted by the MAC
in the InRangeLength error counter, which is one of the counters that
is summed up to form the counter "input errors". The counter even goes
up if the frames are received only in the MAC and dropped immediately.
These frames go to a constant MAC address of 00:e0:2b:00:00:00, which
is normally not received by the driver, except in promiscuous mode.

In the output of 'netstat -I skgeX', these errors are visible as "input
errors", going up two times per second in bigger installations (multiple
Extreme switches).

To avoid this, the parameter Ignore_LenErr_InstX has been introduced. If
it is set to "On" in the configuration file skge.conf, the InRangeLength
errors are not added to the "input errors".

Note that the frames are in fact incorrect and so they must be counted.
But if you are puzzled by the error counter going up, you can set this
parameter. To verify if you are really have this kind of problem, the
InRangeLength error counter can be viewed by using 'netstat -k skgeX'
(Solaris 10: 'kstat -m skge -i X').
The error will show up under the label "inrangeerr".

DescrPollTime_InstX
-------------------
Type:          integer
Default value: 250
Valid values:  0 to 250

DescrPollTime_InstX can be used as a workaround for a possible hang-up
of the data transmission over one link due to a hardware timing problem.
Please do not change the default value without contacting the SysKonnect
support for further advice!

HwChecksum_InstX
----------------
Type:          string
Default value: "On"
Valid values:  "On"
               "Off"

This parameter is used to disable the hardware checksum offload for
TCP/IP. There should be no need to disable checksum offload.

If you want to check the status of the hardware checksum offload for
an interface belonging to the adapter with instance number X, please
enter the following commands:

     ndd -set /dev/skge device X (if not set already)
     ndd /dev/skge hw_checksum

You will see the actual value of HwChecksum_InstX and a message
if hardware checksum offload is really used or not. It will not be
used on Solaris 7 only.

For more details about 'ndd' refer to section 8.

InterruptModeration_InstX
-------------------------
Type:          string
Default value: "On"
Valid values:  "On"
               "Off"

This parameter is used to enable/disable dynamic interrupt moderation.

If more than the specified rate of interrupts per second occur, the
function interrupt moderation groups these interrupts so that several
data packets can be handled per interrupt. This will lead to lower CPU
utilization but may increase the latency.

MaxInterrupts_InstX
-------------------
Type:          integer
Default value: 7500
Valid range:   1000 - 30000

This parameter specifies the interrupt rate used for interrupt moderation.
If interrupt moderation is set to "Off" it will be ignored.



4.3  Global driver parameters

These parameters will apply to all supported adapters installed on the
system.

DisplayMessages
---------------
Type:          string
Default value: "On"
Valid values:  "Off"
               "Off"

Enable or disable extensive messages during driver load and link up.

5  Dual Net operation mode

The skge driver supports Dual Net mode on dual link adapters. In this
mode, the two ports on one adapter are treated as separate interfaces,
with different IP addresses and independent operation.

To enable Dual Net operation, proceed as follows:

Set the parameter RlmtMode_InstX in skge.conf to 'DualNet'.
X is a placeholder for the instance number of the according adapter.
The number in the interface name of a Single Net adapter is the
required instance number.
skge0 refers to instance number 0, skge1 to instance number 1, etc.

Example: If you want to configure instance 0 for Dual Net mode, you have
         to change the RlmtMode_Inst0 paramter to

         RlmtMode_Inst0="DualNet";

Dual Net interface naming:
Due to the naming of VLANs you can configure for each port (see the next
section for details), the interface number for port B starts at an offset
of 50000 from the number used for port A. The interface of port A always
gets the instance number of the according adapter.

Example: You have configured instance 0 for Dual Net mode. Then interface
         skge0 is used to access port A and interface skge50000
         for port B. You have to configure both interfaces with 'ifconfig'.

When the configuration is finished, you have two possibilities to activate
the changes in skge.conf:

- Reboot the system.
- Unload the driver with rem_drv and load it again with add_drv.

Reboot the system
-----------------
If you want to reboot the system, proceed as follows:

1. Create the file "reconfigure" in the root directory with the following
   command:   
     touch /reconfigure
   This informs the system about the nessecitiy to recreate the /dev and
   /devices directories.
2. Reboot the system.

Unload and reload the driver with rem_drv/add_drv
-------------------------------------------------
To use the second possibility, proceed as follows:

1. Deactivate the IP interfaces of all GE adapters with the following
   command executed for each interface:
     ifconfig <interface_name> unplumb

   Example: ifconfig skge0 unplumb

2. Make sure that no other application or OS daemon is connected to
   any of the GE adapters.
3. Remove the driver from the system with the command:
     rem_drv skge
   
   If there are any remaining connections to any of the GE adapters
   (see steps 1 and 2), you will see the following error messages:
   
     "Device busy
      Cannot unload module: skge
      Will be unloaded upon reboot."

4. Load the driver again into the system with the following command:

     add_drv -m '* 0660 root sys' -i '"pci1148,9000" "pci1148,9e00"
     "pci1148,5021" "pci1148,5041" "pci1148,5043" "pci1148,5051"
     "pci1148,5061" "pci1148,5071" "pci1148,5081" "pci1148,9821"
     "pci1148,9822" "pci1148,9841" "pci1148,9842" "pci1148,9843"
     "pci1148,9844" "pci1148,9861" "pci1148,9862" "pci1148,9871"
     "pci1148,9872" "pci1259,2970" "pci1259,2971" "pci1259,2972"
     "pci1259,2975" "pci1259,2976" "pci1259,2977" "pci1148,121"
     "pci1148,221" "pci1148,321" "pci1148,421" "pci1148,621"
     "pci1148,721" "pci1148,821" "pci1148,921" "pci1148,1121"
     "pci1148,1221" "pci1148,3221"' skge

WARNING:  Please make sure that the whole add_drv command is on one line!
          The easiest way to achieve this is to write a script.

   For more details about rem_drv or add_drv, please refer to the manual
   pages by executing the commands 'man rem_drv' or 'man add_drv'
   accordingly.
5. After loading the driver, set up the IP interfaces manually using the
   ifconfig command. To start the interfaces, enter the following command
   for each interface:
     ifconfig skge<X> plumb <hostname> up
6. Exchange <X> with the interface number.
7. Exchange <hostname> with the hostname you have chosen in /etc/hosts for
   the IP address.

NOTE: Do not forget to create the /etc/hostname.skgeX files for both
      interfaces, otherwise the interface configuration during a reboot
      will not work.

After the changes have been activated, the adapter will behave as two
separate interfaces in Dual Net mode, e.g. skge0 and skge50000. Each of the
interfaces in Dual Net mode can be configured as if they were single port
adapters.

NOTE: The RLMT parameters PreferredPort_InstX and RlmtChgBCPrio_InstX
      (described above) do not work in this mode.

6  VLAN configuration and parameters

NOTE: If you want to configure VLANs for an adapter, all traffic on the
      adapter has to be handled by VLANs! Mixing VLAN interfaces with non
      VLAN interfaces connected to the same adapter (or one adapter port
      in case of Dual Net mode) is not allowed! A different adapter can
      be configured as a non VLAN adapter at the same time.

The complete configuration is executed in the file /kernel/drv/skge.conf.
A sample file can be found at this location after the normal driver
installation process without VLAN parameters.

There are two possibilites to configure VLANs for an adapter:

- Use the script skge_vlan_config.
- Edit the configuration file /kernel/drv/skge.conf manually.

NOTE: We recommend to use the script! It is much easier than the manual
      configuration.



6.1  VLAN configuration using the script "skge_vlan_config"

The script skge_vlan_config was copied into the directory /usr/sbin
during driver installation.

NOTE: You have to be logged in as user 'root' to execute it.

With this script you are able to configure any SysKonnect Gigabit Ethernet
Adapter previously installed on the system for VLAN support.

To configure VLANs using skge_vlan_config, proceed as follows:

1. Before you start the script, you have to find out the instance
   number(s) of the adapter(s) you want to configure as VLANS.
   List all network interfaces with:
     ifconfig -a
2. Search for interfaces named skge0, skge1 and so on.
   The according IP address will show you the correct adapter.
   The value of <number> in the interface name skge<number> reflects
   the instance number of the adapter:

   Instance number belonging to skge0: 0
   Instance number belonging to skge1: 1
   ...
   
   After you have determined the adapters you want to configure,
   configuration with skge_vlan_config can be started:

3. Start the script by entering:
     skge_vlan_config
   at the command line.
   The script will prompt you to define the following parameters:
4. Instance number: Enter the instance number of the adapter to configure.
5. VLAN ID: Enter a VLAN ID for each VLAN.
   Allowed values range from 1 to 4094. The IDs distinguish the VLANs
   in your network topology.

NOTE: Please be careful: switches that are VLAN capable often have a
      default VLAN configured. Do not choose the same VLAN ID as used in
      the switch or change the ID of the switch default VLAN.

6. Jumbo Frame Support: Decide whether the VLAN is to support Jumbo frames
   or not.
   If not all VLANs for the same adapter need jumbo frame support, this
   is no problem. The adapter will be configured accordingly.

NOTE: It is not necessary to set the MTU size for jumbo frames in the
      file /etc/rcS.d/S50skge manually! The script will do this for you.

7. Hostname: Enter the hostname to be used for the VLAN IP interface.
8. IP Address: Enter the IP address for the VLAN IP interface.
9. Netmask: Enter the netmask for the VLAN IP interface.

   When you have finished defining the parameters, the script adds all
   necessary entries to the file /kernel/drv/skge.conf, adds all entries
   to the files /etc/hosts and /etc/netmasks and creates all
   /etc/hostname.<interface> files.

When the configuration is finished, you have two possibilities to activate
the changes in skge.conf:

- Reboot the system.
- Unload the driver with rem_drv and load it again with add_drv.

NOTE: If you execute all changes in skge.conf after package installation
      and before you reboot the system, no additional steps as described
      below have to be performed.

Reboot the system
-----------------
If you want to reboot the system, proceed as follows:

1. Create the file "reconfigure" in the root directory with the following
   command:   
     touch /reconfigure
   This informs the system about the nessecitiy to recreate the /dev and
   /devices directories.
2. Reboot the system.

Unload and reload the driver with rem_drv/add_drv
-------------------------------------------------
To use the second possibility, proceed as follows:

1. Deactivate the IP interfaces of all GE adapters with the following
   command executed for each interface:
     ifconfig <interface_name> unplumb

   Example: ifconfig skge0 unplumb

2. Make sure that no other application or OS daemon is connected to
   any of the GE adapters.
3. Remove the driver from the system with the command:
     rem_drv skge
   
   If there are any remaining connections to any of the GE adapters
   (see step 2), you will see the following error messages:
   
     "Device busy
      Cannot unload module: skge
      Will be unloaded upon reboot."

4. Load the driver again into the system with the following command:

     add_drv -m '* 0660 root sys' -i '"pci1148,9000" "pci1148,9e00"
     "pci1148,5021" "pci1148,5041" "pci1148,5043" "pci1148,5051"
     "pci1148,5061" "pci1148,5071" "pci1148,5081" "pci1148,9821"
     "pci1148,9822" "pci1148,9841" "pci1148,9842" "pci1148,9843"
     "pci1148,9844" "pci1148,9861" "pci1148,9862" "pci1148,9871"
     "pci1148,9872" "pci1259,2970" "pci1259,2971" "pci1259,2972"
     "pci1259,2975" "pci1259,2976" "pci1259,2977" "pci1148,121"
     "pci1148,221" "pci1148,321" "pci1148,421" "pci1148,621"
     "pci1148,721" "pci1148,821" "pci1148,921" "pci1148,1121"
     "pci1148,1221" "pci1148,3221"' skge

WARNING:  Please make sure that the whole add_drv command is on one line!
          The easiest way to achieve this is to write a script.

   For more details about rem_drv or add_drv, please refer to the manual
   pages by executing the commands 'man rem_drv' or 'man add_drv'
   accordingly.
5. After loading the driver, set up the IP interfaces manually using the
   'ifconfig' command.
   or
6. Reboot the system and the IP interfaces will be set automatically.

VLAN IP interface naming
------------------------

Example: You have configured two VLANs for instance 0. The values you have
         chosen might have been the following:

First VLAN:
ID: 2
Jumbo frame support: Off

Second VLAN:
ID: 4
Jumbo frame support: On

The entry in /kernel/drv/skge.conf created with the script will look
like this:

# BEGIN VLAN configuration settings for instance 0
Vlan_Inst0_Enable="Yes";
Vlan_0_DevNum=0;
Vlan_0_ID=2;
Vlan_0_Jumbo="Off";
Vlan_100_DevNum=100;
Vlan_100_ID=4;
Vlan_100_Jumbo="On";
Vlan_Inst0_Count=2;
# END VLAN configuration settings for instance 0

NOTE:  If you want to disable VLAN support at a later time, only switch
       Vlan_Inst<instance>_Enable to "No". It is not necessary to delete
       all the settings.

For each VLAN you have to set up one interface. The number of the interface
must be the same as the value of the according Vlan_X_DevNum parameter. For
our example you need the following two values:

Vlan_0_DevNum=0      This value belongs to the VLAN with ID 2.
Vlan_100_DevNum=100  This value belongs to the VLAN with ID 4.

The interface for the first VLAN will be skge0, for the second skge100.

To start the VLAN interfaces, proceed as follows:

1. Enter the commands:
     ifconfig skge0 plumb <hostname> broadcast + netmask + up
     ifconfig skge100 plumb <hostname> mtu 9000 broadcast + netmask + up
2. Exchange <hostname> with the hostname you have chosen for the VLAN.
3. Now enter 'ifconfig -a' again to check if all interfaces are set up
   correctly.
4. Now you can try to ping to another machine to check whether or not
   the connection works.

Additionally, you have the possibility to check the VLAN settings for a
specific interface by use of the 'ndd' command. If you want to know the
settings for skge100 from the example above, enter the commands:
     ndd -set /dev/skge device 100 (if not set already)
     ndd /dev/skge vlan_props
If VLAN support is enabled on the according interface, you get a list of
four parameters (used in skge.conf):
   - VLAN number: This is the number of the VLAN, for skge100 it is 100.
   - VLAN ID: This is the VLAN ID you have chosen.
   - VLAN Port: Actual port used by the VLAN.
   - VLAN Jumbo Frames: Did you choose jumbo frame support?
  
If VLAN support is disabled, you get the following message: "No VLAN
support on skgeX enabled." X is the number of the according interface.

For our example the output will look like the following:

     VLAN number: 100
     VLAN ID: 4
     VLAN Port: A
     VLAN Jumbo Frames: Yes

For more details about 'ndd' refer to section 8.



6.2  Manual VLAN configuration

The complete VLAN configuration will be carried out in the driver
configuration file /kernel/drv/skge.conf. Please refer to
'man driver.conf' for further information about these files.

An excerpt from skge.conf looks like the following:

     #
     # Configuration file for the skge DualNet/VLAN driver.
     # See skge.txt or skge.htm for a description of the parameters.
     # Uncomment and change the settings you need.
     #
     # The decimal value in _Inst0 in all parameters is the instance
     # number of the appropriate adapter. Set it to needed value.
     # ..._Inst0 means instance number 0, ..._Inst1 means instance number
     # 1 and so on.
     #
     # WARNING: All parameters and values are case sensitive. Write them
     #          exactly as shown here!
     #          All parameters have to be followed by a semicolon!

     # AutoNegotiation: Values are: On, Off, Sense; Default = On
     # AutoNegotiation_A_Inst0="On";
     # AutoNegotiation_B_Inst0="On";

     # DuplexCapabilities: Values are: Half, Full, Both; Default = Both
     # DuplexCapabilities_A_Inst0="Both";
     # DuplexCapabilities_B_Inst0="Both";

If you want to change the default values, you only have to uncomment the
appropriate parameter and set it to the desired value.

Here is an example how the VLAN parameters will look like if configured
for Single Net mode:

     Vlan_Inst0_Enable="Yes";
     Vlan_0_DevNum=0;
     Vlan_0_ID=2;
     Vlan_0_Jumbo="Off";
     Vlan_100_DevNum=100;
     Vlan_100_ID=4;
     Vlan_100_Jumbo="On";
     Vlan_Inst0_Count=2;

6.2.1 VLAN configuration in Single Net mode
-------------------------------------------

NOTE: All parameters and values are case sensitive. Write them exactly
      as shown here!
      All parameters have to be followed by a semicolon!

If you want to configure an adapter for the use of VLANs, proceed as
follows:

1. The first parameter you have to set is:
     Vlan_Inst<instance>_Enable="Yes";
   <instance> is a placeholder that has to be replaced with the actual
   instance number of the adapter given by the system. Without this
   parameter no further VLAN parameters will be read by the driver for this
   adapter.

NOTE: If you want to disable VLAN support at a later time, only switch
      Vlan_Inst<instance>_Enable to "No". It is not necessary to
      delete or uncomment all the settings.

2. For each VLAN you want to create, you MUST set two parameters:
     Vlan_<number>_DevNum;
     Vlan_<number>_ID;
   <number> is a placeholder that has to be exchanged with the real VLAN
   number. These numbers have to be set in a special manner. For each
   adapter there is a numbering scheme that MUST be used:
   The first VLAN you create has the same number as the instance number
   given to the adapter by the system. For every additional VLAN simply
   add 100 to the instance number.

Example:

Instance number of the adapter: 0

First VLAN to create:   Vlan_0_DevNum, Vlan_0_ID
Second VLAN:            Vlan_100_DevNum, Vlan_100_ID
Third VLAN:             Vlan_200_Dev_num, Vlan_200_ID
...
and so on.

Instance number of the adapter: 1

First VLAN to create:   Vlan_1_DevNum, Vlan_1_ID
Second VLAN:            Vlan_101_DevNum, Vlan_101_ID
Third VLAN:             Vlan_201_Dev_num, Vlan_201_ID
...
and so on.

NOTE: This is necessary to create device minor nodes in the driver that
      have the same numbers as the according interfaces you have to create
      with 'ifconfig'. More details, see below.

PARAMETERS
----------

Parameter: Vlan_<number>_DevNum
-------------------------------
Type:          integer
Default value: None! You MUST set this value!
Valid Values:  Not limited

Example:

     Vlan_0_DevNum="0";
     Vlan_100_DevNum="100";

This parameter defines the number skge<number> of the interface that
belongs to the VLAN with the parameter Vlan_<number>_DevNum. The value
for Vlan_<number>_DevNum should be <number>. You are free to choose a
different value. We recommend to use <number> because it is very easy
to distinguish all interfaces belonging to the same board since the
last digit is the same for all interfaces.

Parameter: Vlan_<number>_ID
---------------------------
Type:          integer
Default value: None! You MUST set this value!
Valid values:  1 to 4094

Example:

     Vlan_0_ID=2;
     Vlan_100_ID=122;

This parameter defines the VLAN ID as specified in IEEE 802.1Q. It is
used to distinguish the VLANs in VLAN capable drivers and switches. For
this reason it is not allowed to use a chosen VLAN ID on the same adapter
(in Single Net mode) or on the same port (in Dual Net mode) again! The
value for Vlan_<number>_ID can be any value in the range from 1 to 4094.

NOTE: Please be careful: switches that are VLAN capable often have a
      default VLAN configured. Do not choose the same VLAN ID as used in
      the switch or change the ID of the switch default VLAN.

Parameter: Vlan_Inst<instance>_Count
------------------------------------
Type:          integer
Default value: None! You MUST set this value!
Valid values:  1 up to the number of VLANs configured for the appropriate
               adapter.

<instance> is a placeholder that has to be replaced with the actual
instance number of the adapter given by the system. This parameter has to
be set to enable the driver to check the completeness of all VLAN
parameters you must set during configuration.

Example: We use the sample entry from the beginning of this chapter to
         show the use of this parameter.

     Vlan_Inst0_Enable="Yes";
     Vlan_0_DevNum=0;
     Vlan_0_ID=2;
     Vlan_0_Jumbo="Off";
     Vlan_100_DevNum=100;
     Vlan_100_ID=4;
     Vlan_100_Jumbo="On";
     Vlan_Inst0_Count=2;
        
Two VLANs have been configured for this adapter. Therefore
Vlan_Inst0_Count is set to 2.

If you, for example, forget to set Vlan_100_ID, the driver will ouput the
following message on the console:

skgeX: GetConfiguration: Missing VLAN parameter Vlan_100_ID!

X is the instance number of the according adapter.

After the display of this message, the driver will abort the complete
configuration of the adapter because it makes no sense to continue.
A possible workaround is to look up the configuration file and fill in
the missing parameter. In case of two VLANs this might seem overstated,
but if you have 10 or 20 VLANs configured for one adapter it can easily
happen that you forget to set one parameter.

ADDITIONAL PARAMETERS
---------------------
There are additional parameters that can be set, but it is not necessary
to use them. If you do not set these parameters, default values will be
used by the driver.

Parameter: Vlan_<number>_Jumbo
------------------------------
Type:          string
Default value: "Off"
Valid values:  "On"
               "Off"

Example:

     Vlan_100_Jumbo="On";

If you want to use Jumbo frames on one or more VLANs you have configured
for an adapter, set the appropriate parameter to "On". The adapter will be
configured accordingly.

NOTE: Do not forget to enable setting the MTU in /etc/rcS.d/S50skge!

IMPORTANT: If you have configured your VLANs in skge.conf manually and
           you want to use the script /usr/sbin/skge_vlan_config the
           next time you have to change or add existing VLAN entries,
           please edit the file before using the script and add two
           extra lines for each instance:
      
           Insert
      
           # BEGIN VLAN configuration settings for instance <instance>
      
           in front of the first VLAN entry
   
           and
      
           # END VLAN configuration settings for instance <instance>
      
           after the last VLAN entry belonging to this instance number.
           <instance> is a placeholder for the instance number you have
           chosen. A VLAN entry for instance 0 would look like this:
      
           # BEGIN VLAN configuration settings for instance 0
           Vlan_Inst0_Enable="Yes";
           Vlan_0_DevNum=0;
           Vlan_0_ID=2;
           Vlan_0_Jumbo="Off";
           Vlan_100_DevNum=100;
           Vlan_100_ID=4;
           Vlan_100_Jumbo="On";
           Vlan_Inst0_Count=2;
           # END VLAN configuration settings for instance 0
      
NOTE: You have to do this for each VLAN instance!
      
IMPORTANT: The /etc/hostname.<interface> files are important.
           One of these files is needed for each interface to be
           configured with 'ifconfig' by the system at boot time.
           You have to create one file for each VLAN interface you
           want to use. These files contain only one entry:
           the hostname or IP address associated with the VLAN belonging
           to the appropriate interface. If you put a hostname into the
           file you have to make sure that there is an entry with the
           correct IP address for this hostname in the file /etc/hosts!

Example: For the two VLANs above you have to create two files:

     /etc/hostname.skge0
     /etc/hostname.skge100

NOTE: If you want to use a different netmask as the default for the
      chosen IP address class for some or all of your interfaces at boot
      time, do not forget to put the correct value into /etc/netmasks!

Now you should be able to configure your adapters for the use of VLANs in
Single Net mode.

When the configuration is finished, you have two possibilities to activate
the changes in skge.conf:

- Reboot the system.
- Unload the driver with rem_drv and load it again with add_drv.

For details refer to the description in section 5.

6.2.2 VLAN configuration in Dual Net mode
-----------------------------------------

In Dual Net mode, one or both ports can be configured for VLANs.

VLAN configuration on one port
------------------------------
VLAN configuration for each port has to be enabled separately.
This is executed in skge.conf with the following parameter:
     Vlan_?_InstX_Enable="Yes";
'?' stands for the port for which you want to configure VLANs (A or B),
'X' stands for the instance number of the adapter.

If you want to enable VLANs on port A of instance 1, you have to
add the following entry:
     Vlan_A_Inst1_Enable="Yes";

The configuration and naming of the VLANs for port A is the same as
described in section 6.2.1. The only difference for port B is that the
VLAN numbers do not start with the instance number of the adapter. An
offset of 50000 is added to the instance number instead to create the
VLAN and device numbers. The offset of 50000 is added in order to provide
enough numbers to configure VLANs for port A.

VLAN configuration on two ports
-------------------------------
Assumption: Configuration of a Dual Net adapter for VLANs on both ports.
            Each port should have two VLANs bound to it.

Thus the entry for instance 1 in skge.conf could look like the following:

     Vlan_A_Inst1_Enable="Yes";
     Vlan_1_DevNum=1;
     Vlan_1_ID=2;
     Vlan_101_DevNum=101;
     Vlan_101_ID=4;
     Vlan_A_Inst1_Count=2;
     Vlan_B_Inst1_Enable="Yes";
     Vlan_50001_DevNum=50001;
     Vlan_50001_ID=6;
     Vlan_50101_DevNum=50101;
     Vlan_50101_ID=8;
     Vlan_B_Inst1_Count=2;

When the configuration is finished, you have two possibilities to activate
the changes in skge.conf:

- Reboot the system.
- Unload the driver with rem_drv and load it again with add_drv.

For details refer to the description in section 5.

7  PCI Hot Plug and power management

Please refer to the documentation of your machine to find out whether or
not you can use the capabilities of PCI Hot Plug or power management.



7.1  PCI Hot Plug

Please refer to the Solaris documentation for further information
about the use of PCI Hot Plug.



7.2  Power Management

There are two possibilites of power management:
- system power management and
- device power management

System power management (Suspend/Resume):
-----------------------------------------
This feature of the power management software of Solaris allows you to
power cycle the whole machine without losing the state of your current
activities. You can do this on SPARC machines by pressing the key
in the upper right corner of your keyboard.

This driver can handle the appropriate system calls so you are able to
use Suspend/Resume if you need to. This may be useful on a workstation
but not on a server machine.

NOTE: Network connections will not be interrupted until the timeout value
      for the chosen protocol of the remote machine has expired.
      
Device power management:
------------------------
This feature allows the system to power cycle individual pieces of hardware
that support device power management. If the hardware is idle for a
specified time it will be power cycled by the system. You can configure
the value allowed for the idle time in the file /etc/power.conf. If you
want to enable device power management for all SysKonnect adapters supported
by the skge driver, you have to edit power.conf.

Enter the following line:
     device_name        threshold
This line must contain both entries in this order.

Device_name is the name of the device associated with your driver in the
/dev directory. This entry looks like:
     /dev/skge

Threshold is the idle time value in seconds after which all adapters will
be power managed by the system to save energy.

Example: If you want to power cycle all adapters supported by skge after
         60 seconds of idle time, enter the following line:
         /dev/skge     60

         If you want to disable power management for these adapters again,
         set the value of threshold to '-1':
         /dev/skge     -1

Refer to 'man power.conf' for further details.

8  Tuning

This section describes settings that affect network performance.
Also refer to the description of the CopyThreshold parameter above.

The TCP/IP protocol stack of Solaris can be tuned to better suit
high speed network adapters. This tuning is executed with the "ndd" tool.
The startup script /etc/rcS.d/S50skge is created during installation
and you can set some of the TCP or UDP parameters if wished. All entries
in S50skge are commented out per default.
More improvement can be achieved by further increasing e.g. tcp_xmit_hiwat
and tcp_recv_hiwat when using Jumbo Frames. But this also increases the
memory consumption per TCP stream and the effect depends on the type
of application.
If you need this last bit of optimization, please refer to the man page
of 'ndd' and find the best settings for your system by experimenting with
different settings.

9  "ndd" support

This driver supports the Solaris tool 'ndd' for reading or writing driver
parameters and statistics. For details on 'ndd', refer to the man page.
Before you can retrieve or write any value(s), you must set the according
device number with the following command (this is not necessary to get a
list of all parameters with the ? command):

     ndd -set /dev/skge device X

X is the number of the according interface. For skge0 it is 0, for
skge1 it is 1, for a VLAN interface skge100 it is 100 and so on.

If you want to change a value with ndd after choosing a device, please
use the following syntax:

     ndd -set /dev/skge <parameter> <value>

For example, the link speed should be changed from 1000 Mbps to 100 Mbps
with the Speed parameter:

     ndd -set /dev/skge Speed 100

The following parameters can be set:

- device
- Speed_A, Speed_B
- LinkMode_A, LinkMode_B
- FlowControl_A, FlowControl_B
- Role_A, Role_B
- PreferredPort
- RlmtMode

NOTE: If you change a parameter with ndd, the new value will be lost
      after a reboot because the driver configuration file skge.conf
      will not be changed. If you want the new value to persist after
      a reboot, you must change skge.conf manually.

The driver supports the following parameters:

- ?            : a list of all parameters is displayed. Do not forget to
                 quote the question mark with a backspace:
                 ndd /dev/skge \?
                 Otherwise the ? will be interpreted by the shell
                 as a metacharacter.
- device       : SET: select the device number to be used for all
                 further commands.
                 GET: device number set with ndd
- instance     : instance number of adapter
- link_status  : Up or Down

- Speed_A, Speed_B: SET: select the speed for the link. Speed_A sets
                 the chosen value for the first port and Speed_B for
                 the second port on dual port adapters. The following
                 values are allowed:
                 - 1000: force the link speed to 1000 Mbps
                 - 100:  force the link speed to 100 Mbps
                 - 10:   force the link speed to 10 Mbps
                 - Auto: let the hardware negotiate the speed
                 GET: show the chosen link speed. Possible values:
                 - Unknown (link is not up)
                 - 10
                 - 100
                 - 1000

- LinkMode_A, LinkMode_B: this parameter is a combination of the
                 parameters AutoNegotiation and DuplexCapabilities
                 used in the file skge.conf.
                 SET: select the link mode for the link. LinkMode_A sets
                 the chosen value for the first port and LinkMode_B for
                 the second port on dual port adapters. The following
                 values are allowed:
                 - Full:      full duplex, no autonegotiation
                 - Half:      half duplex, no autonegotiation
                 - AutoHalf:  half duplex with autonegotiation
                 - AutoFull:  full duplex with autonegotiation
                 - AutoBoth:  full or half duplex with autonegotiation
                 - AutoSense: The adapter automatically detects the
                              autonegotiation capabilities of the link
                              partner. Please refer to the description
                              of the AutoNegotiation_?_InstX parameter
                              in section 4.1 for more information.
                 GET: show the chosen link mode. Possible values:
                 - No link
                 - Half duplex
                 - Full duplex
                 - Half duplex (autonegotiated)
                 - Full duplex (autonegotiated)

- FlowControl_A, FlowControl_B: SET: select a flow control mode for the
                 link. FlowControl_A sets the chosen value for the first
                 and FlowControl_B for the second port on dual port
                 adapters. The following values are allowed:
                 - None:     No flow control enabled.
                 - LocSend:  Only the local link partner is allowed to
                             send PAUSE frames.
                 - Sym:      Both link partners are allowed to send
                             PAUSE frames.
                 - SymOrRem: Both ore only the remote link partner are
                             allowed to send PAUSE frames.
                 GET: show the chosen flow control mode. Possible values:
                 - None
                 - LocSend
                 - Sym
                 - SymOrRem

- Role_A, Role_B: SET: select a role mode for the link. Role_A sets the
                 chosen value for the first and Role_B for the second
                 port on dual port adapters. The following values are
                 allowed:
                 - Auto: let the hardware negotiate the role
                 - Master
                 - Slave
                 GET: show the chosen role mode. Possible values:
                 - Master
                 - Slave
                 For more information about the Role parameter, please
                 r
 楼主| 发表于 2005-5-24 23:14:35 | 显示全部楼层
http://bama.ua.edu/cgi-bin/man-cgi?sk98sol+7D

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

SunOS 5.9           Last change: 10 Oct 2000                    1

Devices                                               sk98sol(7D)

        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.

SunOS 5.9           Last change: 10 Oct 2000                    2

Devices                                               sk98sol(7D)

     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

SunOS 5.9           Last change: 10 Oct 2000                    3

Devices                                               sk98sol(7D)

     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

SunOS 5.9           Last change: 10 Oct 2000                    4

Devices                                               sk98sol(7D)

     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:

SunOS 5.9           Last change: 10 Oct 2000                    5

Devices                                               sk98sol(7D)

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

SunOS 5.9           Last change: 10 Oct 2000                    6

Devices                                               sk98sol(7D)

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.

SunOS 5.9           Last change: 10 Oct 2000                    7


Solaris Man Pages
© 1994 Man-cgi 1.15S, Panagiotis Christias <[email protected]>
1995 Modified for Solaris 2.3, David Adams, <[email protected]>
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-15 09:50 , Processed in 0.047323 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表