当前位置: 技术问答>linux和unix
双网卡编程的问题(发出去的数据会被再收回来)
来源: 互联网 发布时间:2017-01-02
本文导语: 我现在在Linux下写了一个模块,功能就是将一块网卡上收到的数据,经过过滤后,通过另一块网卡转发出去。 目前做的是在网卡驱动中,在e1000_receive_skb()之前加了个判断,若满足条件则不通过e1000_receive_skb,这样能...
我现在在Linux下写了一个模块,功能就是将一块网卡上收到的数据,经过过滤后,通过另一块网卡转发出去。
目前做的是在网卡驱动中,在e1000_receive_skb()之前加了个判断,若满足条件则不通过e1000_receive_skb,这样能够使数据不通过系统的协议栈,直接进入dev_queue_xmit(skb)的发送队列,即我用libpcap抓不到接收数据网卡的数据。
现在有个问题,我在调用dev_queue_xmit(skb)后,这部分数据可以让libpcap给收回来,即我发送的数据会被收回来,我希望让libpcap收不到,请问可以调用其他的什么函数么?网上还有些的dev->hard_start_xmit(),但是这个函数貌似现在没有了啊,请问该怎么办呢?
目前做的是在网卡驱动中,在e1000_receive_skb()之前加了个判断,若满足条件则不通过e1000_receive_skb,这样能够使数据不通过系统的协议栈,直接进入dev_queue_xmit(skb)的发送队列,即我用libpcap抓不到接收数据网卡的数据。
现在有个问题,我在调用dev_queue_xmit(skb)后,这部分数据可以让libpcap给收回来,即我发送的数据会被收回来,我希望让libpcap收不到,请问可以调用其他的什么函数么?网上还有些的dev->hard_start_xmit(),但是这个函数貌似现在没有了啊,请问该怎么办呢?
|
楼主,研究精神可嘉啊!!!
不会,帮顶......
不会,帮顶......