首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

linux网卡驱动层,怎么直接调用hard_start_xmit发二层包

2012-03-09 
linux网卡驱动层,如何直接调用hard_start_xmit发二层包我现在可以在Linux的网卡驱动层直接改代码。要发的二

linux网卡驱动层,如何直接调用hard_start_xmit发二层包
我现在可以在Linux的网卡驱动层直接改代码。
要发的二层包内容已经获得了,如何构造skb,然后网卡名已知,第二个参数odev如何赋值呢?
hard_start_xmit(skb, odev);
--------------------------------
本人初学Linux,望各位高手指导?

[解决办法]
提问也不说下内核版本,硬件平台,哪个文件,函数原型。
请注意提问的技巧。
【版务贴】在"Linux/Unix社区内核及驱动程序研究区"发贴,请留意。
[解决办法]
与平台有关的,内核之间在网络这块改动很大,有些数据结构甚至已经消失或改名了。
[解决办法]
要发的二层包内容已经获得了,如何构造skb,然后网卡名已知,第二个参数odev如何赋值呢? 
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区

热点排行