Linux 网络驱动程序 --- net_device_ops

Kat*_*och 2 linux linux-device-driver

到目前为止,我只在设备驱动程序中使用了文件操作结构。使用系统调用 open & read 、 write 。

如何使用 net_device_ops 打开设备驱动程序并传输数据?网上有用户程序与之交互的参考示例吗?

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

小智 5

我不确定我是否理解这个问题,所以如果我的回答没有意义,请告诉我。

我看到您已经为.ndo_open.ndo_stop和定义了函数.ndo_start_xmit.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。