I am looking into 100GbE CMAC. I'm trying to understand the LBUS receive user interface. I am confused about rx_mtyout* description. PG 165 says that "This bus is only valid in cycles when both rx_enaout and rx_eopout are sampled as 1. When rx_errout and rx_enaout are sampled as 1, the value of rx_mtyout[2:0] is always 000. Other bits of rx_mtyout are as usual."
If we have 512b wide user interface with 128b in each segment and If LBUS rx_errout and rx_enaout are sampled as 1(I'm assuming that rx_enaout is also asserted), rx_mtyout value can be either "1000" or "0000". My question is
1. what if the received packet length (in Byte) is not mod 8 and packet is out of the valid range(64 to CTL_RX_MAX_PACKET_LEN[14:0] bytes)? How to determine the frame length of the packet w/o using rx_errout for user logic.
2. how to determine the packet is undersized or oversized(truncated) or packet has FCS error or Bad 64B/66B code?