[Bug 266973] [e1000] incorrect behavior when media and mediaopt are set to 100BaseTX full-duplex

From: <bugzilla-noreply_at_freebsd.org>
Date: Tue, 11 Oct 2022 16:45:43 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266973

            Bug ID: 266973
           Summary: [e1000] incorrect behavior when media and mediaopt are
                    set to 100BaseTX full-duplex
           Product: Base System
           Version: 13.1-STABLE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Many People
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: thomas.pasqualini@orange.com

Using the e1000 driver, when a igb interface is configured with:

  `media 100BaseTX mediaopt full-duplex`

and connected to a switchport which is configured accordingly with

  autonegotiation disabled
  speed = 100Mbps
  duplex = full

and connected with a straight cable (as it should), the resulting interface
status is `no carrier`, while it should not.

I am able to reproduce this behavior with both Cisco and Netgear switches.

Switching back the igb to `media auto` entails the status to become active, but
with a duplex resolved to `half`, as it is expected in this case.

Switching the igb to `media 100BaseTX mediaopt full-duplex`, and the switchport
to autoneg, entails both side to be up (ie igb status: active), but the duplex
to be resolved as `full` on the switch side, while it should be resolved to
'half' instead in this case.

To be clean the configuration should be either set to autoneg on both sides,
either forced to 100-full on both sides. In this second case, when an igb
interface is forced to media `100BaseTX mediaopt full-duplex` and connected to
a switchport also set to `100-full`, the igb status remains at `no-carrier`
while the expected one is `active`.

The same configuration with other NIC drivers, e.g. bge or bce, entails a
correct behavior.

-- 
You are receiving this mail because:
You are the assignee for the bug.