【发布时间】:2023-04-10 02:18:01
【问题描述】:
我正在开发一个低延迟应用程序,将 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(..) 中安排队列后发生的事情的地方。
问题
有人知道在这个特定的驱动程序中物理发送数据包后会发生什么吗?也许可以将我指向这段代码。
当然,也欢迎任何其他关于如何解决该问题的建议。
谢谢
【问题讨论】:
标签: linux-kernel driver wireless broadcom