1

我编写了一个用户空间程序,该程序使用带有协议的netlink套接字轮询可用以太网接口的运行状态。 但是现在我想编写一个内核模块,它使用 NETLINK_ROUTE 通道向这个用户空间程序发送定制的通知消息。 阅读手册页后,我无法得出结论是否可行。任何建议将不胜感激。NETLINK_ROUTE

netlinkrtnetlink

4

1 回答 1

1

NETLINK_ROUTE 不是协议 - 它是 netlink 系列之一。从手册页:

netlink_family 选择要与之通信的内核模块或 netlink 组。

Netlink 最初是为了快速、轻松地发送有关路由信息的消息而开发的,这就是为什么 NETLINK_ROUTE 是第一个系列并拥有自己的联机帮助页、手册等。但后来添加了其他系列来发送路由信息以外的信息,例如 NETLINK_SELINUX 和 NETLINK_FIREWALL。

一段时间后,开发人员发现有太多特定的家庭。如果有人想使用那个花哨的 netlink 协议,他需要声明另一个系列并使其变得更糟。所以他们添加了最后一个家族——NETLINK_GENERIC,它就像多路复用器一样工作。lwn 上有一本关于通用网络链接的很棒的手册 - h​​ttp: //lwn.net/Articles/208755/。如果您想要工作示例,可以查看我的代码(https://github.com/dzeban/keymon

因此,如果您的通知与任何特定的 netlink 系列(如 NETLINK_ROUTE)相关,请使用它。但是,如果您只想发送您自己的自定义信息 - 请使用通用网络链接。

于 2014-07-10T08:14:35.373 回答