Вопрос или проблема
У меня есть сервер Dell PowerEdge R740 с контроллером Ethernet Intel Corporation x710 для сети 10GbE SFP+. На нем установлена RHEL 8. Я пытаюсь включить аппаратное ускорение фрагментации UDP следующим образом:
$ sudo ethtool --offload eno1 ufo on
Я получаю такое сообщение:
Не удается изменить аппаратное ускорение фрагментации UDP
Не удается изменить какие-либо функции устройства.
У eno1 есть кабель SFP+ DAC. Проблема связана с кабелем SFP+? Или с каким-то драйвером, который у меня может отсутствовать?
Судя по предоставленному вами выводу, вероятно, UFO не поддерживается драйвером и не имеет отношения к кабелю.
Вот коммит в Git kernel.org, который добавил функцию UFO.
Обратите внимание на следующее:
Этот патч использует функцию scatter-gather skb для генерации больших UDP
датаграмм.[…]
skb->ip_summed будет установлено в CHECKSUM_HW,
что указывает на то, что аппаратное обеспечение должно выполнять расчет контрольной суммы. Аппаратное обеспечение должно
вычислить контрольную сумму UDP для полной датаграммы, а также контрольную сумму заголовка IP для
каждого фрагментированного IP пакета.
Поэтому, если у вас отключены scatter-gather и/или TX аппаратное суммирование контрольной суммы, может быть невозможно включить функцию аппаратного ускорения фрагментации UDP, хотя эта функция доступна в NIC+драйвере. Вам нужно сначала включить другие необходимые функции.
Это будет:
sudo ethtool --offload eno1 sg on tx on ufo on
Ответ или решение
Не удаётся изменить параметр UDP Fragmentation Offload на сервере Dell PowerEdge R740 с RHEL 8
Проблема
Вы столкнулись с проблемой, пытаясь включить функцию UDP fragmentation offload (UFO) на сетевом интерфейсе вашего сервера Dell PowerEdge R740. При выполнении команды:
sudo ethtool --offload eno1 ufo on
вы получаете сообщение об ошибке:
Cannot change UDP fragmentation offload
Cannot change any device features.
Это может вызвать недоумение, особенно если вы уверены в корректной работе вашего оборудования и программного обеспечения. В данной статье мы рассмотрим возможные причины возникновения этой ошибки и предложим пути её решения.
Причины возникновения ошибки
-
Поддержка функции драйвером: Как было отмечено, данное сообщение об ошибке может указывать на то, что ваша сетевая карта и используемый драйвер не поддерживают функцию UDP fragmentation offload (UFO). Сетевой адаптер Intel x710 в принципе должен поддерживать UFO, но в зависимости от версии драйвера это может быть реализовано не полностью.
-
Зависимость от других настроек: Некоторые функции, такие как UFO, могут зависеть от других параметров аппаратного обеспечения. Для корректной работы UFO необходимо, чтобы были включены следующие функции:
- Scatter-Gather (SG): Эта функция позволяет операционной системе делить данные на более мелкие пакеты, которые затем отправляются на сетевой адаптер.
- TX (TX Checksum Offload): Эта функция позволяет адаптеру выполнять вычисления контрольной суммы для передаваемых данных, а не делать это в программном обеспечении.
Если эти функции отключены, это может привести к невозможности включения UFO, даже если сама функция доступна для сетевого интерфейса.
Решение
Для решения вашей проблемы выполните следующие шаги:
-
Проверьте, включены ли функции Scatter-Gather и TX Checksum Offload. Это можно сделать с помощью команды
ethtool
:sudo ethtool --show-offload eno1
Убедитесь, что параметры
scatter-gather
иtx-checksum
включены (должны быть установлены вon
). -
Включите необходимые функции:
Если какие-либо из необходимых функций отключены, включите их с помощью следующих команд:sudo ethtool --offload eno1 sg on sudo ethtool --offload eno1 tx on
-
Включите UDP fragmentation offload:
После активации необходимых функций попробуйте снова включить UFO:sudo ethtool --offload eno1 ufo on
Заключение
Убедитесь, что ваш драйвер и прошивка сетевой карты обновлены до последней версии. Если проблема не исчезнет, возможно, стоит обратиться в поддержку Dell или к разработчикам драйвера для получения более детальной информации о поддержке UFO и потенциальных обновлениях.
Эта проблема не связана с типом вашего соединения (например, SFP+ кабель) и больше относится к аппаратному и программному обеспечению сетевого интерфейса. Следуя инструкциям выше, вы сможете устранить возникшую ошибку и включить необходимую функциональность для оптимизации вашей сетевой работы.