我目前正在查看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内核源代码兔子洞之前,帮助我解决这一问题。
感谢任何我能得到的洞察力。
发布于 2018-07-02 08:19:21
linux内核源代码提供了一个名为init_dummy_netdev()的函数,该函数“初始化最小字段数量,这样它就可以用于调度NAPI轮询,而无需注册完整的接口”。
如果您在linux内核源代码中搜索它,您将找到实现这个虚拟接口的驱动程序,以及如何最好地使用它。
https://stackoverflow.com/questions/50950021
复制相似问题