xref: /linux/net/hsr/Kconfig (revision 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95)
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