ethtoolユーザースペースAPIとNETLINKソケットを使用してインターフェースの自動ネゴシエーションをトリガーできますか?

ethtoolユーザースペースAPIとNETLINKソケットを使用してインターフェースの自動ネゴシエーションをトリガーできますか?

ethtool -r自動ネゴシエーションが有効になったときにC ++コードの動作を複製するためにNETLINKソケットを使用したいと思います。 CLIを検索しますethtool ソースコード私は彼らがIOCTLソケットとethtoolコマンドを使用していることを発見しましたETHTOOL_NWAY_RST。カーネル文書によるとここ, コマンドが NETLINK ソケットに変換されませんでした。あきらめる前に、同じ動作を達成する他の方法があるかどうかを知りたいです。

今まで試したこと

  • インターフェイスに固定パスがあるため、そのパスが失われるため、インターフェイスを閉じて開くことは機能しません。ではこれは起こりませんethtool -r
  • 同じ理由で、ip link set down/up [dev]この行動は私にとって理想的ではありません。

私のコードは現在CLIを使用して実行されていますが、よりクリーンでethtoolより良いアプローチはユーザースペースAPIを直接使用することです。私のコードはNETLINKソケット用に書かれているので、このアプローチを好みます。

助けてくれてありがとう。ありがとう

関連情報