Knowledge Base

Search the Knowledge Base: |
Search the Knowledge Base: |
Setting Network Adapter Speed in ESX Server
Details
Solution
The steps for forcing the network adapter to use specific settings depend on whether the adapter is being used by the console operating system or by the virtual machines. See the appropriate section below for details.
Each driver has its own particular way of expressing speed and duplex settings. For details, see the listing at the end of this article.
Setting the Speed of Adapters Used by the Console Operating System
For each adapter you want to control, you must add or modify an alias line and an options line in the file /etc/modules.conf. To do so, log on to the console operating system as the root user and use a text editor to make the appropriate modifications.
These settings are used automatically the next time you restart the ESX Server machine. If you want to load the module manually, note that the insmod command does not read /etc/modules.conf, so you must also run the command modprobe if you want to pick up the new settings.
Examples of alias and options lines are shown below. The alias line specifies an association between a console operating system device name, such as eth0, and a driver, such as 3c59x. The options line specifies a driver and the settings to be used with each network adapter that uses the driver. Be sure to specify the module name, not the alias, on an options line.
Examples of alias Lines
alias eth0 3c59x
alias eth1 3c59x
alias eth2 3c990
alias eth3 3c990
alias eth4 acenic
alias eth5 acenic
alias eth6 bcm5700
alias eth7 bcm5700
alias eth8 e100
alias eth9 e100
alias eth10 e1000
alias eth11 e1000
Examples of options Lines
Force the first 3c59x card to 100Full and the second to
10Half:
options 3c59x full_duplex=1,0 options=4,1
Force the first 3c990 card to 10Full and the second to
100Full:
options 3c990 force=1,3
Force the first acenic card to 100Full and the second to
1000Full:
options acenic=0x222,0x242
Force the first bcm5700 card to 100Full and the second to
1000Full:
options bcm5700 line_speed=100,1000 auto_speed=0,1
full_duplex=1,1
Note: Setting line_speed to 1000, requires that auto_speed be set to 1
Force the first e100 card to 10Half and the second to
100Full:
options e100 e100_speed_duplex=1,4
Force the first e1000 card to 100Full and the second to
1000Full:
options e1000 Speed=100,1000 Duplex=2,2
Setting the Speed of Adapters Used by Virtual Machines
The VMkernel network device drivers, which control the network connections used by the virtual machines, start with a default setting of 100Mbps, full duplex. This setting should work correctly with network switches set for 100Mbps, full duplex and with switches set to autonegotiate.
If you encounter problems -- in particular, very low receive speeds -- it is likely that your switch is set for 100Mbps, half duplex.
To resolve the problem, either change the settings on your switch or change the settings for the VMkernel network device. For most adapters, you can change these settings using the VMware Management Interface.
For ESX Server 1.x:
- Log onto the management interface as root.
- Go to the Network Configuration page (Configure System > Network Configuration).
- Locate the device you want to reconfigure and choose the appropriate setting from the drop-down list in the New Speed/Duplex column.
- Click Update Network Configuration.
For ESX Server 2.x:
- Log onto the management interface as root.
- Choose Options > Network Connections > Physical Adapters.
- Locate the device you want to reconfigure and click Edit.
- Choose the appropriate setting from the drop-down list.
- Click OK.
If you are unable to configure the adapter speed properly using the management interface -- for example, if you are using the 3c90x driver -- you can modify the file /etc/vmware/hwconfig to specify the settings you want. To do so, log on to the console operating system as the root user and use a text editor to make the appropriate modifications. (Do not make changes in /etc/vmware/vmkmodules.conf. Any changes there are ignored.)
Check the device.*.name line to confirm the numerical identifier for the adapter you want to configure. Then insert the appropriate parameters in the quotation marks at the end of the corresponding device.*.options line
Examples
In each case illustrated below, the configuration parameters set the card to 100Full.
device.3.12.0.name = "Intel Corporation 82543 Gigabit
Ethernet Adapter (rev 02)"
device.3.13.0.name = "Netgear GA620 (rev 01)"
device.4.13.0.name = "Intel Corporation 82557 [Ethernet Pro
100] (rev 0c)"
device.4.14.0.name = "3Com Corporation 3c905B 100BaseTX
[Cyclone] (rev 64)"
device.4.15.0.name = "BROADCOM Corporation NetXtreme BCM5700
Gigabit Ethernet (rev 12)"
device.vmnix2.3.12.0.options = "Speed=100
Duplex=2"
device.vmnix2.3.13.0.options = "link=0x222"
device.vmnix2.4.13.0.options = "e100_speed_duplex=4"
device.vmnix2.4.14.0.options = "media_select=4
full_duplex=1"
device.vmnix2.4.15.0.options = "line_speed=100
full_duplex=1"
Complete List of Speed and Duplex Settings for Each Driver
3c59x -- console operating system only
full_duplex=[0-1]
0 - half
1 - full
options=[0-7]
0 - MEDIA_NONE
1 - MEDIA_10BASE_TX
2 - MEDIA_10AUI
3 - MEDIA_10BASE_2
4 - MEDIA_100BASE_TX
5 - MEDIA_100BASE_FX
6 - MEDIA_10BASE_FL
7 - MEDIA_AUTO_SELECT
3c90x -- virtual machines (VMkernel) only
This module's parameters are interdependent, so you must always specify media_select=n if you want to specify full_duplex=n.
media_select=[0-7]
0 - MEDIA_NONE
1 - MEDIA_10BASE_TX
2 - MEDIA_10AUI
3 - MEDIA_10BASE_2
4 - MEDIA_100BASE_TX
5 - MEDIA_100BASE_FX
6 - MEDIA_10BASE_FL
7 - MEDIA_AUTO_SELECT
full_duplex=[0-1]
0 - half
1 - full
3c990
force=[1-4]
1 - 10Full
2 - 100Half
3 - 100Full
4 - Auto
acenic
link=[0x213 | 0x212 | 0x223 | 0x222 | 0x243 |
0x242]
0x213 - 10Half
0x212 - 10Full
0x223 - 100Half
0x222 - 100Full
0x243 - 1000Half
0x242 - 1000Full
bcm5700
This module's parameters are interdependent, so you must always specify line_speed=n when you specify full_duplex=n.
A different setting is required for auto_speed depending on line_speed value:
- When setting line_speed to 1000 you must set auto_speed to 1.
- When setting line_speed to 100 you must set auto_speed to 0.
line_speed=[10 | 100 | 1000]
auto_speed=[0-1]
0 - autonegotiation disabled
1 - autonegotiation enabled (default)
full_duplex=[0-1]
0 - half
1 - full
e100
e100_speed_duplex=[0-4]
0 - AUTONEG
1 - 10_HALF
2 - 10_FULL
3 - 100_HALF
4 - 100_FULL
e1000
Speed=[0 | 10 | 100 | 1000]
(0 is autonegotiate)
Duplex=[0-2]
0 - Autonegotiate
1 - Half
2 - Full
For certain 100BaseT NICs, you can also run mii-tool to read and set speed and duplex parameters.
Note that changes made with this tool won't be retained during a reboot of the ESX Server machine.
Keywords
Feedback
- KB Article: 813
- Updated: Aug 14, 2009
- Products:
VMware ESX - Product Versions:
VMware ESX 1.5.x
VMware ESX 2.0.x
VMware ESX 2.1.x
VMware ESX 2.5.x

