我可以使用 ethtool 用户空间 API 和 NETLINK 套接字来触发接口的自动协商吗?

我可以使用 ethtool 用户空间 API 和 NETLINK 套接字来触发接口的自动协商吗?

我想ethtool -r使用 NETLINK 套接字复制 C++ 代码中自动协商处于活动状态时的行为。我搜索 CLIethtool 源代码我发现他们使用 IOCTL 套接字和 ethtool 命令ETHTOOL_NWAY_RST。根据内核文档这里,该命令尚未转换为 NETLINK 套接字。在我放弃之前,我只想知道是否有另一种方法可以达到相同的行为。

到目前为止我尝试过的

  • 我的接口中有静态路由,因此关闭和打开接口将不起作用,因为我丢失了这些路由。这不会发生在ethtool -r.
  • 出于同样的原因,ip link set down/up [dev]对于我来说,这种行为也并不理想。

我的代码当前正在使用 CLI 运行ethtool,但更干净、更好的方法是直接使用用户空间 API。我的代码已经为 NETLINK 套接字编写,这就是我更喜欢这种方法的原因。

我将不胜感激任何帮助。谢谢

相关内容