RFC 5143
Synchronous Optical Network/Synchronous Digital Hierarchy (SONET/SDH) Circuit Emulation Service over MPLS (CEM) Encapsulation
Synchronous Optical Network/Synchronous Digital Hierarchy (SONET/SDH) Circuit Emulation Service over MPLS (CEM) Encapsulation β¨
RFC 5143 π okay bestie, here's the deets:
- Network Working Group πΈ
- Category: Historic π (so it's a history doc, not a standard π)
- Date: February 2008 π
- Authors: A. Malis (Verizon Communications), J. Brayley, J. Shirron (ECI Telecom Inc.), L. Martini (Cisco Systems, Inc.), and S. Vogelsang (Alcatel-Lucent) π
- Obsoleted by: RFC 4842 π
Status of This Memo
okay so this memo is a Historic Document for the Internet community π. It does not specify an Internet standard of any kind, and distribution of this memo is unlimited π¦.
IESG Note
the IESG thinks this work is related to IETF work done in WG PWE3, but that doesn't stop it from being published π«Ά.
Abstract
this doc describes an old-school way to encapsulate Synchronous Optical Network/Synchronous Digital Hierarchy (SONET/SDH) Path signals so they can ride across packet-switched networks (PSNs) π§. The PSNs it explicitly supports are MPLS and IP π. ngl, the real tea is that RFC 4842 is the standards-track protocol for this now β¨. New implementations must use RFC 4842 instead of this document, except when they need to interoperate with older implementations π.
Table of Contents
1. Introduction ....................................................3
2. Conventions Used in This Document ...............................3
3. Scope ...........................................................3
4. CEM Encapsulation Format ........................................4
4.1. Transport Encapsulation ....................................6
4.1.1. MPLS Transport ......................................6
4.1.2. IP Transport ........................................7
5. CEM Operation ...................................................8
5.1. Introduction and Terminology ...............................8
5.1.1. CEM Packetizer and De-Packetizer ....................9
5.1.2. CEM DBA .............................................9
5.2. Description of Normal CEM Operation .......................10
5.3. Description of CEM Operation during DBA ...................10
5.4. Packet Synchronization ....................................11
5.4.1. Acquisition of Packet Synchronization ..............11
5.4.2. Loss of Packet Synchronization .....................11
6. SONET/SDH Maintenance Signals ..................................12
6.1. SONET/SDH to PSN ..........................................12
6.1.1. AIS-P Indication ...................................13
6.1.2. STS SPE Unequipped Indication ......................14
6.1.3. CEM-RDI ............................................14
6.2. PSN to SONET/SDH ..........................................15
6.2.1. AIS-P Indication ...................................15
6.2.2. STS SPE Unequipped Indication ......................15
7. Clocking Modes .................................................16
7.1. Synchronous ...............................................16
7.1.1. Synchronous Unstructured CEM .......................16
7.1.2. Synchronous Structured CEM .........................16
7.2. Asynchronous ..............................................17
8. CEM LSP Signaling ..............................................17
9. Security Considerations ........................................18
10. IANA Considerations ...........................................18
11. References ....................................................18
11.1. Normative References .....................................18
11.2. Informative References ...................................19
Appendix A. SONET/SDH Rates and Formats ...........................20
Appendix B. ECC-6 Definition ......................................21
1. Introduction β¨
okay so this doc describes that same old historical method for wrapping SONET/SDH Path signals for transport across packet-switched networks (PSNs) π.
the native transmission system for circuit-oriented Time Division Multiplexing (TDM) signals is the Synchronous Optical Network (SONET) [T1.105], [GR-253]/Synchronous Digital Hierarchy (SDH) [G.707] π. to support TDM traffic (which includes voice, data, and private leased line services) π , PSNs have to 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) function π¦. the MPLS encapsulation may be further encapsulated in IP for carriage across IP PSNs [RFC4023] π«Ά.
this doc also describes an optional extension to CEM called Dynamic Bandwidth Allocation (DBA) π. it's a way to dynamically reduce the bandwidth used by emulated SONET/SDH circuits in the packet network π§. the bandwidth reduction happens by not sending the SONET/SDH payload through the packet network under certain conditions, like Alarm Indication Signal - Path (AIS-P) or Synchronous Transport Signal Synchronous Payload Envelope (STS SPE) Unequipped π.
2. Conventions Used in This Document π
the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this doc are to be interpreted as described in [RFC2119] π.
3. Scope πΈ
this doc explains how to provide CEM for the following digital signals π:
- SONET STS-1 synchronous payload envelope (SPE)/SDH VC-3
- STS-Nc SPE (N = 3, 12, or 48)/SDH VC-4, VC-4-4c, VC-4-16c
- Unstructured SONET Emulation, where the entire SONET bit-stream (including the transport overhead) is packetized and transported across the PSN β¨
for the rest of this doc, these constructs are called SONET/SDH channels π¦.
other SONET/SDH signals, like virtual tributary (VT) structured sub-rate mapping, aren't explicitly discussed here π. it can be extended in the future to support VT and lower speed non-SONET/SDH services π. OC-192c SPE/VC-4-64c aren't included at this point either, because most PSNs use OC-192c or slower trunks and would not have enough capacity π . as trunk capacities increase in the future, the scope of this doc can be extended to match π.
4. CEM Encapsulation Format π
so, to transport SONET/SDH SPEs through a packet-oriented network, the SPE gets broken into fragments π§. a 32-bit CEM header is pre-pended to each fragment π. the Basic CEM packet looks like this:
+-----------------------------------+
| CEM Header |
+-----------------------------------+
| |
| |
| SONET/SDH SPE Fragment |
| |
| |
+-----------------------------------+
Figure 1. Basic CEM Packet
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|D|R|Rvd| Sequence Num | Structure Pointer |N|P| ECC-6 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2. CEM Header Format
here's the lowdown on each field π«Ά:
D-bit: this bit signals DBA Mode π¦. it MUST be set to zero for normal operation, and it MUST be set to one if CEM is currently in DBA mode. DBA is an optional mode during which trivial SPEs are not transmitted into the packet network π. see Table 1 and sections 7 and 8 for further details.
Note: for unstructured CEM, the D-bit MUST be set to zero. π
R bit: CEM-RDI (Remote Defect Indicator) π. this bit is set to one to signal to the remote CEM function that a loss of packet synchronization has occurred π§.
Rvd: these bits are reserved for future use, and they MUST be set to zero π.
Sequence Number: this is a packet sequence number, which MUST continuously cycle from 0 to 1023 β¨. it SHOULD begin at zero when a CEM LSP (Label Switched Path) is created π.
Structure Pointer: the Structure Pointer MUST contain the offset of the J1 byte within the CEM payload π. the value is from 0 to 1,022, where 0 means the first byte after the CEM header. the Structure Pointer MUST be set to 0x3FF (1,023) if a packet does not carry the J1 byte π. see [T1.105], [G.707], and [GR-253] for more information on the J1 byte and the SONET/SDH payload pointer π.
Note: for unstructured CEM, the Structure Pointer field MUST be set to 0x3FF. π
The N and P bits: these bits indicate negative and positive pointer adjustment events πΈ. they're also used to relay SONET/SDH maintenance signals, like AIS-P π¦. see Table 1 and sections 7 and 8 for more details.
Note: for unstructured CEM, the N and P bits MUST both be set to zero. π
+---+---+---+----------------------------------------------+
| D | N | P | Interpretation |
+---+---+---+-------------+--------------------------------+
| 0 | 0 | 0 | Normal Mode | No Ptr Adjustment |
| 0 | 0 | 1 | Normal Mode | Positive Ptr Adjustment |
| 0 | 1 | 0 | Normal Mode | Negative Ptr Adjustment |
| 0 | 1 | 1 | Normal Mode | AIS-P |
| | | | | |
| 1 | 0 | 0 | DBA Mode | STS SPE Unequipped |
| 1 | 0 | 1 | DBA Mode | STS SPE Unequipped Pos Ptr Adj |
| 1 | 1 | 0 | DBA Mode | STS SPE Unequipped Neg Ptr Adj |
| 1 | 1 | 1 | DBA Mode | AIS-P |
+---+---+---+-------------+--------------------------------+
Table 1. Interpretation of D, N, and P bits
ECC-6: this is an Error Correction Code to protect the CEM header π₯. it gives you the ability to correct single bit errors and detect up to two bit errors β¨. the ECC algorithm is described in Appendix B π§. the ECC-6 can be optionally disabled at provisioning time π. if the ECC-6 is not utilized, it MUST be set to zero π.
Note: normal 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 [RFC4447], or it's statically provisioned for each TDM stream π. so the length of each CEM packet doesn't need to be carried in the CEM header π«Ά.
Note: setting the D-bit to 0 and the R bit to 1 violates the Best Current Practice defined in [RFC4928] when operating on MPLS networks π. in this situation, MPLS networks could mistake a CEM payload as the first nibble of an IPv4 packet, which could cause mis-ordering of packets on the pseudowire when IP Equal Cost Multi-Path (ECMP) is in use in the MPLS network π. the use of this CEM header came before the use of MPLS ECMP π. as stated earlier, [RFC4842] describes the standards-track protocol for this functionality, and it does not share this violation πβ¨.
4.1. Transport Encapsulation β¨
okay so in theory CEM packets can ride on basically any packet-oriented network π«Ά but the sections below spell out exactly how CEM packets MUST be encapsulated for transport over MPLS or IP networks. no skipping this part bestie π
4.1.1. MPLS Transport π§
to send a CEM packet over an MPLS network, an MPLS label stack MUST be pushed on top of the CEM packet π
the last two labels right before the CEM header are called the Tunnel and Virtual Circuit (VC) labels π
the VC label is required π it's the last label before the CEM Header, and it MUST be used to identify the CEM connection within the MPLS tunnel π₯
the tunnel label is optional π it sits right above the VC label on the stack. if it's there, it MUST be used to identify the MPLS LSP that tunnels the TDM packets through the MPLS network (the tunnel LSP) πΈ
this is giving the same label stack vibes as what's in [RFC4447] β¨
+-----------------------------------+
| Additional MPLS Labels (Optional) |
+-----------------------------------+
| Tunnel Label (Optional) |
+-----------------------------------+
| VC Label |
+-----------------------------------+
| CEM Header |
+-----------------------------------+
| |
| |
| SONET/SDH SPE Fragment |
| |
| |
+-----------------------------------+
Figure 3. Typical MPLS Transport Encapsulation π¦
4.1.2. IP Transport π¦
it's highly desirable to have one single encapsulation format that works for both IP and MPLS π and it's also desirable that the encapsulation be as efficient as possible π
one way to hit both goals is to map CEM directly onto IP, by mapping those MPLS packets we just talked about onto IP π
a mechanism for carrying MPLS over IP is described in [RFC4023] π
using that scheme gives you the packet format in Figure 4 β¨
+-----------------------------------+
| |
| IPv6/v4 Header [RFC4023] |
| |
+-----------------------------------+
| Tunnel Label (Optional) |
+-----------------------------------+
| VC Label |
+-----------------------------------+
| CEM Header |
+-----------------------------------+
| |
| |
| SONET/SDH SPE Fragment |
| |
| |
+-----------------------------------+
Figure 4. MPLS Transport Encapsulation πΈ
5. CEM Operation π
the next sections describe how CEM operates π
5.1. Introduction and Terminology πΈ
there are two types of CEM: structured and unstructured π―
unstructured CEM packetizes the entire SONET/SDH bit-stream, transport overhead and all π
structured CEM terminates the transport overhead and packetizes individual channels (STS-1/Nc) within the SONET/SDH frame π because structured CEM terminates the transport overhead, structured CEM implementations SHOULD meet the generic requirements for SONET/SDH Line Terminating Equipment as defined in [T1.105], [G.707], and [GR-253] π«Ά
Implementations MUST support structured CEM and MAY support unstructured CEM β¨
structured CEM MUST support a normal mode of operation and MAY support an optional extension called Dynamic Bandwidth Allocation (DBA) π during normal operation, SONET/SDH payloads are fragmented, pre-pended with the CEM header, the VC label, and the PSN header, and then transmitted into the packet network. during DBA mode, only the CEM header, the VC label, and PSN header are transmitted. this is done to conserve bandwidth when meaningful user data isn't present in the SPE, such as during AIS-P or STS SPE Unequipped π«Ά
5.1.1. CEM Packetizer and De-Packetizer π§
as with all adaptation functions, CEM has two distinct components: adapting TDM SONET/SDH into a CEM packet stream, and converting the CEM packet stream back into TDM SONET/SDH. the first function is called the CEM packetizer and the second is called the CEM de-packetizer. the diagram below shows this terminology π
+------------+ +---------------+
| | | |
SONET --> | CEM | --> PSN --> | CEM | --> SONET
SDH | Packetizer | | De-Packetizer | SDH
| | | |
+------------+ +---------------+
Figure 5. CEM Terminology π¦
Note: the CEM de-packetizer requires a buffering mechanism to account for delay variation in the CEM packet stream. this buffering mechanism will be generically referred to as the CEM jitter buffer. π
5.1.2. CEM DBA π
DBA is an optional mode of operation for structured CEM that only transmits the CEM header, the VC label, and PSN header into the packet network under certain circumstances, such as AIS-P or STS SPE Unequipped π
if DBA is supported by a CEM implementation, the user SHOULD be able to configure whether DBA gets triggered by AIS-P, STS SPE Unequipped, both, or neither, on a per channel basis π
if DBA is supported, the determination of AIS-P and STS SPE Unequipped MUST be based on the state of SONET/SDH Section, Line, and Path Overhead bytes. DBA based on pattern detection within the SPE (i.e., all zeros, 7Es, or ATM idle cells) is for further study π§
during AIS-P, there is no valid payload pointer, so pointer adjustments cannot occur. during STS SPE Unequipped, the SONET/SDH payload pointer is valid, and therefore pointer adjustments MUST be supported even during DBA. see Table 1 for details π
5.2. Description of Normal CEM Operation π
during normal operation, the CEM packetizer receives a fixed rate byte stream from a SONET/SDH interface. when a packet's worth of data has been received from a SONET/SDH channel, the CEM header, the VC Label, and PSN header get pre-pended to the SPE fragment, and the resulting CEM packet is transmitted into the packet network. because all normal CEM packets for a specific SONET/SDH channel have the same length, transmission of CEM packets for that channel SHOULD occur at regular intervals π
at the far end of the packet network, the CEM de-packetizer receives packets into a jitter buffer and then plays out the received byte stream at a fixed rate onto the corresponding SONET/SDH channel. the jitter buffer SHOULD be adjustable in length to account for varying network delay behavior. the received packet rate from the packet network should be exactly balanced by the transmission rate onto the SONET/SDH channel, on average. the time over which this average is taken corresponds to the depth of the jitter buffer for a specific CEM channel π
the CEM sequence numbers give you a way to detect lost and/or mis-ordered packets π the CEM de-packetizer MUST detect lost or mis-ordered packets. the CEM de-packetizer MUST play out a programmable byte pattern in place of any dropped packets. the CEM de-packetizer MAY re-order packets received out of order. if the CEM de-packetizer doesn't support re-ordering, it MUST drop mis-ordered packets π
5.3. Description of CEM Operation during DBA π
(Note: DBA is only applicable to structured CEM.) π
there are several issues a workable CEM DBA mechanism should address. first, when DBA 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 DBA should be tightly coordinated between the local CEM packetizer and the CEM de-packetizer at the far side of the packet network. a third is that the transition in and out of DBA should be accomplished with minimal disruption to the adapted data stream β¨
another goal is that the reduction of CEM traffic due to DBA should not be mistaken for a fault in the packet network, or vice-versa. finally, implementing DBA should require minimal modifications beyond what's necessary for the nominal CEM case. the mechanism described below is a reasonable balance of these goals π
during DBA, packets MUST be emitted at exactly the same rate as they would be during normal operation. this SHOULD be accomplished by transmitting each DBA packet after a complete packet of data has been received from the SONET/SDH channel. the only change from normal operation is that the CEM packets during DBA MUST only carry the CEM header, the VC label, and the PSN header π«Ά
because some links have a minimum supported packet size, the CEM packetizer MAY append a configurable number of bytes immediately after the CEM header to pad out the CEM packet to reach the minimum supported packet size. the value of the padding bytes is implementation specific. the D-bit MUST be set to one, to indicate that DBA is active π
the CEM de-packetizer MUST assume that each packet received with the D-bit set represents a normal-sized packet containing an AIS-P or STS SPE Unequipped payload, as noted by N and P (see Table 1). the CEM de-packetizer MUST accept DBA packets with or without padding π
this lets the CEM packetization and de-packetization logic during DBA stay similar to the nominal case. it insures that the correct SONET/SDH 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 DBA. and it guarantees that faults in the packet network are recognized as distinctly different from line conditioning on the SONET/SDH interfaces π¦
5.4. Packet Synchronization π«Ά
a key piece of declaring the state of a CEM service is whether or not the CEM de-packetizer is in or out of packet synchronization. the following paragraphs describe how that determination gets made π
5.4.1. Acquisition of Packet Synchronization π§
at startup, a CEM de-packetizer is out of packet synchronization by default. to declare packet synchronization at startup or after a loss of packet synchronization, the CEM de-packetizer must receive a configurable number of CEM packets with sequential sequence numbers π₯
5.4.2. Loss of Packet Synchronization β¨
Okay so, once a CEM de-packetizer is in packet sync π, it can run into a bunch of events that knock it right out of packet sync. Lowkey dramatic, I know π
As we covered in section 5.2, a CEM de-packetizer MAY support the re-ordering of mis-ordered packets π¦
If a CEM de-packetizer does support re-ordering, then it can't decide that packet synchronization is lost when the packets arrive from the PSN π ββοΈ The determination MUST be made as the packets are being played out onto the SONET/SDH interface. Why? Because only at play-out time can it be figured out whether the entire emulated SONET/SDH stream actually made it over from the PSN π
If a CEM de-packetizer does NOT support re-ordering, there are a bunch of approaches it can use to cut down on the damage that mis-ordered or lost packets do to the final re-assembled SONET/SDH stream π§ For example, ATM Adaptation Layer 1 (AAL1) [I.363.1] uses a simple state-machine to re-order packets in a subset of possible cases. The algorithm for these state-machines is outside the scope of CEM, so we're not getting into it here π Still, the final decision on whether to declare loss of packet synchronization MUST be based on the same criteria as for implementations that DO support re-ordering. No double standards, bestie π
Whether or not a CEM implementation supports re-ordering, the declaration of loss of packet synchronization MUST be based on the following criteria π
As packets get played out towards the SONET/SDH interface, the CEM de-packetizer will run into empty packets sitting where packets were dropped by the PSN, or effectively dropped because of limitations in the CEM implementation π If the CEM de-packetizer hits more than a configurable number of sequential dropped packets, it MUST declare loss of packet synchronization. Iykyk, that's the moment it's officially over π
6. SONET/SDH Maintenance Signals π
There are several issues that must be considered when mapping maintenance signals between SONET/SDH and a PSN π Below is a description of how these signals and conditions get mapped between the two domains.
For clarity, the mappings are split into two groups: SONET/SDH to PSN and PSN to SONET/SDH π©·
6.1. SONET/SDH to PSN
The following sections describe how SONET/SDH Maintenance Signals and Alarm conditions get mapped into a Packet-Switched Network π°οΈ
6.1.1. AIS-P Indication
In a SONET/SDH network, SONET/SDH Path outages get signaled using maintenance alarms, like Path AIS (AIS-P) π¨ Specifically, AIS-P means the SONET/SDH Path isn't currently transmitting valid end-user data, and the SPE is all ones. It's giving "nothing to see here" π«
It should be noted that for structured CEM, nearly every type of service-effecting section or line defect will result in an AIS-P condition. Major main character energy for those defects π
The SONET/SDH hierarchy is illustrated below π¦
+----------+
| PATH |
+----------+
^
|
AIS-P
|
|
+----------+
| LINE |
+ ---------+
^ ^
| |
AIS-L +------ LOP
|
|
+----------+
| SECTION |
+----------+
^ ^
| |
| |
LOS LOF
Figure 6. SONET/SDH Fault Hierarchy π
Should the Section Layer detect a Loss of Signal (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. It's a whole chain of passing the bad news up the ladder πͺπ
In normal mode during AIS-P, structured CEM packets are generated as usual. The N and P bits MUST be set to 11 binary to signal AIS-P explicitly through the packet network π‘ The D-bit MUST be set to zero to indicate that the SPE is being carried through the packet network. Normal CEM packets with the SPE fragment, CEM header, the VC label, and PSN header MUST be transmitted into the packet network. Bestie, the full packet goes through π
However, to conserve network bandwidth during AIS-P, DBA MAY be employed πΈ If DBA has been enabled for AIS-P and AIS-P is currently occurring, the N and P bits MUST be set to 11 binary to signal AIS, and the D-bit MUST be set to one to indicate that the SPE is not being carried through the packet network. Only the CEM header, the VC label, and the PSN header MUST be transmitted into the packet network. Less data, same signal, slay β¨
Also note that this differs from the outage mechanism in [RFC4447], which withdraws the VC label as a result of an endpoint outage. TDM circuit emulation has to be able to tell apart de-provisioning a circuit (which withdraws the VC label) and temporary outages (which get signaled using AIS-P). Not the same thing at all, so it can't mix them up π ββοΈπ
6.1.2. STS SPE Unequipped Indication
The STS SPE Unequipped Indication is a slightly different case from AIS-P π When byte C2 of the Path Overhead (STS path signal label) is 00h and Byte B3 (STS Path BIP-8) is valid, it means the STS SPE is unequipped. Note: this is typically signaled by setting the entire SPE to zeros π«§
For normal structured CEM operation during STS SPE Unequipped, the N and P bits MUST be interpreted as usual. The SPE MUST be transmitted into the packet network along with the CEM header, the VC label, and PSN header, and the D-Bit MUST be set to zero π·
If DBA has been enabled for STS SPE Unequipped and the Unequipped condition is occurring on the SONET/SDH channel, the D-bit MUST be set to one to indicate DBA is active. Only the CEM header, the VC Label, and PSN header MUST be transmitted into the packet network. The N and P bits MUST be used to signal pointer adjustments as normal. See Table 1 and section 8 for details ππ«Ά
6.1.3. CEM-RDI
The CEM function MUST send CEM-RDI towards the packet network during loss of packet synchronization π£ This MUST be accomplished by setting the R bit to one in the CEM header. It applies to both structured and unstructured CEM, so nobody's left out π
6.2. PSN to SONET/SDH
The following sections talk about how the various conditions on the packet network get converted into SONET/SDH indications π
6.2.1. AIS-P Indication
There are several conditions in the packet network that will make the structured CEM de-packetization function send an AIS-P indication onto a SONET/SDH channel π¦
The first one is receiving structured CEM packets with the N and P bits set to one and the D-bit set to zero. That's an explicit indication of AIS-P coming from the far end of the packet network, with DBA disabled for AIS-P π¨ The CEM de-packetizer MUST play out the received SPE fragment (which will incidentally be carrying all ones), and MUST configure the SONET/SDH Overhead to signal AIS-P as defined in [T1.105], [G.707], and [GR-253] π§Ύ
The second case is receiving structured CEM packets with the N and P bits set to one and the D-bit set to one. That's an explicit indication of AIS-P coming from the far end of the packet network, with DBA enabled for AIS-P π The CEM de-packetizer MUST play out one packet's worth of all ones for each packet received, and MUST configure the SONET/SDH Overhead to signal AIS-P as defined in [T1.105], [G.707], and [GR-253] π«°
A third case that makes a structured CEM de-packetization function send an AIS-P indication onto a SONET/SDH channel is loss of packet synchronization. Yep, we already talked about that one π
6.2.2. STS SPE Unequipped Indication
There are three conditions in the packet network that will make the CEM function transmit STS SPE Unequipped Indications onto the SONET/SDH channel πͺ
The first one is transparent to CEM: it's just the receipt of regular CEM packets that happen to be carrying an SPE with the right Path Overhead to signal STS SPE Unequipped. This doesn't need any special processing from the CEM de-packetizer, so it's the easy mode π₯°
The second case is receiving structured CEM packets that have the D-bit set to one to indicate that DBA is active, and the N and P bits set to 00 binary, 01 binary, or 10 binary to indicate STS SPE Unequipped with or without pointer adjustments. The CEM de-packetizer MUST use this information to transmit a packet of all zeros onto the SONET/SDH interface, and adjust the payload pointer as necessary π«§
The third case, when a structured CEM de-packetizer MUST send an STS SPE Unequipped Indication towards the SONET/SDH interface, is when the VC-label has been withdrawn due to de-provisioning of the circuit π₯
7. Clocking Modes β°
It's necessary to be able to regenerate the input service clock at the output interface π΅ Two clocking modes are supported: synchronous and asynchronous. Picking the clocking mode happens as part of service provisioning, and both ends of the emulated circuit must be configured with the same clocking mode. No mismatches, bestie π«Ά
7.1. Synchronous
When synchronous SONET/SDH timing is available at both ends of the circuit, clock recovery becomes a lot simpler π¦
7.1.1. Synchronous Unstructured CEM
For unstructured CEM, the external clock gets used to clock each bit onto the optical carrier π«
7.1.2. Synchronous Structured CEM π
Okay so for structured CEM, the external clock is what drives the SONET/SDH carrier π°οΈ. The N and P bits are how the two structured CEM endpoints tell each other about negative or positive pointer adjustment events π
If the frame rate of the transport overhead and the frame rate of the SONET/SDH SPE are a little off from each other, the SPE's alignment has to keep slipping back or moving ahead in time through positive or negative stuffing. The N and P bits are used to replay those pointer adjustment events so the transport jitter gets eliminated β¨
During a negative pointer adjustment event, the H3 byte from the SONET/SDH stream gets included in the CEM packet payload, right in order with the rest of the SPE. During a positive pointer adjustment event, the stuff byte does not get included in the CEM packet payload π¦
The pointer adjustment event MUST be sent in three consecutive packets by the packetizer. The de-packetizer MUST play the pointer adjustment event out as soon as the first of those three packets with the N/P bits set arrives π«Ά
The CEM de-packetizer MUST use the CEM sequence numbers to make sure SONET/SDH pointer adjustment events don't get played any more often than once per every three CEM packets sent by the remote CEM packetizer π₯
Here's the thing: [T1.105], [G.707], and [GR-253] say that pointer adjustment events MUST be separated by three SONET/SDH frames without a pointer adjustment event. So if you want to relay every legal pointer adjustment event, the packet size for a specific circuit MUST be no larger than (783 * 4 * N)/3, where N is the STS-Nc multiplier π
BUT (and this is a big but π), some SONET/SDH equipment lets pointer adjustments happen in back-to-back SONET/SDH frames. To cover that possibility, the packet size for a particular circuit SHOULD be no larger than (783*N)/3, where N is the STS-Nc multiplier πΈ
Since the minimum value of N is one, CEM implementations SHOULD support a minimum payload length of 783/3 or 261 bytes. Smaller payload lengths MAY be supported as an option π
7.2. Asynchronous β
If synchronous timing isn't available, other methods MAY be used to regenerate the circuit timing π
For structured CEM, the CEM packetizer SHOULD still generate the N and P bits as usual. Without external synchronization though, that information isn't enough to reliably justify the SPE within the SONET/SDH transport framing at the CEM de-packetizer π The de-packetizer MAY use an adaptive algorithm to introduce pointer adjustment events that map the CEM SPE onto the SONET/SDH transport framing. Whether or not the de-packetizer uses the N and P bits as part of the adaptive clock recovery algorithm, they MUST still be used together with the D-bit to signal AIS-P, STS SPE Unequipped, and DBA π
For unstructured CEM, the CEM de-packetizer MAY use an adaptive clock recovery technique to regenerate the SONET/SDH transport clock π§
An example adaptive clock recovery method can be found in section 3.4.2 of [VTOA] π
8. CEM LSP Signaling π¦
For maximum network scaling in MPLS applications, CEM LSP signaling MAY be done using the Label Distribution Protocol (LDP) Extended Discovery mechanism, as augmented by the Pseudo-Wire id Forward Error Correction (PWid FEC) Element defined in [RFC4447]. MPLS traffic tunnels MAY be dedicated to CEM, or shared with other MPLS-based services π The value 0x8008 is used for the PWE3 PW Type in the PWid FEC Element, which signifies that the LSP being signaled is meant to carry CEM. Also, the generic control word defined in [GR-253] is not used, because its functionality is already 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 service πΈ
Normal CEM packets are fixed in length for all of the packets of a particular emulated TDM stream. That length is signaled using the CEM Payload Bytes parameter defined in [RFC4447], or it's statically provisioned for each CEM service π
At this time, other aspects of the CEM service MUST be statically provisioned π
9. Security Considerations π¨
Okay bestie, this part is SERIOUS π The CEM encapsulation is subject to all of the general security considerations discussed in [RFC3985] and [RFC4447]. On top of that, this document only specifies encapsulations, not the protocols used to carry the encapsulated packets across the PSN. Each of those protocols may have its own set of security issues, but those issues are not affected by the encapsulations specified here. Note that the security of the transported CEM service will only be as good as the security of the PSN. This level of security may be less rigorous than what's available from a native TDM service, because of the inherent differences between circuit-switched and packet-switched public networks ππ
10. IANA Considerations π
IANA has already allocated the PWE3 PW Type value 0x0008 for this specification. No further actions are required β
11. References π
11.1. Normative References
[G.707]ITU Recommendation G.707, "Network Node Interface For The Synchronous Digital Hierarchy", 1996.[GR-253]Telcordia Technologies, "Synchronous Optical Network (SONET) Transport Systems: Common Generic Criteria", GR-253-CORE, Issue 3, September 2000.[I.363.1]ITU-T, "Recommendation I.363.1, B-ISDN Adaptation Layer Specification: Type AAL1", Appendix III, August 1996.[RFC2119]Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.[RFC4023]Worster, T., Rekhter, Y., and E. Rosen, Ed., "Encapsulating MPLS in IP or Generic Routing Encapsulation (GRE)", RFC 4023, March 2005.[RFC4447]Martini, L., Ed., Rosen, E., El-Aawar, N., Smith, T., and G. Heron, "Pseudowire Setup and Maintenance Using the Label Distribution Protocol (LDP)", RFC 4447, April 2006.[RFC4842]Malis, A., Pate, P., Cohen, R., Ed., and D. Zelig, "Synchronous Optical Network/Synchronous Digital Hierarchy (SONET/SDH) Circuit Emulation over Packet (CEP)", RFC 4842, April 2007.[RFC4928]Swallow, G., Bryant, S., and L. Andersson, "Avoiding Equal Cost Multipath Treatment in MPLS Networks", BCP 128, RFC 4928, June 2007.[T1.105]American National Standards Institute, "Synchronous Optical Network (SONET) - Basic Description including Multiplex Structure, Rates and Formats," ANSI T1.105-1995.[VTOA]ATM Forum, "Circuit Emulation Service Interoperability Specification Version 2.0", af-vtoa-0078.000, January 1997.
11.2. Informative References
[RFC3985]Bryant, S., Ed., and P. Pate, Ed., "Pseudo Wire Emulation Edge-to-Edge (PWE3) Architecture", RFC 3985, March 2005.
Appendix A. SONET/SDH Rates and Formats π
For simplicity, 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 2 lists the 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 2. Standard SONET Line Rates
Each SONET frame is 125 us and consists of nine rows. An STS-N frame has nine rows and N*90 columns. Of those 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. So STS-1 and STS-3c don't 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. So 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 3 lists the SPE and payload rates supported π
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 3. 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 packet-switched networks π
Appendix B. ECC-6 Definition β¨
okay so bestie, this is the appendix where we get into the ECC-6 code, and it is such a cool little trick π§π. ECC-6 is an Error Correction Code that protects the CEM header π‘οΈ. It gives you single bit correction, and it can also detect up to two bit errors. Iconic behaviour, no cap π.
Here's the matrix. Figure 7 is the check matrix X, and it's giving grid energy πΈ:
|---------------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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|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 7. ECC-6 Check Matrix X
So here's how the ECC-6 code protects the 32-bit CEM header, step by step π:
The encoder makes the 6-bit ECC using the matrix in Figure 7. Basically, the encoder builds another 26 column by 6 row matrix and calculates even parity over the rows π . The matrix columns line up with CEM header bits 0 through 25.
Quick naming check, because it matters π. X[] is each column of the ECC-6 check matrix, and Y[] is each column of the intermediate encoder matrix. CEM[] is the CEM header, and ECC[] is the error correction code that gets stuffed into CEM header bits 26 through 31.
The encoder does this:
for i = 0 to 25 {
if CEM[i] = 0 {
Y[i] = 0;
} else {
Y[i] = X[i];
}
}
In other words, for every CEM header bit (i) that's set to one, the matrix column Y[i] gets set according to Figure 7 π¦. Then the final ECC-6 code is the even parity of each row in Y, which is written as ECC[k]=CEM[25+k]=even parity of row k π.
Now the receiver is up next, and it's lowkey the clever part π§ . It uses the same matrix X, but this time it builds an intermediate matrix Y' from all 32 bits of the CEM header, which means 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];
}
}
Then the receiver tacks the incoming ECC-6 code onto Y as column 32 (ECC[0] has to line up with row 0 π«Ά), and calculates even parity for each row. That gives one 6-bit column Z. If all 6 bits of Z are 0, there are no bit errors (or at least no detectable errors) β¨.
If Z isn't all zeros, the receiver uses Z to do a reverse lookup on X[] from Figure 7 π. If Z matches a column X[i], that's a single bit error, and the receiver SHOULD invert bit CEM[i] to fix the header π©Ή. If Z doesn't match any column of X, the CEM header has more than one bit error, and the CEM packet MUST be discarded π.
Note that the ECC-6 code gives you single-bit correction and 2-bit detection of errors within the received ECC-6 code itself. Main character energy for the code itself π π.
Acknowledgments π«Ά
The authors want to thank Mitri Halabi, Bob Colvin, and Ken Hsu, all formerly of Vivace Networks and Tellabs. They also thank Tom Johnson, Marlene Drost, Ed Hallman, and Dave Danenberg, all formerly of Litchfield Communications, for their contributions to the document πΈ.
Authors' Addresses π
Andrew G. Malis Verizon Communications 40 Sylvan Road Waltham, MA 02451 EMail: andrew.g.malis@verizon.com
Jeremy Brayley ECI Telecom Inc. Omega Corporate Center 1300 Omega Drive Pittsburgh, PA 15205 EMail: jeremy.brayley@ecitele.com
John Shirron ECI Telecom Inc. Omega Corporate Center 1300 Omega Drive Pittsburgh, PA 15205 EMail: john.shirron@ecitele.com
Luca Martini Cisco Systems, Inc. 9155 East Nichols Avenue, Suite 400 Englewood, CO, 80112 EMail: lmartini@cisco.com
Steve Vogelsang Alcatel-Lucent 600 March Road Kanata, ON K2K 2T6 Canada EMail: steve.vogelsang@alcatel-lucent.com
Full Copyright Statement βοΈ
Copyright (C) The IETF Trust (2008).
This document is subject to the rights, licenses and restrictions contained in BCP 78 and at www.rfc-editor.org/copyright.html, and except as set forth therein, the authors retain all their rights.
This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM 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.
Intellectual Property π
The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.
That's the whole RFC, bestie ππ¦ we made it through all five parts π₯Ήβ¨
π¦ where this page comes from
- ietf: rfc5143 2008-02
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms