我正在尝试在 linux 内核中实现一个网络设备(net_device)。这是一个简单的 net_device,它将命令/数据从用户空间传递到内核空间,反之亦然,这是这个简单的 net_device 的目标。我正在使用套接字将命令/数据从用户空间传递到内核空间。谷歌搜索后,我成功注册了 net_device 并能够在 /sys/class/net/abc0 (设备名称)中看到我的设备,当进行文件操作时,不清楚流程
struct net_device_ops
{
.ndo_open =open,
.ndo_close = close,
.ndo_start_xmit = start_xmit
}
如果我在套接字中发出写入,它将在数据链路层调用 start_xmit。
如果我想调用 open 方法,如何使用套接字调用它
如何使用套接字调用 start_xmit
我将如何找到接收缓冲区中有数据包并将其传递给用户空间。
没有关于简单 net_device(以太网除外)的明确流程/信息可以建议链接/pdf。
我尝试编写简单的套接字程序来测试 open、close、start_xmit。其中套接字读/写没有调用 open,close,star_xmit 。 有什么方法可以测试开发的 net_device 吗?
谢谢