OK, I got the following situation: I have a laptop with a usb (3.0) attached gigabit lan card. On the other hand I have a banana pi and a FritzBox which are also gigabit capable.
If I connect everything using short cables I get a transmission of about 1GBit/s. Thus the card is correctly configured and works as expected.
I now put a (long) CAT5e cable in my apartment through which I wand to connect the gigabit LAN. If I tried it, I get only about 100MBit/s.
Further looking results in
# ethtool eth1
Settings for eth1:
Supported ports: [ TP MII ]
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: 100baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Link partner advertised pause frame use: Symmetric Receive-only
Link partner advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 32
Transceiver: internal
Auto-negotiation: on
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
You see, that the available speeds are detected as 1000baseT on both edges but the actual speed is set to 100baseT, which is consistent with the measurement of 100MBit/s.
If I try to alter the speed to gigabit, the connection drops and reinitializes after a few seconds.
# ethtool -s eth1 speed 1000
# ethtool eth1
Settings for eth1:
Supported ports: [ TP MII ]
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: 100baseT/Half
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 10Mb/s
Duplex: Half
Port: MII
PHYAD: 32
Transceiver: internal
Auto-negotiation: on
Current message level: 0x00000007 (7)
drv probe link
Link detected: no
Is there something necessary from the hardware point of view to enable the gigabit? It is clear to me that a longer cable will introduce more noise and thus will not reach the full speed. But this does not mean, that the speed must be lowered to 100baseT. With a longer cable (1.5m) the speed drops also a bit compared to the short cable (30cm) but this is ok.
The cable is completely pached 1:1 (all 4 pairs are connected to the same ethernet slots).
The link modes are but one factor that comes to play when ethernet speeds are autonegotiated. During autonegotiation, the link speed is actively checked and settles on a common denominator of all components involved.
Considering that all worked fine with the shorter cables, there is a certain undeniable logic that the longer cable must be the issue.
You could turn autonegotiation off (check the man for your version of ethtool) and try to force a gigabit connection but it is strongly recommended that you don't do this. Most likely, it will not give you any additional speed but you will have huge quality issues.
I'm not sure you noticed but in your second example your speed drops even more, down to 10MBit/s. There is clearly something wrong with your hardware.
The adapters are able to auto negotiate link speed, as most modern ones can. They're dropping the link speed because a higher link speed does not work.
How long is the long cable? Up to 30M(sometimes 50m) 5e should do gigabit fine, so theres something up:
Most commonly with pre-crimped cables you find the issue is cheap cables which arent actually to the category standards at all. If a 1.5m cable isnt going straight to gigabit, its probably junk.
User contributions licensed under CC BY-SA 3.0