GideonZ / ultimate_releases

Binary blobs of U2/U2+ and U64 firmware versions
73 stars 5 forks source link

U64 Ethernet FCS-Alignment Errors #16

Open QuillOmega0 opened 3 years ago

QuillOmega0 commented 3 years ago

When connected to a Mikrotik switch, with or without a static IP address, the U64 Elite provides Rx FCS Error and Rx Align Error

Connected direct to a PC ethernet with the same ethernet cable, it works fine.

I've tried all combinations of Duplex and Speeds without a change. This is a standard bridge switch configuration, which shouldn't even matter as these are packet frame errors which are on OSI Level 2 Per Mikrotik's documentation https://wiki.mikrotik.com/wiki/Manual:Interface/Ethernet#Stats

GideonZ commented 3 years ago

Ah! This is very interesting information... I know that with some switches the network interface doesn't work, but this would explain why. When you mention Rx; you probably mean the Rx of the switch, so the Tx of the U64.

I am curious though what could cause FCS errors. FCS is hardware generated and inserted. So I am pretty confident that the FCS should always be correct. Although, I could imagine that there is a timing issue, which causes the issues. Do you also have an idea about WHEN it happens? Does it happen for every packet, or just randomly?

Hmm... reading about this.. https://community.cisco.com/t5/switching/align-and-fcs-error/td-p/1027432 Alignment errors are a count of the number of frames received that don't end with an even number of octets and have a bad CRC. Packets are not allowed to have an odd number of bytes? That is odd.... (pun) AH, I think it just means that there are packets with a number of bits that is not a multiple of 8. This would suggest that there is indeed a timing issue. Maybe the frequency of the reference clock is too far off, and the receiving end does not compensate for it with a PLL?

This certainly requires further investigation. I will have to tell you that currently the Ethernet implementation is minimal. It only supports 100 Mbps, Full duplex. But, it does auto-negotiation; possibly advertising that it can do half duplex or 10 Mbps, which it cannot. Could this not be the basis of the problem?

QuillOmega0 commented 3 years ago

It happens on every packet received from the U64 interface to the Mikrotik Router. There are no transmitted packets because the switch just thumbs its nose at it. Even with a static IP configured.

I also forced negotation to 100mbps, FD/HD and down to 10mbps with no change.

GideonZ commented 3 years ago

Maybe the auto-negotiation fails and all packets are marked as align error?

I would need to measure the packets coming from the ultimate with a good oscilloscope. Maybe there is way too much jitter on the clock, or the bit rate is just a bit off.

If you tell me the exact type of router, I might look into buying one for testing.

QuillOmega0 commented 3 years ago

Auto Negotiation appears to be working: image

But alignment errors exist: image

Even bypassing autonegotiation and forcing it to 10FD or 100FD exhibits the same error. I also dropped the port in question from the bridge to isolate it from STP or anything else I could think of but with no change.

It's a Mikrotik CRS125-24G-1S - https://mikrotik.com/product/CRS125-24G-1S-IN running 6.48.3 Switch Chip is QCA 8513L But have no reason to think it would exhibit the issue on any Mikrotik

GideonZ commented 3 years ago

Disregard my last message about the PHY chip errata. The Ultimate boards use 50 MHz RMII clock.