Commit be9dbd4c authored by Maciej Lipinski's avatar Maciej Lipinski

WR changes for PTPv3: update

parent 326d2b41
......@@ -2,4 +2,9 @@
\label{chap:changesToPtpv2}
\subsection{Transport Annex}
\ No newline at end of file
\subsection{Annex F}
\subsection{Calibration Pattern}
It shall be defined as RD+K28.7 code group, Appendix 36A.2 of IEEE802.3.
......@@ -5,55 +5,122 @@
Stuff used by all the High Accuracy Options.
\subsubsection{High Accuracy TLV}
\subsubsection{High Accuracy Announce Suffix}
A clock (i.e. BC or OC) on which one or more High Accuracy Options are enabled,
shall append Announce Messages with the suffix (TLV) defined in this clause. Such
clock shall also handle properly received Announce Messages with appended suffix.
This enables mutual recognition of
High Accuracy option capabilities. The suffix is defined as a TLV recognized by tlvType
of HIGH\_ACCURACY\_OPTION. The suffix conveys the following information:
\begin{itemize*}
\item Flags indicating active High Accuracy options (bit per option):
\textit{enabledOptions}
\item A profile-specific value (defined by the High Accuracy Profile):
\textit{profileFlags}
\item A value defined by the \textit{Layer 1 Syntonization} option:
\textit{syntonizationFlags}
\end{itemize*}
\begin{table}[ht!]
\caption{High Accuracy suffixed Announce Message.}
\centering
\begin{tabular}{| c | c | c | c | c | c | c | c | c | c | p{7cm} |}
\hline
\multicolumn{8}{|c|}{\textbf{Bits}} & \textbf{Octets} & \textbf{TLV} & \textbf{Content} \\
%\hline
\cline{0-7}
7 & 6 & 5 & 4 & 3 & 2 & 1 & 0 & & \textbf{Offset} & \\
\hline
\multicolumn{8}{|c|}{header } & 34 & 0 & section 13.3, PTP. \\ \hline
\multicolumn{8}{|c|}{body } & 30 & 34 & section 13.5, PTP. \\ \hline
\multicolumn{8}{|c|}{tlvType } & 2 & 64 & HIGH\_ACCURACY\_OPTION. \\ \hline
\multicolumn{8}{|c|}{lengthField } & 2 & 66 & 0x4. \\ \hline
\multicolumn{8}{|c|}{enabledOptions } & 1 & 68 & bits specify which options are active. \\ \hline
\multicolumn{8}{|c|}{profileFlags } & 2 & 70 & flags defined by High Accuracy profile. \\ \hline
\multicolumn{8}{|c|}{syntonizationFlags} & 1 & 72 & flags defined in clause~\ref{chap:layer1syntonization}. \\ \hline
\end{tabular}
\label{tab:wrAnnounce}
\end{table}
\subsubsection{High Accuracy Signaling Messages}
The High Accuracy options shall use Signaling Messages carrying TLVs defined in this
clause. The TLVs shall be recognized by tlvType of HIGH\_ACCURACY\_OPTION.
The following different messages are exchanged:
\begin{itemize*}
\item L1\_SYNC\_SLAVE\_PRESENT
\item L1\_SYNC\_SLAVE\_PRESENT (carries \textit{timeout} value, syntonizationFlags)
\item L1\_SYNC\_LOCK
\item L1\_SYNC\_LOCKED
\item CALIBRATE\_REQ
\item CALIBRATE\_REQ (carries tx/rx periods and pattern values)
\item CALIBRATE\_RSP
\item CALIBRATED
\item CALIBRATED (carries tx/rx internal delays values)
\item HIGH\_ACCURACY\_LINK\_ON
\end{itemize*}
The High Accuracy options shall be performed only on direct Communication 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, i.e.: 01-80-C2-00-00-0E.
(i.e. two clocks connected by direct link). In order to avoid communication over devices
not supporting PTP and/or High Accuracy options, \textcolor{red}{the Signaling Messages
defined in this clause shall be sent using the multicast address from the reserved
(non-forwardable) address space which is not relayed by bridges, e.g.: 01-80-C2-00-00-0E for
\textit{PTP over Ethernet} (see clause~\ref{chap:q:haSignalingMessageAddress}).}
\subsubsection{Timeout}
\label{chap:timeout}
On \textit{timeout}, a recently performed operation (i.e. sending Singaling Message) shall be
repated. A \textit{timeout} for the same operation shall occur maximum of \textit{retry}
number of times.
\subsection{Layer 1 Syntonization}
\label{chap:layer1syntonization}
This option applies to clocks (PTP devices, i.e. OC, BC, TC) capable of transfering frequency
over the physical layer (e.g. SyncE \cite{SynchE}).
This option applies to clocks (PTP devices, i.e. OC, BC) capable of transferring frequency
over the physical layer (e.g. SyncE \cite{SynchE} or alike). Such clocks shall set the appropriate bit
of \textit{High Accuracy Announce Suffix} to 1 and advertise their settings/capabilities
by setting appropriate bits of syntonizationFlags included in the suffix.
A port receiving Announce Message with the \textit{High Accuracy Suffix} shall verify
its frequency transfer settings/capabilities against the advertised in syntonizationFlags.
If settings/capabilities of both devices agree, they should proceed accordingly, otherwise
this option shall be disabled or FAULT states shall be entered depending on profile.
\subsubsection{syntonizationFlags}
The following bits shall reflect the L1 Syntonization settings/configuration/capabilities:
\begin{enumerate*}
\item L1 Syntonization hierarchy and 1588 hierarchy are independent
\item L1 Syntonization hierarchy agrees with 1588 hierarchy
\item L1 Syntonization hierarchy determines 1588 hierarchy
\item L1 Syntonization hierarchy and 1588 hierarchy are set externally (i.e. external
protocol or user configuration)
\item Phase-aligned frequency Loopback
\end{enumerate*}
% A port sending Announce Messages shall announce its settings/capabilities by including the
% syntonizationFlags value in the appended \textit{High Accuracy Suffix}.
\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*}
\item the Communication Path partner is also frequency-transfer-enabled (as recognized by
transportSpecific field of the Announcement Message)
\item the frequency-distribution hierarchy in the network is set to follow PTP hierarchy
(as recognized by transportSpecific field of the Announcement Message)
\end{itemize*}
\subsubsection{L1 Syntonization hierarchy and 1588 hierarchy are independent}
Such setting is informative to the protocol, no special action is taken.
\subsubsection{L1 Syntonization hierarchy agrees with 1588 hierarchy}
The port selected by the BMC to enter the SLAVE state is a \textit{frequency SLAVE}
while the port selected by the BMC to be in MASTER state is a \textit{frequency MASTER}.
For each of the different ports (i.e. frequency MASTER and SLAVE) the actions defined below
shall take place.
\paragraph{Frequency SLAVE}
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 (\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
ingress 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.
If no procedures by other options are required in the UNCALIBRATED state, the
MASTER\_CLOCK\_SELECTED event shall occure and SLAVE state shall be entered.
MASTER\_CLOCK\_SELECTED event shall occur and SLAVE state shall be entered.
\subsubsection{Frequency MASTER}
\paragraph{Frequency MASTER}
A port of a frequency-transfer-enabled device that is in the MASTER state shall recognize
L1\_SYNC\_SLAVE\_PRESENT Signaling Messages. Once such a message is received, the port
......@@ -64,25 +131,34 @@ path-partner and waits for the L1\_SYNC\_LOCKED Signaling Message for a limited
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}
\subsubsection{L1 Syntonization hierarchy determines 1588 hierarchy}
The port shall read the state of \textit{Layer 1 Interface} and configure its PTP state
appropriately using \textit{Explicit Port State Configuration} option
(clause~\ref{chap:explicitPortStateConfiguration}).
\subsubsection{L1 Syntonization hierarchy and 1588 hierarchy are set externally}
Such setting is informative to the protocol, no special action is taken. The state of
the port is set externally using \textit{Explicit Port State Configuration} option.
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.
\subsubsection{Frequency Loopback}
The frequency recovered on a \textit{frequency SLAVE} port and phase-aligned using
PTP data is sent back by the port to the \textit{frequency MASTER}.
\subsubsection{SYNCHRONIZATION\_FAULT}
Syntonization over Layer 1 provides increase in accuracy/precision of PTP-based
synchronization. It might happen that syntonization breaks (e.g. PLL looses lock) while
PTP protocol maintains normal operation. In such case, the quality of synchronization
might significantly deteriorate without means to detect such situation -- it can be
inacceptable with some applications. Therefore, a notification from H/W (i.e. PLL) shall be
might significantly deteriorate without means to detect such situation by the protocol -- it can be
unacceptable with some applications. Therefore, a notification from H/W (i.e. PLL) shall be
handled by devices implementing this clause. In particular, the H/W notification shall
trigger SYNCHRONIZATION\_FAULT (clause~9.2.6.12 of \cite{PTPv2}). Consequently, SLAVE
port enters UNCALIBRATED state in which the Layer 1 Syntonization is attempted to be
re-established.
port enters UNCALIBRATED state.
% (if L1 Syntonization hierarchy is aligned 1588 hierarchy,
% the Layer 1 Syntonization is attempted to be re-established).
\subsubsection{Layer 1 Interface}
......@@ -90,88 +166,87 @@ re-established.
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
\item frequency-lock-lost -- notification from H/W
\item L1-state-set \{MASTER or SLAVE or NONE\}-- request to H/W -- set port to be frequency SLAVE or MASTER or enable other "means" to decide
\item L1-state-get \{MASTER or SLAVE or IDLE\}-- notification from HW -- current state of the port
\item L1-state-ready -- notification from H/W -- port is in requested state (SLAVE or MASTER)
\item L1-state-lost -- notification from H/W -- port exited the requested state
\end{itemize*}
\subsection{Rx/Tx Delays Calibration}
\label{chap:DelaysCalibration}
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.
request assistance from the Communication 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).
of responding to calibration request (in SLAVE, MASTER, UNCALIBRATED, 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)
UNCALIBRATED state, MASTER port being in MASTER state)
\item periodically, during normal operation (i.e. SLAVE port being in SLAVE state,
MASTER slave being in MASTER state)
MASTER port 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. However, no response within \textit{timeout} to the
% CALIBRATE\_REQ Singaling Message can be a good indication that the path-partner
% does not implement this option (or is currently unavailable to provide calibration pattern).
Obtaining the information whether the path-partner is capable of responding to the
calibration request is out of the scope of this clause.
\subsection{Data Set fields}
\subsubsection{Data Set fields}
\begin{itemize*}
\item Reception internal delay value (portDS.rxDelay) --
\item Reception internal delay (portDS.rxDelay) --
initialized to 0, shall be updated per clause~\ref{chap:calibrationRequestor}
\item Reception internal delay value of Communication Path patner (portDS.rxParentDelay) --
\item Reception internal delay of Communication Path patner (portDS.rxParentDelay) --
initialized to 0, shall be updated per clause~\ref{chap:calibrationResponder}
\item Transmission internal delay value (portDS.rxDelay) --
\item Transmission internal delay (portDS.rxDelay) --
initialized to 0, shall be updated per clause~\ref{chap:calibrationRequestor}
\item Transmission internal delay value of Communication Path patner (portDS.rxParentDelay) --
\item Transmission internal delay of Communication Path patner (portDS.rxParentDelay) --
initialized to 0, shall be updated per clause~\ref{chap:calibrationResponder}
\end{itemize*}
\subsubsection{Calibration Pattern}
The calibration pattern (signal sent to perform calibration) shall be defined for each
The calibration pattern (signal sent to perform calibration) shall be defined for appropriate
transport mapping in appropriate Annex (Annex E-I).
\subsubsection{Calibration requestor}
\label{chap:calibrationRequestor}
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
delays calibration (i.e. measurement) shall send CALIBRATE\_REQ 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 (???)
\item \textcolor{red}{calibration pattern (see clause~\ref{chap:q:calibrationPatternDefinition})}
\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 duration of calibration procedure defined by (tx\_period+rx\_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} .
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
\item Tx internal delays calibration - if required, 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}.
transmission internal delays. Time to perform such calibration shall be specified
by the \textit{tx 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 updates its
transmission and reception internal delays (portDS.rxDelay, portDS.txDelay) and sends
CALIBRATED Signaling Message which includes the values of measured internal delays.
transmission and reception internal delays Data Set fields (portDS.rxDelay, portDS.txDelay)
and sends CALIBRATED Signaling Message which includes their values.
If the calibration procedure (i.e. sending \textit{calibration pattern} is not required
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.
clause~\ref{chap:mediumAsymmetryEstimation}), then only CALIBRATED Signaling Message with the the values of
tx/rx internal delays shall be sent.
\subsubsection{Calibration responder}
\label{chap:calibrationResponder}
......@@ -182,32 +257,39 @@ CALIBRATE\_REQ Signaling Message by:
\item preparing its rx/tx appropriately
\item sending CALIBRATE\_RSP Signaling Message
\item starting to send \textit{calibration pattern}
\item stop sending \textit{calibration pattern} on reception of CALIBRATED Signaling Message
or \textit{timeout} of \textit{tx+rx period}
\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.
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 on \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).
(portDS.rxParentDelay, portDS.txParentDelay) 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
\item calibrate tx -- request to H/W -- enables measurement of tx internal delay
\item calibrate rx -- request to H/W -- enables measurement of rx internal delay
\item accommodate calibration pattern on rx for given time -- request to H/W -- prepares
hardware for reception of non-standard input signal (e.g. \textcolor{red}{disable coma-alignment})
\item tx path calibrated -- notification from H/W -- informs that tx internal delay has been
measured and provides the measured value
\item rx path calibrated -- notification from H/W -- informs that rx internal delay has been
measured and provides the measured value
\item start sending calibration pattern -- request to H/W -- enables sending calibration pattern
\item stop sending calibration pattern -- request to H/W -- disables sending calibration pattern
\end{itemize*}
\subsection{Explicit Port State Configuration}
\label{chap:explicitPortStateConfiguration}
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
......@@ -216,13 +298,14 @@ shall be MASTER. The option shall be used if the clockClass is set to 3. This op
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.
Configuration of SLAVE state for many ports of the same BC is considered misconfiguration
unless \textit{Multi--slave Boundary Clock} option is enabled.
\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
recommend the next state based on the value of portDS.configState for this port and other ports,
as well as the state of other ports.
\subsubsection{Modified State Machine}
......@@ -233,6 +316,42 @@ portDS.configPort) remains in the configured state regardless of the received An
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.
Communication Path.
\subsection{Medium Asymmetry Estimation}
\label{chap:mediumAsymmetryEstimation}
This clause defines how the asymmetry introduced by medium can be estimated using
values provided by \textit{Rx/Tx Delays Calibration} option. Different methods
shall be defined for different media (currently defined only for Single Fiber Optic Link).
The asymmetry is related to the mean delay ($\mu$), one-way master-to-slave delay
($\eqdelay{ms}$) and one-way slave-to-master delay ($\eqdelay{sm}$) as defined in
section 7.4.2 of \cite{PTPv2}:
\begin{align}
\eqdelay{ms} = \mu + \eqasymm
\label{eq:asymm} \\
\eqdelay{sm} = \mu - \eqasymm
\end{align}
The tx/rx internal delays measured using \textit{Rx/Tx Delays Calibration} option are
expressed:
\begin{equation}
\label{eq:delta}
\Delta = \Delta_{tx_m} + \Delta_{rx_s} + \Delta_{tx_s} + \Delta_{rx_m}
\end{equation}
\subsubsection{Ethernet over a Single-mode Fiber Optical Link}
\label{chap:asymmetryEstimation}
The relation between propagation delays in the single-mode fiber at different wave-lengths
in different directions is expressed by \textit{relative delay coefficient} ($\alpha$):
\begin{equation}
\delta_{ms} = (1 + \alpha) \, \delta_{sm}
\label{eq:singlefiber}
\end{equation}
The delay asymmetry is estimated using the following expression:
\begin{equation}
\label{eq:aqasymm}
\eqasymm = \Delta_{tx_m} + \Delta_{rx_s} - \frac{\Delta - \alpha \mu + \alpha \Delta}{2 + \alpha}
\end{equation}
\ No newline at end of file
......@@ -7,15 +7,34 @@ the profile and how the \textit{High Accuracy Options} shall be combined along w
other PTP configuration to achieve sub-nanosecond accuracy of synchronization.
The delay request-response mechanism shall be the only path delay measurement mechanism for
this profile. It shall define default mapping using Annex F (networkProtocol=0003) with the
transportSpecific flag indicating usage of Layer 1 syntonization with frequency loopback.
However, using transportSpecific flag set DEFAULT is allowed if the Communication Path
partner does not implement High Accuracy Profile. This profile shall be inter-operable
this profile. It shall define default mapping using Annex F (networkProtocol=0003)
with DEFAULT transportSpecific field. The defaultDS.priority1 value shall be 64.
The profile shall use all the High Accuracy options
(5 bits set to 1). For \textit{Layer 1 Syntonization} option, the setting indicated
by the syntonizationFlags shall be set to and implement:
\begin{itemize*}
\item \textit{L1 Syntonization hierarchy agrees with 1588 hierarchy}
\item \textit{Phase-aligned frequency Loopback}.
\end{itemize*}
% It shall define default mapping using Annex F (networkProtocol=0003) with the
% transportSpecific flag indicating usage of Layer 1 syntonization with frequency loopback and
% syntonization hierarchy aligned with PTP hierarchy. The defaultDS.priority1 value shall be 64.
% Using transportSpecific flag set to DEFAULT is allowed if the Communication Path
% partner does not implement High Accuracy Profile.
This profile shall be inter-operable
with the \textit{Delay Request-Response Default PTP profile} (Annex~J.3 of \cite{PTPv2}).
By default the "High Accuracy" options shall be active. If the Communication Path
partner does not implement High Accuracy Profile, the "High Accuracy" option shall be disabled
and the port shall default to \textit{Delay Request-Response Default PTP profile}
(Annex~J.3 of \cite{PTPv2}).
on the port and the port shall default to \textit{Delay Request-Response Default PTP profile}
(Annex~J.3 of \cite{PTPv2}).
A Boundary Clock implementing \textit{High Accuracy Default Profile} that is connected to
a Boundary Clock implementing \textit{Delay Request-Response Default PTP profile} will always
be a source of time (master) for the later based on the decision of the Data Comparison
Algorithm (defaultDS.priority1 value).
\subsection{Hardware Requirements}
......@@ -33,44 +52,53 @@ The hardware which is required to suppor this profile shall
\subsection{High Accuracy Data Set fields}
\begin{itemize*}
\item High Accuracy ON flag (portDS.HighAccuracyON) -- initialized with FALSE, DYNAMIC field
\end{itemize*}
% \begin{itemize*}
% \item High Accuracy ON flag (portDS.HighAccuracyON) -- initialized with FALSE, DYNAMIC field
% \end{itemize*}
High Accuracy ON flag (portDS.HighAccuracyON) -- initialized with FALSE, DYNAMIC fields.
\subsection{Announce Message Suffix}
Clocks (i.e. TC, OC) supporting High Accuracy Profile shall append their
Announce Messages with a suffix defined in this clause. Such devices shall also handle
properly the suffix which enables mutual recognition of High Accuracy capable devices.
\subsection{High Accuracy profileFlags}
Except for enabling to recognize clocks implementing High Accuracy Profile, the suffix conveys
the following information \footnote{Information in gray is included for
backward-compatibility, it is not necessary for correct functioning of the profile }:
The following information shall be conveyed using profileFlags of the High Accuracy Suffix
to the Announce Messages:
\begin{itemize*}
% \item Magic Number
% \item Version Number (can be different for non-default High Accuracy Profiles)
% \item Message ID (ID is used over all High Accuracy options/profiles)
\item \textcolor{gray}{Explicit configuration port state (value of portDS.configState)
of the transmitting port}
\item \textcolor{gray}{Calibrated flag -- it is set to 1 if the internal fixed delays
are known and calibration is not needed}
\item \textcolor{black}{High Accuracy ON flag - it is set to 1 if the High Accuracy
\item \textcolor{red}{High Accuracy Profile index -- 0x1 for default profile}
\item High Accuracy ON flag - it is set to 1 if the High Accuracy
Communication Path is already established
% i.e.: the receiving port has already passed through UNCALIBRATED state in which it
% syntonized over Layer~1 and the value of internal delays has been exchanged. This
% flag is used mainly to enforce by the MASTER re-calibration and re-syntonization
}
\end{itemize*}
A High Accuracy Communication Path is considered established between two ports (i.e.
MASTER port and SLAVE port) implementing this profile if:
\begin{itemize*}
\item the ports are connected by direct link (no other devices on the Communiation Path)
\item the ports are syntonized over Layer 1
\item the SLAVE port has the knowledge about internal tx/rx delays (obtained/exchanged
within \textit{Rx/Tx Delays Calibration} Option, clause~\ref{chap:DelaysCalibration})
\item the SLAVE port is in the SLAVE state and the MASTER port is in the MASTER state.
\end{itemize*}
% Clocks (i.e. BC, OC) supporting \textit{High Accuracy Default Profile} shall append their
% Announce Messages with a suffix defined in this clause. Such devices shall also handle
% properly the suffix. This enables mutual recognition of High Accuracy capable devices.
% The suffix conveys the following information \footnote{Information in gray is included for
% backward-compatibility with White Rabbit extension, it is not necessary for correct
% functioning of the profile }:
% \begin{itemize*}
% % \item Magic Number
% % \item Version Number (can be different for non-default High Accuracy Profiles)
% % \item Message ID (ID is used over all High Accuracy options/profiles)
% \item \textcolor{gray}{Explicit configuration port state (value of portDS.configState)
% of the transmitting port}
% \item \textcolor{gray}{Calibrated flag -- it is set to 1 if the internal fixed delays
% are known and calibration is not needed}
% \item \textcolor{black}{High Accuracy ON flag - it is set to 1 if the High Accuracy
% Communication Path is already established
% % i.e.: the receiving port has already passed through UNCALIBRATED state in which it
% % syntonized over Layer~1 and the value of internal delays has been exchanged. This
% % flag is used mainly to enforce by the MASTER re-calibration and re-syntonization
% }
% \end{itemize*}
% A High Accuracy Communication Path is considered established between two ports (i.e.
% MASTER port and SLAVE port) implementing this profile if:
% \begin{itemize*}
% \item the ports are connected by direct link (no other devices on the Communication Path)
% \item the ports are syntonized over Layer 1
% \item the SLAVE port has the knowledge about internal tx/rx delays (obtained/exchanged
% within \textit{Rx/Tx Delays Calibration} Option, clause~\ref{chap:DelaysCalibration})
% \item the SLAVE port is in the SLAVE state and the MASTER port is in the MASTER state.
% \end{itemize*}
\subsection{The High Accuracy Communication Path}
......@@ -79,16 +107,15 @@ MASTER state by BMC (a.k.a. MASTER port) and a port recommended to be in SLAVE s
BMC (a.k.a SLAVE port) connected directly by a communication medium, i.e. SLAVE port and
MASTER port shall not be connected through any devices not implementing the High Accuracy
Profile.
The process described below (for SLAVE and MASTER port) shall be non-preemptive with
regards to PTP state machine, i.e. the state of neither of ports shall not change once
regards to PTP state machine, i.e. the state of neither of the ports shall not change once
the procedure is started until it finishes.
\subsubsection{SLAVE port}
The steps to establish High Accuracy Communication Path shall start on entering the
UNCALIBRATED state if the following conditions are fulfilled:
UNCALIBRATED state by the SLAVE port if the following conditions are fulfilled:
\begin{itemize*}
\item the port implements High Accuracy profile
\item both ports on Communication PATH implement \textit{High Accuracy Default Profile}
% \item the port enters the UNCALIBRATED state as a result of
% \begin{itemize*}
% \item recommendation by (modified) BMC to enter SLAVE state based on
......@@ -105,8 +132,8 @@ The following steps shall be performed to (re-)establish High Accuracy Communica
clause~\ref{chap:layer1syntonization}
\item the port shall await (a limited time -- \textit{timeout}) the MASTER port to
perform the \textit{Rx/Tx Delays Calibration} as described in
clause~\ref{chap:DelaysCalibration}, i.e. reception of CALIBRATE\_REQ or CALIBRATED
Signaling Message
clause~\ref{chap:DelaysCalibration}, i.e. wait for reception of CALIBRATE\_REQ
or CALIBRATED Signaling Message
\item the port shall start the \textit{Rx/Tx Delays Calibration} on reception of CALIBRATED
Signaling Message from the MASTER port, i.e.
\begin{itemize*}
......@@ -124,7 +151,7 @@ The following steps shall be performed to (re-)establish High Accuracy Communica
The steps to establish High Accuracy Communication Path shall start
if the following conditions are fulfilled:
\begin{itemize*}
\item the port implements High Accuracy profile
\item both ports on Communication Path implement \textit{High Accuracy Default Profile}
\item the port is in MASTER state
\item the port receives L1\_SYNC\_SLAVE\_PRESENT Signaling Message
\end{itemize*}
......@@ -132,12 +159,12 @@ The following steps shall be performed to establish High Accuracy Communication
\begin{enumerate*}
\item the port shall perform \textit{Layer 1 Syntonization} as described in
clause~\ref{chap:layer1syntonization}
\item the port shall start the \textit{Rx/Tx Delays Calibration} on reception of
\item the port shall start the \textit{Rx/Tx Delays Calibration} on
completing the \textit{Layer 1 Syntonization}, i.e. reception of L1\_SYNC\_LOCKED
Signaling Message from the SLAVE port
\item the port shall await (a limited time -- \textit{timeout}) the SLAVE port to
perform the \textit{Rx/Tx Delays Calibration} as described in
clause~\ref{chap:DelaysCalibration}, i.e. reception of CALIBRATE\_REQ or CALIBRATED
clause~\ref{chap:DelaysCalibration}, i.e. wait for reception of CALIBRATE\_REQ or CALIBRATED
Signaling Message
\item the port shall send HIGH\_ACCURACY\_LINK\_ON on reception of CALIBRATED
Signaling Message from the SLAVE port and update the value of portDS.HighAccuracyON
......
......@@ -10,4 +10,48 @@ other port in the SLAVE state is considered a Secondary Slave - in normal operat
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.
\ No newline at end of file
(also SDA modified per clause~\ref{chap:modifiedSDA}) to enter PASSIVE state.
\subsection{High Accuracy Signaling Message address }
\label{chap:q:haSignalingMessageAddress}
\begin{itemize*}
\item It enables HA options to work only ony direct Communication Paths, i.e. the messages
will not go through bridges/standard-PTP-clocks so we will never
L1\_LOCK, CALIBRATE or establish HA\_LINK on indirect connections.
\item Works for TC, but the L1 Syntonization is on link-by-link bases (like peer-to-peer
mechanism)
\item There is nothing against using High Accuracy Options over IP mapping, the problem is
there there is no mean to enforce direct link on the Communication Path -- setting
Time To Live to 1 (as in peer-to-peer messages) does not prevent from being relayed
by bridges (only prevents passing through routeres)
\end{itemize*}
\subsection{Phase Detection Option}
\label{chap:q:phaseDetection}
I am not sure whether it is good/possible/feasible to describe the phase detection techniques
to achieve sub-LSB timestamping precision in the standard. On the other hand, what we
measure really precisely is the course round trip. The timestamp on the SLAVE port
is in arbitrary place.... such setting would need to be somehow defined.
\subsection{L1 Syntonization related flags}
I'm not sure why AVB has different transportSpecific field value. I think it is only
in order to make it not inter-operable with "standard" PTP. If we put the information
about L1 Syntonization into transportSpecific field of Ethernet mapping (Annex F),
we will limite High Accuracy options of \textit{{Layer 1 Syntonization}} only to
this mapping. But, actually, High Accuracy options (even profile) can be used at least over
IP as well.
\subsection{Calibration Pattern definition}
\label{chap:q:calibrationPatternDefinition}
It can be defined for different media/speed/whatever, maybe some table in Annexes.
Or, it can be indicated in the CALIBRATE\_REQ:
\begin{itemize*}
\item give pattern (e.g.: 111110000) and repetition size/rate/whatever
\item indicate kind -- some reference somewhere
\item indicate character to be sent (e.g.: RD+K28.7 code group)
\end{itemize*}
\ No newline at end of file
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