TX offload

7 июля, 2021

Как это обычно бывает, сделанное во имя добра оборачивается злом. Как, например, TX offload. Оглядываясь назад, кажется, что я годами замечал подобные проблемы, только они были редкими и до сути я не докапывался. Реальные проблемы начались, когда я проапгрейдил у себя интернет до 300Mbit/s.

Поскольку для таких скоростей уже нужна гигабитная сеть, пришлось проапгрейдить роутер с OrangePI R1 до NanoPi R2S

И я сразу огрёбся. Второй сетевой адаптер на этом роутере, подключенный по внутренней USB, начал отваливаться буквально раз в минуту. Спасибо поисковикам, решение нашлось достаточно быстро: вырубить TX offload.

TX offload — это такая фича, когда некоторые функции реализуются в сетевом адаптере ради снижения нагрузки на основной процессор, в частности, вычисление контрольных сумм пакетов. Всё бы работало замечательно, если бы не понаделали ошибок. Реализаторы всего-лишь люди, и, как это обычно бывает, они облажались. Вот чуточку более подробное чтиво: https://networkengineering.stackexchange.com/questions/56083/does-it-make-sense-to-generally-disable-tcp-checksum-offload#56084.

Кстати, отключение TX offload рекомендовано для FreeBSD in-kernel NAT, о котором я упоминал в предыдущей заметке. Правда, там оно не помогло.

Comments

Loading...