Network Working Group                                 Andrew G. Malis
Internet Draft                                                Ken Hsu
Expiration Date: August 2001                    Vivace Networks, Inc.

                                                       Jeremy Brayley
                                                      Steve Vogelsang
                                                         John Shirron
                                                Laurel Networks, Inc.

                                                         Luca Martini
                                         Level 3 Communications, LLC.

                                                           T. Johnson
                                                             M. Drost
                                                           E. Hallman
                                            Litchfield Communications

                                                        February 2001


   SONET/SDH Circuit Emulation Service Over MPLS (CEM) Encapsulation
                     draft-malis-sonet-ces-mpls-03.txt


Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of section 10 of RFC 2026 [1].

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups. Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six
   months and may be updated, replaced, or obsoleted by other documents
   at any time. It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.


1. Abstract

   This document describes a method for encapsulating SONET/SDH Path
   signals for transport across an MPLS network.


2. Conventions used in this document


Malis, et al.            Expires August 2001                 [Page 1]


                SONET/SDH Circuit Emulation Over MPLS   February 2001


   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [2].



3. Introduction

   This document describes a method for encapsulating time division
   multiplexed (TDM) digital signals (TDM circuit emulation) for
   transmission over a packet-oriented MPLS network. The transmission
   system for circuit-oriented TDM signals is the Synchronous Optical
   Network (SONET)[3]/Synchronous Digital Hierarchy (SDH) [4]. To
   support TDM traffic, which includes voice, data, and private leased
   line service, the MPLS network must emulate the circuit
   characteristics of SONET/SDH payloads.  MPLS labels and a new
   circuit emulation header are used to encapsulate TDM signals and
   provide the Circuit Emulation Service over MPLS (CEM).

   This document also describes an optional extension to CEM called
   Dynamic Bandwidth Allocation (DBA).  This is a method for
   dynamically reducing the bandwidth utilized by emulated SONET/SDH
   circuits in the packet network .  This bandwidth reduction is
   accomplished by not sending the SONET payload through the packet
   network under certain conditions.

   This document is closely related to references [5], which describes
   the control protocol methods used to signal the usage of CEM, and
   [6], which describes a related method of encapsulating Layer 2
   frames over MPLS and which shares the same signaling.


4. Scope

   This document describes how to provide CEM for the following digital
   signals:

   1. SONET STS-1 synchronous payload envelope (SPE)/SDH VC-3

   2. STS-Nc SPE (N = 3, 12, or 48)/SDH VC-4, VC-4-4c, VC-4-16c

   Other SONET/SDH signals, such as virtual tributary (VT) structured
   sub-rate mapping, are not explicitly discussed in this document;
   however, it can be extended in the future to support VT and lower
   speed non-SONET services. OC-192c SPE/VC-4-64c are also not included
   at this point, since most MPLS networks use OC-192c or slower
   trunks, and thus would not have sufficient capacity.  As trunk
   capacities increase in the future, the scope of this document can be
   accordingly extended.


5. CEM Encapsulation Format


Malis, et al.            Expires August 2001                 [Page 2]


                SONET/SDH Circuit Emulation Over MPLS   February 2001


   A TDM data stream is segmented into packets and encapsulated in MPLS
   packets. Each packet has one or more MPLS labels, followed by a 32-
   bit CEM header to associate the packet with the TDM stream.

   The outside label is used to identify the MPLS LSP used to tunnel
   the TDM packets through the MPLS network (the tunnel LSP).  The
   interior label is used to multiplex multiple TDM connections within
   the same tunnel.  This is similar to the label stack usage defined
   in [5] and [6].

   CEM packets are fixed in length for all of the packets of a
   particular emulated TDM stream.  This length is signaled using the
   CEM Payload Bytes parameter defined in [5], or is statically
   provisioned for each TDM stream.

   The 32-bit CEM header has the following format:

      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |S|Resvd|   Sequence Num    | Structure Pointer |N|P|   ECC-6   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Figure 1. CEM Header Format


   The above fields are defined as follows:

   S bit: This indicates the SPE contents during payload suppression.
   0 indicates AIS-P (SPE is all ones), 1 indicates Path Unequipped
   (SPE is all zeros).  See section 7 for further details.

   Reserved: These bits are reserved for future use.

   Sequence Number:  This is a packet sequence number, which
   continuously cycles from 0 to 1023.  It begins at 0 when a TDM LSP
   is created.

   Structure Pointer: The pointer points to the J1 byte in the payload
   area. The value is from 0 to 1,022, where 0 means the first byte
   after the CEM header. The pointer is set to 0x3FF (1,023) if a
   packet does not carry the J1 byte.  See [3] and [4] for more
   information on the J1 byte and the structure pointer.

   The N and P bits: See sections 6 and 7 for their definition.

   ECC-6: An Error Correction Code to protect the CEM header.  This
   offers the ability to correct single bit errors and detect up to two
   bit errors.  The ECC algorithm is described in Appendix B.


6. Clocking Mode


Malis, et al.            Expires August 2001                 [Page 3]


                SONET/SDH Circuit Emulation Over MPLS   February 2001


   It is necessary to be able to regenerate the input service clock at
   the output interface.  Two clocking modes are supported: synchronous
   and asynchronous.

6.1 Synchronous

   When synchronous SONET timing is available at both ends of the
   circuit, the N(JE) and P(JE) bits are set for negative or positive
   justification events. The event is carried in five consecutive
   packets at the transmitter. The receiver plays out the event when
   three out of five packets with NJE/PJE bit set are received. If both
   bits are set, then path AIS event has occurred (this is further
   discussed in section 7).  If there is a frequency offset between the
   frame rate of the transport overhead and that of the STS SPE, then
   the alignment of the SPE shall periodically slip back or advance in
   time through positive or negative stuffing. The N(JE) and P(JE) bits
   are used to replay the stuff indicators and eliminate transport
   jitter.

6.2 Asynchronous

   If synchronous timing is not available, the N and P bits are not
   used for frequency justification and adaptive methods are used to
   recover the timing. The N and P bits are only used for the
   occurrence of a path AIS event. An example adaptive method can be
   found in section 3.4.2 of [7].


7. Circuit Outages and Maintenance Alarms

   In a SONET/SDH network, circuit outages are signaled using
   maintenance alarms such as Path AIS (AIS-P).  In particular, AIS-P
   indicates that the SONET Path is not currently transmitting valid
   end-user data, and the SPE contains all one bits.  To conserve
   network bandwidth, the CEM header is used to indicate that the
   emulated SONET Path is signaling AIS-P, and the actual one bits are
   not transmitted.

   It should be noted that nearly every type of service-effecting
   section or line defect will result in an AIS-P condition.

   The typical SONET hierarchy is illustrated below.












Malis, et al.            Expires August 2001                 [Page 4]


                SONET/SDH Circuit Emulation Over MPLS   February 2001


                               +----------+
                               |   PATH   |
                               +----------+
                                    ||
                               +----------+
                               |   LINE   |
                               + ---------+
                                    ||
                               +----------+
                               | SECTION  |
                               +----------+


   Should the Section Layer detect an Loss of Section (LOS) or Loss of
   Frame (LOF) condition, it sends AIS-L up to the Line Layer.  If the
   Line Layer detects AIS-L or Loss of Path (LOP), it sends AIS-P to
   the Path Layer.  In all of these cases, CEM will detect the AIS-P
   condition and will suppress transmission of the SPE through the
   packet network.

   In the CEM header, both the N and P bits are set to signal AIS-P.
   When a CEM header is received with both bits set, the CEM receiver
   transmits the AIS-P alarm out the associated TDM interface.

   Note that the return RDI-P indication is contained, as usual, in the
   G1 octet in the SONET header.

   Also note that this differs from the outage mechanism in [5], which
   withdraws labels as a result of an endpoint outage.  TDM circuit
   emulation requires the ability to distinguish between the de-
   provisioning of a circuit, which would cause the labels to be
   withdrawn, and temporary outages, which are signaled using AIS-P.

7.1 Dynamic Bandwidth Allocation (DBA)

   Some network operators may prefer to further conserve bandwidth by
   relaying additional maintenance signals between the CEM adaptation
   points, without actually transporting the SPE across the packet
   network.  DBA provides such a mechanism.

   The use of DBA is signaled or provisioned; see section 9 for further
   details.

7.2 DBA Triggers

   DBA Triggers are the conditions on an STS-1/Nc that MAY be used to
   trigger bandwidth conservation in the packet network for an emulated
   SONET circuit.

   This draft currently includes one trigger for DBA: STS SPE
   Unequipped.  Additional triggers are for future consideration.



Malis, et al.            Expires August 2001                 [Page 5]


                SONET/SDH Circuit Emulation Over MPLS   February 2001


7.3 STS SPE Unequipped Indication

   The STS SPE Unequipped Indication is a slightly different case than
   AIS-P.  According to ANSI T1.105-1995 [3], when the Byte C2 of the
   Path Overhead (STS path signal label) is 00h and Byte B3 (STS Path
   BIP-8) is valid, it indicates that the SPE is unequipped.  This is
   usually implemented by sending all zeros in the SPE.  Therefore, it
   is another prime candidate for SPE suppression.

   In addition, some service providers provision STS-1/Nc circuits well
   in advance of turning up the service.  Reallocating the bandwidth
   used by unequipped CEM circuits could be a significant savings in
   some networks.

   DBA will detect the STS SPE Unequipped condition, and (if configured
   to do so) will suppress transmission of the SPE.

   By default, when the N and P bits are set to 11 (binary) this
   indicates an AIS-P condition.  Given that the AIS-P condition can be
   passed with only the TDM Header, it is not necessary to transmit the
   SPE in order to relay the AIS-P indication to the far-end CEM
   adaptation point.

   However, STS SPE Unequipped is a distinctly different indication
   than AIS-P.  As such it requires a different encoding in the TDM
   Header in order to relay the STS SPE Unequipped indication between
   CEM adaptation points while suppressing transmission of the SPE
   across the packet network.  The SPE suppression indicator (S bit) in
   the CEM header is used to accomplish this goal.  The S bit is
   interpreted as follows.

   If DBA capability is supported and has been enabled, when AIS-P or
   STS SPE unequipped indications occur in an STS-1/Nc, the
   corresponding CEM function MUST suppress transmission of the SPE
   into the packet network and set the N and P bits to 11 (binary).
   The S bit MUST indicate why SPE transmission has been suppressed.
   If an AIS-P is being received on the STS-1/Nc, the S bit MUST be set
   to zero.  If an STS SPE unequipped indication is being received on
   the STS-1/Nc, the S bit MUST be set to one.

   Similarly, if a CEM function receives packets with the N and P bits
   equal to 11 binary and DBA is supported and has been enabled, the S
   bit MUST be consulted to determine if the SONET SPE should be
   reconstructed as all ones or all zeros.  If the S bit is set to
   zero, then an AIS-P MUST be transmitted onto the corresponding STS-
   1/Nc.  If the S bit is set to one, then an STS SPE Unequipped
   indication MUST be transmitted onto the corresponding STS-1/Nc.


8. CEM Operation

   As with all adaptation functions, CEM has two distinct functions:
   adapting TDM SONET into a CEM packet stream, and converting the CEM

Malis, et al.            Expires August 2001                 [Page 6]


                SONET/SDH Circuit Emulation Over MPLS   February 2001


   packet stream back into a TDM SONET.  The first function is CEM
   transmit and the second is CEM receive.  Furthermore, the CEM
   receive function requires some sort of buffering mechanism to
   account for delay variation in the CEM packet stream.  This
   buffering mechanism will be generically referred to as the CEM
   receive jitter buffer.

   The following sub-sections describe how the CEM transmit and receive
   functions behave during normal operation and during SPE suppression.

8.1 Description of Normal CEM Operation

   During normal operation, the CEM transmit function will receive a
   fixed rate byte stream from the SONET line layer.  As all CEM
   packets associated with a specific STS-1/Nc will have the same
   length, this results in transmission of CEM packets for that STS-
   1/Nc at regular intervals.

   At the far end of the packet network, the CEM receiver will receive
   packets into a jitter buffer, and then play out the received byte
   stream at a fixed rate onto the corresponding STS-1/Nc.  The jitter
   buffer must be adjustable in length to account for varying packet
   arrival times.  The receive packet rate from the packet network
   should be exactly balanced by the STS-1/Nc transmission rate, on
   average.  The time over which this average is taken corresponds to
   the depth of the jitter buffer for a specific CEM channel.

8.2 Description of CEM Operation during SPE Suppression

   There are several issues that should be addressed by a workable SPE
   suppression mechanism.  First, when suppression is invoked, there
   should be a substantial savings in bandwidth utilization in the
   packet network.  The second issue is that the transition in and out
   of SPE suppression must be tightly coordinated between the local CEM
   transmitter and CEM receiver at the far side of the packet network.
   A third is that the transition in and out of SPE suppression should
   be accomplished with minimal disruption to the adapted data stream.

   Another goal is that SPE suppression should be distinctly different
   from a fault in the packet network.  Finally, the implementation of
   suppression should require minimal modifications beyond what is
   necessary for the nominal CEM case.  We believe that the mechanism
   described below is a reasonable balance of these goals.

   The mechanism is to allow the CEM transmitter to fly-wheel through
   SPE suppression.  Packets MUST be emitted at exactly the same rate
   as when the SPE is not suppressed.  The only change from normal
   operation is that the CEM packets during SPE suppression MUST only
   carry the TDM header.  The S-bit MUST be set to zero or one, to
   indicate the proper maintenance signal.




Malis, et al.            Expires August 2001                 [Page 7]


                SONET/SDH Circuit Emulation Over MPLS   February 2001


   The CEM receiver will assume that each packet received during SPE
   suppression represents a normal packet payload of either all ones or
   all zeros as indicated by the S-bit.

   This allows the CEM transmit and receive logic during SPE
   suppression to be virtually identical to the nominal case.  It
   insures that the correct indication is reliably transmitted between
   CEM adaptation points.  It minimizes the risk of under or over
   running the jitter buffer during the transition in and out of SPE
   suppression.  And, it guarantees that faults in the packet network
   are recognized as distinctly different from line conditioning on the
   SONET interfaces.


9. CEM LSP Signaling

   For maximum network scaling, CEM LSP signaling may be performed
   using the LDP Extended Discovery mechanism as augmented by the VC
   FEC Element defined in [5].  MPLS traffic tunnels may be dedicated
   to CEM, or shared with other MPLS-based services.  The value 8008 is
   used for the VC Type in the VC FEC Element in order to signify that
   the LSP being signaled is to carry CEM.  Note that the generic
   control word defined in [6] is not used, as its functionality is
   included in the CEM encapsulation header.

   Alternatively, static label assignment may be used, or a dedicated
   traffic engineered LSP may be used for each CEM circuit.

   CEM packets are fixed in length for all of the packets of a
   particular emulated TDM stream.  This length is signaled using the
   CEM Payload Bytes parameter defined in [5], or is statically
   provisioned for each TDM stream.

   The use of DBA is signaled by the use of the CEM Options parameter
   defined in [5], or is statically provisioned for each TDM stream.

10. Open Issues

   Future revisions of this document will discuss underlying MPLS QoS
   requirements, support for VT and lower speed non-SONET services, and
   possibly extending SPE suppression to other cases, such as long runs
   of HDLC flags (i.e. 0x7E).  Perhaps the S bit should be expanded to
   two bits to account for some degree of future expansion.


11. Security Considerations

   As with [5], this document does not affect the underlying security
   issues of MPLS.





Malis, et al.            Expires August 2001                 [Page 8]


                SONET/SDH Circuit Emulation Over MPLS   February 2001


12. Intellectual Property Disclaimer

   This document is being submitted for use in IETF standards
   discussions.  Vivace Networks, Inc. has filed one or more patent
   applications relating to the CEM technology outlined in this
   document.  Vivace Networks, Inc. will grant free unlimited licenses
   for use of this technology.


13. References

   [1]  Bradner, S., "The Internet Standards Process -- Revision 3",
        BCP 9, RFC 2026, October 1996.

   [2]  Bradner, S., "Key words for use in RFCs to Indicate Requirement
        Levels", BCP 14, RFC 2119, March 1997

   [3]  American National Standards Institute, "Synchronous Optical
        Network (SONET) - Basic Description including Multiplex
        Structure, Rates and Formats," ANSI T1.105-1995.

   [4]  ITU Recommendation G.707, "Network Node Interface For The
        Synchronous Digital Hierarchy", 1996.

   [5]  Martini et al, "Transport of Layer 2 Frames Over MPLS", draft-
        martini-l2circuit-trans-mpls-05.txt, work in progress, February
        2001.

   [6]  Martini et al, "Encapsulation Methods for Transport of Layer 2
        Frames Over MPLS", draft-martini-l2circuit-encap-mpls-01.txt,
        work in progress, February 2001.

   [7]  ATM Forum, "Circuit Emulation Service Interoperability
        Specification Version 2.0", af-vtoa-0078.000, January 1997.


13. Acknowledgments

   The authors would like to thank Mitri Halabi and Bob Colvin, both of
   Vivace Networks, for their comments and suggestions.


14. Authors' Addresses

   Andrew G. Malis
   Vivace Networks, Inc.
   2730 Orchard Parkway
   San Jose, CA 95134
   Email: Andy.Malis@vivacenetworks.com

   Ken Hsu
   Vivace Networks, Inc.
   2730 Orchard Parkway

Malis, et al.            Expires August 2001                 [Page 9]


                SONET/SDH Circuit Emulation Over MPLS   February 2001


   San Jose, CA 95134
   Email: Ken.Hsu@vivacenetworks.com

   Jeremy Brayley
   Laurel Networks, Inc.
   2706 Nicholson Rd.
   Sewickley, PA 15143
   Email: jbrayley@laurelnetworks.com

   Steve Vogelsang
   Laurel Networks, Inc.
   2706 Nicholson Rd.
   Sewickley, PA 15143
   Email: sjv@laurelnetworks.com

   John Shirron
   Laurel Networks, Inc.
   2607 Nicholson Rd.
   Sewickley, PA 15143
   Email: jshirron@laurelnetworks.com

   Luca Martini
   Level 3 Communications, LLC.
   1025 Eldorado Blvd.
   Broomfield, CO 80021
   Email: luca@level3.net

   Thomas K. Johnson
   Litchfield Communications
   76 Westbury Park Rd.
   Watertown, CT 06795
   Email: tom_johnson@litchfieldcomm.com

   Ed Hallman
   Litchfield Communications
   76 Westbury Park Rd.
   Watertown, CT 06795
   Email: ed_hallman@litchfieldcomm.com

   Marlene Drost
   Litchfield Communications
   76 Westbury Park Rd.
   Watertown, CT 06795
   Email: marlene_drost@litchfieldcomm.com










Malis, et al.            Expires August 2001                [Page 10]


                SONET/SDH Circuit Emulation Over MPLS   February 2001


   Appendix A. SONET/SDH Rates and Formats

   For simplicity, the discussion in this section uses SONET
   terminology, but it applies equally to SDH as well.  SDH-equivalent
   terminology is shown in the tables.

   The basic SONET modular signal is the synchronous transport signal-
   level 1 (STS-1). A number of STS-1s may be multiplexed into higher-
   level signals denoted as STS-N, with N synchronous payload envelopes
   (SPEs). The optical counterpart of the STS-N is the Optical Carrier-
   level N, or OC-N. Table 1 lists standard SONET line rates discussed
   in this document.


     OC Level          OC-1    OC-3    OC-12      OC-48     OC-192
     SDH Term             -   STM-1    STM-4     STM-16     STM-64
     Line Rate(Mb/s) 51.840 155.520  622.080  2,488.320  9,953.280

                    Table 1. Standard SONET Line Rates


   Each SONET frame is 125 ´s and consists of nine rows. An STS-N frame
   has nine rows and N*90 columns. Of the N*90 columns, the first N*3
   columns are transport overhead and the other N*87 columns are SPEs.
   A number of STS-1s may also be linked together to form a super-rate
   signal with only one SPE. The optical super-rate signal is denoted
   as OC-Nc, which has a higher payload capacity than OC-N.

   The first 9-byte column of each SPE is the path overhead (POH) and
   the remaining columns form the payload capacity with fixed stuff
   (STS-Nc only).  The fixed stuff, which is purely overhead, is N/3-1
   columns for STS-Nc.  Thus, STS-1 and STS-3c do not have any fixed
   stuff, STS-12c has three columns of fixed stuff, and so on.

   The POH of an STS-1 or STS-Nc is always nine bytes in nine rows. The
   payload capacity of an STS-1 is 86 columns (774 bytes) per frame.
   The payload capacity of an STS-Nc is (N*87)-(N/3) columns per frame.
   Thus, the payload capacity of an STS-3c is (3*87 - 1)*9 = 2,340
   bytes per frame. As another example, the payload capacity of an STS-
   192c is 149,760 bytes, which is exactly 64 times larger than the
   STS-3c.

   There are 8,000 SONET frames per second. Therefore, the SPE size,
   (POH plus payload capacity) of an STS-1 is 783*8*8,000 = 50.112
   Mb/s. The SPE size of a concatenated STS-3c is 2,349 bytes per frame
   or 150.336 Mb/s. The payload capacity of an STS-192c is 149,760
   bytes per frame, which is equivalent to 9,584.640 Mb/s. Table 2
   lists the SPE and payload rates supported.






Malis, et al.            Expires August 2001                [Page 11]


                SONET/SDH Circuit Emulation Over MPLS   February 2001


   SONET STS Level     STS-1   STS-3c  STS-12c    STS-48c   STS-192c
   SDH VC Level            -     VC-4  VC-4-4c   VC-4-16c   VC-4-64c
   Payload Size(Bytes)   774    2,340    9,360     37,440    149,760
   Payload Rate(Mb/s) 49.536  149.760  599.040  2,396.160  9,584.640
   SPE Size(Bytes)       783    2,349    9,396     37,584    150,336
   SPE Rate(Mb/s)     50.112  150.336  601.344  2,405.376  9,621.504

                      Table 2. Payload Size and Rate


   To support circuit emulation, the entire SPE of a SONET STS or SDH
   VC level is encapsulated into packets, using the encapsulation
   defined in section 5, for carriage across MPLS networks.


Appendix B. ECC-6 Definition

   ECC-6 is an Error Correction Code to protect the CEM header.  This
   provides single bit correction and the ability to detect up to two
   bit errors.


   Error Correction Code:


   |---------------Header bits 0-25 -------------------| ECC-6 code|
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |1 1 1 1 1 0 0 0 1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 1|1 0 0 0 0 0|
   |1 1 1 1 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 1 1 1 1 1 1 1|0 1 0 0 0 0|
   |1 0 0 0 1 1 1 1 0 0 1 0 1 1 1 0 0 0 1 1 1 1 0 0 1 1|0 0 1 0 0 0|
   |0 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 0 1|0 0 0 1 0 0|
   |0 0 1 0 0 0 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 0|0 0 0 0 1 0|
   |0 0 0 1 0 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 0 1 1 1 1 1|0 0 0 0 0 1|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Figure 2. ECC-6 Check Matrix X


   The ECC-6 code protects the 32 bit CEM header as follows:

   The encoder generates the 6 bit ECC using the matrix shown in Figure
   2.  In brief, the encoder builds another 26 column by 6 row matrix
   and calculates even parity over the rows.  The matrix columns
   represent CEM header bits 0 through 25.

   Denote each column of the ECC-6 check matrix by X[], and each column
   of the intermediate encoder matrix as Y[].  CEM[] denotes the CEM
   header and ECC[] is the error correction code that is inserted into
   CEM header bits 26 through 31.



Malis, et al.            Expires August 2001                [Page 12]


                SONET/SDH Circuit Emulation Over MPLS   February 2001


   for i = 0 to 25 {
        if CEM[i] = 0 {
                Y[i] = 0;
        } else {
                Y[i] = X[i];
        }
   }

   In other words, for each CEM header bit (i) set to 1, set the
   resulting matrix column Y[i] according to Figure 2.

   The final ECC-6 code is calculated as even parity of each row in Y
   (i.e. ECC[k]=CEM[25+k]=even parity of row k).

   The receiver also uses matrix X to calculate an intermediate matrix
   YÆ based on all 32 bits of the CEM header.  Therefore YÆ is 32
   columns wide and includes the ECC-6 code.

   for i = 0 to 31 {
        if CEM[i] = 0 {
                YÆ[i] = 0;
        } else {
                YÆ[i] = X[i];
        }
   }

   The receiver then appends the incoming ECC-6 code to Y as column 32
   (ECC[0] should align with row 0) and calculates even parity for each
   row.  The result is a single 6 bit column Z.  If all 6 bits are 0,
   there are no bit errors (or at least no detectable errors).
   Otherwise, it uses Z to perform a reverse lookup on X[] from Figure
   2.  If Z matches column X[i], then there is a single bit error.  The
   receiver should invert bit CEM[i] to correct the header.  If Z fails
   to match any column of X, then the CEM header contains more than one
   bit error and the CEM packet MUST be discarded.

   Note that the ECC-6 code provides single bit correction and 2-bit
   detection of errors within the received ECC-6 code itself


Full Copyright Statement

   Copyright (C) The Internet Society (2001). All Rights Reserved. This
   document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph
   are included on all such copies and derivative works. However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for

Malis, et al.            Expires August 2001                [Page 13]


                SONET/SDH Circuit Emulation Over MPLS   February 2001


   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Acknowledgement

   Funding for the RFC Editor function is currently provided by the
   Internet Society.




































Malis, et al.            Expires August 2001                [Page 14]