netlink相关内容

4 以上内核中的 Python Netlink 多播通信

我试图从以前的 SO post 在 4 (4.1) 以上的内核上: #include #include #include #include #include /* 协议族,在内核程序和用户程序中一致.*/#define MYPROTO NETLINK_USERSOCK/* 多播组,在内核程序和用户程序中一致.*/#define MYGRP 31静态结构袜子 *nl_sk = NULL;静态无效发 ..
发布时间:2022-01-04 22:28:40 Python

使用 3.X linux 内核的 C 语言中的 Netlink 套接字

您好,我一直在努力使 Netlink 套接字适用于 3.2 linux 内核,但我似乎不知道该怎么做.我已经四处寻找 Netlink 套接字基础知识的示例,但似乎我找到的所有示例都是针对 2.6 内核的. 我想要找到的是如何使用 Netlink 套接字将信息从内核模块发送到用户模式应用程序,反之亦然? 任何帮助将不胜感激.谢谢! 解决方案 我也一直致力于在内核中使用 Netli ..
发布时间:2022-01-04 22:17:21 其他开发

在 C 中通过 Netlink 从内核到用户空间的多播

我试图编写一个使用 Netlink 在内核和用户空间之间进行通信的简单程序.基本上这就是我想要实现的目标: 用户空间程序开始绑定到用户定义的多播组. 插入内核模块 内核模块向该组播组发送消息 用户空间程序收到消息 这是我的代码: ======用户空间程序====== #include#include#include#include#include#include#incl ..
发布时间:2022-01-04 22:08:37 其他开发

如何使用 netlink 套接字与内核模块通信?

我正在尝试编写一个使用 netlink 与用户进程通信的 linux 内核模块.我正在使用 netlink,因为我想与之通信的用户程序仅使用套接字进行通信,我无法更改它以添加 ioctl() 或任何东西. 问题是我不知道如何做到这一点.我用谷歌搜索过,但我发现的所有例子都是旧的,比如 this one 并且不再适用于当前内核版本.我也看过this SO question 但是此处的示例使用 ..
发布时间:2022-01-04 21:59:52 其他开发

Netlink:从内核发送到用户-EAGAIN和ENOBUFS

从内核模块向用户空间守护程序发送netlink消息时遇到很多麻烦.他们随机失败.在内核方面,genlmsg_unicast失败,并出现EAGAIN;而在用户方面,nl_recvmsgs_default(来自libnl的函数)失败,出现NLE_NOMEM,这是由于recvmsg系统调用失败并导致ENOBUFS引起的. Netlink消息很小,最大有效负载大小约为300B. 这是从内核发送 ..
发布时间:2021-02-14 21:09:26 其他开发

是否有人使用netlink进行IPC?

我正计划使用netlink在两个userland进程之间进行通信.对netlink如此挑剔的部分原因是-该进程之一的大部分处理最终都将在内核空间中进行,并且可以(希望)按原样使用基于netlink的通信. 我正在采用的方法是-定义一个新的Generic Netlink系列(我将不得不编写一个内核模块来支持该系列-目前看来如此).很好,我看了一些示例代码,其中内核实际上只是在不同进程之间路由消 ..
发布时间:2021-02-08 19:44:43 服务器开发

Linux运营商检测通知

Linux中是否有接口来获取网络接口运营商变更的通知?我知道可以轮询与SIOCETHTOOL的接口,但是想知道是否有任何方法可以得到通知,或者是否有任何因载波检测更改而返回的阻塞呼叫? 解决方案 是否需要运营商过渡或接口状态更改?对于接口状态,您可以侦听NETLINK_ROUTE netlink套接字并等待RTM_NEWLINK和RTM_DELLINK消息 ..
发布时间:2020-07-01 05:51:28 服务器开发

侦听PF_NETLINK套接字时获取所有链接和地址信息

我编写了一段宁静的代码,每当相关(对我)网络信息发生变化(主要是侦听RTM_NEWADDR,RTM_DELADDR,RTM_NEWLINK和RTM_DELLINK)时都会通知我. 每当我拔出电源,更改ip或收到任何通知时,此方法都可以正常工作. 唯一的问题是,我是第一次启动代码时,希望它能提供整个当前状态(RTM_GETLINK和RTM_GETADDR). 我可以请求RTM_GETLINK或 ..
发布时间:2020-07-01 05:51:24 其他开发

如何将Netlink套接字用于内核-用户空间通信Android

我正在尝试为Android编写内核模块以与Userspace Service通信,以便我的应用程序可以显示有关内核的一些信息.到目前为止,我已经尝试了一些在网络上找到的示例,但都无济于事.这个想法是让内核发送更新,然后服务将接收它们. ioctl不是解决方案,因为通信需要事件驱动,并需要从内核启动.如果有人知道如何执行jni和内核模块的C代码,那就太好了. 解决方案 这是我使用的代码段(为 ..
发布时间:2020-07-01 05:51:17 移动开发

当子级调用libusb_exit()后,libusb-1.0 hotplug事件在fork()之后在父级中停止工作

我一直在开发使用libusb_hotplug_register_callback()监视USB设备树的应用程序.连接符合某些条件的设备时,它将fork()和exec()一个应用程序处理该设备. 该应用程序已经运行了一段时间,但我回来尝试“整理" ... libusb将打开许多文件描述符(请参见下文),以监视事件等.问题是,在我调用fork()之后,在我调用exec()之前,我想关闭li ..
发布时间:2020-06-29 20:04:05 服务器开发

libnl-3包括坏了吗?

我正在尝试使用libnl 3( http://www.infradead.org/~tgr/libnl/)在Ubuntu下使用netlink以便从IPv6邻居缓存中获取一些信息. 我为此库包含了一堆头文件,但是gcc对于第一个头文件已经失败了: #include 没有libnl.h之类的“主标头". >$ gcc netl ..
发布时间:2020-06-26 19:10:24 服务器开发

如何使用libnl库触发nl80211命令?

请有人可以举一个简单的示例说明如何使用libnl来使用nl80211. 我试图浏览iw源代码,但这非常令人困惑. 谁能给出一个简单的程序来说明如何使用libnl触发nl80211命令,例如NL80211_CMD_GET_WIPHY. 解决方案 这是一个非常基本的程序,它发送NL80211_CMD_GET_INTERFACE,并解析出NL80211_CMD_GET_INTERFACE属性中返 ..
发布时间:2020-05-17 18:31:48 其他开发

内核到用户空间的应用程序通信

我正在尝试使内核(Android,内核4.9.59)与用户空间应用程序通信.我找到了使用Netlink套接字的解决方案: https://stackoverflow.com/a/25071310/4190159 该解决方案的第一个问题是该解决方案中使用的struct netlink_skb_parms没有成员名为"pid"的成员,而是有一个名为"portid"的成员,我认为这与pid不同.无 ..
发布时间:2020-05-02 03:47:01 移动开发

Linux内核中的netlink套接字与从userland进行轮询有何不同?

我对netlink套接字在内核与应用程序交互上下文中的功能感到怀疑.如我所见,netlink套接字用于从内核到应用程序的基于事件的通知.这样做的好处是不需要轮询应用程序. 但是与netlink套接字一样,它最终也将进行轮询以检查是否已从内核发送了一些数据.所以我的问题是,netlink套接字的这种功能与文件描述符的轮询有何不同? 我引用了此,但是它告诉了如何使用netlink,而不是区别在n ..
发布时间:2020-05-02 03:45:49 服务器开发

使用netlink inet_diag进行实时套接字监视

我的目标是监视套接字并将它们与创建它们的应用程序相关联. 我知道netstat,ss,lsof等,并且它们可以列出其应用程序中的所有套接字. 而且我也知道我可以解析/proc/net/tcp来获取套接字,并使用/proc/(PID)将它们与应用程序相关联,这正是这些工具所做的,或者它们使用了netlink套接字. 我的研究使我进入文章,该文章说明了如何从netet通过inet_diag协 ..
发布时间:2020-05-02 03:35:50 服务器开发

如何使用netlink套接字与内核模块通信?

我正在尝试编写一个Linux内核模块,该模块使用netlink与用户进程进行通信.我之所以使用netlink,是因为我要通信的用户程序只能使用套接字进行通信,而我无法更改它以添加ioctl()或其他任何内容. 问题是我无法弄清楚该怎么做.我已经在Google上搜索过,但是发现的所有示例都是古老的,例如这一个,并且不再适用于当前的内核版本.我还查看了这个SO问题,但是此处的示例使用 libnl ..
发布时间:2020-05-02 03:15:30 其他开发

如何通过Netlist和RTMGRP_LINK信号获得有关网络接口更改的通知?

我编写了一个程序,该程序需要在网络接口发生更改(尤其是新的接口出现或存在的接口消失)时得到通知.我的研究发现了 netlink 及其RTMGRP_LINK信号.此联机帮助页给出了一个尚不清楚的示例. 它具有以下代码: memset(&sa, 0, sizeof(sa)); snl.nl_family = AF_NETLINK; snl.nl_groups = RTMGRP_LINK | ..
发布时间:2020-05-01 11:04:25 服务器开发

iproute2命令用于MPLS配置

试图弄清楚如何使用iproute2在Linux内核4.1中管理静态的标签交换MPLS路由. 我知道iproute2对MPLS的支持现在可能还不完整[2]. 任何人都可以阐明iproute2-4.1.1当前可以执行的操作吗? 这是我到目前为止发现的: Documentation/networking/mpls-sysctl.txt /proc/sys/net/mpls/ ..
发布时间:2020-05-01 10:47:42 服务器开发