netlink

为什么使用netlink套接字与python用户通信时无法从内核模块获得消息响应

我正在使用 netlink 套接字将用户 python 代码与 linux 内核通信,我可以正确地从用户向内核发送消息,但我无法从内核返回响应。 它在我的内核代码中显示:“向用户发送 bak 时出错..” 我尝试了所有方法来获取响应消息: recv , recvfrom recvmsg ,然后我的目的是打开它以获取响应的有效负载,格式为: response_message = header + p... »

如何使用 NL80211_BSS_CAPABILITY 获取扫描网络的 WiFi 安全密钥(WPA、WPA2、ESS)?

我正在使用 netlink 库 nl80211.h 扫描 wifi 网络并成功获取 ssid、mac 地址、状态、频率和信号。我想使用相同的库添加每个网络的安全类型。 我使用 NL80211_BSS_CAPABILITY 作为枚举之一,它给出了一个整数,我将其硬编码到我的代码中以确保安全。这似乎很乏味,并且必须使用这种方法提供大量数据(整数值)。获得 WPA/WPA2 很好,但是当开放网络出现时代... »

无法理解这个“消息序列不匹配错误”

我已经使用this 链接中回答的程序进行了一些修改。 以下是我修改后的代码: #include <linux/netlink.h> #include <netlink/netlink.h> #include <netlink/route/qdisc.h> #include <netlink/route/qdisc/plug.h> #include ... »

c++

内核 qdiscs 模块中的网络数据包缓冲

我想缓冲来自容器网络接口的输出数据包。 这个名为 sch_plug.c https://code.woboq.org/linux/linux/net/sched/sch_plug.c.html 的 netlink 库文件看起来可以解决问题,但我发现它很难使用?我应该如何调用这些函数才能使其真正起作用?如何获取传递给源代码中定义的函数的struct netlink_ext_ack *extack、s... »

非阻塞套接字与 select() 驱动方法

我正在编写用户空间应用程序,其中包括使用netlink 套接字与内核通信的其他功能。我使用开源库libmnl提供的简单API。 我的应用程序在 netlink 上设置了某些选项,并订阅了 netlink 事件(通知),解析它等。所以第二个功能(事件通知)是异步的,目前我实现了一个简单的基于 select() 的循环: ... fd_set rfd; struct timeval tv; int r... »

使用 libnl 更改网桥标志

我正在尝试使用 libnl 创建桥接并更改其标志。代码: #include <netlink/netlink.h> #include <netlink/route/link.h> #include <netlink/route/link/bridge.h> #include <linux/if.h> #define BRIDGE_NAME "br... »

c

通过netlink获取VLAN接口的真实设备

我需要获取给定 VLAN 接口的real_dev(例如 ID)。 我用libnl写了一些测试sn-p: int main(void) { struct nl_sock *sock; struct nl_cache *cache; char iface[] = "eno1.10"; //char iface[] = "eno1"; if (!(... »

c

如何在传出数据包上插入 VLAN 标记

我正在通过本地 vlan 在传出数据包上为某些客户端 mac 插入 vlan 标签。我尝试了 nh_hooks IN、OUT 和 Forward,但没有成功。 我想要的是我可以将标签添加到从客户端到本地 vlan 的数据包,然后通过同一个 vlan 发送,或者我可以将本地 vlan 数据包从基于 MAC 的某些客户端转发到标记的 vlan 接口? netlink 代码或内核级代码有什么建议吗?... »

有没有办法可以使用 netlink 在两个用户空间进程之间进行进程间通信(IPC)?

我是 Linux 的新手。 我有两个用户空间进程,A 和 B,B 必须从 A 接收消息,进行一些处理,并在完成后确认。所以我正在研究一种双向消息传递协议,并且看到 netlink 被用于用户和内核空间之间的通信。有没有办法使用 netlink 进行两个用户空间进程通信? 如果这不是一个理想的解决方案,还有其他方法可以实现吗?我在看消息队列,但它们似乎是单向通信机制。... »

libevent 是否支持 netlink 套接字

我使用 netlink 从内核接收中断号。用户空间中的应用程序使用 libevent 来处理 TCP/IP 请求和 netlink 消息。 libevent 是否支持 Linux netlink 套接字?我会很感激一个简单的例子。... »

如何使用 Netlink 套接字接收内核 uevents?

当 USB 设备(断开)连接时,我正在尝试通过 netlink 套接字从内核接收 uevent。我有一个 python 脚本可以完成相同的工作并且它可以工作,但我需要 C 语言中的相同功能。到目前为止,我有这个: #include <sys/types.h> #include <sys/socket.h> #include <linux/netlink.h> ... »

c

NetlinkEvent:NetlinkEvent::FindParam():未找到参数“UID”

我的应用程序在运行时没有中断。但是,总是会出现以下错误消息 E/NetlinkEvent: NetlinkEvent::FindParam(): Parameter 'UID' not found 此日志连续打印,我不明白此错误的原因是什么,你们中的任何人都可以告诉我这些错误消息与什么完全相关吗? 设备是 moto g3。 感谢您为我提供的任何帮助。 我找到了一些链接,但有问题... »

libnl 出现错误:无效消息

我正在尝试使用 netlink 套接字和通用消息类型来实现内核用户通信。到目前为止,我能够将消息从用户空间发送到内核,然后将消息发送回用户空间。问题是在我的用户空间程序中,我总是收到一个错误,即收到了无效/格式错误的消息。在用户空间程序中,我使用 libnl 进行 netlink 通信。 相关的netlink内核代码如下: enum nl_tdisk_attr { NL_UNSPEC,... »

c

使用 libnl-3 发送 Netlink Taskstats 消息

我想使用 netlink socket 和 taskstats 读取单个线程的 linux 内核统计信息。 我可以使用 python 包装器 (https://github.com/facebook/gnlpy) 让 taskstats 工作,但我想做一个 C 实现。 设置好socket、消息参数和发送、接收后 nl_recvmsgs_default(sock) 根据我创建要发送的消息的... »

c

使用 NETLINK 的 VLAN 信息

如何使用 C 语言中的 NETLINK 套接字获取 VLAN 信息,例如从内核到用户空间的 VLAN 子接口的添加和删除? 按照 cmets 的建议,我几乎没有研究过 NETLINK 人。我添加和删除了一个 VLAN 子接口,并使用 netlink 套接字程序进行了监控。用于添加和删除每个接收 3 条消息。 添加发送 3 条 NEWLINK 消息,删除发送 2 条 NEWLINK 和 1 条 D... »

c

有人使用netlink进行IPC吗?

我打算使用 netlink 在两个用户态进程之间进行通信。对 netlink 如此挑剔的部分原因是 - 其中一个进程的大部分处理最终将进入内核空间,并且可以按原样使用基于 netlink 的通信(希望如此)。 我采用的方法是 - 定义一个新的 Generic Netlink 系列(我必须编写一个内核模块来支持该系列 - 目前看起来如此)。很好,我正在查看一些示例代码,其中内核本质上只是在不同进... »

如何从 strace 输出中解码此信息

我写了一个小的 go 脚本并使用 strace 跟踪它 虽然这个脚本,我正在尝试使用 netlink 协议从内核获取审计消息,就像 auditd 一样。 以下是我的 go 脚本上的 strace 输出-http://paste.ubuntu.com/8272760/ 我正在尝试查找 auditd 提供给 sendto 函数的参数。 当我在 auditd 上运行 strace 时,我得到以下输... »

c

无法使用 NETLINK_ROUTE 通道接收从内核模块发送到用户应用程序的自定义消息

我正在使用 Netlink 套接字通过NETLINK_ROUTE 通道将有关以太网接口状态的自定义通知从内核模块发送到用户空间应用程序。我浏览了几篇文章和论文,但它们都展示了一种方法,您需要定义自己的家庭,例如NETLINK_TEST 在netlink.h 标头中或使用NETLINK_GENERIC。我知道使用 NETLINK_ROUTE 的套接字已经归内核所有,因此无法在内核模块中创建它。我无法... »

c