Enabling Support for NetQueue on Intel Gigabit adapters using the igb driver

Posted on 11:59 AM by Bharathvn

The igb driver supports in version 1.3.8.6.3 two families of Intel Gigabit adapters.

Networking devices based on the Intel® 82575 Gigabit Ethernet Controller:

Intel® 82575EB Gigabit Network Connection
Intel® 82575EB Gigabit Backplane Connection
Intel® Gigabit VT Quad Port Server Adapter

Networking devices based on the Intel® 82576 Gigabit Ethernet Controller:

Intel® 82576 Gigabit Network Connection
Intel® Gigabit ET Dual Port Server Adapter
Intel® Gigabit EF Dual Port Server Adapter

This version of the driver driver utilizes VMware's NetQueue technology to enable Intel Virtual Machine Device Queues (VMDq). One main distinction between the two families is the number of receive queues supported. All adapters based on the Intel® 82575 Gigabit Ethernet Controller provide 4 receive queues per port, while the adapters based on the Intel® 82576 Gigabit Ethernet Controller provide 8 receive queues per port.


Solution:

Enabling VMDq

To enable VMDq:
  1. Enable NetQueue in VMkernel using VMware Infrastructure 3 Client:

    1. Choose Configuration > Advanced Settings > VMkernel.
    2. Select VMkernel.Boot.netNetqueueEnabled.

  2. Enable the igb module in the service console of the ESX Server host:

    # esxcfg-module -e igb

  3. Set the required load option for igb to turn on VMDq:

    The option IntMode=3 must exist to indicate loading in VMDq mode. A value of 3 for the IntMode parameter specifies using MSI-X and automatically sets the number of receive queues to the maximum supported (devices based on the 82575 Controller enable 4 receive queues per port; devices based on the 82576 Controller enable 8 receive queues per port). The number of receive queues used by the igb driver in VMDq mode cannot be changed.

    For a single port, use the command:

    # esxcfg-module -s "IntMode=3" igb


    For two or more ports, use a comma-separated list of values as shown in the following example (the parameter is applied to the igb-supported interfaces in the order they are enumerated on the PCI bus):

    # esxcfg-module -s "IntMode=3,3, ... 3" igb

  4. Reboot the ESX Server system.