^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) # IEC 62439-3 High-availability Seamless Redundancy
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) config HSR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) tristate "High-availability Seamless Redundancy (HSR & PRP)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) This enables IEC 62439 defined High-availability Seamless
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) Redundancy (HSR) and Parallel Redundancy Protocol (PRP).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) If you say Y here, then your Linux box will be able to act as a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) DANH ("Doubly attached node implementing HSR") or DANP ("Doubly
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) attached node implementing PRP"). For this to work, your Linux box
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) needs (at least) two physical Ethernet interfaces.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) For DANH, it must be connected as a node in a ring network together
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) with other HSR capable nodes. All Ethernet frames sent over the HSR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) device will be sent in both directions on the ring (over both slave
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) ports), giving a redundant, instant fail-over network. Each HSR node
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) in the ring acts like a bridge for HSR frames, but filters frames
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) that have been forwarded earlier.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) For DANP, it must be connected as a node connecting to two
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) separate networks over the two slave interfaces. Like HSR, Ethernet
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) frames sent over the PRP device will be sent to both networks giving
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) a redundant, instant fail-over network. Unlike HSR, PRP networks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) can have Singly Attached Nodes (SAN) such as PC, printer, bridges
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) etc and will be able to communicate with DANP nodes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) This code is a "best effort" to comply with the HSR standard as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) described in IEC 62439-3:2010 (HSRv0) and IEC 62439-3:2012 (HSRv1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) and PRP standard described in IEC 62439-4:2012 (PRP), but no
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) compliancy tests have been made. Use iproute2 to select the protocol
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) you would like to use.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) You need to perform any and all necessary tests yourself before
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) relying on this code in a safety critical system!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) If unsure, say N.