Page MenuHomeVyOS Platform

Disable 802.3az/EEE (energy efficient ethernet)
Closed, WontfixPublicFEATURE REQUEST

Description

When it comes to 802.3az/EEE aka "Green Ethernet" there are basically two flavours on how to reduce the powerconsumption of a network device (specially when more than a few interfaces are being used):

  • Powersaving of the PHY being used. Similar to how HLT-instructions are used on x86 CPU's to lower powerconsumption when there is nothing to do (or in the PHY case the time when there are no packets to be received or sent).
  • For RJ45 interfaces adjust powerlevel to the detected cablelength. A TP-cable that is 2 meter in length will need less power to push the signaling through compared to a TP-cable that is say 80 meter in length.

Its not uncommon that these settings (EEE) nowadays are enabled by default.

However they are known to from time to time cause issues.

For example wired apple products are known to have issues with network switches/routers who does EEE where the workaround is to disable this for the particular interface. And there are other vendors/models where EEE needs to be disabled for them to function properly.

This can be manually done using ethtool (example below) but it would be handy if this could be part of set interfaces ethernet ethX aswell.

sudo ethtool --set-eee <NIC> eee off

It might also work to disable this system wide by adding this to the grub.cfg (kernel cmdline):

EEE=0

HPE Comware use this as command on interface-level to enable EEE (by default disabled):

port auto-power-down

Details

Version
1.4.0-rc1
Is it a breaking change?
Perfectly compatible
Issue type
Behavior change

Event Timeline

Maintainers agreed that we will disable EEE by default - we are a router pushing packets.

Code will be added soon

I think its a bit odd to completely disable EEE where the solution would be to disable EEE by default but having the config option to adjust for EEE if wanted.

All routers I have played with lately supports EEE (even from enterprise brands) so that argument seems a bit stale ("disabled because we are a router pushing packets).

c-po changed the task status from Open to In progress.Dec 25 2023, 4:52 PM
c-po triaged this task as Normal priority.
c-po added a project: VyOS 1.4 Sagitta.
c-po edited a custom field.
c-po changed Version from - to 1.4.0-rc1.
c-po moved this task from Open to Finished on the VyOS 1.5 Circinus board.
c-po moved this task from Open to Finished on the VyOS 1.4 Sagitta board.

Using igb.EEE=0 or EEE=0 on the kernel commandline has no effect

To clearify:

By disabling/enabling EEE I meant per interface similar to how HPE Comware does it with port auto-power-down which enables EEE when needed (EEE is disabled by default on HPE Comware devices).

Apachez changed the task status from Resolved to Unknown Status.Mar 24 2024, 10:45 AM

Reopened with status "Known issue" due to revert by PR 3177.

disabling it on a per interface basis will still crash the OS if the register read/write is implemented improperly.

Users can add custom post hooks to call ethtool to disable EEE if it's working on their hardware.
As VyOS is a generic OS it's very hard to test all hardware

Sure but if the function "port auto-power-down" is mapped to the ethtool function of disabling EEE then it should be safe?

I mean it would crash if you run ethtool manually anyway wouldnt it?

c-po removed c-po as the assignee of this task.Mar 26 2024, 6:15 AM
dmbaturin renamed this task from Be able to disable 802.3az/EEE (energy efficient ethernet) for a particular interface to Disable 802.3az/EEE (energy efficient ethernet).May 11 2024, 5:14 PM
dmbaturin changed Is it a breaking change? from Unspecified (possibly destroys the router) to Perfectly compatible.
dmbaturin changed Issue type from Feature (new functionality) to improvement.
dmbaturin changed Issue type from improvement to Behavior change.May 11 2024, 5:18 PM
syncer changed the task status from Unknown Status to Resolved.May 15 2024, 10:02 AM
syncer claimed this task.
syncer edited projects, added VyOS 1.4 Sagitta (1.4.0-epa3); removed VyOS 1.4 Sagitta.
syncer moved this task from Need Triage to Finished on the VyOS 1.4 Sagitta (1.4.0-epa3) board.
syncer removed syncer as the assignee of this task.
syncer moved this task from Finished to Open on the VyOS 1.5 Circinus board.
syncer subscribed.
syncer claimed this task.
syncer removed a project: VyOS 1.5 Circinus.

Closing this, no real benefits and to much effort are required
it's not like we position ourselves as low consumption device. with VPP it will be even worse