This patch series adds support for doubly-attached clocks as described in IEC 62439-3:2016 Appendix A. It is used for clocks with redundant network connection via HSR or PRP. The specification also defines additional profile ids for single- and doubly-attached clocks.
Both interfaces of a redundant connection need to be handled individually, although they are connected to the same grandmaster. The synchronized port in SLAVE state is then backed-up by the redundant port, which remains in PASSIVE state, unless the former port enters FAULTY state. The PASSIVE redundant port can then step in immediately. This improves the PTP availability in high-assurance networks, e.g. for power automation and industrial networks. In order to use the new doubly-attached clock feature, the `dataset_comparison` configuration option has to be set to `iec62439-3` and a redundancy pair needs to be defined by adding `paired_interface` option with the respective other interface to the configuration. The patch series also adds a default configuration for clocks according to the Power Utility Profile as defined in IEC 61850-9-3:2016, relying on the doubly-attached clock feature. See also https://en.wikipedia.org/wiki/IEC/IEEE_61850-9-3 for a brief introduction. Signed-off-by: Stephan Wurm <stephan.w...@a-eberle.de> --- Changes in v2: - port.h: Removed unrelated whitespace changes - port.c: Always translate internal port state PS_PASSIVE_SLAVE to PS_PASSIVE in management tlv - pmc.c: Restored original interpretation of port state - ptp4l.c: Improved variable naming - ptp4l.8: Fixed naming of configuration parameter - configs: Split into server and client-only use cases --- Stephan Wurm (6): Add doubly attached clock support port: Add extra handling for FAULTY port Add profile identification according to IEC 62439-3:2016 standard ptp4l: Add doubly attached clock support ptp4l: Document DAC configuration options Add 61850-9-3 profile default configurations bmc.c | 10 +++++ bmc.h | 1 + clock.c | 4 ++ config.c | 2 + configs/61850-9-3-client.cfg | 26 +++++++++++ configs/61850-9-3-server.cfg | 26 +++++++++++ e2e_tc.c | 1 + fsm.c | 71 ++++++++++++++++++++++++++++++ fsm.h | 2 + p2p_tc.c | 2 + port.c | 100 +++++++++++++++++++++++++++++++++++++++---- port.h | 17 ++++++++ port_private.h | 4 ++ port_signaling.c | 1 + ptp4l.8 | 10 ++++- ptp4l.c | 12 +++++- tc.c | 2 + unicast_service.c | 1 + util.c | 4 +- 19 files changed, 283 insertions(+), 13 deletions(-) --- base-commit: aa60db270be12e7144e7b0cef2f5dde4213b7057 change-id: 20230317-iec62439-3-251804d04825 Best regards, -- Stephan Wurm <stephan.w...@a-eberle.de> _______________________________________________ Linuxptp-devel mailing list Linuxptp-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxptp-devel