What conditions 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:
- FCS errors occur
- Packets are shorter than 64 bytes (Undersize or Fragment frames)
- Error codes occur during the packet
- Terminate code group is corrupted
- Jumbo frames are received when jumbo frames are not enabled
- 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.