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

Reply via email to