Я работаю над приложением с низкой задержкой, отправляя пакеты udp от мастера к подчиненному. Мастер действует как точка доступа, отправляя данные непосредственно на ведомый. В основном он работает хорошо, но иногда данные приходят в ведомое устройство с опозданием. Чтобы сузить возможные источники задержки, я хочу ставить временные метки для пакетов, когда они отправляются на ведущем устройстве.
Для этого мне нужен хук, с помощью которого я могу получить отметку времени сразу после отправки пакета.
Согласно http://www.xml.com/ldd/chapter/book/ch14.html#t7 после отправки пакета должно быть прерывание, но я не могу найти, где обслуживается прерывание tx.
Это драйвер: drivers/net/wireless/bcmdhd/dhd_linux.c
Я вызываю dhd_start_xmit(..)
от другого водителя, чтобы отправить свой пакет. dhd_start_xmit(..)
вызывает dhd_sendpkt(..)
, а затем вызывается dhd_bus_txdata(..)
(в bcmdhd/dhdpcie.c), где данные поставлены в очередь. Это в основном то, где я теряю представление о том, что происходит после того, как очередь запланирована в dhd_bus_schedule_queue(..)
.
Вопрос
Кто-нибудь знает, что происходит сразу после того, как пакет физически отправлен в этом конкретном драйвере, и, возможно, может указать мне на фрагмент кода.
Конечно, любые другие советы, как решить проблему, также приветствуются.
Спасибо