Network requirements for ST 2022-7¶
Important
Beta version 2.1. What is described here exists only in beta version 2.1: it is installed from the beta repository and only with a licence; the stable version 2.0.2 and the demo edition do not have it. The beta version comes without warranty, and support is best effort (Beta testing programme).
SMPTE ST 2022-7 is seamless protection switching: the same RTP stream reaches the receiver over two paths, and the receiver merges them into one by the sequence numbers of the RTP packets. A packet lost on one path is taken from the other; there is no switch, and the loss is not visible at the receiver’s output. The protection is exactly as reliable as the paths are independent: anything the two paths share remains a single point of failure.
In Perfect Streamer the second path is set up on inputs and outputs of the RTP type (RTP):
the input receives the second path —
path2-addressandpath2-port, the interfacepath2-bind-if, the SSM sourcepath2-ssm-addressand the wait windowpath-skew-ms;the output sends the same packets over the second path —
path2-addressandpath2-port, the interfacepath2-mcast-if.
Both paths must carry one and the same stream: the same SSRC and the same packet numbering. If the paths differ, they are not merged — only the first path is used, and the node raises an alert with code 76 (input-paths-differ, List of alerts). Pro-MPEG inputs and outputs handle the second path the same way as RTP; the second path’s FEC goes to its own FEC ports, and Pro-MPEG multiplexing cannot be combined with the second path (Pro-MPEG).
Two independent paths¶
The main requirement is two separate networks, say “red” and “blue”, each with its own switches, links and power. A switch, a backbone link or a power supply shared by both paths is a single point of failure, and when it fails both paths are lost at once.
Two network cards on the node are advisable, one for each network. The second path is assigned to an input with the path2-bind-if field and to an output with the path2-mcast-if field (an interface name or its IPv4 address; an empty value means the system’s default interface). If the output’s second path could not be opened, for example because path2-mcast-if names an address this server does not have, the output keeps sending over the first path, and the second path’s error is shown in the output statistics.
Multicast¶
If the paths are multicast groups, both networks must pass multicast on their own:
IGMP snooping is enabled on the switches;
an IGMP querier runs in each of the two networks. Without one, snooping stops forwarding the group after a few minutes, and the path disappears for no visible reason;
for reception with a given source (SSM,
path2-ssm-addressfor the second path) the network must support IGMPv3;if the paths go through routers, PIM is configured in both networks, and the packets’ TTL is large enough to cross all hops.
Bandwidth¶
Each path carries the whole stream, so the traffic doubles: plan the full bitrate of the stream for each network. If FEC is added to the stream, its share also goes over each path (Planning bandwidth, latency and ports).
Delay difference between the paths¶
The delays of the two paths differ, and the difference must fit into the receiver’s window path-skew-ms: from 10 to 1000 ms, 450 ms by default — class C of the ST 2022-7 standard (streams below 270 Mbit/s). It is the longest time the receiver waits for a missing packet from the lagging path. The wait is counted from the moment the gap is detected, that is, when the leading path has already delivered the following packets. A loss of several packets on the leading path is recovered as long as the lagging path is behind by no more than path-skew-ms plus the duration of those packets.
In real networks the paths usually differ by units or tens of milliseconds. If the path delays are known and close, path-skew-ms can be reduced: the receiver will then add less delay. The stream’s own delay on the node must cover this window.
What is not required¶
Jumbo frames. Seven TS packets in an RTP packet fit into the usual 1500-byte MTU.
PTP and clock synchronisation. The paths are aligned by the sequence numbers of the RTP packets, not by time — unlike SMPTE ST 2110.
Special ST 2022-7 features in the switches. Ordinary unicast or multicast forwarding is enough.
Recommendations¶
In a network shared with other traffic, give the streams QoS priority (DSCP); otherwise a burst of other traffic will delay or lose packets on both paths at once.
Do not run both paths through one aggregated link (LAG) or one backbone link: that is the same single point of failure as a shared switch.
For an output in a reserve group, both paths are sent by the node chosen as the group’s sender. Set
path2-mcast-ifon every member of the group: the nodes watch the sender over the second path too.