gpt4 book ai didi

linux - NETLINK_ROUTE channel 可用于将消息从内核模块发送到用户空间程序吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:57:18 25 4
gpt4 key购买 nike

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

最佳答案

NETLINK_ROUTE 不是协议(protocol) - 它是 netlink 家族之一。来自手册页:

netlink_family selects the kernel module or netlink group to communicate with.

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

一段时间后,开发人员发现特定系列太多了。如果有人想使用那个花哨的网络链接协议(protocol),他需要声明另一个系列并使情况变得更糟。所以他们添加了最后一个系列 - NETLINK_GENERIC,其工作方式类似于多路复用器。 lwn 上有一本关于通用网络链接的很棒的手册 - http://lwn.net/Articles/208755/ .如果你想要工作示例,你可以查看我的代码 ( https://github.com/dzeban/keymon )

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

关于linux - NETLINK_ROUTE channel 可用于将消息从内核模块发送到用户空间程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24670555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com