Intel 82574L speed downgraded when connected to GS116

I have an Intel 82574L NIC that supports Gigabit Ethernet. The NIC uses the e1000e driver on Linux. If I connect the NIC directly with my router, I get the full 1Gbps. However, if I place a Netgear GS116 unmanaged switch between my NIC and the router, the speed gets downgraded to 100 Mbps.

Output of dmesg:

[    8.914570] e1000e 0000:04:00.0 net1: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
[   10.530630] e1000e 0000:04:00.0 net1: NIC Link is Down
[   13.381226] e1000e 0000:04:00.0 net1: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
[   14.503984] e1000e 0000:04:00.0 net1: NIC Link is Down
[   21.858193] e1000e 0000:04:00.0 net1: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
[   22.073998] e1000e 0000:04:00.0 net1: NIC Link is Down
[   28.814851] e1000e 0000:04:00.0 net1: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
[   30.850599] e1000e 0000:04:00.0 net1: NIC Link is Down
[   41.594864] e1000e 0000:04:00.0 net1: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
[   44.247066] e1000e 0000:04:00.0 net1: NIC Link is Down
[   47.161539] e1000e 0000:04:00.0 net1: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
[   48.270617] e1000e 0000:04:00.0 net1: NIC Link is Down
[   65.604578] e1000e 0000:04:00.0 net1: NIC Link is Up 100 Mbps Full Duplex, Flow Control: Rx/Tx
[   65.604701] e1000e 0000:04:00.0 net1: Link Speed was downgraded by SmartSpeed

The NIC tries multiple times with a 1Gbps configuration, until it finally downgrades to 100 Mbps.

I can connect other devices to the switch on the same port with the same cable without issues. They all got 1Gbps. I should note that the other device I tested with had a Realtek NIC using the r8169 driver.

I’ve also tested the NIC on a Windows machine, in case Linux or the driver had some issues, but it was also forced to use 100 Mbps.

Has anyone seen some similar behavior when connected to a switch? I have a free port on my router, so I can still get 1Gbps, but I’d like to use the switch if possible.

Try disabling eee or set mtu 9000.

Why would you change the MTU to 9000 in this case? That makes no sense and has nothing to do with the physical link speed

OP check cabling, try a different patch cord first

2 Likes

I agree seemingly unrelated, I don’t know the reason, however it has worked for me. Since it is maybe eee related, maybe there if a connection between link power and MTU.

Doesn’t matter to me if the OP tries my suggestions or not, but both are simple to check and eliminated it they don’t work.

There isn’t

Even if that does “fix” the problem, it really didn’t fix anything. You shouldn’t have to change any settings on the NIC to get it to link at the correct speed

So you are telling me that logically it is irrelevant, which I agree with, but never the less it happened. Or are you telling me that you have read the source code and are familiar with all the driver interactions and there is no possible way what happened, happened?

I’m the one with the system where the link was going up down up down, and I just did ip link set mtu 9000 dev eno1 and the link stabilised immediately, and you are telling that was a hulicination.

I get that it doesn’t make sense, and I agree to some extent, but just because it doesn’t fit into your world view doesn’t mean it didn’t happen.

Enabling jumbo frames by setting MTU to 9000 did stabilize the up-down behavior, however, the NIC is still downgraded to 100Mbps.

Disabling EEE (Energy Efficient Ethernet) is not possible, as the 82574L doesn’t support it. ethtool --show-eee net returns netlink error: Operation not supported and apparently EEE is only supported on 82579 and newer (see koljah-de/e1000e-dkms-debian/issues/10).

1 Like

That link looks like cabling and possible some hardware issue, what you could try just to role out any weird driver issues is to boot let’s say FreeBSD’s memstick image and see if it only links to 100mbit there too.

I agree it looks like a cabling issue. OP has tested/swapped the cabling, and I tested my cabling. Swapped my cabling with know good/working cabling, didn’t make a difference. Freebsd is something I didn’t test, but who knows, it might make a difference. OP tested with windows tho, so there was some diversity in drivers there.

I’m currently unable to verify the exact NIC that was giving me issues, the Lenovo M900 Tiny is currently redeployed and I can’t get the detail from the current software install.

I was seeing issues connected to an old DLink switch which had “green ethernet” so I assume aka 802.3az. Years back I think I had problems with igb driver too, on another computer connected to this switch, however I wanted it with jumbo frames, so problem went away anyway.

My hypothesis is this is something to do with lower power levels, ie 802.3az, and MTU 9000 reduces that capability, so it runs on higher power levels. 100M is the lower end of 802.3az from my reading. Unfortunately switch doesn’t show link partner status for EEE, frustrating, but cheap unmanaged switch, not unexpected.

It is a pity MTU didn’t fix your problem, but you have router port so maybe not such a problem. I was talking to someone on another forum and they had, IIRC, a GS308 POE, basically same problem, they ended up buying another NIC, rather then tinker with the settings, a viable solution, but unsatisfying to me. Could work for you, or another switch, or you have a working setup with the router.