In certain troubleshooting situations or to configure hosts directly, you can run a console command on ESXi to create SR-IOV virtual functions on a physical adapter.

You can create SR-IOV virtual functions on the host by manipulating the NIC driver parameter for virtual functions in accordance with the driver documentation.


Install the vCLI package, deploy the vSphere Management Assistant (vMA) virtual machine, or use the ESXi Shell. See Getting Started with ESXCLI.


  1. To create virtual functions by setting the parameter for virtual functions of the NIC driver, run the esxcli system module parameters set command at the command prompt.
    esxcli system	module parameters set -m driver -p vf_param=w,x,y,z

    Where driver is the name of the NIC driver, and vf_param is the driver-specific parameter for creating the virtual function.

    You can use a comma-separated list to set values for the vf_param parameter, where each entry indicates the number of virtual functions for a port. A value of 0 ensures that SR-IOV is not enabled for that physical function.

    If you have two dual port NICs, you can set the value to w,x,y,z, where w, x, y, and z is the number of virtual functions you want to enable for a single port. For example, to create 30 virtual functions distributed on two dual port Intel cards by using the ixgbe driver, run the following command for the ixgbe driver and the max_vfs parameter:
    esxcli system module parameters set -m ixgbe -p max_vfs=0,10,10,10
  2. Restart the host to create the virtual functions.

What to do next

Associate a virtual function with a virtual machine adapter by using the SR-IOV passthrough network adapter type. See Assign a Virtual Function as SR-IOV Passthrough Adapter to a Virtual Machine.