Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

[802.3ae] 64/66b Encoding phenomena




Group,
	One of the Engineers here brought to my attention an interesting
problem with the 64/66b encoder.  The issue is that the data stream out
of the PCS could be very different depending upon where it is aligned
with respect to the 64 bit boundary.

Take this case:

Example stream:
DDDD DDDT IIIE EIII SDDD DDDD

Where :

S - Start

D - Data

T - Terminate

I - Idle

E - Error

This data stream can be interpreted two different ways depending on
where the 64 bit boundary falls.

1.  DDDD_DDDT, IIIE_EIII, SDDD_DDDD with block type fields of FF, 1E,
and 78 respectively. (T C S)

2.  DDDT IIIE, EIII SDDD corresponding to block type fields of B4 and 33
respectively, these are T_BLOCK_TYPES of T and S.



If you look on page 379 of the 10GBASE-R spec(D5.0) under T_BLOCK_TYPE
and Value C: pt a) it says a C vector is one with 8 valid control
characters other than /O/, /S/, /T/ and /E/.

The way I read this is that if you have 7 idles and 1 error come in
together in one 64 bit block, then the entire block is an E block.

Resulting in 1. becoming /T/ /E/ /S/
while 2. would remain  /S/ /T/

Additionally, if the entire block is /E/ then the /S/ that follows will
also be transformed into an /E/ as well according to the TX
statemachine, this seems rather unfair to corrupt the whole next packet
just be cause it did not fall on a certain boundary.

Please let me know what you think.

Justin





-- 
Justin Gaither                           Phone: 512-306-7292  x529
Xilinx, Communications Technology Div.   Fax:   512-306-7293
500 N. Capital of TX Hwy.
Bldg 3                         email: justin.gaither@xilinx.com
Austin, TX 78746               WWW:   www.rocketchips.com
                                      www.xilinx.com