IEEE 802.3z Gigabit Ethernet Task Force Interim Meeting November 11-13, 1996 Hotel Vancouver, Vancouver, BC, Canada Richard Taborek, Amdahl GIGABIT ETHERNET 8B/10B PCS, CHANGE SUMMARY, REV 5 __________________________________________________ o Summary of PCS functions o Proposed modifications to 8B/10B PCS protocol by R. Taborek dated September 09, 1996 - Protocol + F code elimination to simplify Link_Startup + C code changes to support all SERDES/10-bit comma detect - Automatic Configuration + Remote Fault expansion to 2 bits including Offline mode + Pause Capability bits (2) reserved - Rules + H code; Sequence recognition; Link error conditions PROTOCOL CHANGES ________________ o Comma Support - Enable usage of SERDES/10-bit parts which sync on comma+ only as well as those which sync on comma+ and comma-; - Pathological problem with C codes; - Proposal: Redefine C code as set C1 and C2 which alternate. o F Code Elimination - Original Link_Startup code (F) is ineffectual since C code was added to Link_Startup; - Eliminating F code from Link_Startup simplifies protocol and conveys Config_Reg to link partner immediately; - Proposal: Delete F code and associated state. AUTOMATIC CONFIGURATION CHANGES _______________________________ o Remote Fault Support - Expand RF field in Config_Reg base register to use two bits; - Add Test/Maintenance/Offline mode support to Link_Startup; - Extra bit loss mitigated by encoding Offline mode indication; + Proposed encoding: 00 - No error, link OK 01 - Offline 10 - Link Failure 11 - Link Error o Pause Capability Support - Support position reserved in PCS pending resolution of flow control support requirements; - Proposal: Two Config_Reg base register bits reserved (D7 & D8). PCS RULES _________ o H Code Usage - Proposal: The first symbol in error and all subsequent symbols during carrier are replaced with H. o Sequence Recognition - How many consecutive ordered sets should a receiver have to recognize before a sequence is? (e.g., How many C's should be recognized before a receiver responds with C/Ack); - Proposal: 3. PCS LINK ERROR RULES ____________________ o Link Errors - Proposal: Three types of link errors are defined: a) Link_Failure (severe link error); 1) Loss_of_Synchronization failure; 2) Loss_of_Signal; b) Link_Active_Error: a link_error associated with the contents of a packet or carrier extension; c) Link_Inactive_Error: a link_error not associated with the contents of a packet or carrier extension. - Proposal: Recovery for link errors: a) Link_Startup for Link_Failure; b) Link_Synchronization procedure for all other errors. DEFINED ORDERED SETS ____________________ Code Function Encoding Beg. RD End RD ---- -------------------- --------------------- ------- ------ C1 Link_Configuration 1 K28.5 D21.5 config_reg ? flip* C2 Link_Configuration 2 K28.5 D2.2 config_reg ? same* I1 Idle/Flip Disparity K28.5 D5.6 + - I2 Idle/Disparity OK K28.5 D16.2 - - S SOP K27.7 ? same T EOP1 K29.7 ? same R EOP2 K23.7 ? same H EOPinvalid K30.7 ? same * Ending RD not based on config_reg value ORDERED SET CODING DISTANCE ___________________________ Char D21.5 D2.2 D16.2 D2.2 7 . . D16.2 7 4 . D5.6 4 7 4 o Data characters used in defined ordered sets are chosen for high transition density, proper disparity control, and sufficient coding distance. CONFIG_REGISTER - BASE REGISTER _______________________________ +-------------------------------------------------------+ |D0|D1|D2|D3|D4|D5|D6|D7 |D8 |D9|D10|D11|D12|D13|D14|D15| | | | | | |FD|HD|PS1|PS2| | | |RF1|RF2|ACK|NP | +-------------------------------------------------------+ Config_Register bit usage: -------------------------- D5/FD: Full duplex capable D6/HD: Half duplex capable D7,8/PS1,2: Pause function D12,13/RF1,2: Remote Fault function D14/ACK: Acknowledge D15/NP: Next Page (Escape) Remote Fault function encoding 00 - No error, link OK 01 - Offline 10 - Link Failure 11 - Link Error LINK_STARTUP PROCEDURE ______________________ <-----C------ Link_Configuration ----Cack----> Link_Configuration w/Ack <-----I------ Idles ------I-----> Idles Port A Port B POWER-ON PROCEDURE - ONE PORT POWERS ON FIRST _____________________________________________ ------C-----> Port A power on, Port B power off ------C-----> Port B power still off <-----C------ Port B power on, Link_Config to Port A ----Cack----> Port A Link_Config_Ack to Port B <---Cack----- Port B Link_ Config_Ack to Port A ------I-----> Idles <-----I------ Idles Port A Port B POWER-OFF PROCEDURE - ONE PORT POWERS OFF _________________________________________ ---I--+--I--- Idle exchange | Idle exchange <-----+-----> Idle exchange ------C-----> Port A Link_Configuration w/Offline <---Cack----- Port B Link_Config_Ack of Port A Offline ------C-----> Port A signals Offline for a minimum time <-----C------ Port A powered off; Port B awaits Link_Startup from Port A Port A Port B LINK INFORMATION EXAMPLE ________________________ 802.3 info 8B10B codes ---------- ----------- Link_Configuration C1 Link_Configuration C2 Link_Configuration C1 Link_Configuration C2 ~ ~ Link_Configuration C1 Link_Configuration C2 Idle/Disparity OK I2 Idle/Disparity OK I2 ~ ~ Idle/Disparity OK I2 0 PREAMBLE S 1 PREAMBLE Data = 10101010 2 PREAMBLE Data = 10101010 3 PREAMBLE Data = 10101010 4 PREAMBLE Data = 10101010 5 PREAMBLE Data = 10101010 6 PREAMBLE Data = 10101010 7 SFD Data = 10101011 8 DA Data = DA... ~ ~ LLC DATA Data = LLC DATA... ~ ~ FCS1 Data = FCS1 octet... FCS2 Data = FCS2 octet... FCS3 Data = FCS3 octet... FCS4 Data = FCS4 octet... EOP1 T EOP2 R EOP2 R ~ ~ EOP2 R (odd-num character) Idle/Flip Disparity I1 Idle/Disparity OK I2 ~ ~ Idle/Disparity OK I2 Link_Configuration C1 (error or reconfig) Link_Configuration C2 Link_Configuration C1 Link_Configuration C2 ~ ~ Link_Configuration C1 Link_Configuration C2 Idle/Flip Disparity I1 Idle/Disparity OK I2 Idle/Disparity OK I2 Idle/Disparity OK I2 Idle/Disparity OK I2 Idle/Disparity OK I2 Idle/Disparity OK I2 Idle/Disparity OK I2 ~ ~ Idle/Disparity OK I2 0 PREAMBLE S 1 PREAMBLE Data = 10101010 2 PREAMBLE Data = 10101010 3 PREAMBLE Data = 10101010 4 PREAMBLE Data = 10101010 5 PREAMBLE Data = 10101010 6 PREAMBLE Data = 10101010 7 SFD Data = 10101011 8 DA Data = DA... ~ ~ LLC DATA Data = LLC DATA... ~ ~ FCS1 Data = FCS1 octet... FCS2 Data = FCS2 octet... FCS3 Data = FCS3 octet... FCS4 Data = FCS4 octet... EOP1 T (even char/no extension) EOP2 R Idle/Flip Disparity I1 Idle/Disparity OK I2 ~ ~ SUMMARY _______ o 8B/10B codes and the proposed coding structure is efficient, robust, and flexible enough to meet Gigabit Ethernet PCS requirements. o No other 8B/10B changes are planned. o 8B/10B PCS draft generation is underway.