Hello Ochomoz and others I followed the instructions for both manual and auto install but get lost I do not even see pkgadd. I am completely new from the windows world so bear with me please. The read me is below:
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 "YUKONXsolx" is located. 2. Execute 'pkgadd': pkgadd -d . YUKONXsolx 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 th e directory where the driver subdirectory "YUKONXsolx" 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 YUKONXsolx 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. 2.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 "YUKONXsolx" subdirectory. The left panel shows the available software packages. 5. Select "Marvell Yukon Ethernet Controller". 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. 2.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 softwa re 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 yukonx.conf is copied to /kernel/drv. - The startup script S50yukonx for modifying network settings is copied to /etc/rcS.d. - The VLAN configuration script yukonx_vlan_config is copied to /usr/sbin. - The man page yukonx.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.yukonxX 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. 2.4 Deinstallation NOTE: In case you have changed the configuration settings in the yukonx.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 YUKO NXsolx 2. Remove all according lines with the IP addresses in /etc/hosts. 3. Remove all according lines with the netmasks in /etc/netmasks. 2.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 YUKONXsolx 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.yukonxX 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 "yukonx" before and after installation of the additional adapter(s) to find out which instance number to use for the hostname.yukonxX file. 2. Insert the additional adapter(s). 3. Enter the necessary entrie s 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). 3 Driver parameters All parameters can be set using the file yukonx.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 3.1. Please refer to section 8 for a description of the 'ndd' handling. The file yukonx.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 i nstalling 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 4 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 yukonx0 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 yukonx driver. You can retrieve it by entering the following command: modinfo | grep yukonx You will see one line like this: "69 1026bb64 322bb 67 1 yukonx ... 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: modunlo ad -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/yukonx on a 64 bit system or with the command modload /kernel/drv/yukonx 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 yukonx<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. 3.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" =2 0 "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 3.2 (adapter parameters). Role_?_InstX ------------ Type: string Default value: "Auto" Valid values: "Auto" 20 "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: - All Marvell Yukon controllers - SysKonnect 1000Base-T controllers (SK-982x, SK-9821 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: - All Marvell Yukon controllers - SysKonnect SK-9821 V2.0, SK-9S2x, SK-9E21D and SK-9E2x controllers 3.2 Adapter parameters In the following desc ription, '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 4 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 3.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/S50yukonx 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 yukonx0 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=2 0them 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 Marvell (with Jumbo Frames enabled) back-to-back. RxRingSize_InstX ---------------- Type: integer Default value: 128 Valid range: 100 - 5000 NOTE: This parameter is only valid for: - Marvell Yukon 88E8001, Yukon 88E8003 and Yukon 88E8010 controllers - SysKonnect SK-98xx and SK-98xx V2.0 controllers TxRingSize_InstX ---------------- Type: integer Default value: 128 Valid range: 50 - 2500 NOTE: This parameter is only valid for: - Marvell Yukon 88E8001, Yukon 88E8003 and Yukon 88E8010 controllers - SysKonnect SK-98xx and SK-98xx V2.0 controllers 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 =2 0 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: 256 Valid values: 128, 256, 384, 512 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: This parameter is only valid for: - Marvell Yukon 88E8021/22, Yukon 88E8035/36, Yukon 88E8038/39, Yukon 88E8050, Yukon 88E8052/53, Yukon 88E8055/56, Yukon 88E8061/62, Yukon 88EC042 and Yukon 88E8070/71 controllers - SysKonnect SK-9Sxx, SK-9E21D and SK-9Exx controllers TxLeSize_InstX -------------- Type: integer Default value: 256 Valid values: 128, 256, 384, 512 This parameter sets the number of list elements in the transmit ring. The number of transmit buffers will be set to the same value automatically. NOTE: This parameter is only valid fo r: - Marvell Yukon 88E8021/22, Yukon 88E8035/36, Yukon 88E8038/39, Yukon 88E8050, Yukon 88E8052/53, Yukon 88E8055/56, Yukon 88E8061/62, Yukon 88EC042 and Yukon 88E8070/71 controllers - SysKonnect SK-9Sxx, SK-9E21D and SK-9Exx controllers 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 yukonxX', 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 yukonx.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 yukonxX' (Solaris 10: 'kstat -m yukonx -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=2 0timing problem. Please do not change the default value without contacting the Marvell 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/yukonx device X (if not set already) ndd /dev/yukonx 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 10 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. 3.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. 4 Dual Net operation mode The yukonx 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 yukonx.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. yukonx0 refers to instance number 0, yukonx1 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 t he 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 yukonx0 is used to access port A and interface yukonx50000 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 yukonx.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 yukonx0 unplumb 2. Make sure that no other application or OS daemon is c onnected to any of the GE adapters. 3. Remove the driver from the system with the command: rem_drv yukonx 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: yukonx Will be unloaded upon reboot." 4. Load the driver again into the system with the following command: add_drv -m '* 0660 root sys' -i '"pci11ab,4320" "pci11ab,4340" "pci11ab,4341" "pci11ab,4342" "pci11ab,4343" "pci11ab,4344" "pci11ab,4345" "pci11ab,4346" "pci11ab,4347" "pci11ab,4350" "pci11ab,4351" "pci11ab,4352" "pci11ab,4353" "pci11ab,4354" "pci11ab,4355" "pci11ab,4357" "pci11ab,435a" "pci11ab,4360" "pci11ab,4361" "pci11ab,4362" "pci11ab,4363" "pci11ab,4364" "pci11ab,4365" "pci11ab,436b" "pci11ab,436c" "pci11ab,4369" "pci11ab,4370" "pci11ab,4380" "pci1148,9e00" "pci1148,9000" "pci1148,5021" "pci1148,5041" "pci1148,5043" "pci1148,5051" "pci1148,5061" "pci1148,5071" "pci1148,3221" "pci1148,9521"' yukonx 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 yukonx<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.yukonxX 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. yukonx0 and yukonx50000. 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. 5 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 is20executed in the file /kernel/drv/yukonx.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 yukonx_vlan_config. - Edit the configuration file /kernel/drv/yukonx.conf manually. NOTE: We recommend to use the script! It is much easier than the manual configuration. 5.1 VLAN configuration using the script "yukonx_vlan_config" The script yukonx_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 Marvell Gigabit Ethernet Adapter previously installed on the system for VLAN support. To configure VLANs using yukonx_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 yukonx0, yukonx1 and so on. The according IP address will show you the correct adapter. The value of <number> in the interface name yukonx<number> reflects the instance number of the adapter: Instance number belonging to yukonx0: 0 Instance number be longing to yukonx1: 1 ... After you have determined the adapters you want to configure, configuration with yukonx_vlan_config can be started: 3. Start the script by entering: yukonx_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/S50yukonx 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 0A necessary entries to the file /kernel/drv/yukonx.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 yukonx.conf: - Reboot the system. - Unload the driver with rem_drv and load it again with add_drv. NOTE: If you execute all changes in yukonx.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 yukonx0 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 yukonx 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: yukonx Will be unloaded upon reboot." 4. Load the driver again into the system with the following command: add_drv -m '* 0660 root sys' -i '"pci11ab,4320" "pci11ab,4340" "pci11ab,4341" "pci11ab,4342" "pci11ab,4343" "pci11ab,4344" "pci11ab,4345" "pci11ab,4346" "pci11ab,4347" "pci11ab,4350" "pci11ab,4351" "pci11ab,4352" "pci11ab,4353" "pci11ab,4354" "pci11ab,4355" "pci11ab,4357" "pci11ab,435a" "pci11ab,4360" "pci11ab,4361" "pci11ab,4362" "pci11ab,4363" "pci11ab,4364" "pci11ab,4365" "pci11ab,436b" "pci11ab,436c" "pci11ab,4369" "pci11ab,4370" "pci11ab,4380" "pci1148,9e00" "pci1148,9000" "pci1148,5021" "pci1148,5041" "pci1148,5043" "pci1148,5051" "pci1148,5061" "pci1148,5071" "pci1148,3221" "pci1148,9521"' yukonx 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 system20and 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/yukonx.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 yukonx0, for the second yukonx100. To start the VLAN interfaces, proceed as follows: 1. Enter the commands: ifconfig yukonx0 plumb <hostname> broadcast + netmask + up if config yukonx100 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 yukonx100 from the example above, enter the commands: ndd -set /dev/yukonx device 100 (if not set already) ndd /dev/yukonx vlan_props If VLAN support is enabled on the according interface, you get a list of four parameters (used in yukonx.conf): - VLAN number: This is the number of the VLAN, for yukonx100 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 yukonxX 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. 5.2 Manual VLAN configuration The complete VLAN configuration will be carried out in the driver configuration file /kernel/drv/yukonx.conf. Please refer to 'man driver.conf' for further information about these files. An excerpt from yukonx.conf looks like the following: # # Configuration file for the yukonx DualNet/VLAN driver. # See yukonx.txt or yukonx.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; 5.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 20 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 yukonx<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: yukonxX: 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/S50yukonx! IMPORTANT: If you have configured your VLANs in yukonx.conf manually and you want to use the script /usr/sbin/yukonx_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 =2 0 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: =2 0 /etc/hostname.yukonx0 /etc/hostname.yukonx100 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 yukonx.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 4. 5.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 yukonx.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 5.2.1. The only difference for port B is that the VLAN numbers do not start with=2 0the 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 yukonx.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 yukonx.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 4. 6 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. 6.1 PCI Hot Plug Please refer to the Solaris documentation for further information about the use of PCI Hot Plug. 6.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 Marvell adapters suppo rted by the yukonx 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/yukonx 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 yukonx after 60 seconds of idle time, enter the following line: /dev/yukonx 60 If you want to disable power management for these adapters again, set the value of threshold to '-1': /dev/yukonx -1 Refer to 'man power.conf' for further details. 7 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/S50yukonx is created during installation and you can set some of the TCP or UDP parameters if wished. All entries in S50yukonx are commented out per default. More improvement can be=2 0achieved 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. 8 "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/yukonx device X X is the number of the according interface. For yukonx0 it is 0, for yukonx1 it is 1, for a VLAN interface yukonx100 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/yukonx <parameter> <value> For example, the link speed should be changed from 1000 Mbps to 100 Mbps with the Speed parameter: ndd -set /dev/yukonx 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 - vct_port NOTE: If you change a parameter with ndd, the new value will be lost after a reboot because the driver configuration file yukonx.conf will not be changed. If you want the new value to persist after a reboot, you must change yukonx.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/yukonx \? 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 yukonx.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 au tonegotiation - AutoSense: The adapter automatically detects the autonegotiation capabilities of the link partner. Please refer to the description of the AutoNegotiation_?_InstX parameter in section 3.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 frame s. - 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 refer to the Role_?_InstX parameter=2 0in section 3.1. - ActivePort : show the active port selected by RLMT. Possible values: - A - B (dual port adapters only) - PreferredPort: SET: select the preferred port to be used by RLMT for the link. The following values are allowed: - A - B - Auto: Let RLMT decide on the port to use (default). GET: show the chosen preferred port. Possible values: - A - B - Auto (Default: A) - RlmtMode : SET: select the RLMT mode to use. The following values are allowed: - CLS (Check Link State) - CLP (Check Local Port) - CLPSS (Check Local Port and Segmentation Status) It is not possible to set the RLMT DualNet mode here. If you want to configure an adapter for DualNet mode, you must use yukonx.conf. For more information about the allowed RLMT modes and the DualNet feature, please refer to the RlmtMode_InstX parameter in section 3.2 and section 4. GET: show the selected RLMT mode. Possible values: - CLS (Check Link State) - CLP (Check Local Port) - CLPSS (Check Local Port and Segmentation Status) - DualNet - port_count : number of ports on adapter - adapter_id : adapter identification string - pci_ids : a list of the following parameters is displayed: - PCI Vendor ID - PCI Device ID - PCI Subvendor ID - PCI Subdevice ID - PCI Revision ID: hardware revision number - hw_revision : hardware revision number - ring_sizes : a list of the following parameters is displayed: - RX ring size: # of RX descriptor ring buffers - TX ring size: # of TX descriptor ring buffers - hw_checksum : a list of the following parameters is displayed: - H wChecksum_InstX: actual value of the parameter used in yukonx.conf. - TCP Offload active: "On" means that the adapter uses hardware checksum offload, "Off" means not. Please refer to the description of HwChecksum_InstX in section 3.2 for an explanation. - int_mod : a list of the following parameters is displayed: - Interrupt Moderation: "On" means that the adapter uses dynamic interrupt moderation, "Off" means not. - Configured Interrupts: Maximum number of interrupts allowed per second. - port_props : a list of the following parameters is displayed: - Port: used port for this device - Link Status: see link_status above. - Link Speed: see Speed above. - Jumbo Frames: jumbo frames enabled? - VLAN: VLAN support enabled? - RX ring size: # of RX descriptor ring buffers - TX ring size: # of TX descriptor ring buffers =2 0 - RLMT Mode: RLMT mode used for this port. For possible values see parameter RlmtMode_InstX in section 3.2. - AutoNegotiation: auto-negotiation used? - Duplex Mode: half- or full-duplex mode? - Flow Control: used mode - Role: this parameter is only valid with 1000Base-T controllers (all Marvell Yukon, SysKonnect SK-982x, SK-9821 V2.0, SK-9S2x, SK-9E21D and SK-9E2x). Please refer to parameter Role_?_InstX in section 3.1 for details. - dual_net : Dual Net mode enabled? - vlan_props : if VLAN support is enabled on the according interface, a list of four parameters (used in yukonx.conf) is displayed: - VLAN Number: used for configuration purposes - VLAN ID: set by user - VLAN Port: port used by this VLAN - VLAN Jumbo Frames: jumbo frames enabled? If VLAN support is disabled, the following message is =2 0displayed: "No VLAN support on yukonxX enabled." X is the number of the corresponding interface. - vct_cap : Check whether an interface supports VCT or not. - vct_port : GET: show the chosen VCT port. Possible values: - A - B (dual port adapters only) SET: Choose the VCT port to use (default: A). The following values are allowed: - A - B (dual port adapters only) - vct_start : Start a VCT cable test on the selected interface. - vct_status : Get the actual VCT/DSP status of the selected interface. - vct_result : Get the result of the last VCT/DSP cable test of the selected interface. Please refer to the next section for details about the VCT parameters. Example: If you want to know the adapter identification string of the adapter belonging to IP interface yukonx0, enter the commands: ndd -set /dev/yukonx device 0 (if not set already) ndd /dev/yukonx adapter_id 9 Virtual Cable Tester(TM) (VCT) The Marvell? VCT technology utilizes Time Domain Reflectometry (TDR) technology to remotely diagnose the quality and characteristics of the attached cables. Using this technology it is possible to detect and report potential cabling issues such as cable opens, cable shorts or any impedance mismatches in the cable and accurately report - within one meter - the distance to the fault. The VCT technology enables the IT manager or the end user to quickly identify the failing mechanism and isolate the source of the problem. VCT can only be started if the corresponding adapter does not have a link up. If at the selected device a link is up, DSP (Digital Signal Processor) is activated, which reports the length of the cable (only if link is at 1000 Mbps speed). The VCT feature is only available for all Marvell Yukon and SysKonnect SK-9821 V2.0, SK-9S2x and SK-9E2x controllers. VCT can be used with the Solaris tool 'ndd'. It is supported with the following five parameters: - vct_cap : Check whether an interface supports VCT or not. - vct_port : Get/set the port to use for a VCT cable test. - vct_start : Start a VCT cable test on the selected device. - vct_status : Get the actual VCT/DSP status of the selected device. - vct_result : Get the result of the last VCT/DSP cable test of the selected device. NOTE: If you are using a dual port adapter and you want to start a VCT test on port B, you must first set the vct port to B. The default port in SingleNet mode is A, in DualNet mode the port is selected via the device automatically. Example: If you want to start a VCT test on device yukonx0 on port B, enter the command(s): ndd -set /dev/yukonx device 0 (if not set already) ndd -set /dev/yukonx vct_port B (SingleNet/dual port only) ndd /dev/yukonx vct_start If you have started VCT on device yukonx0 on port B, you will get the following message: "yukonx0: VCT test started on port B!" VCT needs about three seconds to finish. If you try to get the results before finishing the test, you will get the following message: "yukonx0: VCT test is running on port B!" VCT can not be started if the link on the selected device/port is up. If you should do this accidentally, you will get the following message: "yukonx0: VCT test not started on port B! Link is up!" If you have tried to start VCT on a device not supporting it, you will get the following message: "VCT Error: VCT not supported on device yukonx0!" This message will also appear, if you try to view the VCT status or to get the VCT result on a device not supporting VCT. You can che ck for VCT support with the following command(s): ndd -set /dev/yukonx device 0 (if not set already) ndd /dev/yukonx vct_cap If VCT is supported, you will get the following message: "VCT supported on device yukonx0!" If VCT is not supported, you will get the following message: "VCT not supported on device yukonx0!" You can retrieve the VCT result with the following command(s): ndd -set /dev/yukonx device 0 (if not set already) ndd /dev/yukonx vct_result You will see output like the following example in the terminal window: yukonx0 port B: Old DSP result: Cable length: < 50m yukonx0 port B: New VCT result: Pair 1 [1-2] Length: 5m Status: Open in cable. yukonx0 port B: New VCT result: Pair 2 [3-6] Length: 5m Status: Open in cable. yukonx0 port B: New VCT result: Pair 3 [4-5] Length: 5m Status: Open in cable. yukonx0 port B: New VCT result: Pair 4 [7-8] Length: 5m Status: Open in cable. The first line belongs to the DSP output. The VCT result lists the cable pairs, the status of the corresponding cable pair, the distance to the fault (length), and the status of the test. "New" and "old" in the output above (and also in the output of the vct_status command, see below) have the following meaning: For VCT data, "new" means that the link is down and VCT has been executed during this link down time. "Old" means th at the link is or has been up after the test has been executed, so the data is outdated and may be wrong now. For DSP data, "new" means that the link is up and DSP has calculated the cable length automatically. "Old" means that the link is or has been down after DSP has been run so the data is outdated and may be wrong now. The following states of a cable pair are possible after VCT has been executed: - Normal cable. : The cable pair is connected correctly. - Short in cable. : Two or more cable pairs are short-circuited together. VCT reports the distance to the short-circuit in meters. - Open in cable. : Lack of continuity between the pins at each end of the twisted-pair cable, i.e. the cable pair is not connected correctly. VCT reports the distance to the open location in meters. - Impedance mismatch. : The impedance on the cable pair is not correct. Possible reasons for impedance mismatch: - The cable pair is not connected properly. - The cable pair is damaged. =2 0 - The connector is faulty. VCT reports the distance to the impedance mismatch in meters. - Test failed! : The test of the cable pairs was not successful. You can also retrieve the current VCT and DSP status with the following command(s): ndd -set /dev/yukonx device 0 (if not set already) ndd /dev/yukonx vct_status For the example above you will get the following message: "yukonx0: VCT status on port B: New VCT and old DSP data!" If the link was never up and VCT has not been started up to now, you will get the following message: "yukonx0: VCT status on port B: No VCT or DSP data!" 10 Troubleshooting This section describes some common problems and their solution. Problem: The installation prints the following message: "Driver (yukonx) successfully added to system but failed to attach" Solution: The driver file could not be executed. Check if you have the correct driver version for your system architecture. In the directory above the "YUKONXsolx" subdirectory, enter: file YUKONXsolx/reloc/kernel/drv/yukon x This will tell you which system type the driver supports. If the yukonx file is located in: YUKONXsolx/reloc/kernel/drv/amd64 you have the x86 64 bit version. Problem: The driver startup fails with the message: "yukonx<InstanceNumber>: BoardAllocMem: ddi_dma_mem_alloc failed!" Solution: <InstanceNumber> is the instance number assigned to the adapter by the system. You probably have multiple adapters installed. Each one uses an amount of limited DMA memory. If the driver can not get sufficient memory, it will not work. You can increase the available DMA memory by tuning a kernel parameter. In the file /etc/system, add the line: set lomempages=<Value> The default for <Value> is 36. Increase this value until the above message disappears (recommended increment: 10). You have to reboot your system to activate this change! Problem: After installing additional adapters and reinstalling the driver, the network is up, you see the interfaces with 'netstat -i', but you can not reach other machines. Solution: The order in which instance numbers are assigned depends on the PCI slots the adapters are plugged into. This can cause an adapter that was inserted at a later time to have a lower instance number. Since you do not know this order when entering the IP addresses, the address assignment may be swapped. You can either swap the names of the corresponding /etc/hostname.yukonxX files or you can swap the cables of the adapters. X is the number of the corresponding interface. 11 Error messages This section describes error messages that may be printed by the driver. This list is incomplete! If you get other error messages and you can not solve the problem, contact Marvell technical support. NOTE: In all following error messages, <InstanceNumber> is a placeholder for the instance number assigned to the adapter by the system. Message: "yukonx<InstanceNumber>: Getconfiguration: Missing VLAN parameter <ParameterName>!" Meaning: <ParameterName> can be any name described as 'MUST be set' in section 5. You have configured the adapter yukonx<InstanceNumber> for the use of V LANs and forgotten to set a parameter that is essential for the correct functionality of a VLAN (Virtual LAN) device. If so, the attachment of the adapter is aborted. Message: "yukonx<InstanceNumber>: Getconfiguration: Illegal value for <ParameterName>, using default!" Meaning: <ParameterName> can be any parameter name described in section 3. You have entered an invalid value for this parameter in the driver configuration file. Message: "yukonx<InstanceNumber>: SkGeAttach: ddi_soft_state_zalloc failed!" Meaning: Not enough kernel memory is available for the driver. Message: "yukonx<InstanceNumber>: Adapter failed." Meaning: A serious driver or hardware problem has occurred. This will prevent the adapter from working correctly. You can check the adapter with the Marvell adapter hardware diagnostic program. Message: "yukonx<InstanceNumber>: Port <A|B> failed." Meaning: Same as the previous message, but for the port only. Message: "yukonx<InstanceNumber>: BoardAllocMem: ddi_dma_mem_alloc failed!" Meaning: The driver could not get enough DMA memory. See the section above for a solution. ***End of Readme File*** -- This message posted from opensolaris.org