【发布时间】:2014-01-31 21:49:26
【问题描述】:
我想将 skb 推送到 Linux 网络堆栈的prerouting 点。有没有办法做到这一点?
我使用了dev_queue_xmit() 和netif_rx() 函数,但我认为它们不能将skb 推送到Linux 网络堆栈的prerouting 点。
【问题讨论】:
-
您能否详细说明内核版本?没有内核版本很难具体
-
@Pegasus 我正在使用内核 3.2
-
你真正想要达到什么目的?想将 skb 从哪里推送到预路由?能否请您详细说明
-
我想在预路由点注册ioctl,然后从用户空间通过SEND_PACKET(buffer, size) ioctl发送数据包。
-
@Khajavi 根据发送数据包,一个简单的 send() 系统调用就足够了,我不知道你为什么要这样。您可以使用 netfilter 挂钩的概念在预路由点调用,您可以进行函数挂钩,并且可以在该点做任何您想做的事情。我认为你需要看看 netfilter 教程。
标签: c linux-kernel network-programming kernel linux-device-driver