White Rabbit High-availability Seamless Redundancy (HSR)
WR-HSR is a research project to implement the High availability Seamless
Ring (HSR) protocol (IEC 62439-3 Clause 5) on White Rabbit switches and
dual-port end nodes.
The implementation is not part of the roadmap of the White Rabbit
project.
Fig1: HSR typical network topology. (non-wr)
Introduction
HSR guarantees zero-time recovery in case of single point of failure. Including the protocol in WR elements, we could extend HSR features to time and frequency distribution in WR ring networks.
WR-HSR Implementation
The implementation of WR-HSR relies on the development of a peer-to-peer mechanism instead of the current end-to-end method to measure the link delay between the master node of the ring and end-nodes. The nodes that conform the ring must implement a Transparent Clock (TC), able to forward and consume sync and follow_up messages with an HSR tag. In case an untag PTP message reaches a TC, it assumes it comes from a master clock so that it tags the frame, duplicates it, and sends it out through the two HSR ports following different paths in the ring.
To sum up, this development implies:
- the development of peer delay message exchange to measure the delay between two adjacent nodes.
- the development of peer-to-peer for sync and follow_up messages over TC
- computing the residence time of sync messages on each node to be added in the correction field of follow_up messages. This correction field, accumulated from all nodes the frame passes by, together with the link delay measured, will be used by the end node to get synchronized with the master.
- each PTP message includes a HSR tag, used to drop duplicated messages from the network and check possible errors in transmission.
- PTP is computed per port, applying a Best Master Clock algorithm on each.
- in case of node failure, a switchover to the other path must be performed to keep sinchronization to the master node active.
Peer-to-Peer Delay Measurement
Fig2: Link delay measurement using peer delay mechanisim
Fig3: Peer Delay message exchange diagram
Fig4: Peer-to-Peer Sync/Follow_up message exchange
Fig5: Peer-to-Peer Delay Measurement Flow Diagram
HSR Frame
preamble | destination | source | HSR Ethertype | PathID | LSDU size | Sequence Number | Original Ethertype | payload | CRC |
HSR tag lengh is 6 bytes and is composed of:
- HSR Ethertype: 0x892F
- HSR Path ID: Identifies the path in which a frame was originally injected.
- LSDU size: Payload + HSR tag
- HSR Sequence Number: Sequence number of injected frame
Project information
- Official production documentation: EDMS EDA-02408
- Software
- Frequently Asked Questions
- Users
Contacts
Project
- José Luis Gutiérrez - University of Granada - General questions about the project.
- Javier Díaz - University of Granada - General questions about the project.
Project Status
Date | Event |
01-07-2014 | Start of brainstorming to increase reliability in WR networks. |
01-10-2014 | HSR as first candidate for adding reliability in WR networks. |
12-10-2014 | Starting to study of the HSR protocol and how to implement it for WR |
08-04-2015 | Starting implementation on the WRS |
17-04-2015 | Problem TBD: what about WR syntonization using pure TC? |
Possible solution: fake TC = BC + forwarding sync/follow_up. Problem: switchover will not be 0 time recover | |
20-04-2015 | Porting César's PeerDelay implementation to current version of PPSi |
27-04-2015 | HSR: Adding HSR tag to PTP frames on PPSi |
06-05-2015 | P2P: Starting "TC" implementation (forwarding) |
18-05-2015 | P2P: Residence time for follow_up messages in 2-step implementation |
8 April 2015