将 napi api 与通用 netlink 套接字一起使用

Use napi api with generic netlink sockets

我目前正在研究 linux 内核 (4.14) 资源,试图找出 netdev NAPI 是否可以很容易地与通用 netlink 层结合使用。
在我看来,当 NAPI 被引入内核时并没有想到这一点,因为我能找到的唯一添加 NAPI 的调用是 netif_napi_add 函数。但这特别将 struct napi 链接到 netdevs (*struct netdev)->napi_list,我不确定这是否会在我目前看不到的 netdev 驱动层中增加整个其他层的复杂性。

我想将 NAPI 功能与通用 netlink 层一起使用,以便将 NAPI 功能与实现我自己的协议的 AF_NETLINK 系列一起使用。

有人做过这个,可以告诉我他是否成功地将 NAPI 与实现用户特定协议的通用 netlink 层一起使用?
或者任何拥有更多 linux 内核知识的人都可以在我花更多时间在 linux 内核源代码兔子洞之前帮助我确定这是否可行。

感谢我能得到的任何见解。

linux 内核源代码提供了一个名为 init_dummy_netdev() 的函数,其中 "initialize[s] the minimum amount of fields so it can be used to schedule NAPI polls without registering a full blown interface."

如果您在 linux 内核源代码中搜索它,您将找到实现此虚拟接口的驱动程序以及如何最好地使用它。