日期:2014-05-16  浏览次数:20622 次

linux下dev_queue_xmit和netif_rx前截取网络数据
linux2.6.36的内核
想截取无线网络的数据,包括发送和接受的部分,然后用有线进行发送。现在找到linux协议栈中的收发函数了,想在这两个之前用skb_copy函数把数据进行复制,然后修改转发到一个字符设备中。然后通过一个socket应用把数据进行在有线网络上的读取等得控制,具体的处理过程需要哪些,刚学协议栈,很多地方不了解。还有就是如何找到那两个函数的位置,是在驱动中吗?用的有线网卡是DM9000,无线的是一个SD_wifi。希望给点类似的源码,可以参考一下。

------解决方案--------------------
只要在内核里拿到无线的包,然后你就随便处理了。不管是有线还是无线都可以使用netfilter来处理。无需关心无线驱动和有线驱动。不需要深入理解协议栈,但是需要深入理解sk_buff和netfilter编程。