From Fedora Project Wiki

Описание

Этот тест показывает как сетевые интерфейсы могут быть зарегестрированы Виртуальных Функций для адаптеров с поддержкой функции SRIOV. Для более подробной информации о SRIOV и как включить Виртуальные функции вы можете прочитать тут - Virtualization_SRIOV.

Подготовка

  1. Подсоедините сетевой адаптор с поддержкой SRIOV. Для этого примера мы выбрали PCI Slot 3.
    07:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
    # lspci -s 07:00.0  -n
    07:00.0 0200: 8086:10c9 (rev 01)
  2. Включите виртуальные функции перезапустив драйвер Физических Функций(Physical Function driver). Это может быть автоматизированно в течении загрузки системы используя параметры max_vfs модуля.
    # cat << EOF > /etc/modprobe.d/igb.conf
    options igb max_vfs=2
    EOF
  3. Убедитесь, что Виртуальные Функции (Virtual Functions) включены воспользовавшись коммандрй lspci. В выводе lspci можно увидеть, что выведены 2 виртуальные функции для какждой физической функции. Вот пример:
    # lspci | grep -i ether
    07:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
    07:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
    07:10.0 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
    07:10.1 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
    07:10.2 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
    07:10.3 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)

Как проводить тестирование

В примере выще, двухпортовый сетевой адаптор Intel 82576 в PCI Slot 3, запускает 2 виртуальные функции для каждой физической функции.

  1. Убедитесь, что каждая виртуальная функция получила имя ввиде: pci<slot>#<port>_<virtual-function-instance>. В этом можно убедиться использовав комманду ls /sys/class/net/.

Ожидаемые результаты

  1. Убедитесь, что каждая виртуальная функция получила имя вида: pci<slot>#<port>_<virtual-function-instance>. Пример показан в выводе ниже.
# ls /sys/class/net/
lo  pci3#1  pci3#1_0  pci3#1_1  pci3#2  pci3#2_0  pci3#2_1  pci4#1

Имена наших виртуальных функций выведены ниже.

* pci3#1_0 - Add-in network interface on PCI Slot 3, Port 1, Virtual Function Instance 0
* pci3#1_1 - Add-in network interface on PCI Slot 3, Port 1, Virtual Function Instance 1
* pci3#2_0 - Add-in network interface on PCI Slot 3, Port 2, Virtual Function Instance 0
* pci3#2_1 - Add-in network interface on PCI Slot 3, Port 2, Virtual Function Instance 1