1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 2f421436aSArvid Brodin# 3f421436aSArvid Brodin# IEC 62439-3 High-availability Seamless Redundancy 4f421436aSArvid Brodin# 5f421436aSArvid Brodin 6f421436aSArvid Brodinconfig HSR 78f4c0e01SMurali Karicheri tristate "High-availability Seamless Redundancy (HSR & PRP)" 8a7f7f624SMasahiro Yamada help 98f4c0e01SMurali Karicheri This enables IEC 62439 defined High-availability Seamless 108f4c0e01SMurali Karicheri Redundancy (HSR) and Parallel Redundancy Protocol (PRP). 11f421436aSArvid Brodin 128f4c0e01SMurali Karicheri If you say Y here, then your Linux box will be able to act as a 138f4c0e01SMurali Karicheri DANH ("Doubly attached node implementing HSR") or DANP ("Doubly 148f4c0e01SMurali Karicheri attached node implementing PRP"). For this to work, your Linux box 158f4c0e01SMurali Karicheri needs (at least) two physical Ethernet interfaces. 168f4c0e01SMurali Karicheri 178f4c0e01SMurali Karicheri For DANH, it must be connected as a node in a ring network together 188f4c0e01SMurali Karicheri with other HSR capable nodes. All Ethernet frames sent over the HSR 198f4c0e01SMurali Karicheri device will be sent in both directions on the ring (over both slave 208f4c0e01SMurali Karicheri ports), giving a redundant, instant fail-over network. Each HSR node 218f4c0e01SMurali Karicheri in the ring acts like a bridge for HSR frames, but filters frames 228f4c0e01SMurali Karicheri that have been forwarded earlier. 238f4c0e01SMurali Karicheri 248f4c0e01SMurali Karicheri For DANP, it must be connected as a node connecting to two 258f4c0e01SMurali Karicheri separate networks over the two slave interfaces. Like HSR, Ethernet 268f4c0e01SMurali Karicheri frames sent over the PRP device will be sent to both networks giving 278f4c0e01SMurali Karicheri a redundant, instant fail-over network. Unlike HSR, PRP networks 288f4c0e01SMurali Karicheri can have Singly Attached Nodes (SAN) such as PC, printer, bridges 298f4c0e01SMurali Karicheri etc and will be able to communicate with DANP nodes. 30f421436aSArvid Brodin 31f421436aSArvid Brodin This code is a "best effort" to comply with the HSR standard as 32ee1c2797SPeter Heise described in IEC 62439-3:2010 (HSRv0) and IEC 62439-3:2012 (HSRv1), 338f4c0e01SMurali Karicheri and PRP standard described in IEC 62439-4:2012 (PRP), but no 348f4c0e01SMurali Karicheri compliancy tests have been made. Use iproute2 to select the protocol 358f4c0e01SMurali Karicheri you would like to use. 36f421436aSArvid Brodin 37f421436aSArvid Brodin You need to perform any and all necessary tests yourself before 38f421436aSArvid Brodin relying on this code in a safety critical system! 39f421436aSArvid Brodin 40f421436aSArvid Brodin If unsure, say N. 41*814dbf4bSJaakko Karrenpalo 42*814dbf4bSJaakko Karrenpaloif HSR 43*814dbf4bSJaakko Karrenpalo 44*814dbf4bSJaakko Karrenpaloconfig PRP_DUP_DISCARD_KUNIT_TEST 45*814dbf4bSJaakko Karrenpalo tristate "PRP duplicate discard KUnit tests" if !KUNIT_ALL_TESTS 46*814dbf4bSJaakko Karrenpalo depends on KUNIT 47*814dbf4bSJaakko Karrenpalo default KUNIT_ALL_TESTS 48*814dbf4bSJaakko Karrenpalo help 49*814dbf4bSJaakko Karrenpalo Covers the PRP duplicate discard algorithm. 50*814dbf4bSJaakko Karrenpalo Only useful for kernel devs running KUnit test harness and are not 51*814dbf4bSJaakko Karrenpalo for inclusion into a production build. 52*814dbf4bSJaakko Karrenpalo 53*814dbf4bSJaakko Karrenpalo For more information on KUnit and unit tests in general please refer 54*814dbf4bSJaakko Karrenpalo to the KUnit documentation in Documentation/dev-tools/kunit/. 55*814dbf4bSJaakko Karrenpalo 56*814dbf4bSJaakko Karrenpalo If unsure, say N. 57*814dbf4bSJaakko Karrenpalo 58*814dbf4bSJaakko Karrenpaloendif 59