【问题标题】:Use napi api with generic netlink sockets将 napi api 与通用 netlink 套接字一起使用
【发布时间】:2018-06-20 13:58:02
【问题描述】:

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

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

有谁做过这个,可以告诉我他是否成功地使用 NAPI 和通用网络链路层来实现用户特定的协议?
或者任何有更多 linux 内核知识的人都可以在我花更多时间研究 linux 内核源代码兔子洞之前帮助我确定这是否可能。

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

【问题讨论】:

    标签: sockets linux-device-driver netlink


    【解决方案1】:

    Linux 内核源代码提供了一个名为 init_dummy_netdev() 的函数,它“初始化 [s] 最少数量的字段,因此它可以用于安排 NAPI 轮询,而无需注册完整的接口。”

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

    【讨论】:

      猜你喜欢
      • 2011-03-18
      • 2011-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-10
      • 1970-01-01
      • 2012-10-26
      • 2012-08-09
      相关资源
      最近更新 更多