disabling Auto Negotiation on 1000M full

Hello,
I’ve got a hEX (RB750Gr3) and a couple of hAP ac² routers.

With both devices, I have never gotten a successful connection to any of my various periphal devices when the routers Ethernet port is configured as a 1G link without Auto Negotiation:

# does not work
/interface ethernet set [ find default-name=ether3 ] auto-negotiation=no speed=1Gbps

The link works fine when I define Auto Negotiation, but disable advertising for all speeds except 1000M-full:

# works
/interface ethernet set [ find default-name=ether3 ] auto-negotiation=yes advertise=1000M-full

For my periplal devices that don’t support gigabit ethernet, forcing a 100Mbps link without auto negotion works OK:

# works
/interface ethernet set [ find default-name=ether3 ] auto-negotiation=no speed=100Mbps

Any idea what I might be doing incorrectly?

Cheers,
DaveN

It’s quite possible you’re not doing anything incorrectly.

If your peripherals default to 100M in the absence of negotiation, and require negotiation to step up to 1G – which is not unreasonable default operation – all of the behavior you describe would occur.

You don’t specifically say, but I infer that your 1G devices prefer to choose 100M if negotiation is advertised for both 100M and 1G. This can be an error rate thing. Yes, you can force it to 1G by disabling 100M, but you may be experiencing errors and poor performance. Check your error meters. 1G requires quality-controlled cables.

You will not, auto-negotiation is mandatory for 1000BASE-T. The definitive reference is IEEE standard 802.3, Section 28D.5 Extensions required for Clause40 (1000BASE-T).

If true, the standard is not uniformly obeyed. In my region, CenturyLink gateway feeds are routinely supplied that run 1G and refuse negotiation, and you can’t connect with them unless you configure your interface as 1G non-negotiated. Something to watch out for.

Thanks for the responses.

@tdw
Thanks for clearing that up. Not wanting to read the full specification, I did a quick search and Wikipedia says the same thing quite succinctly as well: https://en.wikipedia.org/wiki/Ethernet#Autonegotiation
Also, there is a note in the MikroTik documentation - see Note2 on this page: https://wiki.mikrotik.com/wiki/Manual:Interface/Ethernet

@macsrwe:
My devices default to 1G when Auto Negotiation with multiple speeds advertised, and I see no drops or errors recorded.

The reason I tried to set the link specifically to 1G is due to experiences in the past where I’ve seen devices intermittently trigger a renegotiation, causing communication to be interrupted. The worst I saw was a Netgear router connected to a Cisco router, which dropped every couple of seconds for a renegotiation. Ever since then, at my work, best practice has always been to set fixed speeds for links between fixed pieces of hardware. I’m trying to implement those best practices at home. The command for Cisco routers we use at work is “set speed auto” or “set speed 1000”. My guess is that Cisco’s “speed 1000” is the equivalent of MikroTiks “auto-negotiation=yes advertise=1000M-full”, because it works fine.

@mikrotik:
The “/interface ethernet set … speed” parameter is used only when auto-negotiation is disabled. Why bother offering and allowing speeds of 1Gbps or greater to be selected if they will not work?
Ref: https://wiki.mikrotik.com/wiki/Manual:Interface/Ethernet
speed (10Mbps | 10Gbps | 100Mbps | 1Gbps; Default: ) Sets interface data transmission speed which takes effect only when auto-negotiation is disabled.

Keep in mind that a posting in this forum is not guaranteed to be seen or responded to by MikroTik personnel. If you want to make sure MikroTik sees and responds to your issue, you should email it to support@mikrotik.com. Feel free to return back here and post the gist of their response for those who are following your issue and are curious.

If that is on a copper interface certainly not standards compliant - but ISPs appear to do wacky things to stop people using their own equipment.

@DaveN
Historically the default configuration ethernet interface speed= parameter was 100Mbps, I think it was changed to 1Gbps in 6.43.x - rather pointless as when disabling auto-negotiation you would be picking any other speed.

It was on fiber, come to think of it, not copper.

That makes sense, there isn’t an equivalent of the NWay copper link negotiation for fibre.

So maybe the speed settings of 1Gbps / 10Gbps exist for configuring SFP / SFP+ cages (which I see advertised on routers which I don’t have)?

I’ve sent a summary of posts 1 through 5 to the support email as suggested, and will update this thread when I get a response.

MikroTik support confirms that the settings are for SFP ports.


This RouterOS setting is intended for 1G SFP fiber optic links.
For example, it is necessary in 10G SFP+ interfaces when connected to 1G SFP device.
https://wiki.mikrotik.com/wiki/MikroTik_SFP_module_compatibility_table#SFP.2B_interface_compatibility_settings_with_SFP_optical_transceivers
And some 1G SFP modules still require forced 1Gbps speed settings in some devices depending on their driver.