Bug 233771 - Intel x553 100baseTX full-duplex mode not supported
Summary: Intel x553 100baseTX full-duplex mode not supported
Status: Closed Works As Intended
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 11.2-RELEASE
Hardware: arm64 Any
: --- Affects Many People
Assignee: freebsd-net (Nobody)
URL:
Keywords: IntelNetworking
Depends on:
Blocks:
 
Reported: 2018-12-04 11:30 UTC by Jérôme-Charles LALLEMAND
Modified: 2018-12-18 22:31 UTC (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jérôme-Charles LALLEMAND 2018-12-04 11:30:01 UTC
Hello,

The ixgbe driver for Intel X553 does not work in 100Mbps-FullDuplex.
The interface works fine in autoselect only.

ifconfig ix0 media 100baseTX mediaopt full-duplex
ifconfig: SIOCSIFMEDIA (media): Device not configured

ifconfig ix0
ix0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 9000
        options=e53ffb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,WOL_UCAST,WOL_MCAST,WOL_MAGIC,VLAN_HWFILTER,VLAN_HWTSO,RXCSUM_IPV6,TXCSUM_IPV6>
        ether ac:1f:6b:46...
        hwaddr ac:1f:6b:46...
        media: Ethernet autoselect
        status: no carrier


The network card is Intel X553.

The error is present in:

- 11.2-RELEASE
- 11.2-STABLE
- 12.0-RC3
Comment 1 Andrey V. Elsukov freebsd_committer freebsd_triage 2018-12-04 12:20:07 UTC
Does this card support 100BaseTX? You can look at `ifconfig -m ix0` output to be sure.
Comment 2 Jérôme-Charles LALLEMAND 2018-12-04 12:34:34 UTC
It seems to support it:

ifconfig -m ix0
ix0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 9000
        options=e53ffb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,WOL_UCAST,WOL_MCAST,WOL_MAGIC,VLAN_HWFILTER,VLAN_HWTSO,RXCSUM_IPV6,TXCSUM_IPV6>
        ether ac:1f:6b:46...
        hwaddr ac:1f:6b:46...
        media: Ethernet autoselect
        status: no carrier
        supported media:
                media autoselect
                media 10baseT/UTP
                media 100baseTX
                media 1000baseT
Comment 3 Jérôme-Charles LALLEMAND 2018-12-04 16:49:24 UTC
Tried with the last Driver from Intel: ixgbe 3.3.6 (https://downloadcenter.intel.com/download/14688/Ethernet-Intel-Network-Adapters-Driver-for-PCIe-10-Gigabit-Network-Connections-Under-FreeBSD-) => Same issue



The motherboard is a SuperMicro A2SDi-8C-HLN4F (https://www.supermicro.com/products/motherboard/atom/A2SDi-8C-HLN4F.cfm)

The network adapter is :
Quad Gigabit Ethernet LAN via Intel® C3000 SoC
Comment 4 Jeff Pieper 2018-12-04 20:21:53 UTC
This is not a bug. ixgbe devices do not support forcing speed using ifconfig, only forced advertisement using sysctl. You need to use the advertise_speed sysctl:

[root@test ~]# sysctl dev.ix.0.advertise_speed
dev.ix.0.advertise_speed: 6
[root@test ~]# sysctl -x dev.ix.0.advertise_speed
dev.ix.0.advertise_speed: 0x00000006
[root@test ~]# sysctl -d dev.ix.0.advertise_speed
dev.ix.0.advertise_speed: 
Control advertised link speed using these flags:
	0x1 - advertise 100M
	0x2 - advertise 1G
	0x4 - advertise 10G
	0x8 - advertise 10M

	100M and 10M are only supported on certain adapters.
Comment 5 Eugene Grosbein freebsd_committer freebsd_triage 2018-12-04 20:29:19 UTC
(In reply to Jeff Pieper from comment #4)

> This is not a bug. ixgbe devices do not support forcing speed using ifconfig,
> only forced advertisement using sysctl.

That's not good as it breaks POLA. Why can't it emulate forcing speed by means if ifconfig with internal forced advertisement of specified speed only (if it's supported by the adapter)?
Comment 6 Jeff Pieper 2018-12-04 20:36:16 UTC
There is no "new" functionality here. This has been the behavior since ixgbe was introduced in 2008.
Comment 7 Jérôme-Charles LALLEMAND 2018-12-05 09:30:22 UTC
The X553 is 1G/100M/10M (not 10G). If I plug the interface on a Cisco interface 10/100 with speed auto duplex auto it works and negociate 100-Full.

But in my configuration the switch interface is forced in 100-Full and it does not work.


On my server:
sysctl dev.ix.0.advertise_speed
dev.ix.0.advertise_speed: 11

sysctl -d dev.ix.0.advertise_speed
dev.ix.0.advertise_speed: 
Control advertised link speed using these flags:
	0x1 - advertise 100M
	0x2 - advertise 1G
	0x4 - advertise 10G
	0x8 - advertise 10M

	100M and 10M are only supported on certain adapters.

sysctl dev.ix.0.advertise_speed=0x1
dev.ix.0.advertise_speed: 11 -> 1

It does not work either. I'm guessing, the duplex is still auto-neg on the ix0.

Any idea to force the speed AND the duplex on this interface ?
Comment 8 Eric Joyner freebsd_committer freebsd_triage 2018-12-05 22:08:34 UTC
I think this hardware only supports 100M speeds via autonegotiation. Does your switch support autonegotiation? If it doesn't, it sounds like it isn't compatible with your switch.
Comment 9 Jérôme-Charles LALLEMAND 2018-12-11 16:50:31 UTC
I have not find anywhere that the card support enforcing 100M-Full.
As you said, it might only support 100M Autoneg. We'll use it with in 100M-Auto configuration.

Thanks for your support.