Linux 链接速度广告

Linux 链接速度广告

据我所知,以下命令将设置自动协商通告的速度和双工。

ethtool -s eth0 advertise 0x020

其中按照以下指南0x020表示:1000baseT 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

请问有什么想法吗?

答案1

将数字相加。观察结果:

  • 0x0010b000000000001
  • 0x0020b000000000010
  • 0x0040b000000000100

等等,每个位都代表某个寄存器中的一个位(标志),用于存储启用的模式。您只需启用所有想要的位即可。

在你的情况下1000baseT Full100baseT Full100baseT Half将是0x020 + 0x008 + 0x004 = 0x02c

ethtool -s eth0 advertise 0x02c

相关内容