162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci# 362306a36Sopenharmony_ci# IEC 62439-3 High-availability Seamless Redundancy 462306a36Sopenharmony_ci# 562306a36Sopenharmony_ci 662306a36Sopenharmony_ciconfig HSR 762306a36Sopenharmony_ci tristate "High-availability Seamless Redundancy (HSR & PRP)" 862306a36Sopenharmony_ci help 962306a36Sopenharmony_ci This enables IEC 62439 defined High-availability Seamless 1062306a36Sopenharmony_ci Redundancy (HSR) and Parallel Redundancy Protocol (PRP). 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci If you say Y here, then your Linux box will be able to act as a 1362306a36Sopenharmony_ci DANH ("Doubly attached node implementing HSR") or DANP ("Doubly 1462306a36Sopenharmony_ci attached node implementing PRP"). For this to work, your Linux box 1562306a36Sopenharmony_ci needs (at least) two physical Ethernet interfaces. 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci For DANH, it must be connected as a node in a ring network together 1862306a36Sopenharmony_ci with other HSR capable nodes. All Ethernet frames sent over the HSR 1962306a36Sopenharmony_ci device will be sent in both directions on the ring (over both slave 2062306a36Sopenharmony_ci ports), giving a redundant, instant fail-over network. Each HSR node 2162306a36Sopenharmony_ci in the ring acts like a bridge for HSR frames, but filters frames 2262306a36Sopenharmony_ci that have been forwarded earlier. 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci For DANP, it must be connected as a node connecting to two 2562306a36Sopenharmony_ci separate networks over the two slave interfaces. Like HSR, Ethernet 2662306a36Sopenharmony_ci frames sent over the PRP device will be sent to both networks giving 2762306a36Sopenharmony_ci a redundant, instant fail-over network. Unlike HSR, PRP networks 2862306a36Sopenharmony_ci can have Singly Attached Nodes (SAN) such as PC, printer, bridges 2962306a36Sopenharmony_ci etc and will be able to communicate with DANP nodes. 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci This code is a "best effort" to comply with the HSR standard as 3262306a36Sopenharmony_ci described in IEC 62439-3:2010 (HSRv0) and IEC 62439-3:2012 (HSRv1), 3362306a36Sopenharmony_ci and PRP standard described in IEC 62439-4:2012 (PRP), but no 3462306a36Sopenharmony_ci compliancy tests have been made. Use iproute2 to select the protocol 3562306a36Sopenharmony_ci you would like to use. 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci You need to perform any and all necessary tests yourself before 3862306a36Sopenharmony_ci relying on this code in a safety critical system! 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci If unsure, say N. 41