I'm trying to decode an Ethernet II frame with type instead of length indication. Theoretically this should be done by receiving and storing the data between start of frame and interframe gap. However there is a very high chance that 12 zero bytes arise in any packet, so there must be some additional way of detecting the end of the packet. Is the PHY's capability of signaling an empty line through encoding is forwarded to the MAC by some MII signaling?
-
1The interframe gap is silence on the line, not zeroes, which are not silence. It is also 12 bytes (96 bits) of silence.– Ron Maupin ♦Commented Feb 11, 2019 at 15:30
-
Does it change the state of RXDV in the MII signaling thus?– Balazs FCommented Feb 11, 2019 at 15:36
-
It is simply the un-modulated carrier signal for the time it takes to send 96 bits. Both zeroes and ones need to modulate the carrier.– Ron Maupin ♦Commented Feb 11, 2019 at 15:38
-
According to IEEE 802.3-2012/section 2, point 22.2.2.7. "In order for a received frame to be correctly interpreted by [...] the MAC sublayer, RX_DV must encompass the frame, starting no later than the Start Frame Delimiter (SFD), and excluding any End-of-Frame delimiter." So should this refer to the interframe gap in case of Ethernet II?– Balazs FCommented Feb 11, 2019 at 15:44
-
As Ron's pointed out, the IFG isn't data - RX_DV deasserts before IFG starts.– Zac67 ♦Commented Feb 19, 2019 at 21:04
1 Answer
The interframe gap uses different transmissions, depending on the Ethernet variant. In the simplest way it's just loss of carrier. More advanced PHYs (Gigabit upward) use pause symbols on the medium.
You need to make the distinction of physical-layer (encoded) bits/symbols and MAC-layer (unencoded) bits. A series of zero bits on the MAC layer is never transmitted as a series of zeros on the physical layer - that would quickly cause desynchronization between transmitter and receiver. Therefore, EOF can only be detected by the PHY. On the MII level, the end of frame is signaled by deasserting RX_DV (Receive Data Valid) - check 802.3 Clause 22.2.2.7.
-
en.wikipedia.org/wiki/… says CRS is asynchron so I don't think it could be used to signal interframe gap precisely, besides only used in half-duplex modes, but IFG must be detected in any connection type.– Balazs FCommented Feb 11, 2019 at 16:23
-
Sorry, that was off the top of my head - rechecked 802.3 and updating the answer.– Zac67 ♦Commented Feb 11, 2019 at 17:56