18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci# 38c2ecf20Sopenharmony_ci# IEC 62439-3 High-availability Seamless Redundancy 48c2ecf20Sopenharmony_ci# 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ciconfig HSR 78c2ecf20Sopenharmony_ci tristate "High-availability Seamless Redundancy (HSR & PRP)" 88c2ecf20Sopenharmony_ci help 98c2ecf20Sopenharmony_ci This enables IEC 62439 defined High-availability Seamless 108c2ecf20Sopenharmony_ci Redundancy (HSR) and Parallel Redundancy Protocol (PRP). 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci If you say Y here, then your Linux box will be able to act as a 138c2ecf20Sopenharmony_ci DANH ("Doubly attached node implementing HSR") or DANP ("Doubly 148c2ecf20Sopenharmony_ci attached node implementing PRP"). For this to work, your Linux box 158c2ecf20Sopenharmony_ci needs (at least) two physical Ethernet interfaces. 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci For DANH, it must be connected as a node in a ring network together 188c2ecf20Sopenharmony_ci with other HSR capable nodes. All Ethernet frames sent over the HSR 198c2ecf20Sopenharmony_ci device will be sent in both directions on the ring (over both slave 208c2ecf20Sopenharmony_ci ports), giving a redundant, instant fail-over network. Each HSR node 218c2ecf20Sopenharmony_ci in the ring acts like a bridge for HSR frames, but filters frames 228c2ecf20Sopenharmony_ci that have been forwarded earlier. 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci For DANP, it must be connected as a node connecting to two 258c2ecf20Sopenharmony_ci separate networks over the two slave interfaces. Like HSR, Ethernet 268c2ecf20Sopenharmony_ci frames sent over the PRP device will be sent to both networks giving 278c2ecf20Sopenharmony_ci a redundant, instant fail-over network. Unlike HSR, PRP networks 288c2ecf20Sopenharmony_ci can have Singly Attached Nodes (SAN) such as PC, printer, bridges 298c2ecf20Sopenharmony_ci etc and will be able to communicate with DANP nodes. 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci This code is a "best effort" to comply with the HSR standard as 328c2ecf20Sopenharmony_ci described in IEC 62439-3:2010 (HSRv0) and IEC 62439-3:2012 (HSRv1), 338c2ecf20Sopenharmony_ci and PRP standard described in IEC 62439-4:2012 (PRP), but no 348c2ecf20Sopenharmony_ci compliancy tests have been made. Use iproute2 to select the protocol 358c2ecf20Sopenharmony_ci you would like to use. 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci You need to perform any and all necessary tests yourself before 388c2ecf20Sopenharmony_ci relying on this code in a safety critical system! 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci If unsure, say N. 41