From Fedora Project Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Описание

Этот тест показывает как сетевые интерфейсы могут быть зарегестрированы Виртуальных Функций для адаптеров с поддержкой функции 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