Structure-Agnostic Time Division Multiplexing (TDM) over Packet (SAToP)
Extracted elements (26)
SAToP disregards all TDM framing structure (byte, frame, multiframe alignment) because it targets applications where PEs have no need to interpret TDM data or participate in TDM signaling, enabling minimal-intervention encapsulation with reduced overhead and computational complexity.
The RTP header is placed before the SAToP Control Word for UDP encapsulation (preserving traditional RTP-over-UDP usage) but after it for MPLS and L2TPv3 encapsulations, making SAToP PWs ECMP-safe on MPLS PSN by providing PW-IP packet discrimination and facilitating seamless stitching of L2TPv3-based and MPLS-based PW segments.
The sequence number is always located at bits 16–31 of the first 32-bit word immediately following the PW demultiplexing header regardless of PSN type, multiplexing method, or RTP usage, simplifying implementations supporting multiple encapsulation types and multi-segment PWs with different encapsulation in different segments.
An octet-aligned T1 SAToP PW is not interoperable with a regular T1 SAToP PW carrying a non-aligned bit-stream; both sides MUST agree on using this mode during PW setup for the PW to be operational.
Previous versions of the specification defined a SAToP PW encapsulation over L2TPv3 ('old mode') where the RTP header, if used, precedes the SAToP control word. Existing implementations of the old mode MUST be distinguished from the current specification via the SAToP PW setup.
All SAToP implementations MUST support the following default payload sizes: E1 — 256 bytes, T1 — 192 bytes, E3 and T3 — 1024 bytes. The payload size MUST be defined during PW setup, MUST be the same for both directions of the PW, and MUST remain unchanged for the lifetime of the PW.
Control Word bits 0–3 MUST be set to zero unless they are being used to indicate the start of an Associated Channel Header (ACH) for VCCV monitoring. RSV and FRG bits (6–9) MUST be set to 0 by the PSN-bound IWF and MUST be ignored by the CE-bound IWF.
If the PSN is DiffServ-enabled with a PDB guaranteeing low jitter and low loss, SAToP SHOULD use this PDB. If IntServ-enabled, Guaranteed Service (GS) with bandwidth reservation equal to or greater than aggregate TDM traffic SHOULD be used.
SAToP PWs SHOULD be carried across traffic-engineered PSNs providing bandwidth reservation and admission control or forwarding prioritization. SAToP IP packets SHOULD NOT use the DSCP value reserved for the Default Per-Hop Behavior (PHB). If running over best-effort PSN, SAToP SHOULD monitor packet loss and shut down bi-directionally upon detecting severe congestion.
Stray packets MUST be discarded by the CE-bound IWF, and their detection MUST NOT affect mechanisms for detection of packet loss. Malformed in-order packets MUST be discarded and replacement data generated as with lost packets.
The CE-bound IWF MUST provide an indication of TDM data validity to the CE, either by transporting or generating the native AIS indication. T3 AIS cannot be detected or generated by structure-agnostic means, so a structure-aware NSP MUST be used when generating a valid T3 AIS pattern.
The following parameters MUST be agreed upon during PW setup: AC type (E1/T1/E3/T3), use of octet-aligned T1 mode, payload size (same for both directions, immutable), use of RTP header, and if RTP is used — timestamping mode, clock frequency, PT value, and SSRC value.
The LEN field (bits 10–15) MAY carry the SAToP packet length (header + payload) if less than 64 bytes, and MUST be set to zero otherwise. When LEN is 0, the preconfigured payload size is assumed; if the actual packet size is inconsistent, the packet MUST be considered malformed.
The payload of each lost SAToP packet MUST be replaced with replacement data. By default, all SAToP implementations MUST support generation of the 'all ones' pattern as the replacement data. Before a PW is set up and after a PW is torn down, the IWF MUST play out the 'all ones' pattern to its TDM attachment circuit.
The R bit MUST be cleared by the PSN-bound IWF once its local CE-bound IWF has exited the packet loss state, i.e., has received a preconfigured number of consecutive packets.
The SAToP header MUST contain the SAToP Control Word (4 bytes) and MAY also contain a fixed RTP header. If the RTP header is included, it MUST immediately follow the control word except for UDP multiplexing, where it MUST precede it.
The sequence number is a 16-bit unsigned circular value whose initial value SHOULD be random (unpredictable), and it MUST be incremented with each SAToP data packet sent in the specific PW. Generation MUST follow the rules of RFC 3550 Section 5.1 for RTP sequence numbers.
The total size of a SAToP packet for a specific PW MUST NOT exceed the path MTU between the pair of PEs terminating that PW. SAToP implementations using an IPv4 PSN MUST mark the IPv4 datagrams they generate as Don't Fragment.
When RTP is used, the P, X, CC, and M fields of the fixed RTP header MUST be set to zero. The RTP sequence number MUST be the same as the sequence number in the SAToP control word. The RTP timestamp clock frequency MUST be an integer multiple of 8 kHz, and all implementations MUST support the 8 kHz clock.
When the L bit is set indicating an attachment circuit fault, the CE-bound IWF MUST play out an appropriate amount of filler data regardless of payload size. Once the fault is rectified, the L bit MUST be cleared by the PSN-bound IWF.
PW type code points for the corresponding SAToP PWs (E1, T1, E3, T3) are allocated in RFC 4446 (IANA Allocations for PWE3). This document delegates IANA registry allocation to that companion specification.
SAToP relies on PSN mechanisms for encryption, integrity, and authentication; it does not provide its own security. SRTP is NOT RECOMMENDED as a substitute for PW layer security. Random initialization of sequence numbers in both the control word and optional RTP header makes known-plaintext attacks on encrypted SAToP PWs more difficult. Misconnection detection via SSRC increases resilience to misconfiguration and some DoS attacks.
The CE-bound SAToP IWF has three states: Intermediate (enters after PW setup, plays 'all ones'), Normal Operation (enters when preconfigured TDM data amount received in consecutive packets), and Packet Loss (enters when preconfigured consecutive packets are lost or intermediate timer expires). Returns to Normal from Packet Loss after receiving a preconfigured number of consecutive valid packets.
The basic SAToP packet consists of PSN and PW demultiplexing layer headers, followed by the SAToP Encapsulation Header (Control Word and optional RTP header), followed by TDM data payload. For UDP PSN the optional RTP header precedes the Control Word; for L2TPv3 and MPLS PSN it follows the Control Word.
The octet-aligned T1 payload consists of 25-byte subframes, each carrying 193 bits of TDM data followed by 7 padding bits. A default payload of 200 bytes (eight 25-byte subframes) represents exactly 1 millisecond of TDM data.
The SAToP Control Word is a 32-bit field structured as: bits 0–3 (set to zero unless ACH), L bit (attachment circuit fault), R bit (packet loss state), RSV and FRG (bits 6–9, reserved/fragmentation), LEN field (bits 10–15, payload length if < 64 bytes or zero), and 16-bit Sequence Number (bits 16–31).