EEE on Mikrotik

Hi There,

Based on what I have seen from some Googling, Mikrotik don’t currently have the software support to allow you to change EEE (802.3az) settings. Is this still the case? The latest of the sources I found was back in 2019.

Bumping this thread as this is not something that should be overlooked.

This is a critical thing to be able to control, or at least know/document, particularly in latency-sensitive networking (like AVB for audio etc). The strange thing is that you guys support PTP (Precision Time Protocol), so at least some devices are being prepared for low-latency applications, but shutting off EEE/802.3az is another critical aspect of this.


Currently, I’m currently trying to run down clock sync issues for some Dante/AES67 edge devices as they insist that EEE must be turned off due to potential negotiation issues with some devices. I’m realizing there is neither monitoring nor control over EEE on any ports, nor is it anywhere in the documentation, even on the full-blown enterprise switches! I’d understand if it were CLI-only or was off-by-default on the smaller devices, but enterprise switching needs this control. This is per Dante’s FAQ: https://www.getdante.com/support/faq/i-am-recording-distorted-audio-or-digital-artifacts-on-my-dante-virtual-soundcard/


An older thread says, by confirming with a Cisco device on the other end, that the RB5009 does have EEE enabled, but nothing in the Mikrotik documentation nor the CLI on any of my accessible devices shows anything related to that.

Please take this seriously… this isn’t something that should be casually assumed to never fail. It at least needs to be documented by Mikrotik, if not monitored per-port, though ideally we’d have monitoring and control of course.

An older thread says, by confirming with a Cisco device on the other end, that the RB5009 does have EEE enabled, but nothing in the Mikrotik documentation nor the CLI on any of my accessible devices shows anything related to that.

That probably was me. RB5009 has EEE enabled on eth1-eth8. I can see this on Cisco and Juniper switches clearly indicating RB5009 supports EEE and also has it enabled. No change there. As MT does not specify anything on EEE (802.3az), it is hard to tell about EEE on other current MT devices.

For your “disable EEE” issue for Dante: EEE only works/gets enabled if supported and activated on both sides of a link (as en extension of auto-negotiation). So if you disabled it on the other end, it will automatically be disabled on RB5009 or any other device.

EDIT: I appreciate you bringing this up as a possible workaround, but the issue in some situations is that I don’t have control over the other end and Mikrotiks are my ace in the hole in these situations most times as I can dig down with them as a debug tool, shim, or general problem-solving device.


Yeah, it was your post. I didn’t know it was auto-negotiated (should have checked). Still, in the same vein as being able to check and set/force both port speed/duplex, this should come standard as even basic Netgear managed switches have this option. Also, if you don’t know whether the other side may try to negotiate then that’s a problem and if you can’t even blindly set your side to not support it then you’re at the mercy of a correct auto-negotiation.

To wit: Audinate themselves are worried about auto-negotiation failures, rare as they may be, and that’s just what readouts and forcing are for. I know they’re not being paranoid as I’ve had more than a few ports not negotiate gigabit properly over the years, despite the common perception that it “must” have been perfected after all of this time (I’ve thought it too about other decades-old tech) and, while most of the time this isn’t catastrophic, in low-latency or mission-critical applications it’s a killer and everything must be forced/known as there’s no room for trust.

These devices are so good at raw low-level “shoot yourself in the foot” levels of info and control that I use them as swiss-army-knives for solving all kinds of odd issues in my IT work, so given basic managed switches have EEE control I’d really like to see this feature here too.

btw:
I have a friend being an audio professional and according to him the most recommended switches for DANTE are CBS250-8 and it’s predecessor SG250-8. While affordable, the provide everything required for DANTE and have a reputation to be rock-stable, also for live events.
This is based on what he says, not on my own experience.

I have searched far and wide in Winbox but Mikrotik does not seem to be able to turn of EEE. Which seems bizar to me in such a customizable switch. But what can you do about it. I own the L009 and can confirm that is not within spec to use for Dante. The EEE settings keep messing with the clock sync. If the data stream is large enough even a EEE switch will work with Dante. But it is the smaller endpoints like Avio adapters and DVS that flip out at random with EEE. A larger stagebox with a lot of channels and flows will work… most of the time. Please Mikrotik make this option available. Until then the Cisco 350 series is perfect for Dante

You might want to file a feature request with Mikrotik at help.mikrotik.com. EEE should indeed be configurable IMO.

Now I have used AVIO adapters with RB5009 without issue in past, so I’m not sure there isn’t some other issue going on than EEE. But it’s true that it’s a pretty firm recommendation from Dante to disable EEE.

Hi Everyone!

By default, EEE should be disabled on all ports.
Can you please submit support ticket for the cases where you can see it active on RB5009 (or other devices) and share the supout files? We will check it out.

RB5009 has EEE enabled at least on ether2-8 since it was released and among all ROS versions released for it. Just checked again on a Cisco SG350 connected to ether2 of a RB5009: The SG350 clearly shows that EEE is enabled and active on RB5009. And as mentioned it was that way since RB5009 was released.
So no need for supout. Just get any RB5009 in your testlab, it will have EEE enabled.

This is what the SG350 reports (gi1 is connected to RB5009 ether2, remote status is EEE status of RB5009 ether2)

#show eee gi1
Port Status: up
...
Current port speed: 1000 Mbps
EEE Remote status: enabled
EEE Administrate status: enabled
EEE Operational status: enabled
...

PS
There is IMO nothing wrong with having EEE enabled by default. It just should be documented and have an option to turn it off.

Yeap, we managed to reproduce this. We will see what can be done about this in future ROS versions.

Thank you for bringing this to our attention.

This would be very much appreciated!

Hi are there something new for it?

I’am looking for the config option on the CCR2004-16G-2S+ device.

EEE has been disabled by default on this since 7.22.1. There is no setting to configure.

The official MT communication says EEE is disabled on all MT devices without an option to turn it on. It was silently active on CCR2004 and RB5009 (both using the same switch ASIC) and was disabled with 7.22.1 as mentioned above.

There are reports in the forum claiming EEE is still enabled on RB4011 ether1-10, but I have currently no spare RB4011 around to test this.

And yes, having an option to turn EEE on/off would be appreciated. In general, it's a good thing to have, expect for special applications (Dante, EtherCAT) or having to deal with broken EEE implementations and mostly older devices at the other end of a connection.
We also increasingly get tenders requiring EEE to be available on all active network devices.