Deliberately breaking EEE for every MT7621 user

I just updated my Unifi 6 Lite APs and became aware of this:

What??? There is absolutely no proof that this is a generic MT7621 bug. There are MT7621 device where EEE works just fine. Or at least it used to work before you deliberately broke it.

You had a perfectly fine workaround in userspace, where eee could simply be disabled by default on any affected device. But you still decided to not only force the default on everyone, but also remove our ability to re-enable EEE. Why?

This is a REAL bug:

root@u6-1:~# ethtool --show-eee lan 
EEE Settings for lan:
        EEE status: enabled - inactive
        Tx LPI: disabled
        Supported EEE link modes:  100baseT/Full 
                                   1000baseT/Full 
        Advertised EEE link modes:  Not reported
        Link partner advertised EEE link modes:  100baseT/Full 
                                                 1000baseT/Full

Please fix. It's a simple revert.

7 Likes

You are better off opening an issue on github than posting this here. Probably best to distill out the angry overtones too.

7 Likes

You're right, of course. Which means that I have to wait some time before I do that. Ignorance frustrates me. And the lack of interest for other use cases than "my own" is disrespectful. Trying to fake some polite respectful request to fix the fallout is hard.

3 Likes

A thought I have most days driving literally anywhere :smiley:

If link partner supports 10mbit eee mode this one starts flopping.

1 Like

That's very interesting, and explains why I've never seen the issue. Don't think I have any device which supports 10 Mbit/s eee. Must be rare? Anyway, that must be possible to work around in a driver. Couldn't it just mask the 10 Mbit/s link partner capability?

Cisco does.

I don't see that. There's a WS-C3560CX-12PD-S in the other end here, running the latest IOS release available for that switch - 15.2(7)E12:

root@gs1900-10hp:~# ethtool --show-eee lan8
EEE settings for lan8:
        EEE status: enabled - active
        Tx LPI: disabled
        Supported EEE link modes:  100baseT/Full
                                   1000baseT/Full
        Advertised EEE link modes:  100baseT/Full
                                    1000baseT/Full
        Link partner advertised EEE link modes:  100baseT/Full
                                                 1000baseT/Full

and seen from the Cisco switch:

c3560cx#show eee capabilities interface Gi1/0/12 
Gi1/0/12
        EEE(efficient-ethernet):  yes (100-Tx and 1000T auto)
        Link Partner           :  yes (100-Tx and 1000T auto)
c3560cx#show eee status interface Gi1/0/12       
Gi1/0/12 is up
        EEE(efficient-ethernet):  Operational
        Rx LPI Status          :  Received
        Tx LPI Status          :  Received
        Wake Error Count       :  0
        EEE Enabled (ASIC)     :  yes
        Tx LPI Active (ASIC)   :  yes
        Rx LPI Detected (ASIC) :  yes

Find one that sends at 10mbps and causes mtk phy reset.

2 Likes

I, personally, haven't seen any EEE issues with 24.10 either, and I have multiple MT7621 devices in use. I knew of the reported issues before I switched my devices to 24.10, and I did make sure to enable EEE on both sides, in order to verify whether I'm affected. Looks like I'm not.

However, I'm using 1GBE exclusively, and from what I could gather off all the issue reports on GH and here in the forums, the port flapping, or that the port doesn't come up at all, happens a lot when the link partner is 100M or slower, and not so often in pure GBE environments. [Edit] I'm also undoing the gmac1-to-WAN muxing for all my builds (since I personally consider it "deliberate breakage of the switch functionality"), which likely explains why I'm not affected by the reported WAN port flapping, while many users of out-of-the-box 24.10 are.

Given that:

  • A lot of people are affected by the port flapping/failures in 24.10, where EEE for MT7530 got enabled out-of-the-box
  • Mediatek have recommended to disable EEE on MT7530 anyway
  • EEE is apparently still disabled in the Mediatek driver, it only gets erroneously(?) re-enabled later in recent kernels (see commit message)
  • upstream is not currently accepting patches for this issue

With these conditions, hard-disabling EEE in DT should in fact be the easiest fix, and the safest bet for most users, making 24.10+ work again out of the box for every MT7621 user.

Understandably, users who are not affected (like you, me, ...) aren't too happy with the feature removal. We, however, are building our images ourselves anyway, right? So we can always revert the commit in question for our personal builds.

I don't see an issue with this change, in my opinion it fixes more than it breaks.

3 Likes

"a lot of people" and some Mediatek developer believes that EEE should be disabled for everyone else. Why should I care?

I don't. I care about facts and fixes.

That's a strange way to read that. How about trying to co-operate instead of making such unjustified accusations?

All proposals I have seen so far seem to involve different ways of deliberate breakage. You may of course refer to those as "patches". But you can't expect stuff like that to be accepted.

Can we please discuss fixes instead?

I can't handle this level of stupity and arrogance.

Why would I want to discuss the level of breakage? That's irrelevant. A bug needs a fix, not a replacement bug. Every use case counts. We need to FIX stuff, not jump back and forth between different kind of breakages - arguing about which is least bad. I don't care.

We are now in a situation where it is impossible to enable EEE on MT7621. That's unacceptable.

Revert the EEE disablement and add a way to disable it per board by default via some script

1 Like

shrug Just trying to make sense of what happened. I'm not an OpenWrt dev, nor in any other position to make a decision.

However, I'd kindly like to ask you to stop shouting at me and calling me names. Please lets keep this civilized.

Great idea, but should some of the smaller flash devices be given this option, for example some of the 16M NAND devices do not need this.
Can there be an enablement of EEE option in the imagebuilder for MT7621 devices, like the ath ct and ath non-ct drivers for WiFi?

I've also seen people claim this affects filogic devices with MT7530 but no proof so far.

Either I am doing something wrong, or there is more to this than the obvious DTS breakage.

Enabling EEE on a MT7530 phy on v6.12 seem to halt the port on both MT7621 and MT7981. Tested on a U6 Lite and a U6 Plus.

1 Like

If it is specific to the MT7530, then this change needs reverting and the correct one applying.

There's 803 MT7621 devices supported, so it's not surprising if it was seen on MT7621 first.

This is done on the recommendation of Mediatek, as you'll see if you read the comments on the commit. I doubt any of the OpenWrt devs know better than the vendor, but maybe you do?

I'm one of the many people who experienced connection flopping to a Nokia ONT that provides my fibre internet, so this is a real problem.

There are also other problems with default enabling EEE on MT7621 devices in 24.10. Notably the MT ethernet driver does not implement EEE controls, and so e.g. ER-X (which routes gmac1 to eth0) advertises EEE on eth0, with absolutely no way to control it or read back the state.

4 Likes

FYI - I found 10Mbps “green” Ethernet is the default config and wake state of most consumer PCs if they support power management or low power mode. Usually controllable by the driver, but still the default initial wake or sleep state.

That's both funny and sad. Of course I do.

You are obviously not aware of the history here. It was not Mediatek who enabled us to use the mainline mt7530 DSA and mtk_eth_soc drivers for MT7621. They thought it was a terrible idea. We didn't care:

Do you seriously think we should have listened to Mediatek and still used the out-of-tree drivers without DSA on the MT7621?

I do not doubt that Mediatek knows of hardware bugs related to EEE on the MT7621. But I don't expect them to ut any resources into solving that. Which is why they don't necessarily have the best solution to the issue.

I do not doubt that at all. At the same time it is a fact that MT7621 can work with EEE enabled under other conditions. This means that we do need a workaround for the issues. But I do not understand why it can't be made conditional on whatever triggers it. Or the other way around - disabled in safe environments.

1 Like

Thanks. The only driver I found mentioning 10Base-Te at all was "sky2" for

     Marvell Yukon 2 chipset:
     Marvell 88E8021/88E8022/88E8035/88E8036/88E8038/88E8050/88E8052/
     88E8053/88E8055/88E8061/88E8062, SysKonnect SK-9E21D/SK-9S21

But the 10Base-Te enabling part of the code is limited to the "YUKON-2 Optima Prime" chip, so I don't know how easy it will be locating the correct NIC.