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