I need to design a 64B/66B decoder on receiver side of the GTY transceiver. Currently, I get 2 bit header and corresponding 64 bit descrambled payload at positive edge of every other clock cycle. So now I need to decode the 64B/66B encoded data according to the table below. (IEEE 802.3-2008 section 4, Table 49-7)

enter image description here

It is easy to understand all termination control block formats and data block format is trivial. However I am not sure how control block formats with block type fields 0x2d, 0x66, 0x55, and 0x4b. I am guessing that:

- 0x2d, 0x55 and 0x4b types are used when for some reason transmitter side wants to send 3 or 6 bytes of data between start and termination of a packet

- 0x66 is used when for some reason transmitter sends start together with 6 byte preamble, but I think this does not make much sense

I do not think that my guesses are correct, even if any of them is correct I do not think that it is complete, so I have some questions regarding this issue:

1. Is any of my guesses at least partially correct?

2. Can you explain why, how, when and how often those 'Control Block Formats' used?

  • \$\begingroup\$ Where is this table from? What does that document say about the formats? \$\endgroup\$
    – user253751
    Mar 9, 2020 at 17:01
  • \$\begingroup\$ @user253751 The table comes from IEEE standards 802.3-2008 section 4, Table 49-7 for 10Gb/s ethernet \$\endgroup\$
    – utopian
    Mar 10, 2020 at 6:35

1 Answer 1


Those are for ordered sets. Ordered sets are only sent in between packets, never within a packet. Control characters and ordered sets are not allowed within packets; if they appear inside a packet then it's an error and the receiving MAC should drop the frame.

0x2d block: four control characters followed by an ordered set

0x55 block: two ordered sets

0x4b block: ordered set followed by four control characters

0x66 block: ordered set followed by start and three data bytes. Basically the equivalent of 0x33, but with an ordered set before the start control character instead of four idles characters.

There are two ordered set types defined in the 802.3 spec: sequence ordered sets (O = 0x0) and signal ordered sets (O = 0xF). Signal ordered sets are used by fibre channel, but not Ethernet. The sequence ordered sets are defined in table 46-5, and include local fault, remote fault, and link interruption. The ordered sets would be sent in place of idle control characters between packets.

  • \$\begingroup\$ Thanks Alex, I used to think those blocks could be received within a packet. \$\endgroup\$
    – utopian
    Mar 11, 2020 at 6:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.