如何在将数据包发送到网卡之前更改数据包

  • 本文关键字:数据包 网卡 packet
  • 更新时间 :
  • 英文 :


我想在驱动程序级别测试数据包操作。如果需要,我应该更改现有的驱动程序代码。网卡是瑞昱 8101E。

我已经看到了驱动程序的流程,并希望在数据包通过网络发送之前将我自己的数据添加到数据包中。因此,就我而言,在 NIC 获得数据包所有权之前,我已经阅读了源代码。

我需要修改驱动程序代码的原因是,以后我可能需要使用其他硬件寄存器来填充新数据。

  1. xxx_xmit()函数是否应该是修改发送数据包的正确位置?

  2. xxx_xmit()函数中直接添加数据包重整代码是否会有任何其他影响?

首先,你可以在xmit回调中做到这一点。 但请注意,此回调在中断上下文(SOFTIRQ)中运行,因此您无法执行阻塞操作其次,xmit 函数中的任何数据包更改都应在接收函数中具有类似的"撤消"相关代码操作数据包的最佳方法是在上层使用网络过滤器

最新更新