ethtool для паузы кадров?

Я создаю программу перехвата/пересылки кадров Ethernet на компьютере с Linux, которую я буду использовать для перехвата кадров, передаваемых с компьютера в сеть Ethernet и наоборот.

Я пытаюсь активировать паузу кадров, чтобы не потерять пакеты, так как двухэтапная передача на маршрутизатор может вызвать некоторую задержку.

Единственный способ, который я нашел для этого, — использовать ethtool, чтобы, например, включить паузу кадров с принимающей стороны:

ethtool -A eth0 rx on

У меня есть сомнения по этому поводу, которые, я надеюсь, развеет эксперт по ethtool.

Параметр, доступный с помощью «ethtool -A», включает или выключает автосогласование. Насколько я знаю, автосогласование имеет мало общего с кадрами паузы. Кроме того, немного смущает отсутствие опций, доступных в ethtool в отношении кадров паузы. Например, управление временем паузы, запрошенным отправителем кадра, невозможно с помощью ethtool.

Итак, ethtool действительно лучший или единственный способ настроить паузу кадров? В идеале я хотел бы настроить их с помощью кода C, но если ethtool — единственный способ сделать это, мне просто нужно подтверждение того, что я делаю правильно, настраивая кадры паузы с помощью ethtool.

И если бы кто-то мог указать мне правильное направление для настройки кадров паузы в C, я был бы еще более благодарен.

Спасибо.


person dalemus    schedule 07.02.2012    source источник


Ответы (1)


Почему вы хотите изобретать велосипед? Почему бы не использовать, например, libpcap или netfilter hooks для перехвата пакетов?

person Kimvais    schedule 07.02.2012