Commit c630c0e5 authored by Maciej Lipinski's avatar Maciej Lipinski

WR changes for PTPv3: described options

parent 9d5905be
......@@ -3,40 +3,49 @@
\subsection{General}
Stuff used by all the High Accuracy Options.
\subsubsection{High Accuracy TLV definitaion}
The High Accuracy options shall use Signaling Messages carrying TLVs defined in this
clause. The following different messages are exchanged:
\begin{itemize}
\begin{itemize*}
\item L1\_SYNC\_SLAVE\_PRESENT
\item L1\_SYNC\_LOCK
\item L1\_SYNC\_LOCKED
\item CALIBRATE
\item CALIBRATE\_REQ
\item CALIBRATE\_RSP
\item CALIBRATED
\item HIGH\_ACCURACY\_LINK\_ON
\end{itemize}
\end{itemize*}
The High Accuracy options shall be performed only on direct paths (i.e. two clocks connected
by direct link). In order to ensure direct communication (avoid communication over devices
not supporting PTP and/or High Accuracy options), the Signaling Messages defined in this
clause shall be sent using the multicast address from the reserved (non-forwardable)
address space.
\subsection{L1 Link Syntonization}
\subsection{L1 Syntonization}
This option applies to clocks (PTP devices, i.e. OC, BC, TC) capable of transfering frequency
over the physical layer (e.g. SyncE \cite{SyncE}).
over the physical layer (e.g. SyncE \cite{SynchE}).
\subsubsection{Frequency SLAVE}
A port of a frequency-transfer-enabled device that is recommended to enter SLAVE state
(recommended state is BMC\_SLAVE) shall execute activities listed in this clause if the
following conditions are fulfilled:
\begin{itemize}
\begin{itemize*}
\item the link partner is also frequency-transfer-enabled
\item the frequency-distribution hierarchy in the network is set to follow PTP hierarchy
\end{itemize}
\end{itemize*}
The port shall enter UNCALIBRATED state of PTP State Machine and send the
The port shall enter UNCALIBRATED state of PTP State Machine and send the \\
L1\_SYNC\_SLAVE\_PRESENT Singaling Message to the path-partner. The port shall then wait
for a limited time (timeout) for the L1\_SYNC\_LOCK Singaling Message. Once received,
the hardware (i.e.: PLL) shall be requested to lock to the ingres frequency. The interface to
the hardware shall be defined in this clause. Once it is indicated that the device is
frequency-locked, the L1\_SYNC\_LOCKED shall be sent to the path-partner.
for a limited time (\textit{timeout}, clause~\ref{chap:timeout}) for reception of a L1\_SYNC\_LOCK
Singaling Message. Once received, the hardware (i.e.: PLL) shall be requested to lock to the
ingres frequency using \textit{L1 interface} (clause~\ref{chap:l1Interface}). Once it is
indicated that the device is frequency-locked, the L1\_SYNC\_LOCKED shall be sent to the
path-partner.
\subsubsection{Frequency MASTER}
......@@ -45,21 +54,160 @@ L1\_SYNC\_SLAVE\_PRESENT Signaling Messages. Once such a message is received, th
shall perform all the necessary steps to prepare frequency sending to the path-partner
(e.g.: do nothing). Once ready, the port sends L1\_SYNC\_LOCK Signaling Message to the
path-partner and waits for the L1\_SYNC\_LOCKED Signaling Message for a limited time
(timeout) which is indicated in the L1\_SYNC\_SLAVE\_PRESENT Signaling Message. Once the
L1\_SYNC\_LOCKED Signaling Message has been received, the port assumes that the
path-partner is frequency-locked.
(\textit{timeout}, clause~\ref{chap:timeout}) which is indicated in the
L1\_SYNC\_SLAVE\_PRESENT Signaling Message. Once the L1\_SYNC\_LOCKED Signaling Message has
been received, the port assumes that the path-partner is frequency-locked.
\subsubsection{Timeout}
\label{chap:timeout}
On \textit{timeout} an operation (i.e. sending Singaling Message) shall be repated a
\textit{retry} number of times. Both \textit{timeout} and \textit{retry} are determined
by the SLAVE port (configurable Data Fields) and provided to the MASTER port using
L1\_SYNC\_SLAVE\_PRESENT Signaling Message.
On timeout, an operation (i.e. sending Singaling Message) is repeated for a configurable
number of times (i.e. retry). This number is indicated by the SLAVE to the MASTER
in the L1\_SYNC\_SLAVE\_PRESENT Signaling Message.
\subsubsection{L1 Interface}
\label{chap:l1Interface}
The interface to the hardware shall be defined in this clause, i.e.:
\begin{itemize*}
\item frequency-lock request to H/W
\item frequency-lock-ready notification from H/W
\item frequency-source request to H/W
\end{itemize*}
\subsection{Rx/Tx Delays Calibration}
A port which is capable of tx/rx internal delays calibration (i.e. measurement) can
request assistance from the path-partner in calibration process. Protocol-wise, such
calibration shall be defined in this clause.
Ports implementing this option (even if do not require tx/rx calibration) shall be capable
of responding to calibration request (in SLAVE, MASTER, UNCALBRATED, PASSIVE states).
Such calibration can be done:
\begin{itemize*}
\item at the beginning of establishing master-slave relation (i.e. SLAVE port being in
UNCALIBRATED state, MASTER slave being in MASTER state)
\item periodically, during normal operation (i.e. SLAVE port being in SLAVE state,
MASTER slave being in MASTER state)
\end{itemize*}
The calibration procedure cannot take more time then the announceInterval.
Obtaining the information whether the path-partner is capable of responding to the
calibration request is out of the scope of this clause.
\subsubsection{Calibration Pattern}
The calibration pattern (signal sent to perform calibration) shall be defined for each
transport mapping in appropriate Annex (Annex E-I).
\subsubsection{Calibration requestor}
A port (being in SLAVE/MASTER/UNCALIBRATED/PASSIVE state) which requires tx/rx internal
delays calibration (i.e. measurement) shall send CALIBRATE Signaling Message to its
path-partner. The CALIBRATE\_REQ Signaling Message shall contain the following information:
\begin{itemize*}
\item calibration periods: tx and rx
\item calibration retry
\item calibration pattern (???)
\end{itemize*}
The duration of calibration procedure defined by period*retry shall be less then
interval between sending consecutive Announce Messages defined by announceInterval.
The requestor shall wait during a limited time (\textit{timeout}) for the response from the
\textit{calibration responder}: the CALIBRATE\_RSP Signaling Message. The CALIBRATE\_RSP
Signaling Message is followed by directly \textit{calibration pattern} .
The calibration shall be as follows:
\begin{enumerate*}
\item Tx internal delays calibration - if required (can be done on start-up), the requestor
first sends itself a \textit{calibration pattern} in order to calibrates its
transmission internal delays. Time to perform such calibration shall be included
into the \textit{calibration period}.
\item Rx internal delays calibration - the requestor uses the \textit{calibration pattern}
sent by the responder in order to calibrate its reception internal delays.
\end{enumerate*}
Once the calibration is finished (as indicated by H/W), the requestor sends CALIBRATED
Signaling Message which includes the values of measured internal delays.
If the calibration procedure (i.e. sending \textit{calibration pattern} is not required
by the requestor to know its internal tx/rx delays but the values of delays need to be
communicated to the path-partner (e.g.: to estimate link asymmetry,
clause~\ref{chap:asymmetry}), then only CALIBRATED Signaling Message with the tx/rx
internal delays values shall be sent.
\subsubsection{Calibration responder}
A port (being in SLAVE/MASTER/UNCALIBRATED/PASSIVE state) shall handle the
CALIBRATE\_REQ Signaling Message by:
\begin{enumerate*}
\item preparing its rx/tx appropriately
\item sending CALIBRATE\_RSP Signaling Message
\item starting to send \textit{calibration pattern}
\end{enumerate*}
If \textit{tx period} received in CALIBRATE\_REQ Signaling Message is greater then 0, the
responder shall prepare for reception of \textit{calibration pattern} from the requestor
for \textit{tx period} time. After \textit{tx period}, it shall await CALIBRATED
Signaling Message until the \textit{timeout} of \textit{tx+rx period} expires. Sending
of the \textit{calibration pattern} shall be terminated on reception of CALIBRATED
Signaling Message or \textit{timeout} expiration.
On reception of CALIBRATED Signaling Message, the responder shall update its data sets
with the values of tx/rx delays conveyed in the message.
It is possible that only the CALIBRATED Signaling Message is received (no CALIBRATE\_REQ).
\subsubsection{Calibration Interface}
The interface to the hardware shall be defined in this clause, i.e.:
\begin{itemize*}
\item calibrate tx path -- request to H/W
\item calibrate rx path request to -- H/W
\item accommodate calibration pattern on rx for given time -- request to H/W
\item tx path calibrated -- notification from H/W
\item rx path calibrated -- notification from H/W
\item start sending calibration pattern -- request to H/W
\item stop sending calibration pattern -- request to H/W
\end{itemize*}
\subsection{Explicit Port State Configuration}
\subsection{Asymmetry estimation}
This option enables to manually configure the state (and effectively the role: SLAVE, MASTER
PASSIVE) of a port (in a BC or OC). The desired state value shall be stored in a configurable
field of portDS Data Set (portDS.configState). The initialization value of portDS.configState
shall be MASTER. The option shall be used if the clockClass is set to 3. This option shall
use modified State Decision Algorithm (clause~\ref{chap:modifiedSDA}) and modified State
Machine (clause~\ref{chap:modifiedFSM})
Configuration of SLAVE state for many ports of the same BC is considered misconfiguration.
\subsubsection{Modified State Decision Algorithm}
\label{chap:modifiedSDA}
The modification to State Decision Algorithm shall enable a port with clockClass=3 to
recommended the next state based on the value of portDS.configState this port and other ports
as well as the state of other ports.
\subsubsection{Modified State Machine}
\label{chap:modifiedFSM}
The modified PTP State Machine ensures that a port configured to be MASTER or PASSIVE (using
portDS.configPort) remains in the configured state regardless of the received Announce
Messages. A port configured to be SLAVE (using portDS.configPort) shall pass through the
UNCALIBRATED state (if implemented) each time it synchronizes to a new MASTER port,
i.e. when the physical link is (re-)connected or a "better" grandmaster is connected to the
communication path.
\subsection{Multi-slave boundary clock}
\label{chap:multiSlaveBC}
This option enables a BC to have many ports in a SLAVE state. One of the SLAVE ports is
a so-called Primary Slave -- provides the source of time (and frequency) for the BC. Any
other port in the SLAVE state is considered a Secondary Slave - in normal operation,
it does not provide time (and frequency) to the BC but synchronizes (and syntonizes) to the
path-partner and acts as a hot-spare in case the Primary Slave breaks.
A port becomes a Secondary Slave if it is recommended by the State Decision Algorithm
(also SDA modified per clause~\ref{chap:modifiedSDA}) to enter PASSIVE state.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment