Просмотр Исходного

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

{quote}
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.
{quote}


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

{code}
yum -y groupinstall "Development tools"
yum -y install kernel kernel-headers
reboot
{code}

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

{panel}
[https://sourceforge.net/projects/e1000/files/ixgbe%20stable/]
{panel}

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

{code}
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/

{code}

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

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

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

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

{code}
reboot
{code}

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

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

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

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

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

Правим файл:
{panel}
vim ixgbe-5.1.3/src/ixgbe_phy.c
{panel}

Ищем в нем:
{code}
ixgbe_get_device_caps(hw, &enforce_sfp);
{code}

И добавляем после нее строки:
{code}
/* PATCH Start*/
enforce_sfp |= IXGBE_DEVICE_CAPS_ALLOW_ANY_SFP;
/* PATCH End */
{code}

Далее собираем драйвер по инструкции с момента:
{panel}
make CFLAGS_EXTRA=-DIXGBE_NO_LRO install
{panel}