Bug#511395: mii-tool: link parter capabilities wrong

Bjørn Mork bjorn at mork.no
Fri Jan 23 10:08:55 UTC 2009


Package: net-tools
Version: 1.60-22
Followup-For: Bug #511395

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Just some additional data points for this bug.

This interface is connected to a 100baseTx switch port. mii-tool shows
the correct negotiation result, but seems to mixup the advertised modes
and the link partner capabilities:

klodrik:~# mii-tool -v eth0
eth0: negotiated 100baseTx-FD, link ok
  product info: vendor 00:13:74, model 1 rev 5
  basic mode:   autonegotiation enabled
  basic status: autonegotiation complete, link ok
  capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  advertising:  100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
  link partner: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD


ethtool gets the advertised modes right, but doesn't show the link partner's 
capabilities:
  
klodrik:~# ethtool eth0
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: g
        Wake-on: d
        Current message level: 0x0000003f (63)
        Link detected: yes

The driver is atl1 if that matters (dont' think so - see below):

klodrik:~# lspci -vvnns 02:00.0
02:00.0 Ethernet controller [0200]: Attansic Technology Corp. L1 Gigabit Ethernet Adapter [1969:1048] (rev b0)
        Subsystem: ASUSTeK Computer Inc. Device [1043:8226]
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 32 bytes
        Interrupt: pin A routed to IRQ 1276
        Region 0: Memory at febc0000 (64-bit, non-prefetchable) [size=256K]
        Expansion ROM at feba0000 [disabled] [size=128K]
        Capabilities: [40] Power Management version 2
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [48] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable+
                Address: 00000000fee0100c  Data: 4191
        Capabilities: [58] Express (v1) Endpoint, MSI 00
                DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
                        ExtTag- AttnBtn+ AttnInd+ PwrInd+ RBE- FLReset-
                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                        RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
                        MaxPayload 128 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr- UncorrErr+ FatalErr- UnsuppReq+ AuxPwr+ TransPend-
                LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s, Latency L0 unlimited, L1 unlimited
                        ClockPM- Suprise- LLActRep- BwNot-
                LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
        Capabilities: [6c] Vital Product Data <?>
        Capabilities: [100] Advanced Error Reporting <?>
        Kernel driver in use: atl1
        Kernel modules: atl1

The switch shows these properties on the connected port:

c2950a#sh interfaces Fa0/20 capabilities 
FastEthernet0/20
  Model:                 WS-C2950G-24-EI
  Type:                  10/100BaseTX
  Speed:                 10,100,auto
  Duplex:                half,full,auto
  UDLD:                  yes
  Trunk encap. type:     802.1Q
  Trunk mode:            on,off,desirable,nonegotiate
  Channel:               yes
  Broadcast suppression: percentage(0-100)
  Flowcontrol:           rx-(none),tx-(none)
  Fast Start:            yes
  CoS rewrite:           yes
  ToS rewrite:           yes
  Inline power:          no
  SPAN:                  source/destination
  PortSecure:            Yes
  Dot1x:                 Yes

c2950a#sh interfaces Fa0/20 transceiver properties 
Name : Fa0/20
Administrative Speed: auto
Administrative Duplex: auto
Administrative Auto-MDIX: N/A 
Operational Speed: 100
Operational Duplex: full
Operational Auto-MDIX: N/A 


Example from another box having the same net-tools version, but another driver 
and switchport (1000BaseT capable):

canardo:/home/bjorn# mii-tool -v eth1
eth1: negotiated flow-control, link ok
  product info: Yukon 88E1011 rev 5
  basic mode:   autonegotiation enabled
  basic status: autonegotiation complete, link ok
  capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  advertising:  1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
  link partner: flow-control

Seems better, but why isn't the negotiaded speed/duplex shown?  And why does
it think that the link partner only advertises flow-control?

ethtool gets it right again:

canardo:/home/bjorn# ethtool eth1
Settings for eth1:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: umbg
        Wake-on: d
        Current message level: 0x00000007 (7)
        Link detected: yes

This time the driver is e1000:

canardo:/home/bjorn# lspci -vvnns 04:02.0
04:02.0 Ethernet controller [0200]: Intel Corporation 82546GB Gigabit Ethernet Controller [8086:1079] (rev 03)
        Subsystem: Intel Corporation PRO/1000 MT Dual Port Server Adapter [8086:1179]
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 64 (63750ns min), Cache Line Size: 32 bytes
        Interrupt: pin A routed to IRQ 18
        Region 0: Memory at fe920000 (64-bit, non-prefetchable) [size=128K]
        Region 2: Memory at fe8c0000 (64-bit, non-prefetchable) [size=256K]
        Region 4: I/O ports at c880 [size=64]
        Expansion ROM at fcf00000 [disabled] [size=256K]
        Capabilities: [dc] Power Management version 2
                Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                Status: D0 PME-Enable- DSel=0 DScale=1 PME-
        Capabilities: [e4] PCI-X non-bridge device
                Command: DPERE- ERO+ RBC=512 OST=1
                Status: Dev=00:00.0 64bit+ 133MHz+ SCD- USC- DC=simple DMMRBC=2048 DMOST=1 DMCRS=16 RSCEM- 266MHz- 533MHz-
        Kernel driver in use: e1000
        Kernel modules: e1000


And the switchport configuration for the last example is:

c2950a#sh interfaces Gi0/1 capabilities  
GigabitEthernet0/1
  Model:                 WS-C2950G-24-EI
  Type:                  1000BaseTX
  Speed:                 1000
  Duplex:                full
  UDLD:                  yes
  Trunk encap. type:     802.1Q
  Trunk mode:            on,off,desirable,nonegotiate
  Channel:               yes
  Broadcast suppression: percentage(0-100)
  Flowcontrol:           rx-(off,on,desired),tx-(off,on,desired)
  Fast Start:            yes
  CoS rewrite:           yes
  ToS rewrite:           yes
  Inline power:          no
  SPAN:                  source/destination
  PortSecure:            Yes
  Dot1x:                 Yes

c2950a#sh interfaces Gi0/1 transceiver properties 
Name : Gi0/1
Administrative Speed: auto
Administrative Duplex: auto
Administrative Auto-MDIX: N/A 
Operational Speed: 1000
Operational Duplex: full
Operational Auto-MDIX: N/A 



- -- System Information:
Debian Release: 5.0
  APT prefers testing
  APT policy: (700, 'testing'), (650, 'stable'), (600, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.26-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages net-tools depends on:
ii  libc6                         2.7-18     GNU C Library: Shared libraries

net-tools recommends no packages.

net-tools suggests no packages.

- -- no debconf information

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkl5lzMACgkQ10rqkowbIsluPACfW2fzjZ/kKM587jNXfOF+a7PW
CEcAn2zhWWyNzygAIqDm721AGKSy4QpQ
=+Ov5
-----END PGP SIGNATURE-----





More information about the Pkg-net-tools-maintainers mailing list