C H A P T E R 1 |
Configuring the ge Device Driver |
These Platform Notes provide instructions for configuring the software used by the Sun GigabitEthernet adapter. They also contain information for configuring the network. Unless otherwise noted, all instructions apply to both the Sun GigabitEthernet/P adapter and the Sun GigabitEthernet/S adapter.
The document contains the following sections:
This section provides an overview of the capabilities of the GigabitEthernet ASIC used in the adapters, lists the available ge driver parameters, and describes how to configure these parameters.
The ge driver controls the Sun GigabitEthernet adapter devices. The Sun GigabitEthernet device is identified as network with the model property SUNW,sbus-gem or SUNW,pci-gem node. The ge driver is attached to the device with the compatible property pci108e,2bad for the Sun GigabitEthernet/P adapter or SUNW,sbus-gem for the Sun GigabitEthernet/S adapter. You can manually configure the parameters to customize each The Sun GigabitEthernet Adapter in your system.
The GigabitEthernet MAC (GEM) provides 1000BASE-SX networking interfaces. The driver automatically sets the link speed to 1000 Mbps and conforms to the IEEE 802.3z Ethernet standard. The GEM PCI ASIC provide the PCI interface, Media Access Control (MAC) functions, and Physical Code Sublayer (PCS) functions. The GEM SBus ASIC provides the SBus interface, MAC functions, and PCS functions. The External SERDES, which connects the 1000BASE-SX Compliant SC connector to the ASIC, provides the physical layer functions.
The GEM MAC and PCS are capable of all the operating speeds and modes listed in Autonegotiation Mode . The PCS performs autonegotiation with the remote end of the link (link partner) to select a common mode of operation.
The PCS also supports a forced mode of operation. You can select the speed and mode by creating a ge.conf file.
TABLE 1-1 describes the parameters and settings for the ge driver.
The read-only parameters described in TABLE 1-2 explain the operational mode of the interface. Based on the value of these parameters, you can determine the current status of a link.
The GEM ASIC is capable of sourcing (transmitting) and terminating (receiving) pause frames conforming to IEEE 802.3x Frame Based Link Level Flow Control Protocol. In response to received flow control frames, the GEM can slow down its transmit rate. On the other hand, GEM is capable of sourcing flow control frames, requesting the link partner to slow down, provided that the link partner supports this feature. By default, GEM advertises Receive PAUSE capability during autonegotiation.
For normal operations, GEM doesn't need to source flow control frames. However, if GEM is operating on a slow bus (for instance, a 33-MHz PCI bus slot), and there is a lot of frame reception activity, there could be a performance degradation due to Receive FIFO overflow. If the link partner is capable of terminating PAUSE flow control frames, the performance of GEM could be improved by enabling adv_pauseTX and restarting autonegotiation.
The GEM ASIC supports the programmable Interpacket Gap (IPG) parameters ipg1 and ipg2 . The total IPG is the sum of ipg1 and ipg2 : 0.096 microseconds for the link speed of 1000 Mbps.
TABLE 1-4 lists the default values and allowable values for the IPG parameters, ipg1 and ipg2 .
By default, the driver sets ipg1 to 8-byte time and ipg2 to 4-byte time, which are the standard values. (Byte time is the time it takes to transmit one byte on the link, with a link speed of 1000 Mbps.)
If your network has systems that use longer IPG (the sum of ipg1 and ipg2 ) and if those machines seem to be slow in accessing the network, increase the values of ipg1 and ipg2 to match the longer IPGs of other machines.
The GEM ASIC supports a programmable mode called lance_mode . The ipg0 parameter is associated with lance_mode .
If lance_mode is enabled (the default), an additional delay is added by setting the ipg0 parameter before transmitting the packet. This delay is in addition to the delay set by the ipg1 and ipg2 parameters. The additional delay set by ipg0 helps to reduce collisions. Systems that have lance_mode enabled might not have enough transmission time on the network.
If lance_mode is disabled, the value of ipg0 is ignored and no additional delay is set. Only the delays set by ipg1 and ipg2 are used. Disable lance_mode if other systems keep sending a large number of back-to-back packets.
You can add the additional delay by setting the ipg0 parameter from 0 to 31, which is the media byte time delay.
TABLE 1-5 defines the lance_mode and ipg0 parameters.
0 to 30 = Additional IPG before transmitting a packet (after receiving a packet) |
TABLE 1-6 describes the operational mode parameters and their default values.
TABLE 1-7 describes the read-only PCS capabilities that GEM PCS supports. These parameters define the capabilities of the hardware.
Local PCS Full Duplex capability |
|
Local PCS Half Duplex capability |
|
Local PCS Flow Control capability |
|
Local PCS Flow Control capability |
TABLE 1-8 describes the read-only link partner capabilities.
If the link partner is not capable of autonegotiation (when lp_1000autoneg_cap is 0), the remaining information described in TABLE 1-8 is not relevant and the parameter value equals 0.
If the link partner is capable of autonegotiation (when lp_autoneg_cap is 1), the speed and mode information is displayed when you use autonegotiation and get the link partner capabilities.
You can set the ge driver parameters in two ways, depending on your needs:
Use the ndd utility to set parameters that are valid until you reboot the system. It is also a good way to test parameter settings.
Use the ge.conf file to set parameters so they remain in effect after you reboot the system. Create a /kernel/drv/ge.conf file and add parameter values to this file when you need to set a particular parameter for a device in the system.
Use the ndd utility to configure parameters that are valid until you reboot the system. The ndd utility supports any networking driver that implements the Data Link Provider Interface (DLPI).
The following sections describe how you can use the ge driver and the ndd utility to modify (with the -set option) or display (without the -set option) the parameters for each ge device.
Before you use the ndd utility to get or set a parameter for a ge device, you must specify the device instance for the utility.
1. Check the /etc/path_to_inst file to identify the instance associated with a particular device.
# grep ge /etc/path_to_inst "/pci@4,4000/network@4" 2 "ge" "/pci@6,2000/network@1" 1 "ge" "/pci@4,2000/network@1" 0 "ge" |
In this example, the three GigabitEthernet instances are from the adapters installed in perspective PCI slots.
In this example, the GigabitEthernet instance is from an adapter installed in a perspective SBus slot.
2. Use the instance number to select the device.
The device remains selected until you change the selection.
You can use the ndd utility in two modes:
In the non-interactive mode, you invoke the utility to execute a specific command. Once the command is executed, you exit the utility. In the interactive mode, you can use the utility to get or set more than one parameter value. (Refer to the ndd (1M) man page for more information.)
This section describes how to modify and to display parameter values.
1. To modify a parameter value, use the -set option.
If you invoke the ndd utility with the -set option, the utility passes value , which must be specified down to the named /dev/ge driver instance, and assigns it to the parameter:
2. To display the value of a parameter, specify the parameter name (and omit the value).
When you omit the -set option, a query operation is assumed and the utility queries the named driver instance, retrieves the value associated with the specified parameter, and prints it:
1. To modify a parameter value in the interactive mode, specify ndd /dev/ge , as shown below.
The ndd utility then prompts you for the name of the parameter:
After entering the parameter name, the ndd utility prompts you for the parameter value (see TABLE 1-1 through TABLE 1-8 ).
1. To list all the parameters supported by the ge driver, type ndd /dev/ge \? .
(See TABLE 1-1 through TABLE 1-8 for parameter descriptions.)
By default, autonegotiation is set to on . This means that the adapter will communicate with its link partner to determine a compatible network speed, duplex mode, and flow control capability.
If your network equipment does not support autonegotiation, or if you want to specify your network speed, you can set autonegotiation to off on the ge device.
1. Select the following parameters: adv_1000fdx_cap , adv_1000hdx_cap , adv_pauseTX and adv_pauseRX , and set those values according to the user's manual that shipped with your link partner device (for example, switch). See TABLE 1-6 for parameter values.
2. Set adv_1000autoneg_cap to 0 .
You can also specify the properties described in this section on a per-device basis by creating a ge.conf file in the /kernel/drv directory. Use a ge.conf file when you need to set a particular parameter for a device in the system. The parameters you set are read and write parameters that are listed in Driver Parameter Values and Definitions .
The man pages for prtconf (1M) and driver.conf (4) include additional details.
1. Obtain the hardware path names for the ge devices in the device tree.
Typically the path names and the associated instance numbers will be present in the
/etc/path_to_inst
file.
In the device path name, the last component after the last / character and before the @ character ( network ) is the device name.
The path name before the last component (sbus@b,0) is the parent name.
To identify an SBus device unambiguously in the ge.conf file, use the name and parent name of the device. Refer to the sbus (4) man page for more information about the SBus device specification.
Name = SUNW,sbus-gem
Class = "sbus"
Note Note - The "name" property in the ge.conf file should be the same value as the "compatible" property. In this case, the value is SUNW,sbus-gem. |
To identify a PCI device unambiguously in the ge.conf file, use the name, parent name, and the unit-address for the device. Refer to the pci (4) man page for more information about the PCI device specification.
In the first line of the previous example:
In the second line in the previous example:
In the third line in the previous example:
1. Set the ipg1 and ipg2 parameters for the above devices in the
3. Save and close all files and programs, and exit the windowing system.
4. If your system doesn't support DR, reboot by typing the init 6 command at the superuser prompt.
1. Set the ipg1 and ipg2 parameters for the above devices in the
3. Save and close all files and programs, and exit the windowing system.
4. Halt and reboot the system by typing the init 6 command at the superuser prompt.
This section describes how to configure the driver after it has been installed on your system.
After installing the The Sun GigabitEthernet Adapter driver software, you must create a file for the adapter's Ethernet interface. You must also create both an IP address and a host name for the Ethernet interface in the /etc/hosts file.
1. At the command line, use the grep command to search the /etc/path_to_inst file for ge interfaces.
The following example shows the device instance from an adapter installed in slot 1.
The following example shows the device instance from an adapter installed in slot 0.
2. Create an /etc/hostname.ge <num> file, where num is the instance number of the ge interface you plan to use.
If you wanted to use the adapter's
ge
interface in the Step 1 example, you would need to create a
/etc/hostname.ge0
file, where
0
is the number of the
ge
interface. If the instance number were
1
, the file name would be
/etc/hostname.ge1
.
Do not create an /etc/hostname.ge num file for a The Sun GigabitEthernet Adapter interface you plan to leave unused.
The /etc/hostname.ge num file must contain the host name for the appropriate ge interface.
The host name should have an IP address and should be entered in the
/etc/hosts
file.
The host name should be different from any other host name of any other interface: for example, /etc/hostname.ge0 and /etc/hostname.ge1 cannot share the same host name.
The following example shows the /etc/hostname.ge num file required for a system called zardoz that has a The Sun GigabitEthernet Adapter ( zardoz-11) .
3. Create an appropriate entry in the /etc/hosts file for each active ge interface.
# cat /etc/hosts # # Internet host table # 127.0.0.1 localhost 129.144.10.57 zardoz loghost 129.144.11.83 zardoz-11 |
4. If your system does not support Dynamic Reconfiguration (DR), reboot.
The Solaris 9 Installation Guide describes the full procedure for installing the Solaris operating environment over the network. The procedure below assumes that you have an install server, which contains the image of the Solaris Operating Environment, and that you have set up the client system to be upgraded over the network.
Before you can install the Solaris operating environment on a client system with a GigabitEthernet adapter, you must first add the GigabitEthernet software packages to the install server. These software packages can be found on Solaris CD.
Note Note - Refer to the Solaris 9 Installation Guide for more information about installing the Solaris operating environment over the network. |
To Install the Solaris Environment Over a GigabitEthernet Network |
1. Prepare the install server and client system to install the Solaris operating environment over the network.
The Solaris 9 Installation Guide describes how to create the install server and set up the client systems.
2. Find the root directory of the client system.
The client system's root directory can be found in the install server's
/etc/bootparams
file. Use the
grep
command to search this file for the root directory.
# grep client_name /etc/bootparams client_name root=server_name:/netinstall/Solaris_9/Tools/Boot install=server_name:/netinstall boottype=:in rootopts=:rsize=32768 |
In the example above, the root directory for the client is /netinstall .
Note Note - If the root directory is not found in the /etc/bootparams file, refer to the Solaris 9 Installation Guide for configuration instructions. |
3. If the client system is not already displaying the OpenBoot ( ok ) prompt, shut down and halt the client system.
Use the shutdown (1M) command to display the OpenBoot ( ok ) prompt.
4. At the ok prompt, use the show-nets command to find the device path of the GigabitEthernet device.
The show-nets command lists the system devices. You should see the full path name of the network device, similar to the examples below.
ok show-nets a) /pci@1f,0/pci@1/network@3 b) /pci@1f,0/pci@1,1/network@1,1 q) NO SELECTION Enter Selection, q to quit: |
ok show-nets a) /sbus@1f,0/network@1,100000 b) /sbus@1f,0/SUNW,hme@e,8c00000 q) NO SELECTION Enter Selection, q to quit: |
5. At the ok prompt, boot the client system using the full device path of the GigabitEthernet device.
Use the full device path name of the network device, similar to the examples below.
6. Proceed with the Solaris operating environment installation.
Refer to the Solaris 9 Installation Guide for more information about installing the Solaris operating environment over the network.
7. Confirm that the network host files have been configured correctly during the Solaris installation.
Although the Solaris software installation creates the client's hosts files, you may need to edit these files to match your specific networking environment. See To Configure the Host Files for more information about editing these files.
Copyright © 2002, Sun Microsystems, Inc. All rights reserved.