Сборка драйвера IXGBE без LRO

Skip to end of metadata
Go to start of metadata

Одним из первых абзацев в README драйвера IXGBE для 10Гбит/с сетевых карт Intel является рекомендация пересобирать его с отключением LRO.

Disable LRO if enabling ip forwarding or bridging
-------------------------------------------------

WARNING: The ixgbe driver supports the Large Receive Offload (LRO) feature.
This option offers the lowest CPU utilization for receives but is completely
incompatible with routing/ip forwarding and bridging. If enabling ip
forwarding or bridging is a requirement, it is necessary to disable LRO using
compile time options as noted in the LRO section later in this document. The
result of not disabling LRO when combined with ip forwarding or bridging can be
low throughput or even a kernel panic.

Установка всего необходимого для сборки

yum -y groupinstall "Development tools"
yum -y install kernel kernel-headers
reboot

Самые актуальные версии драйвера можно найти по адресу:

Сборка и установка драйвера

yum -y install wget
wget "https://kent.dl.sourceforge.net/project/e1000/ixgbe%20stable/5.1.3/ixgbe-5.1.3.tar.gz" -O ixgbe.tar.gz
tar xfz ixgbe.tar.gz
cd ixgbe-5.1.3/src
make CFLAGS_EXTRA=-DIXGBE_NO_LRO install
cp -a ixgbe.ko /lib/modules/$(uname -r)/kernel/drivers/net/ixgbe/

Дальнейшие действия

Если такая сетевая карта только одна и используется для приёма зеркала:

ip link set ethX down
depmod -a
rmmod ixgbe && modprobe ixgbe
service network restart

Если сетевых карт несколько, то

reboot

В случае использования двухпортовой сетевой карты и у не отображается один из портов. И в dmesg следующее сообщение:

ixgbe 0000:08:00.1: failed to load because an unsupported SFP+ or QSFP module type was detected

То необходимо включить поддержку 2 порта с помощью команды.

echo "options ixgbe allow_unsupported_sfp=1,1" > /etc/modprobe.d/ixgbe.conf 
rmmod ixgbe; modprobe ixgbe

Если включение данных опций не решило проблему, то вносим изменния в драйвер:

Правим файл:

vim ixgbe-5.1.3/src/ixgbe_phy.c

Ищем в нем:

ixgbe_get_device_caps(hw, &enforce_sfp);

И добавляем после нее строки:

/* PATCH Start*/
enforce_sfp |= IXGBE_DEVICE_CAPS_ALLOW_ANY_SFP;
/* PATCH End */

Далее собираем драйвер по инструкции с момента:

cd ixgbe-5.1.3/src

Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.