Anúncio de velocidade de link Linux

Anúncio de velocidade de link Linux

Pelo que eu sei, o comando a seguir definiria a velocidade e o duplex anunciados pela negociação automática.

ethtool -s eth0 advertise 0x020

onde 0x020indica 1000baseT Fullde acordo com o seguinte guia:

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

O comando que apliquei é 1000baseT Fullapenas anunciado. Gostaria de saber como configuro o servidor para anunciar vários modos de link de 1000baseT Full 100baseT Full 100baseT Halfuma só vez.

Tentei aplicar o mesmo comando para os modos de link desejados, um por um, mas sempre que o novo modo de link substitui o modo atual e não é adicionado a ele.

Também mencionei os modos de link hexacódigos consecutivamente como a seguir, mas ele retorna um erro.

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

Quando todos são anunciados, eles são exibidos na ethtoolsaída assim:

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

Alguma ideia, por favor?

Responder1

Some os números. Observe aquilo:

  • 0x001é 0b000000000001,
  • 0x002é 0b000000000010,
  • 0x004é 0b000000000100,

e assim por diante, cada um deles representa um bit (flag) em algum registro, que armazena os modos habilitados. Você precisa apenas ativar todos os bits desejados.

No seu caso, 1000baseT Full, 100baseT Fulle 100baseT Halfseria 0x020 + 0x008 + 0x004 = 0x02c:

ethtool -s eth0 advertise 0x02c

informação relacionada