到目前为止,我只在设备驱动程序中使用了文件操作结构。 使用系统调用open&读,写。
如何打开设备驱动程序&使用net_device_ops传输数据? 网上是否有参考示例供用户程序与之交互?
答案 0 :(得分:3)
我不确定我是否理解这个问题,所以如果我的答案没有意义,请告诉我。
我发现您已为.ndo_open
,.ndo_stop
和.ndo_start_xmit
定义了函数。当您使用.ndo_open
配置接口或使用ifconfig为接口分配地址时,内核会调用ifconfig up
。当您删除模块或使用.ndo_stop
关闭接口时,内核会调用ifconfig down
。
ifconfig在此处描述:http://linux.die.net/man/8/ifconfig
当使用套接字传输数据包时,内核网络堆栈会调用 .ndo_start_xmit
。因此,要使用.ndo_start_xmit
传输数据,您需要创建套接字,分配适当的目标地址,并通过套接字发送数据。如果你正在使用IP,你可以使用一些工具轻松发送数据包,例如netperf或iperf。