Linux-Networking

Linux 連結速度廣告

  • August 31, 2021

據我所知,以下命令將設置自動協商廣告的速度和雙工。

ethtool -s eth0 advertise 0x020

其中根據以下指南指示0x0201000baseT Full

advertise N
   Sets the speed and duplex advertised by autonegotiation.  The 
   argument is a hexadecimal value using one or a combination of
   the following values:
     0x001       10baseT Half
     0x002       10baseT Full
     0x004       100baseT Half
     0x008       100baseT Full
     0x010       1000baseT Half       (not supported by IEEE standards)
     0x020       1000baseT Full

我應用的命令1000baseT Full只做廣告。我想知道如何將伺服器設置為同時宣傳多種連結模式1000baseT Full 100baseT Full 100baseT Half

我已經嘗試對所需的連結模式一一應用相同的命令,但是每次新的連結模式都會替換目前模式而不是添加到其中。

我還提到了連結模式的十六進制程式碼,如下所示,但它返回錯誤。

ethtool -s eth0 advertise 0x020 0x008 0x004
   ethtool: bad command line argument(s)
   For more information run ethtool -h

當所有廣告都發布後,它們會顯示在ethtool輸出中,如下所示:

ethtool eth0
Settings for eth0:
       Supported ports: [ TP ]
       Supported link modes:   10baseT/Half 10baseT/Full 
                               100baseT/Half 100baseT/Full 
                               1000baseT/Half 1000baseT/Full 
       Supported pause frame use: No
       Supports auto-negotiation: Yes
       Advertised link modes:  10baseT/Half 10baseT/Full 
                               100baseT/Half 100baseT/Full 
                               1000baseT/Half 1000baseT/Full

請問有什麼想法嗎?

把數字加起來。請注意:

  • 0x0010b000000000001
  • 0x0020b000000000010
  • 0x0040b000000000100

依此類推,它們中的每一個都代表某個寄存器中的一個位(標誌),該寄存器儲存啟用的任何模式。您只需要啟用所有想要的位。

在您的情況下1000baseT Full100baseT Full100baseT Half將是0x020 + 0x008 + 0x004 = 0x02c

ethtool -s eth0 advertise 0x02c

引用自:https://serverfault.com/questions/1076124