使用sk_buff从内核中的char * buf向网络设备发送数据包

时间:2011-08-15 07:49:09

标签: c linux networking kernel

我从sk_buff收集了char *缓冲区(钩子数据包并通过skb-> head到skb_>结束),将此缓冲区传输到另一台PC。现在我想从新PC重新发送这个数据包到网络。我该怎么发送?使用dev_queue_xmit()我必须从char *和数据长度重建sk_buff结构。有可能的?或者我可以使用原始套接字重新发送我的数据?

1 个答案:

答案 0 :(得分:0)

我相信您必须构建 sk_buff重建。此外,我认为从中收集char*是不合理的。

sk_buff只表示由不同部分组成的字节流,因此在编写数据包时不必将它们复制到整个地方。您不应该从sk_buff收集单个缓冲区,但如果您有单个缓冲区,只需填写新的sk_buff,其中一个部分指向缓冲区即可完成。