linuxnetworking驱动程序–net_device_ops

到目前为止,我只使用设备驱动程序中的文件操作结构。 使用系统调用打开和读取,写入。

如何使用net_device_ops打开设备驱动程序和传输数据? 网上有参考的例子用户程序与它进行交互?

http://lnxpps.de/rpie/mcp2515_mod.c

我不确定我是否理解这个问题,所以让我知道如果我的答案没有意义。

我看到你已经为.ndo_open.ndo_stop.ndo_start_xmit定义了函数。 当使用ifconfig up配置接口时,内核调用.ndo_open ifconfig up或者使用ifconfig将接口分配给一个地址。 当你删除模块时,内核调用.ndo_stop或者使用ifconfig down关闭接口。

ifconfig在这里描述: http : //linux.die.net/man/8/ifconfig

当使用套接字传输数据包时,内核网络堆栈调用.ndo_start_xmit 。 因此,要使用.ndo_start_xmit传输数据,您需要创建套接字,分配适当的目标地址,并通过套接字发送数据。 如果您使用的是IP,那么您可以使用工具轻松发送数据包,例如netperf或iperf。