我目前正在遍历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与实现用户特定协议的通用网络链接层配合使用? 或者,任何具有更多Linux内核知识的人都可以帮助我确定这是否可行,然后再花更多时间来研究Linux内核源代码兔子漏洞。
赞赏我能获得的任何见识。
答案 0 :(得分:0)
Linux内核源代码提供了一个名为init_dummy_netdev()
的函数,该函数“初始化最小数量的字段,因此可用于计划NAPI轮询而无需注册完整的接口”。
如果您在linux内核源代码中进行搜索,则会发现实现此虚拟接口以及如何最佳使用它的驱动程序。