当前位置: 技术问答>linux和unix
linux网卡驱动层,如何直接调用hard_start_xmit发二层包
来源: 互联网 发布时间:2016-11-25
本文导语: 我现在可以在Linux的网卡驱动层直接改代码。 要发的二层包内容已经获得了,如何构造skb,然后网卡名已知,第二个参数odev如何赋值呢? hard_start_xmit(skb, odev); -------------------------------- 本人初学Linux,望各位高手指导...
我现在可以在Linux的网卡驱动层直接改代码。
要发的二层包内容已经获得了,如何构造skb,然后网卡名已知,第二个参数odev如何赋值呢?
hard_start_xmit(skb, odev);
--------------------------------
本人初学Linux,望各位高手指导?
要发的二层包内容已经获得了,如何构造skb,然后网卡名已知,第二个参数odev如何赋值呢?
hard_start_xmit(skb, odev);
--------------------------------
本人初学Linux,望各位高手指导?
|
与平台有关的,内核之间在网络这块改动很大,有些数据结构甚至已经消失或改名了。
|
要发的二层包内容已经获得了,如何构造skb,然后网卡名已知,第二个参数odev如何赋值呢?
hard_start_xmit(skb, odev);
------------------------------------------------
说得再详细点吧
odev就是你当前要修改的网卡驱动注册的struct net_device *,一般是驱动里的全局变量不用构造
要发的二层包内容已经获得了,那就直接创建一个skb发就行了
首先要告诉我你要改的驱动原文件名,这样我就可以借助那个驱动的实现帮你把skb填充好
hard_start_xmit(skb, odev);
------------------------------------------------
说得再详细点吧
odev就是你当前要修改的网卡驱动注册的struct net_device *,一般是驱动里的全局变量不用构造
要发的二层包内容已经获得了,那就直接创建一个skb发就行了
首先要告诉我你要改的驱动原文件名,这样我就可以借助那个驱动的实现帮你把skb填充好
|
已知网卡设备名,比如eth0,可以调用get_dev_by_name获得对应的net_device对象作为hard_start_xmit的odev参数。
|
memcpy就可以了,填充skb的data区
|