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 소켓용으로 작성되었으므로 이 접근 방식을 선호합니다.

도움을 주시면 감사하겠습니다. 감사해요

관련 정보