我正在开发一个低延迟应用程序,将 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(..)
。
问题
有人知道在这个特定的驱动程序中物理发送数据包后会发生什么吗,也许可以将我指向这段代码。
当然,也欢迎任何其他关于如何解决该问题的建议。
谢谢