What conditions will lead to the assertion of BAD_FRAME in the RX_STATISTICS_VECTOR in the Gigabit Ethernet MAC core? Are the conditions the same for RX_BAD_FRAME?
The following conditions cause the assertion of BAD_FRAME:
1. FCS errors occur
2. Packets are shorter than 64 bytes (Undersize or Fragment frames)
3. 8b/10b code errors occur during the packet
4. Unexpected K-Characters appear
5. Jumbo frames are received when jumbo frames are not enabled
6. The Length/Type field is a "length", but the real length of the received frame does not match the value in the Length/Type field
All of the above conditions also cause the assertion of RX_BAD_FRAME, which indicates to the client to drop the frame.
When a Pause Control Frame passing the following checks is received, it is counted as GOOD_FRAME in the RX_STATISTICS_VECTOR but is flagged as RX_BAD_FRAME to the client:
- The Destination Address field is matched against the MAC Control Multicast address or the configured Source Address for the MAC
- The Length/Type field is matched against the MAC Control Type code
Control Frames are the only instance when RX_BAD_FRAME does not match BAD_FRAME.
The following is additional information on the corresponding counters and statistic registers:
FCS errors occur
These errors are detected by a failure of the CRC check: the frame does not match the FCS field of the frame. These frames are covered by the "Frame Check Sequence Errors" statistic register at address 0x001.
Packets are shorter than 64 bytes
This affects the area covered by the following 2 counters:
"Undersize frames received" @ address 0x010 (Less than 64 bytes, but are otherwise well-formed)
"Fragment frames received" @ address 0x011 (Less than 64 bytes with additional errors)
8b/10b code errors occur during the packet/5. Unexpected K-Characters appear
These errors are detected by the PHY PCS/PMA sub-layers and are signaled to the MAC by the assertion of the error signal in the GMII interface. IEEE specifications state that these are considered FCS errors. As a result, these frames are also covered by the "Frame Check Sequence Errors" statistic register at address 0x001.
Jumbo frames are received when jumbo frames are not enabled
If a frame is a jumbo but is otherwise well-formed, it appears in the counter, "Oversize Frames Received OK", @ address 0x00F. If it also contains an FCS error (for example), it appears in the "Frame Check Sequence Errors" statistic register at address 0x001.
Length/Type field is a "length", but the real length of the frame received does not match the value in the Length/Type field
This is covered by the counter: "Length/Type Out of Range" @ address 0x00B.