Linux kernel 网络设备和网络设备操作结构

Linux kernel 网络设备和网络设备操作结构,linux-kernel,linux-device-driver,embedded-linux,Linux Kernel,Linux Device Driver,Embedded Linux,我想在struct net_device_ops中添加一个新操作,但我对这类事情非常陌生,我有点担心从一开始就走错了路 我添加了一个类似这样的操作: static const struct net_device_ops wl_netdev_ops = { /* The other operations.. .ndo_clear_stats = clear_stats }; 从我的观点来看,我不清楚的是如何从我通常使用统计数据的用户空间中调用 /sys/class/net/.../statist

我想在
struct net_device_ops
中添加一个新操作,但我对这类事情非常陌生,我有点担心从一开始就走错了路

我添加了一个类似这样的操作:

static const struct net_device_ops wl_netdev_ops =
{
/* The other operations..
.ndo_clear_stats = clear_stats
};
从我的观点来看,我不清楚的是如何从我通常使用统计数据的用户空间中调用

/sys/class/net/.../statistics
但现在我真的不明白我的新操作放在哪里,有人能帮我告诉一个好的教程或链接,我可以在哪里找到一个简单的例子或教程

提前感谢,, pedr0


你不能直接打电话给它。您需要以某种方式将其功能导出到用户空间,例如通过ioctl、netlink、procfs条目等。推荐哪种功能主要取决于您正试图实现的功能

通常也建议不要像这样更改核心内核结构,即使您不打算分发更改-有时内核结构成员的顺序或大小很重要,内核内部对此有一些假设。我很确定还有别的方法可以做你想做的事