RE: question for clause46 & 48
The RS service primitives and protocol descriptions are byte serial
(implicit in text, obvious to the author but not obvious to readers). This
is partially a legacy from the GMII RS which was has a byte wide interface
to the PHY, but also because the MAC protocol is octet oriented, even though
the description is bit serial. There is no mention in the current clause 46
of a column, the XGMII transfers four bytes on each edge of its clock, but
there is no mandatory function currently in clause 46 that requires
examination of multiple bytes at the same time.
The problems of ending delimeter robustness and handling of disparity errors
have been actively discussed for both PCS codes. In those discussions, one
possible resolution of anticipated comments would be to add the concept of a
column to the RS and require the RS to propagate the possible disparity
error back into the frame (the PCS is currently expected to do this) so that
a CRC error can be forced by the RS to the MAC. I would not attempt to
predict if this will be an accepted comment resolution.
So the answer to your question of "what should the RS do" depends entirely
on where we decide to place the burden of propagating the error back into
the frame. In D2.0, that responsibility is completely on the PCS. The RS
has no idea what a ||T|| is, it only sees a Terminate control character. If
an Error control character precedes it in byte sequence, then a CRC error
will result, if an Error control character follows the Terminate in
sequence, it will be ignored even if transfered on the same clock.
From: Louis Lin [mailto:louislin@xxxxxxxx]
Sent: Tuesday, December 12, 2000 8:05 PM
To: Grow, Bob
Subject: question for clause46 & 48
Hi Bob & Rich,
In clause 48, page 259. It says that "Unrecognized running disparity errors
which propagate past ||T|| into the PCS Idle sequence are indicated as /E/
within the ||T||"
In clause 46, page 223. it says the "RS should shall treat any control
received after a Start control character other than Terminate control
character as an error". And I didn't find anywhere in clause 46 saying
it's an error when it see /E/ in the ||T||.
What should RS do?