VMware
 

Knowledge Base

Search the Knowledge Base:

Products:
Search In:
 

Setting Network Adapter Speed in ESX Server

Details

The network adapters I am using with ESX Server are not automatically set to the right speed or duplex setting. How can I specify those settings?

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:

  1. Log onto the management interface as root.
  2. Go to the Network Configuration page (Configure System > Network Configuration).
  3. Locate the device you want to reconfigure and choose the appropriate setting from the drop-down list in the New Speed/Duplex column.
  4. Click Update Network Configuration.

For ESX Server 2.x:

  1. Log onto the management interface as root.
  2. Choose Options > Network Connections > Physical Adapters.
  3. Locate the device you want to reconfigure and click Edit.
  4. Choose the appropriate setting from the drop-down list.
  5. Click OK.
Note: Autonegotiation is recommended for gigagbit ethernet adapters. If you have used the management interface to manually set the speed to 1000 MBPS, you may have to edit /etc/vmware/hwconfig to permit the adapter to come up properly. See www.vmware.com/support/kb/enduser/std_adp.php?p_faqid=1564 for more information.

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

813; mii tool; mii-tool

Feedback

Rating: 1 - Lowest 2 3 4 5 - Highest (0 Ratings)   

Did this article help you?
This article resolved my issue.
This article did not resolve my issue.
This article helped but additional information was required to resolve my issue.
What can we do to improve this information? (2000 or fewer characters)
Submit
Rating: 1 - Lowest 2 3 4 5 - Highest (0 Ratings)   
Actions