Commit 596f3d79 authored by Maciej Lipinski's avatar Maciej Lipinski

WR changes for PTPv3: almost final

parent be9dbd4c
...@@ -2,9 +2,41 @@ ...@@ -2,9 +2,41 @@
\label{chap:changesToPtpv2} \label{chap:changesToPtpv2}
\subsection{Annex F} \subsection{Annex F - Calibration Pattern}
\subsection{Calibration Pattern} Calibration pattern shall be defined as RD+K28.7 code group, Appendix 36A.2 of IEEE802.3.
It shall be defined as RD+K28.7 code group, Appendix 36A.2 of IEEE802.3. \subsection{clockAccuracy}
Accuracies beyond 25ns should be included in Table 6 of PTP \cite{PTPv2} e.g.: as indicated
in Table~\ref{tab:clockAccuracy}.
\begin{table}[ht!]
\caption{Table 6 -- clockAccuracy enumeration (extension)}
\centering
\begin{tabular}{| l | l |} \hline
\textbf{Value}(hex) & \textbf{Specification} \\ \hline
10 & The time is accurate to within 1 fs \\ \hline
11 & The time is accurate to within 2.5 fs \\ \hline
12 & The time is accurate to within 10 fs \\ \hline
13 & The time is accurate to within 25 fs \\ \hline
14 & The time is accurate to within 100 fs \\ \hline
15 & The time is accurate to within 250 fs \\ \hline
16 & The time is accurate to within 1 ps \\ \hline
17 & The time is accurate to within 2.5 ps \\ \hline
18 & The time is accurate to within 10 ps \\ \hline
19 & The time is accurate to within 25 ps \\ \hline
1A & The time is accurate to within 100 ps \\ \hline
1B & The time is accurate to within 250 ps \\ \hline
1C & The time is accurate to within 1 ns \\ \hline
1D & The time is accurate to within 2.5 ns \\ \hline
1E & The time is accurate to within 10 ns \\ \hline
1F & The time is accurate to within 25 ns \\ \hline
... & ... \\ \hline
\end{tabular}
\label{tab:clockAccuracy}
\end{table}
\subsection{HIGH\_ACCURACY\_OPTION}
HIGH\_ACCURACY\_OPTION tlvType should be added to the Table 34 of PTP \cite{PTPv2}.
...@@ -15,34 +15,32 @@ This enables mutual recognition of ...@@ -15,34 +15,32 @@ This enables mutual recognition of
High Accuracy option capabilities. The suffix is defined as a TLV recognized by tlvType High Accuracy option capabilities. The suffix is defined as a TLV recognized by tlvType
of HIGH\_ACCURACY\_OPTION. The suffix conveys the following information: of HIGH\_ACCURACY\_OPTION. The suffix conveys the following information:
\begin{itemize*} \begin{itemize*}
\item Flags indicating active High Accuracy options (bit per option): \item \textbf{enabledOptions} -- flags indicating active High Accuracy options (bit per option)
\textit{enabledOptions} \item \textbf{profileFlags} -- a profile-specific value (defined by the High Accuracy Profile)
\item A profile-specific value (defined by the High Accuracy Profile): \item \textbf{syntonizationFlags} - a value defined by the \textit{Layer 1 Syntonization} option:
\textit{profileFlags}
\item A value defined by the \textit{Layer 1 Syntonization} option:
\textit{syntonizationFlags}
\end{itemize*} \end{itemize*}
\begin{table}[ht!] % \begin{table}[ht!]
\caption{High Accuracy suffixed Announce Message.} % \caption{High Accuracy suffixed Announce Message.}
\centering % \centering
\begin{tabular}{| c | c | c | c | c | c | c | c | c | c | p{7cm} |} % \begin{tabular}{| c | c | c | c | c | c | c | c | c | c | p{7cm} |}
\hline % \hline
\multicolumn{8}{|c|}{\textbf{Bits}} & \textbf{Octets} & \textbf{TLV} & \textbf{Content} \\ % \multicolumn{8}{|c|}{\textbf{Bits}} & \textbf{Octets} & \textbf{TLV} & \textbf{Content} \\
%\hline % %\hline
\cline{0-7} % \cline{0-7}
7 & 6 & 5 & 4 & 3 & 2 & 1 & 0 & & \textbf{Offset} & \\ % 7 & 6 & 5 & 4 & 3 & 2 & 1 & 0 & & \textbf{Offset} & \\
\hline % \hline
\multicolumn{8}{|c|}{header } & 34 & 0 & section 13.3, PTP. \\ \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|}{body } & 30 & 34 & section 13.5, PTP. \\ \hline
\multicolumn{8}{|c|}{tlvType } & 2 & 64 & HIGH\_ACCURACY\_OPTION. \\ \hline % \multicolumn{8}{|c|}{tlvType } & 2 & 64 & HIGH\_ACCURACY\_OPTION. \\ \hline
\multicolumn{8}{|c|}{lengthField } & 2 & 66 & 0x4. \\ \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|}{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|}{profileFlags } & 2 & 70 & flags defined by High Accuracy profile. \\ \hline
\multicolumn{8}{|c|}{syntonizationFlags} & 1 & 72 & flags defined in clause~\ref{chap:layer1syntonization}. \\ \hline % \multicolumn{8}{|c|}{syntonizationFlags} & 1 & 72 & flags defined in clause~\ref{chap:layer1syntonization}. \\ \hline
\end{tabular} % \end{tabular}
\label{tab:wrAnnounce} % \label{tab:wrAnnounce}
\end{table} % \end{table}
\subsubsection{High Accuracy Signaling Messages} \subsubsection{High Accuracy Signaling Messages}
...@@ -51,12 +49,12 @@ The High Accuracy options shall use Signaling Messages carrying TLVs defined in ...@@ -51,12 +49,12 @@ The High Accuracy options shall use Signaling Messages carrying TLVs defined in
clause. The TLVs shall be recognized by tlvType of HIGH\_ACCURACY\_OPTION. clause. The TLVs shall be recognized by tlvType of HIGH\_ACCURACY\_OPTION.
The following different messages are exchanged: The following different messages are exchanged:
\begin{itemize*} \begin{itemize*}
\item L1\_SYNC\_SLAVE\_PRESENT (carries \textit{timeout} value, syntonizationFlags) \item L1\_SYNC\_SLAVE\_PRESENT (carries \textit{timeout} and \textit{syntonizationFlags})
\item L1\_SYNC\_LOCK \item L1\_SYNC\_LOCK
\item L1\_SYNC\_LOCKED \item L1\_SYNC\_LOCKED
\item CALIBRATE\_REQ (carries tx/rx periods and pattern values) \item CALIBRATE\_REQ (carries \textit{tx/rx periods} and \textit{pattern})
\item CALIBRATE\_RSP \item CALIBRATE\_RSP
\item CALIBRATED (carries tx/rx internal delays values) \item CALIBRATED (carries \textit{tx/rx internal delays values})
\item HIGH\_ACCURACY\_LINK\_ON \item HIGH\_ACCURACY\_LINK\_ON
\end{itemize*} \end{itemize*}
The High Accuracy options shall be performed only on direct Communication Paths The High Accuracy options shall be performed only on direct Communication Paths
...@@ -71,29 +69,33 @@ defined in this clause shall be sent using the multicast address from the reserv ...@@ -71,29 +69,33 @@ defined in this clause shall be sent using the multicast address from the reserv
On \textit{timeout}, a recently performed operation (i.e. sending Singaling Message) shall be 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} repated. A \textit{timeout} for the same operation shall occur maximum of \textit{retry}
number of times. number of times. In other words, an operation shall be repeated maximum of \textit{retry}
number of times in case of \textit{timeout} expiration.
\subsection{Layer 1 Syntonization} \subsection{Layer 1 Syntonization}
\label{chap:layer1syntonization} \label{chap:layer1syntonization}
This option applies to clocks (PTP devices, i.e. OC, BC) capable of transferring frequency 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 over the physical layer (e.g. SyncE \cite{SynchE} or alike). Such clocks shall set the
of \textit{High Accuracy Announce Suffix} to 1 and advertise their settings/capabilities appropriate bit of \textit{enabledOptions} to 1 and advertise their settings/capabilities
by setting appropriate bits of syntonizationFlags included in the suffix. by setting appropriate bits of \textit{syntonizationFlags} included in the
\textit{High Accuracy Announce Suffix}.
A port receiving Announce Message with the \textit{High Accuracy Suffix} shall verify A port receiving Announce Message with the \textit{High Accuracy Suffix} shall verify
its frequency transfer settings/capabilities against the advertised in syntonizationFlags. its frequency transfer settings/capabilities against the advertised in
If settings/capabilities of both devices agree, they should proceed accordingly, otherwise \textit{syntonizationFlags}.
this option shall be disabled or FAULT states shall be entered depending on profile. \textcolor{red}{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 the profile.}
\subsubsection{syntonizationFlags} \subsubsection{syntonizationFlags}
The following bits shall reflect the L1 Syntonization settings/configuration/capabilities: The following bits shall reflect the L1 Syntonization settings/configuration/capabilities:
\begin{enumerate*} \begin{enumerate*}
\item L1 Syntonization hierarchy and 1588 hierarchy are independent \item If set to 1, L1 Syntonization hierarchy and 1588 hierarchy are independent
\item L1 Syntonization hierarchy agrees with 1588 hierarchy \item If set to 1, L1 Syntonization hierarchy agrees with 1588 hierarchy
\item L1 Syntonization hierarchy determines 1588 hierarchy \item If set to 1, L1 Syntonization hierarchy determines 1588 hierarchy
\item L1 Syntonization hierarchy and 1588 hierarchy are set externally (i.e. external \item If set to 1, L1 Syntonization hierarchy and 1588 hierarchy are set externally
protocol or user configuration) % (i.e. external protocol or user configuration)
\item Phase-aligned frequency Loopback % \item \textcolor{red}{If set to 1, the phase-aligned recovered frequency is looped back to the frequency source}
\end{enumerate*} \end{enumerate*}
% A port sending Announce Messages shall announce its settings/capabilities by including the % A port sending Announce Messages shall announce its settings/capabilities by including the
% syntonizationFlags value in the appended \textit{High Accuracy Suffix}. % syntonizationFlags value in the appended \textit{High Accuracy Suffix}.
...@@ -104,17 +106,18 @@ Such setting is informative to the protocol, no special action is taken. ...@@ -104,17 +106,18 @@ Such setting is informative to the protocol, no special action is taken.
\subsubsection{L1 Syntonization hierarchy agrees with 1588 hierarchy} \subsubsection{L1 Syntonization hierarchy agrees with 1588 hierarchy}
The port selected by the BMC to enter the SLAVE state is a \textit{frequency SLAVE} 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}. 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 For each of the different ports (i.e. frequency MASTER and SLAVE) the actions defined below
shall take place. shall take place.
\paragraph{Frequency SLAVE} \paragraph{Frequency SLAVE}
The port shall enter UNCALIBRATED state of PTP State Machine and send the \\ On entering the UNCALIBRATED state of PTP State Machine, the port shall send the \\
L1\_SYNC\_SLAVE\_PRESENT Singaling Message to the path-partner. The port shall then wait 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 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 Singaling Message. Once received, the hardware (i.e.: PLL) shall be requested to lock to the
ingress frequency using \textit{L1 interface} (clause~\ref{chap:l1Interface}). Once it is ingress frequency using \textit{L1 interface} (\textit{L1-state-set(SLAVE)},
indicated that the device is frequency-locked, the L1\_SYNC\_LOCKED shall be sent to the see clause~\ref{chap:l1Interface}). Once it is indicated that the device is frequency-locked
(\textit{L1-state-get} returns SLAVE), the L1\_SYNC\_LOCKED shall be sent to the
path-partner. path-partner.
If no procedures by other options are required in the UNCALIBRATED state, the If no procedures by other options are required in the UNCALIBRATED state, the
...@@ -125,7 +128,8 @@ MASTER\_CLOCK\_SELECTED event shall occur and SLAVE state shall be entered. ...@@ -125,7 +128,8 @@ MASTER\_CLOCK\_SELECTED event shall occur and SLAVE state shall be entered.
A port of a frequency-transfer-enabled device that is in the MASTER state shall recognize 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 L1\_SYNC\_SLAVE\_PRESENT Signaling Messages. Once such a message is received, the port
shall perform all the necessary steps to prepare frequency sending to the path-partner 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 (e.g.: use \textit{L1 interface} to \textit{L1-state-set(MASTER)}).
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 path-partner and waits for the L1\_SYNC\_LOCKED Signaling Message for a limited time
(\textit{timeout}, clause~\ref{chap:timeout}) which is indicated in the (\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 L1\_SYNC\_SLAVE\_PRESENT Signaling Message. Once the L1\_SYNC\_LOCKED Signaling Message has
...@@ -142,10 +146,10 @@ appropriately using \textit{Explicit Port State Configuration} option ...@@ -142,10 +146,10 @@ appropriately using \textit{Explicit Port State Configuration} option
Such setting is informative to the protocol, no special action is taken. The state of 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. the port is set externally using \textit{Explicit Port State Configuration} option.
\subsubsection{Frequency Loopback} % \subsubsection{Frequency Loopback}
%
The frequency recovered on a \textit{frequency SLAVE} port and phase-aligned using % 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}. % PTP data is sent back by the port to the \textit{frequency MASTER}.
\subsubsection{SYNCHRONIZATION\_FAULT} \subsubsection{SYNCHRONIZATION\_FAULT}
...@@ -156,7 +160,8 @@ might significantly deteriorate without means to detect such situation by the pr ...@@ -156,7 +160,8 @@ might significantly deteriorate without means to detect such situation by the pr
unacceptable with some applications. Therefore, a notification from H/W (i.e. PLL) shall 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 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 trigger SYNCHRONIZATION\_FAULT (clause~9.2.6.12 of \cite{PTPv2}). Consequently, SLAVE
port enters UNCALIBRATED state. port enters UNCALIBRATED state and the record of foreign masters of the given port is
cleared.
% (if L1 Syntonization hierarchy is aligned 1588 hierarchy, % (if L1 Syntonization hierarchy is aligned 1588 hierarchy,
% the Layer 1 Syntonization is attempted to be re-established). % the Layer 1 Syntonization is attempted to be re-established).
...@@ -167,7 +172,7 @@ port enters UNCALIBRATED state. ...@@ -167,7 +172,7 @@ port enters UNCALIBRATED state.
The interface to the hardware shall be defined in this clause, i.e.: The interface to the hardware shall be defined in this clause, i.e.:
\begin{itemize*} \begin{itemize*}
\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-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-get \{MASTER or SLAVE or IDLE or NOT\_READY\}-- 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-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 \item L1-state-lost -- notification from H/W -- port exited the requested state
\end{itemize*} \end{itemize*}
...@@ -187,7 +192,7 @@ Such calibration can be done: ...@@ -187,7 +192,7 @@ Such calibration can be done:
\item periodically, during normal operation (i.e. SLAVE port being in SLAVE state, \item periodically, during normal operation (i.e. SLAVE port being in SLAVE state,
MASTER port being in MASTER state) MASTER port being in MASTER state)
\end{itemize*} \end{itemize*}
The calibration procedure cannot take more time then the announceInterval. The calibration procedure cannot take longer than the announceInterval.
% Obtaining the % Obtaining the
% information whether the path-partner is capable of responding to the calibration request % 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 % is out of the scope of this clause. However, no response within \textit{timeout} to the
...@@ -201,9 +206,9 @@ The calibration procedure cannot take more time then the announceInterval. ...@@ -201,9 +206,9 @@ The calibration procedure cannot take more time then the announceInterval.
initialized to 0, shall be updated per clause~\ref{chap:calibrationRequestor} initialized to 0, shall be updated per clause~\ref{chap:calibrationRequestor}
\item Reception internal delay 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} initialized to 0, shall be updated per clause~\ref{chap:calibrationResponder}
\item Transmission internal delay (portDS.rxDelay) -- \item Transmission internal delay (portDS.txDelay) --
initialized to 0, shall be updated per clause~\ref{chap:calibrationRequestor} initialized to 0, shall be updated per clause~\ref{chap:calibrationRequestor}
\item Transmission internal delay of Communication Path patner (portDS.rxParentDelay) -- \item Transmission internal delay of Communication Path patner (portDS.txParentDelay) --
initialized to 0, shall be updated per clause~\ref{chap:calibrationResponder} initialized to 0, shall be updated per clause~\ref{chap:calibrationResponder}
\end{itemize*} \end{itemize*}
...@@ -211,12 +216,12 @@ The calibration procedure cannot take more time then the announceInterval. ...@@ -211,12 +216,12 @@ The calibration procedure cannot take more time then the announceInterval.
\subsubsection{Calibration Pattern} \subsubsection{Calibration Pattern}
The calibration pattern (signal sent to perform calibration) shall be defined for appropriate The calibration pattern (signal sent to perform calibration) shall be defined for appropriate
transport mapping in appropriate Annex (Annex E-I). transport mappings in appropriate Annexes (Annex E-I).
\subsubsection{Calibration requestor} \subsubsection{Calibration requestor}
\label{chap:calibrationRequestor} \label{chap:calibrationRequestor}
A port (being in SLAVE/MASTER/UNCALIBRATED/PASSIVE state) which requires tx/rx internal A port (being in SLAVE / MASTER / UNCALIBRATED / PASSIVE state) which requires tx/rx internal
delays calibration (i.e. measurement) shall send CALIBRATE\_REQ 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: path-partner. The CALIBRATE\_REQ Signaling Message shall contain the following information:
\begin{itemize*} \begin{itemize*}
...@@ -224,15 +229,15 @@ path-partner. The CALIBRATE\_REQ Signaling Message shall contain the following i ...@@ -224,15 +229,15 @@ path-partner. The CALIBRATE\_REQ Signaling Message shall contain the following i
\item \textcolor{red}{calibration pattern (see clause~\ref{chap:q:calibrationPatternDefinition})} \item \textcolor{red}{calibration pattern (see clause~\ref{chap:q:calibrationPatternDefinition})}
\end{itemize*} \end{itemize*}
The duration of calibration procedure defined by (tx\_period+rx\_period)*retry shall be less 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. than interval between sending consecutive Announce Messages defined by announceInterval.
The requestor shall wait during a limited time (\textit{timeout}) for the response from the 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 \textit{calibration responder}: the CALIBRATE\_RSP Signaling Message. The CALIBRATE\_RSP
Signaling Message is followed by directly \textit{calibration pattern}. Signaling Message is followed directly by \textit{calibration pattern}.
The calibration shall be as follows: The calibration shall be as follows:
\begin{enumerate*} \begin{enumerate*}
\item Tx internal delays calibration - if required, the requestor \item Tx internal delays calibration - if required, the requestor
first sends itself a \textit{calibration pattern} in order to calibrates its first sends out a \textit{calibration pattern} in order to calibrates its
transmission internal delays. Time to perform such calibration shall be specified transmission internal delays. Time to perform such calibration shall be specified
by the \textit{tx period}. by the \textit{tx period}.
\item Rx internal delays calibration - the requestor uses the \textit{calibration pattern} \item Rx internal delays calibration - the requestor uses the \textit{calibration pattern}
...@@ -240,7 +245,7 @@ The calibration shall be as follows: ...@@ -240,7 +245,7 @@ The calibration shall be as follows:
\end{enumerate*} \end{enumerate*}
Once the calibration is finished (as indicated by H/W), the requestor updates its Once the calibration is finished (as indicated by H/W), the requestor updates its
transmission and reception internal delays Data Set fields (portDS.rxDelay, portDS.txDelay) transmission and reception internal delays Data Set fields (portDS.rxDelay, portDS.txDelay)
and sends CALIBRATED Signaling Message which includes their values. and sends CALIBRATED Signaling Message which carries 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 by the requestor to know its internal tx/rx delays but the values of delays need to be
...@@ -251,16 +256,16 @@ clause~\ref{chap:mediumAsymmetryEstimation}), then only CALIBRATED Signaling Mes ...@@ -251,16 +256,16 @@ clause~\ref{chap:mediumAsymmetryEstimation}), then only CALIBRATED Signaling Mes
\subsubsection{Calibration responder} \subsubsection{Calibration responder}
\label{chap:calibrationResponder} \label{chap:calibrationResponder}
A port (being in SLAVE/MASTER/UNCALIBRATED/PASSIVE state) shall handle the A port (being in SLAVE / MASTER / UNCALIBRATED / PASSIVE state) shall handle the
CALIBRATE\_REQ Signaling Message by: CALIBRATE\_REQ Signaling Message by:
\begin{enumerate*} \begin{enumerate*}
\item preparing its rx/tx appropriately \item prepare the rx/tx path of H/W appropriately
\item sending CALIBRATE\_RSP Signaling Message \item send CALIBRATE\_RSP Signaling Message
\item starting to send \textit{calibration pattern} \item start sending \textit{calibration pattern}
\item stop sending \textit{calibration pattern} on reception of CALIBRATED Signaling Message \item stop sending \textit{calibration pattern} on reception of CALIBRATED Signaling Message
or \textit{timeout} of \textit{tx+rx period} or \textit{timeout} of \textit{tx+rx period}
\end{enumerate*} \end{enumerate*}
If \textit{tx period} received in CALIBRATE\_REQ Signaling Message is greater then 0, the If \textit{tx period} received in CALIBRATE\_REQ Signaling Message is greater than 0, the
responder shall prepare for reception of \textit{calibration pattern} from the requestor 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 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. Signaling Message until the \textit{timeout} of \textit{tx+rx period} expires.
...@@ -276,16 +281,13 @@ the message. It is possible that only the CALIBRATED Signaling Message is receiv ...@@ -276,16 +281,13 @@ the message. It is possible that only the CALIBRATED Signaling Message is receiv
\subsubsection{Calibration Interface} \subsubsection{Calibration Interface}
The interface to the hardware shall be defined in this clause, i.e.: The interface to the hardware shall be defined in this clause, i.e.:
\begin{itemize*} \begin{itemize*}
\item calibrate tx -- request to H/W -- enables measurement of tx internal delay \item calibration tx/rx enable/disable -- request to H/W -- enables/disables measurement of tx or rx internal delay
\item calibrate rx -- request to H/W -- enables measurement of rx internal delay \item calibration pattern reception enable/disable -- request to H/W -- enables/disables
\item accommodate calibration pattern on rx for given time -- request to H/W -- prepares hardware for reception of non-standard input signal, i.e. disable comma alignment
hardware for reception of non-standard input signal (e.g. \textcolor{red}{disable coma-alignment}) if \textit{Low-frequency pattern} is used (RD+K28.5, Appendix 36A of \cite{IEEE802.3})
\item tx path calibrated -- notification from H/W -- informs that tx internal delay has been \item calibration pattern transmission enable/disable -- request to H/W -- enables/disables sending calibration pattern
measured and provides the measured value \item calibration finished -- notification from H/W -- informs that internal delay has been
\item rx path calibrated -- notification from H/W -- informs that rx internal delay has been
measured and provides the measured value 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*} \end{itemize*}
\subsection{Explicit Port State Configuration} \subsection{Explicit Port State Configuration}
...@@ -298,22 +300,23 @@ shall be MASTER. The option shall be used if the clockClass is set to 3. This op ...@@ -298,22 +300,23 @@ 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 use modified State Decision Algorithm (clause~\ref{chap:modifiedSDA}) and modified State
Machine (clause~\ref{chap:modifiedFSM}) Machine (clause~\ref{chap:modifiedFSM})
Configuration of SLAVE state for many ports of the same BC is considered misconfiguration \textcolor{red}{Configuration of SLAVE state for many ports of the same BC is considered misconfiguration
unless \textit{Multi--slave Boundary Clock} option is enabled. unless \textit{Multi--slave Boundary Clock} option is enabled.}
\subsubsection{Modified State Decision Algorithm} \subsubsection{Modified State Decision Algorithm}
\label{chap:modifiedSDA} \label{chap:modifiedSDA}
The modification to State Decision Algorithm shall enable a port with clockClass=3 to The modification to State Decision Algorithm shall cause a port of \textit{clockClass=3 clock} to
recommend the next state based on the value of portDS.configState for this port and other ports, be recommended the next state based on the value of portDS.configState, e.g. as outlined in
as well as the state of other ports. \cite{JohnExpliciteState}.
\subsubsection{Modified State Machine} \subsubsection{Modified State Machine}
\label{chap:modifiedFSM} \label{chap:modifiedFSM}
The modified PTP State Machine ensures that a port configured to be MASTER or PASSIVE (using 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 portDS.configPort) remains in the configured state regardless of the received (or not received)
Messages. A port configured to be SLAVE (using portDS.configPort) shall pass through the 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, 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 i.e. when the physical link is (re-)connected or a "better" grandmaster is connected to the
Communication Path. Communication Path.
...@@ -322,8 +325,10 @@ Communication Path. ...@@ -322,8 +325,10 @@ Communication Path.
\subsection{Medium Asymmetry Estimation} \subsection{Medium Asymmetry Estimation}
\label{chap:mediumAsymmetryEstimation} \label{chap:mediumAsymmetryEstimation}
This clause defines how the asymmetry introduced by medium can be estimated using This clause defines how the asymmetry introduced by the medium (used for data transfer)
values provided by \textit{Rx/Tx Delays Calibration} option. Different methods can be estimated using
values provided by \textit{Rx/Tx Delays Calibration} option. Estimation of such
asymmtry is very medium-specific. Therefore, different methods
shall be defined for different media (currently defined only for Single Fiber Optic Link). 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 The asymmetry is related to the mean delay ($\mu$), one-way master-to-slave delay
...@@ -340,17 +345,20 @@ expressed: ...@@ -340,17 +345,20 @@ expressed:
\label{eq:delta} \label{eq:delta}
\Delta = \Delta_{tx_m} + \Delta_{rx_s} + \Delta_{tx_s} + \Delta_{rx_m} \Delta = \Delta_{tx_m} + \Delta_{rx_s} + \Delta_{tx_s} + \Delta_{rx_m}
\end{equation} \end{equation}
where $\Delta_{tx_m}$, $\Delta_{rx_s}$, $\Delta_{tx_s}$, $\Delta_{rx_m}$ are respectively
portDS.txParentDelay, portDS.rxDelay, portDS.txDelay, portDS.rxParentDelay on the SLAVE port.
\subsubsection{Ethernet over a Single-mode Fiber Optical Link} \subsubsection{Ethernet over a Single-mode Fiber Optical Link}
\label{chap:asymmetryEstimation} \label{chap:asymmetryEstimation}
The relation between propagation delays in the single-mode fiber at different wave-lengths In a single-mode fiber, the relation between propagation delays in different directions
in different directions is expressed by \textit{relative delay coefficient} ($\alpha$): (therefore at different wave-lengths) is expressed by \textit{relative delay coefficient} ($\alpha$):
\begin{equation} \begin{equation}
\delta_{ms} = (1 + \alpha) \, \delta_{sm} \delta_{ms} = (1 + \alpha) \, \delta_{sm}
\label{eq:singlefiber} \label{eq:singlefiber}
\end{equation} \end{equation}
The delay asymmetry is estimated using the following expression: The value of the coefficient is fiber-model-dependent and is assumed to be known.
Consequently, the delay asymmetry is estimated using the following expression:
\begin{equation} \begin{equation}
\label{eq:aqasymm} \label{eq:aqasymm}
\eqasymm = \Delta_{tx_m} + \Delta_{rx_s} - \frac{\Delta - \alpha \mu + \alpha \Delta}{2 + \alpha} \eqasymm = \Delta_{tx_m} + \Delta_{rx_s} - \frac{\Delta - \alpha \mu + \alpha \Delta}{2 + \alpha}
......
...@@ -4,37 +4,28 @@ ...@@ -4,37 +4,28 @@
The \textit{High Accuracy Default Profile} uses the \textit{High Accuracy Options} to enable The \textit{High Accuracy Default Profile} uses the \textit{High Accuracy Options} to enable
high quality synchronization. It defines hardware requirements for the device implementing high quality synchronization. It defines hardware requirements for the device implementing
the profile and how the \textit{High Accuracy Options} shall be combined along with the profile and how the \textit{High Accuracy Options} shall be combined along with
other PTP configuration to achieve sub-nanosecond accuracy of synchronization. other PTP configuration to achieve required performance.
\subsection{Options, Attributes, Features}
The delay request-response mechanism shall be the only path delay measurement mechanism for 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) this profile. It shall define default mapping using Annex F (networkProtocol=0003)
with DEFAULT transportSpecific field. The defaultDS.priority1 value shall be 64. with DEFAULT transportSpecific field. The defaultDS.priority1 value shall be 64.
The profile shall use all the High Accuracy options The profile shall use all the High Accuracy options.
(5 bits set to 1). For \textit{Layer 1 Syntonization} option, the setting indicated The \textit{Layer 1 Syntonization} option shall be set to (\textit{syntonizationFlags})
by the syntonizationFlags shall be set to and implement: and shall implement:
\begin{itemize*} \begin{itemize*}
\item \textit{L1 Syntonization hierarchy agrees with 1588 hierarchy} \item \textit{L1 Syntonization hierarchy agrees with 1588 hierarchy}
\item \textit{Phase-aligned frequency Loopback}. \item \textit{Phase-aligned recovered frequency is looped back to the frequency source}
\end{itemize*} \end{itemize*}
% It shall define default mapping using Annex F (networkProtocol=0003) with the % It shall define default mapping using Annex F (networkProtocol=0003) with the
% transportSpecific flag indicating usage of Layer 1 syntonization with frequency loopback and % 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. % 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 % Using transportSpecific flag set to DEFAULT is allowed if the Communication Path
% partner does not implement High Accuracy Profile. % partner does not implement High Accuracy Profile.
\textcolor{red}{This profile shall be inter-operable
This profile shall be inter-operable
with the \textit{Delay Request-Response Default PTP profile} (Annex~J.3 of \cite{PTPv2}). 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 See clause~\ref{chap:q:highAccuracyProfileInter-operability} for details.}
partner does not implement High Accuracy Profile, the "High Accuracy" option shall be disabled
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} \subsection{Hardware Requirements}
...@@ -46,8 +37,11 @@ The hardware which is required to suppor this profile shall ...@@ -46,8 +37,11 @@ The hardware which is required to suppor this profile shall
\item provide information about rx/tx latency values - with assistance of \item provide information about rx/tx latency values - with assistance of
calibration procedure or without calibration procedure or without
\item provide timestamps with a sufficient precision (i.e. $<$ 100ps) - this might be \item provide timestamps with a sufficient precision (i.e. $<$ 100ps) - this might be
achieved using phase measurement techniques for sub-LSB precision. achieved using phase measurement techniques for sub-LSB precision
\item generate (on request) calibration pattern -- defined in transport annex for a given mapping \item generate (on request) calibration pattern -- defined in transport annex for a given mapping
\item phase-align recovered frequency with that of the frequency source
(using information provided from PTP protocol) and use such frequency to encode
upstream data (loop back the frequency to the frequency source)
\end{itemize*} \end{itemize*}
\subsection{High Accuracy Data Set fields} \subsection{High Accuracy Data Set fields}
...@@ -56,12 +50,12 @@ The hardware which is required to suppor this profile shall ...@@ -56,12 +50,12 @@ The hardware which is required to suppor this profile shall
% \item High Accuracy ON flag (portDS.HighAccuracyON) -- initialized with FALSE, DYNAMIC field % \item High Accuracy ON flag (portDS.HighAccuracyON) -- initialized with FALSE, DYNAMIC field
% \end{itemize*} % \end{itemize*}
High Accuracy ON flag (portDS.HighAccuracyON) -- initialized with FALSE, DYNAMIC fields. High Accuracy ON flag (portDS.HighAccuracyON) -- dynamic field, initialized to FALSE.
\subsection{High Accuracy profileFlags} \subsection{High Accuracy profileFlags}
The following information shall be conveyed using profileFlags of the High Accuracy Suffix The following information shall be conveyed using \textit{profileFlags} of the
to the Announce Messages: \textit{High Accuracy Suffix} amended to to the Announce Messages:
\begin{itemize*} \begin{itemize*}
\item \textcolor{red}{High Accuracy Profile index -- 0x1 for default profile} \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 \item High Accuracy ON flag - it is set to 1 if the High Accuracy
...@@ -102,7 +96,8 @@ to the Announce Messages: ...@@ -102,7 +96,8 @@ to the Announce Messages:
\subsection{The High Accuracy Communication Path} \subsection{The High Accuracy Communication Path}
A High Accuracy Communication Path is established between a port recommended to be in A High Accuracy Communication Path can be established between two clocks implementing
\textit{High Accuracy Default Profile}. It is established between a port recommended to be in
MASTER state by BMC (a.k.a. MASTER port) and a port recommended to be in SLAVE state by MASTER state by BMC (a.k.a. MASTER port) and a port recommended to be in SLAVE state by
BMC (a.k.a SLAVE port) connected directly by a communication medium, i.e. SLAVE port and 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 MASTER port shall not be connected through any devices not implementing the High Accuracy
...@@ -132,15 +127,16 @@ The following steps shall be performed to (re-)establish High Accuracy Communica ...@@ -132,15 +127,16 @@ The following steps shall be performed to (re-)establish High Accuracy Communica
clause~\ref{chap:layer1syntonization} clause~\ref{chap:layer1syntonization}
\item the port shall await (a limited time -- \textit{timeout}) the MASTER port to \item the port shall await (a limited time -- \textit{timeout}) the MASTER port to
perform the \textit{Rx/Tx Delays Calibration} as described in perform the \textit{Rx/Tx Delays Calibration} as described in
clause~\ref{chap:DelaysCalibration}, i.e. wait for reception of CALIBRATE\_REQ clause~\ref{chap:DelaysCalibration}
or CALIBRATED Signaling Message % , i.e. wait for reception of CALIBRATE\_REQ and/or CALIBRATED Signaling Message
\item the port shall start the \textit{Rx/Tx Delays Calibration} on reception of CALIBRATED \item the port shall start the \textit{Rx/Tx Delays Calibration} on reception of CALIBRATED
Signaling Message from the MASTER port, i.e. Signaling Message from the MASTER port as described in clause~\ref{chap:DelaysCalibration}
\begin{itemize*} % , i.e.
\item send CALIBRATE\_REQ Signaling Message if it requires \textit{calibration % \begin{itemize*}
pattern} \textbf{or} % \item send CALIBRATE\_REQ Signaling Message if it requires \textit{calibration
\item send CALIBRATED Signaling Message if it knows its internal delays. % pattern} %\textbf{or}
\end{itemize*} % \item send CALIBRATED Signaling Message if it knows its internal delays.
% \end{itemize*}
\item the port shall await (limited time -- \textit{timeout}) the HIGH\_ACCURACY\_LINK\_ON \item the port shall await (limited time -- \textit{timeout}) the HIGH\_ACCURACY\_LINK\_ON
Signaling Message Signaling Message
\item the port shall update the value of portDS.HighAccuracyON field to TRUE -- \item the port shall update the value of portDS.HighAccuracyON field to TRUE --
...@@ -153,19 +149,20 @@ if the following conditions are fulfilled: ...@@ -153,19 +149,20 @@ if the following conditions are fulfilled:
\begin{itemize*} \begin{itemize*}
\item both ports on Communication Path implement \textit{High Accuracy Default Profile} \item both ports on Communication Path implement \textit{High Accuracy Default Profile}
\item the port is in MASTER state \item the port is in MASTER state
\item the port receives L1\_SYNC\_SLAVE\_PRESENT Signaling Message \item the port receives L1\_SYNC\_SLAVE\_PRESENT Signaling Message with properly set
\textit{syntonizationFlags}
\end{itemize*} \end{itemize*}
The following steps shall be performed to establish High Accuracy Communication Path The following steps shall be performed to establish High Accuracy Communication Path:
\begin{enumerate*} \begin{enumerate*}
\item the port shall perform \textit{Layer 1 Syntonization} as described in \item the port shall perform \textit{Layer 1 Syntonization} as described in
clause~\ref{chap:layer1syntonization} clause~\ref{chap:layer1syntonization}
\item the port shall start the \textit{Rx/Tx Delays Calibration} on \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 completing the \textit{Layer 1 Syntonization} as described in clause~\ref{chap:DelaysCalibration}
Signaling Message from the SLAVE port % , 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 \item the port shall await (a limited time -- \textit{timeout}) the SLAVE port to
perform the \textit{Rx/Tx Delays Calibration} as described in perform the \textit{Rx/Tx Delays Calibration} as described in
clause~\ref{chap:DelaysCalibration}, i.e. wait for reception of CALIBRATE\_REQ or CALIBRATED clause~\ref{chap:DelaysCalibration}
Signaling Message % , i.e. wait for reception of CALIBRATE\_REQ and/or CALIBRATED Signaling Message
\item the port shall send HIGH\_ACCURACY\_LINK\_ON on reception of CALIBRATED \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 Signaling Message from the SLAVE port and update the value of portDS.HighAccuracyON
field to TRUE -- the High Accuracy Communication Path is considered to be established field to TRUE -- the High Accuracy Communication Path is considered to be established
......
this is a document which shall describe how WR could be integrated into PTPv3. It is
based on :
- WRSPEC
- John Eidson suggestions/comments
- ISPCS2012 special session contribution
wrspec.v1.tex
- created from ISPCS2012 special session contribution and notes from reading
PTPv2 and other stuff in January 2013
- abandoned before starting to write some proper PAR
wrspec.v2.tex
- before throwing away all the text, so only the new stays in wrspec.tex
wrspec.tex
- currently worked on
\ No newline at end of file
%
% wrspec.tex
%
\def\us{\char`\_}
\documentclass[a4paper, 12pt]{article}
%\documentclass{article}
\usepackage{fullpage}
\usepackage{pgf}
\usepackage{tikz}
\usetikzlibrary{arrows,automata,shapes}
\usepackage{multirow}
\usepackage{color}
\usepackage[latin1]{inputenc}
\usepackage{verbatim}
\usepackage{amsmath}
\usepackage{times,mathptmx}
\usepackage{chngcntr}
\usepackage{mdwlist}
%%%%%5% used in Tomeks %%%%%%%
\usepackage{listings}
\usepackage{cancel}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% fig/tomeksDrawings
\usepackage{listings}
\usepackage{color}
\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}
\lstset{frame=tb,
language=Java,
aboveskip=3mm,
belowskip=3mm,
showstringspaces=false,
columns=flexible,
%basicstyle={\scriptsize},
basicstyle={\footnotesize},
numbers=none,
numberstyle=\tiny\color{gray},
keywordstyle=\color{blue},
commentstyle=\color{dkgreen},
stringstyle=\color{mauve},
breaklines=false,
breakatwhitespace=false
tabsize=3
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% creating subsubsubsection notation
% src: http://www.latex-community.org/forum/viewtopic.php?f=5&t=791
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setcounter{secnumdepth}{6}
\renewcommand\theparagraph{\Alph{paragraph}}
\makeatletter
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{0.0001pt \@plus .2ex}%
{\normalfont\normalsize\bfseries}}
\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{0.0001pt \@plus .2ex}%
{\normalfont\normalsize\bfseries}}
%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
\renewcommand{\thefootnote}{\alph{footnote}}
\counterwithin{paragraph}{subsubsection}
\counterwithin{subparagraph}{paragraph}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\eqoffset}[1]{%
{\ensuremath{%
{\text{offset}}_{#1}}%
}%
}
\newcommand{\eqdelay}[1]{{\text{delay}}_{#1}}
\newcommand{\eqasymm}{{\text{asymmetry}}}
%\renewcommand*{\refname}{\vspace*{-3em}}
\begin{document}
\title{ IEEE Standard for a Precision Clock \\
Synchronization Protocol for \\
Networked Measurement and Control Systems\\ \textit{High Accuracy changelog}}
\author{Maciej Lipi\'{n}ski\\CERN -- European Organization for Nuclear Research\\Warsaw University of Technology}
\date{January 2013}
\maketitle
% \thispagestyle{empty}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\section {Huge changes: Causes or Annex additions}
\subsection {Explicite port state configuration} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Based on John Eidson idea \cite{JohnExpliciteState}.
\subsubsection {Additional of portDS.explicitPortState}
\begin{itemize}
\item Configurable member of portDS
\item Shall be taken from enumeration: MASTER, SLAVE, PASSIVE
\item Initialization value shall be MASTER
\item Update of this value shall force state machine to enter INITIALIZATING state
\end{itemize}
\subsubsection {State machine for fixed-state configuration}
\begin{itemize}
\item Based on John Eidson \textit{Modified state machine} \cite{JohnExpliciteState} and
\textit{State machine for a slave-only implementation} (Figure 24 of \cite{PTPv2})
\item Shall be taken from enumeration: MASTER, SLAVE, PASSIVE
\item Initialization value shall be MASTER
\end{itemize}
\subsubsection {Data Set update rules}
Can be defined in a similar way as for the ANNOUNCE\_RECEIPT\_TIMEOUT\_EXPIRES case
in 9.2.6.11@83.
\subsubsection {Some issues}
\begin{itemize}
\item What if we have more ports explicitely configured to be SLAVEs ?
\begin{itemize}
\item We can actually want it to have redundant Slave connections, see
Sec~\ref{sec:multiSlaveBC}
\item If this is a misconfig... do we want to have some mechanims to resolve it ?
\end{itemize}
\item .
\end{itemize}
\subsection {Multi-slave boundary clock} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{sec:multiSlaveBC}
\subsubsection {Additional of currentDS.slavePortsPriorities}
\textbf{Explicit configuration} \\
Additional of portDS.slavePortsPriority configurable to port data set:
\begin{itemize}
\item Initialized to 0;
\item it is used in S1 (Table 16 of \cite{PTPv2}) to update currentDS.slavePortsPriorities
\end{itemize}
\textbf{Modified BMC} \\
Modification to BMC which enables for secondary Slaves. It is used to update
currentDS.slavePortsPriorities.
\subsubsection {Additional of portDS.offsetFromMaster and portDS.meanPathDelay}
Store these two values calculated for each port, if the port is a SLAVE.
\subsubsection {Update of currentDS.offsetFromMaster and currentDS.meanPathDelay}
Upate values of these fields using portDS.offsetFromMaster and portDS.meanPathDelay of the
port which has slavePortPriority = 0 in the currentDS.slavePortsPrioritie.
\subsubsection {Time source}
Take the time / update the currentDS.
\subsubsection {Selection of the best master clock algorithm (9.3.1@84->b)}
The idea is to enable selection of "Secondary Slave" as described in WRSPEC 6.4.2@22.
It could be done by :
\begin{description}
\item [Option 1:] Re-wording P2:
\textit{P2: The port is in the PASSIVE or SLAVE state because it is on a clockClass 128 or
higher node and is PASSIVE or (secondary) SLAVE to break a timing loop}
\item [Option 2:] Adding:\
\textit{S2: The port is in the SLAVE state because it is on a clockClass 128 or
higher node and is Secondary SLAVE to backup the Primary SLAVE}
\end{description}
\subsubsection {backupParentDS data set}
Th backupParentDS data set stores information about the backup Slaves (if exist) as
defined in WRSPEC 6.3.2.
\subsubsection {Multicast MAC address (F3@223}
In multi-slave BC, like when using peer-to-peer mechanism, we need to be able to communicate
with the other BCs even if (e)RSTP blocks the ports.... so we would need to be using
01-80-C2-00-00-0E address for all PTP messages.
\subsection {L1 syntonization + PTP option} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection {SYNTONIZATION\_FAULT}
The SYNTONIZATION\_FAULT event shall occure when the physical frequency lock is lost.
This event shell trigger:
\begin{itemize}
\item cleaning of ForeignMaster record for this port -- so that it is not used in BMC
\item clearing of WR stuff
\end{itemize}
\subsection {High Accuracy option} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection {MASTER\_CLOCK\_SELECTED}
The MASTER\_CLOCK\_SELECTED event is triggered as defined in WRSPEC 6.7.1@33.
\subsubsection {Update of HA-specific data sets}
Extension of Tables 13 through 16 @ 91-92 as defined in WRSPEC 6.4.3@24.
\subsection {Transport annex (modificatin to exisitng Ethernet ?} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Include L1 syntonization (maybe as proposed in ISPCS) - extend Table F.2@224.
The problem is a non-compatibility with the ethernet (default) transport layer (or it's
backward compatible as the new values are ingored ??). How to achive compatibility ??
If we detect announce message with transportSpecific field = 0, then change on WR the
transmitted value to 0 ?
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\section {Small changes: existing text modifications}
\subsection{Definitions (3.1@p4)}
Maybe include also syntonization into the definitions ?
\begin{description}
\item[option 1] Add definition of \textbf{time} which says that time is UTC/TAI and
(in some cases, i.e. High Accuracy) frequency.
\item[option 2] Add syntonization to definitions, example below.
\item[option 3] Leave at it is.
\end{description}
Example below, much more places in
this clause possible for including this change.
{\itshape
3.1.3 boundary clock: A clock that has multiple Precision Time Protocol (PTP) ports in a
domain and maintains the timescale used in the domain. It may serve as the source of time
\textbf{and/or frequency}, i.e., be a master clock, and may synchronize \textbf{and/or
syntonize} to another clock, i.e., be a slave clock.
}
\subsection{Primitive data types specifications (5.2@p12)}
Adding UInteger64 to Table 1.
\subsection{Timestamp (5.3.3@p13)}
Adding units smaller then nanoseconds to the Timestamp structure
(the scaledNanoseconds enable to carry femtoseconds, so go why not make it compatible), i.e.:
\begin{lstlisting}
struct Timestamp
{
UInteger48 secondsField;
UInteger32 nanosecondsField;
UInteger32 femtosecondsField;
};
\end{lstlisting}
\subsection{Asymmetry (6.2@p16 and 7.4.2@46)}
Maybe, this sentence needs to be updated:\\
\textit{"Asymmetry is not detectabel by PTP; however, if known, PTP corrects for asymmetry"}
\subsection{Boundary clock (6.5.3@p21)}
Figure 3 - Time, in some cases, means also frequency, if we change definition, it is ok,
otherwise, the figure could be modified, maybe.
\subsection{State (7.5.3@p52)}
Adding reference to High Accuracy State Machine as an example in the Note: \\
{{\itshape
NOTE -- This definition of stateful and stateless PTP ports does not rule out state
mechanisms other than that of 9.2 that may apply to a PTP port
\textbf{(e.g.: High Accuracy State Machine, clause x,y,z)}.
}
\subsection{clockAccuracy (7.6.2.5@p56)}
Use reserve values (00-1F) to add accuracies beyond 25ns, e.g.:\\
\begin{table}[ht!]
\caption{Table 6 -- clockAccuracy enumeration (extension)}
\centering
\begin{tabular}{| l | l |} \hline
\textbf{Value}(hex) & \textbf{Specification} \\ \hline
10 & The time is accurate to within 1 fs \\ \hline
11 & The time is accurate to within 2.5 fs \\ \hline
12 & The time is accurate to within 10 fs \\ \hline
13 & The time is accurate to within 25 fs \\ \hline
14 & The time is accurate to within 100 fs \\ \hline
15 & The time is accurate to within 250 fs \\ \hline
16 & The time is accurate to within 1 ps \\ \hline
17 & The time is accurate to within 2.5 ps \\ \hline
18 & The time is accurate to within 10 ps \\ \hline
19 & The time is accurate to within 25 ps \\ \hline
1A & The time is accurate to within 100 ps \\ \hline
1B & The time is accurate to within 250 ps \\ \hline
1C & The time is accurate to within 1 ns \\ \hline
1D & The time is accurate to within 2.5 ns \\ \hline
1E & The time is accurate to within 10 ns \\ \hline
1F & The time is accurate to within 25 ns \\ \hline
... & ... \\ \hline
\end{tabular}
\label{tab:clockAccuracy}
\end{table}
\subsection{currentDS data set member specification (8.2.2@p67-68)}
\subsubsection{Asymmetry}
\label{sec:asymmetry}
It could be useful/neat to add \textit{currentDS.asymmetry} dynamic current data set member. \\
\textbf{8.2.2.5 currentDS.asymmetry} \\
The value of currentDS.asymmetry is an implementation-specific representation of the current
value of the asymmetry between master-slave and slave-master delays as
computed/estimated/provided by the slave and defined in 7.4.2. The data type should be
TimeItnerval. The initialization value shall be eiher:
\begin{itemize}
\item The value in non-volatile read-write storage if implemented
\item Implementation-specific
\end{itemize}
\textbf{NOTE:} maybe not good... it is better to hide the implementation of asymmetry calculation...
as we have a direct formula to calculate master-slave delay...
Including asymmetry into DS will work in normal cases but for redundancy... it will not
as we need to know asymmetries for each port.
\subsubsection{Redundancy stuff (independant from High Accuracy)}
It could be useful for redundancy stuff to have currentDS.primarySlavePortNumber.\\
currentDS.{offsetFromMaster, meanPathDelay, Asymmetry} are members only for primary slave...
if we have redundant connections which we track, we need to track these parameters for each
slavePort and update currentDS with the primarySlavePort data.
\subsubsection{Transmission of a Follow\_UP message (9.5.10@104}
We violate this piece of standard:
{\itshape The Follow\_Up message should be transmitted as soon as possible after the
transmission of the associated Sync message and shall be transmitted prior to the transmission
of a subsequent Sync message to the same destination address.}
in a case where the Sync message is transmitted while the clock is being adjust -- the obtained
HW-timestamp is flagged to be incorrect. Sending an incorrect timestamp in the Follow\_UP
message can cause problems, so we don't send the invalid timestamp in the Follow\_UP but
instead we resend the Sync message and it's correct timestamp in the Follow\_UP message.
The mentioned paragraph of the standard could be modified appripriately.
\subsection {Syntonization based on other mechanisms (12.1.3@123)}
Modification of the following statement probably is required.
{\itshape In some networks, there may be physical signals accessible to clocks that can be
used to syntonize two clocks. Such signals may be used provided the syntonization of clock
A to clock B matches the synchronization hierarchy established by the best master clock
algorithm (see 9.3), which means that Sync messages proceed from clock B to clock A.
These means are out of the scope of this standard. }
\subsection {Addition of tlvType value for High Accuracy option (Table 34@134)}
HIGH ACCURACY OPTION tlvType.
\subsection {PTP profile recommendations (19.3.1.2@185)}
\textit{A PTP profile should define the node types required, permitted, or prohibited}
So, we could should say that we only support BC/OC.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\section {Doubts and analysis of future use}
\subsection {High Accuracy (a.k.a White Rabbit) for transparent clocks (6.5.4 \& 6.5.5 @ 21-29)}
The purpose of using transparent clocks is to avoid PLL cascades. Since WR uses SyncE, each
device needs to lock to the incoming reference frequency, this includes transparent clocks.
This means that the main advantage of using transparent clocks is invalid in WR. However,
this argument does not prevent one from using WR in transparent clocks, thus further analysis.
\subsubsection {Network redundancy vs. timestamp enhanced precision}
There seems to be a problem if we have redundant paths between transparent clocks with
obtaining enhanced precision of the timestamps. To enhance the precision of the timestamp,
we loop back frequency and measure phase shift at the master. However, in the boundary clock
solution, we loopback local frequency (phase aligned). In transparent clock the frequency
would need to be looped back per port on the uplinks to enable proper phase detection (since
we do not perform per-clock phase aligment). The chosen source of frequency would need to be
propagated to the downlinks. This frequency propagation in BC-based WR solution is based on
PTP-hierarchy. In transparent clocks, such hierarchy is not really resolved. PTP bases the
Announce Message propagation on the underlying topology resolution (e.g. RSTP) and the
transparent clocks do not analyse Announce messages in this regards. Additionaly, in
peer-to-peer transparent clocks the propagation delay is measured in to ways: first one
switch requets measurement, then the other link partner - it does not seem to be working
in WR.
In the BC, the Announce message is not forwarded, so the underlying topology resolution
mechanims can be safely tricked (by sending Announce messages even on blocked ports and knowing
that they will not be forwarded by BC).
With TC, we need to relay on the underlying topology resolution, so the Link Setup Mechanism
in the next section cannot be triggered on the redundant links.
% \subsubsection {Timestamp enhanced precision}
%
% In order to use WR with transparent clocks the mechanims of extending timestamping precision
% by aligning slave's clock phase with that of the master using DDMTD-based phase detection would
% have to be rethinked or the phase aligment done. The later seems more "natural" in peer-to-peer
% transparent clocks. However, such a solution makes the transparent clocks even less transparent.
% Furthermore, a redundancy in the network would mean phase-aligment per port but syntonization
% to only one source of frequency.
\subsubsection {Link setup mechanism}
It seems that the same mechanims (as for boundary/ordinary clocks) can be used for transparent
clocks -- the Announce message that traverses from GrandMaster through transparent clocks would
trigger \textit{Link Setup} on all transparent clocks and ordinary clocks at the end. But,
there is an issue described above regarding redundant networks. It would work with the
eRSTP -- but this is not a comfort.
\subsection {Peer-to-peer boundary clock}
Peer-to-peer mechanims between boudnary clocks could be interesting for redundant networks.
\subsection{\{portDS, transparentClockPortDS\}.\{meanPeerPathDelay, peerAsymmetry\}}
The definition of \textit{meanPeerPathDelay} is a bit different then \textit{meanPathDelay}.
It seems a bit misleading. If \textit{meanPeerPathDelay} is mean, we need
\textit{peerAsymmetry}, otherwise, it's \textit{oneWayPathDelay}:
\begin{itemize}
\item portDS data set member specification (8.2.5@p72)
\item transparentClockPortDS data set member specification (8.3.3@p75)
\end{itemize}
\subsection{State Machine - Table 10 - INITIALIZATING (9.2.5@77)}
The sentence \textit{If one port of a boundary clock is in the INITIALIZING state, then all
ports shall be in the INITIALIZING state.} can be problematic:
\begin{itemize}
\item In the explicite port state configuration, the state machine needs to be set to
INITIALIZATING after setting new \textit{explicite state}. Often, we want to confgure
a single port, during operation, without affecting the others.
\end{itemize}
Maybe a sentence saying : \textit{With provision to clause x.y (explicite port state
configuration)}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\section {Possible changes to original WR}
\subsection {Timestamping point}
Currently, as specified in WRSPEC (B3@49):\\
\textit{Timestamps in WR are taken when the PCS detects a Start-of-Frame Delimiter (SDF)
character in the incoming or outgoing dta stream.} \\
In PTPv2 (6.6.5@36) \\
The \textit{message timestamp point} is defined at the begining of the
Ethernet Frame Header, so 1 octet later (it seems).
In PTPv2 (7.3.4@44) \\
Unless otherwise specified in a transport-specific annex to this standard, the message
timestamp point for an event message shall be the beginning of the first symbol after the
Start of Frame (SOF) delimiter.\\
This is not a big problem, we just need to modify the implementation, i.e. by adding an
appropriate delay of 1 octect.
\subsection {Redundancy}
Storing info about secondary offsetFromMaster/meanPathDelay/Asymmetry (Sec~\ref{sec:asymmetry}):
\begin{itemize}
\item PTPv2: 8.2.2.1@67
\item WRSPEC: 6.4@22
\end{itemize}
\subsection {Synchronization moment}
According to the standard (9.5.4-9.5.5@98-99), the synchronization of clock is done
after reception of Sync (one-step) or Follow\_UP message (two-step). In WR it's rather
at different point in time (to be verified).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\section {Old stuff}
\section {Date of submission:} 23 July 2012
\section {Clauses of IEEE 1588-2008 (V2) proposed for revision:}
\begin{itemize*}
\item Changes required in clauses: 7.6.2.5, 14.1.1, Annex F.4 and Annex J
\item Changes considered useful in clauses: 3.1, 5.3.3, 7.5.3, 9.3.1 and 9.5.10
\end{itemize*}
\section {Character of the proposed revision:}
New feature. This revision proposes extending PTPv2 to enable a high accuracy of synchronization --
the sub-nanosecond level of accuracy that is beyond what is achievable by the current implementations.
\section {Reason or rational for the proposed revision}
It has been shown \cite{WRinGS}\cite{WRinISPCS2011} that PTPv2 can be implemented in such a way that
a sub-nanosecond accuracy and picoseconds jitter of synchronization can be achieved over a number of
boundary clocks and several kilometers of cables. Such an implementation benefits from additional mechanisms
(i.e. Synchronous Ethernet \cite{SynchE}, phase detection \cite{icalepcs09}) incorporated into PTPv2 in
a way that keeps interoperability with current implementations while improving greatly the performance.
The mechanisms used could be incorporated into the IEEE 1588 standard to indicate to the vendors the optional means to enhance
PTP's performance and to ensure interoperability of such high-accuracy implementations.
The presented solution is based on \cite{WRPTP}.
% , the author sees a potential for the solution's
% further simplification/alignment with PTP in the process of standardization.
\section {Proposed revision:}
%loads of text here
In this section four types of changes are proposed:
\begin{enumerate*}
\item Section~\ref{syncEandEthernet} -- addition/modification of the transport annex;
\item Section~\ref{highAccuracy} -- addition of an optional "high accuracy" clause;
\item Section~\ref{HAprofile} -- addition of the "Default High Accuracy" profile to Annex J ;
\item Section~\ref{PTPchanges} -- minor changes to the existing clauses to accommodate (1)-(3).
\end{enumerate*}
\subsection{Syntonization capability of IEEE 802.3/Ethernet (modification of Annex F.4)}
\label{syncEandEthernet}
It is proposed to extend Annex F (it is also possible to add a new annex) such that the physical syntonization
of clocks is foreseen (i.e. by using Synchronous Ethernet). Proposed changes to Table F.2 and the addition of
a new Table F.3 are presented below.
%\vspace*{-1em}
\begin{table}[ht!]
\caption{\textcolor{gray}{Table F.2 -- Ethernet transportSpecific field} (Changes to existing Table F.2)}
\centering
\begin{tabular}{| l | l | p{9cm} |} \hline
\textcolor{gray}{\textbf{Enumeration}} & \textcolor{gray}{\textbf{Value}(hex)} & \textbf{\textcolor{gray}{Specification}} \\ \hline
\textcolor{gray}{DEFAULT} & \textcolor{gray}{ 0} & \textcolor{gray}{All PTP layer 2 Ethernet transmission not covered by another enumeration value} \\ \hline
\textcolor{gray}{ETHERNET\_AVB} & \textcolor{gray}{1} & \textcolor{gray}{This value is reserved for use in connection with the standard being developed by the IEEE 802.1 AVB Task Group as P802.1AS} \\ \hline
ETHERNET\_SYNCE&2-6 & Ethernet $+$ Synchronous Ethernet, further specified in Table~F.3\\ \hline
\textcolor{gray}{Reserved} & \textcolor{gray}{ 6-F} & \textcolor{gray}{Reserved for assignment in future version s of the standard} \\ \hline
\end{tabular}
\label{tab:transportSpecific}
\end{table}
%\vspace*{-2em}
\begin{table}[ht!]
\caption{Table F.3 - Syntonization capable Ethernet transportSpecific values (new table)}
\centering
\begin{tabular}{| l | p{13cm} |} \hline
\textbf{Value}(hex) & \textbf{Specification} \\ \hline
2 or 3 & Syntonization distribution topology aligned with PTP topology
(i.e~SyncE without using Ethernet Synchronization Messaging Channel (ESMC) \cite{SynchE2}) \\ \hline
4 or 5 & Syntonization distribution topology independent from PTP topology
(i.e.~SyncE using Ethernet Synchronization Messaging Channel (ESMC) \cite{SynchE2}) \\ \hline
2 or 4 & Recovered clock loopback disabled \\ \hline
3 or 5 & Recovered clock loopback enabled \\ \hline
\end{tabular}
\label{tab:transportSpecific}
\end{table}
When recovered clock loopback is enabled, a port (acting as a slave) which recovers frequency from the incoming data stream
shall, after proper phase alignment, encode such frequency into the outgoing data stream and send it back to the source
(a port acting as a master).
\subsection{High Accuracy (optional) clause}
\label{highAccuracy}
It is proposed to add an optional clause that could be implemented by devices for high accuracy synchronization.
The actions which are defined in this clause take place while a PTP link is being established; that is in the
UNCALIBRATED state of the BMC-selected slave port and in the MASTER state of the BMC-selected master port.
This clause presents the following requirements to the hardware/implementation:
\begin{itemize*}
\item It shall feature constant rx/tx latencies during operation and inform higher layers
about these latencies values (e.g. measure rx/tx latencies using calibration pattern).
\item It shall provide timestamps with a sufficient precision (i.e. using syntonization-capable Ethernet mapping,
transportSpecific=0x3, and phase detection techniques), the fractional nanosecond part of a timestamps shall
be included in the correctionField as specified in PTPv2.
\item It shall be able to generate the calibration pattern on request
(RD+K28.7 code group, Appendix 36A.2 of IEEE802.3).
\item It shall provide an estimation of the asymmetry using parameters provided by this clause
(e.g. using Link Delay Model, tx/rx latencies and relative delay coefficient as explained in \cite{WRPTP}).
\end{itemize*}
\vspace{-0.2cm}
\subsubsection{Definition of Data Set Fields}
The implementation-specific Data Set fields are defined to store per-port clause specific data:
(1)~values of hardware characteristics (e.g.: rx/tx latencies);
(2)~configuration parameters (e.g.: whether a calibration pattern is required, calibration period/pattern);
(3)~current state of the High Accuracy State Machine (section~\ref{fsm}).
The (re-)initialization methods and values are defined.
\vspace{-0.2cm}
\subsubsection{Definition TLVs}
It is proposed to define TLVs recognized by tlvType HIGH\_ACCURACY\_OPTION
(extension to clause 14.1.1) of the format presented in Table~\ref{tab:TLVformat}. Different messages of such TLV type
are recognized by messageID as defined in Table~\ref{tab:MessageId}. These TLVs are used to
exchange clause-specific data and trigger transitions in the High Accuracy State Machine (section~\ref{fsm}).
They are carried in Signaling Messages or suffixed to an Announce message (see Table~\ref{tab:MessageId}).
\vspace*{-1.0em}
\begin{table}[h!]
\caption{HIGH\_ACCURACY\_OPTION TLV format}
\centering
\begin{tabular}{| c | c | c | c | c | c | c | c | c | c |}
\hline
\multicolumn{8}{|c|}{\textbf{Bits}} & \textbf{Octets} & \textbf{TLV} \\
%\hline
\cline{0-7}
7 & 6 & 5 & 4 & 3 & 2 & 1 & 0 & & \textbf{Offset} \\
\hline
\multicolumn{8}{|c|}{tlvType } & 2 & 0 \\ \hline
\multicolumn{8}{|c|}{lengthField } & 2 & 2 \\ \hline
\multicolumn{8}{|c|}{messageID} & 2 & 10 \\ \hline
\multicolumn{8}{|c|}{dataField} & N & 12 \\ \hline
\end{tabular}
\label{tab:TLVformat}
\end{table}
\vspace*{-2em}
\begin{table}[tbp]
\caption{Message ID values/types}
\centering
\begin{tabular}{| l | p{2.5cm} | c | c |} \hline
\textbf{Message Name} & \textbf{MessageId value (hex)} & \textbf{Sent in message type} \\ \hline
SLAVE\_PRESENT & 0x1000 & Signaling \\ \hline
LOCK & 0x1001 & Signaling \\ \hline
LOCKED & 0x1002 & Signaling \\ \hline
CALIBRATE & 0x1003 & Signaling \\ \hline
CALIBRATED & 0x1004 & Signaling \\ \hline
HIGH\_ACCURACY\_ON & 0x1005 & Signaling \\ \hline
ANN\_SUFIX & 0x2000 & Announce \\ \hline
\end{tabular}
\label{tab:MessageId}
\end{table}
\subsubsection{High Accuracy State Machine}
\label{fsm}
The High Accuracy State Machine (HASM) controls the process of establishing a high accuracy (abbreviated \textit{HA}
in the figures)
link between two ports implementing high accuracy option. The HASM shall be non-preemptive with regard
to the execution of the PTP State Machine. It enables syntonization over the physical layer,
optional measurement of tx/rx latencies and exchange of their values across the link. The HASM shall be
executed in the PTP UNCALIBRATED state on the port on which the recommended (by BMC) state is SLAVE --
called Slave -- and in the PTP MASTER state on the port on which the recommended state is MASTER -- called
Master. The HASM is depicted in Figure~\ref{fig:wrFSM} and described in Table~\ref{tab:wrFSMdesc}.
The HASM shall be started when a port in non-Slave state is recommended (by BMC) to be Slave and
appropriate conditions are fulfilled (e.g. both communicating ports implement the high accuracy option)
-- D\_HA\_SETUP\_REQ transition event is triggers.
% \vspace*{-1.0em}
\begin{table}[hp!]
\caption{State definitions}
\centering
\begin{tabular}{| c | p{12.2cm} |} \hline
\textbf{Port State} & \textbf{Description} \\
%& \\
\hline
\small
IDLE & The HASM shall be in the IDLE state while establishing of High Accuracy link is not being performed.
\\ \hline
PRESENT & Slave-only state. Upon entering this state, the Slave sends a SLAVE\_PRESENT
message to the Master and waits for the $LOCK$ message.\\ \hline
M\_LOCK & Master-only state. Upon entering this state, the Master sends the $LOCK$
message. In this state, the Master waits for the Slave to finish
successfully the frequency locking process (indicated by reception of the $LOCKED$ message). \\ \hline
S\_LOCK & Slave-only state. The Slave locks its clock signal to the frequency distributed
over the physical layer by the Master. \\ \hline
LOCKED & Slave-only state. Upon entering this state, the Slave sends the $LOCKED$ message
to inform that it is syntonized, and waits for the \textit{CALIBRATE} message.
\\ \hline
CALIBRATION & In this state, optional calibration of the port's rx and/or
tx latencies can be performed.
Upon entering this state, the Port sends a \textit{CALIBRATE} message to
the other Port. In this message the characteristics of calibration pattern
are sent. If calibration is not needed, the next state is entered, otherwise an
indication from the hardware
that the calibration has been finished successfully is awaited. \\ \hline
CALIBRATED & Upon entering this state the WR Port sends a \text{CALIBRATED} message with the
values of its rx/tx latencies. \\ \hline
RESP\_CALIB\_REQ & The Port's action in this state depends on the content of CALIBRATION message.
If required, the calibration pattern shall be enabled (sent). The pattern shall be
disabled on exiting the state (after the timeout or reception of the
\textit{CALIBRATED} message).\\ \hline
HA\_LINK\_ON & Upon entering this state, the Master sends the HIGH\_ACCURACY\_LINK\_ON message.
In this state, the values of the clause-defined Data Set fields are set.
The \textit{IDLE} state is entered unconditionally.
The execution of the HASM is considered to be completed successfully. \\ \hline
\end{tabular}
\label{tab:wrFSMdesc}
\end{table}
\begin{figure}[ht!]
\centering
% \vspace{-1.3cm}
\includegraphics[width=.8\textwidth]{fig/wrFSM.eps}
\caption{High Accuracy State Machine}
\label{fig:wrFSM}
\end{figure}
\subsubsection{Event definition}
The implementation of two PTP State Machine transition events described as \textit{implementation-specific} is defined in this clause.
The \textbf{SYNCHRONIZATION\_FAULT} shall occur when syntonization break is detected by hardware
(e.g. link disconnected) or the high accuracy mode is exited out of another reason (e.g. management). It shall result in
clearing the record of foreign masters. The \textbf{MASTER\_CLOCK\_SELECTED} shall occur on the successful
completion of the HASM execution on the port selected by BMC as Slave and
being in PTP\_UNCALIBRATED state. Consequently, the PTP\_SLAVE state shall be entered.
\subsection{High Accuracy Default Profile (addition to Annex J)}
\label{HAprofile}
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 set to 3 (i.e. SyncE without ECMS and with recovered clock loopback enabled).
However, using transportSpecific flag set to 0 (DEFAULT) is allowed if the link partner is not
SyncE-capable. Such a situation shall be detected and handled properly by a port implementing this profile, therefore guaranteeing
backward-compatibility and interoperability. \\
By default the "High Accuracy" option shall be active. If a link-partner uses mapping defined in Annex F
with DEFAULT transport Specific field, the "High Accuracy" option shall be disabled.
\newpage
\subsection{Changes to clauses of PTPv2}
\label{PTPchanges}
\vspace*{-1em}
\begin{table}[h!]
\begin{tabular}{ l p{12.5cm}}
\multicolumn{2}{l}{\textbf{Required changes:}} \\
Clause 7.6.2.5: & Table 6 -- add accuracies greater then 25ns \\
Clause 14.1.1: & Table 34 -- add HIGH\_ACCURACY\_OPTION tlvType \\
% Annex F.4: & Described in section~\ref{highAccuracy} \\
% Annex J: & Described in section~\ref{HAprofile} \\
\multicolumn{2}{l}{ \textbf{Possibly helpful changes:}} \\
Clause 3.1: & Add time definition (time = time of day and/or frequency) \\
Clause 5.3.3: & Add picoseconds to the Timestamp structure \\
Clause 7.5.3: & Add High Accuracy State Machine as an example in the NOTE \\
% Clause 8.2.5.1 & Add portMode field to portDS (Master-only/Slave-only/Master-and-Slave \\
% Clause 9.3.2 & Modify default BMC in such way that port with portMode=Slave-only will not enter Slave
% state and the functioning of Boundary Clock (other ports) is not broken. Similarly
% with Master-only \\
Clause 9.3.1: & Add profile-specific decision code to enable e.g. choice of
secondarySlave \\
Clause 9.5.10: & Waive the requirement of sending Follow\_Up message prior to the transmission
of a subsequent Sync Message -- this is to enable resending Sync Messages
when detecting that Sync Message was sent on clock-adjustment and the timestamp
is faulty. \\
\end{tabular}
\end{table}
\vspace*{-1em}
\section {Benefits of the proposed revision}
This revision allows a high-accuracy implementation of the PTP protocol by providing to an implementer
a standardized way of deriving a stable frequency from the physical medium, evaluating physical delays,
using phase detection for enhancing timestamping precision and evaluating link asymmetry.
Moreover, the modification proposed in section~\ref{syncEandEthernet} can be useful in a currently
developed (by ITU-T) PTP Telecom profile.
\section {Backward compatibility to IEEE-1588:} A: Complete backward compatibility, i.e. V2 and the
revised version interoperate although V2 devices do not receive benefits of revision.
\newpage
\vspace*{-1em}
\begin{thebibliography}{9}
\footnotesize
\bibitem{WRinGS}
M. Lipi\'{n}ski, T. W\l{}ostowski, J. Serrano, P. Alvarez and P. Moreira
\emph{Performance results of the first White Rabbit installation for CNGS time transfer}.
ISPCS2012 Proccedings,
2012 \\
\vspace*{-2em}
\bibitem{WRinISPCS2011}
M. Lipi\'{n}ski, T. W\l{}ostowski, J. Serrano, P. Alvarez
\emph{White Rabbit: a PTP Application for Robust Sub-nanosecond Synchronization}.
ISPCS2011 Proccedings,
2011 \\
\vspace*{-2em}
\bibitem{SynchE}
ITU-T G.8262/Y.1362
\emph{Timing characteristics of a synchronous
Ethernet equipment slave clock}.
TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU,
07/2010.\\
\vspace*{-2em}
\bibitem{SynchE2}
ITU-T G.8264/Y.1364
\emph{Distribution of timing information through packet network}.
TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU,
10/2008.\\
\vspace*{-2em}
\bibitem{icalepcs09}
J. Serrano, P. Alvarez, M. Cattin, E. G. Cota, J. H. Lewis, P. Moreira, T. W\l{}ostowski
and others,
\emph{The White Rabbit Project}.
ICALEPCS TUC004,
2009.\\
\vspace*{-2em}
\bibitem{WRPTP} %done x
Emilio G. Cota, Maciej Lipinski, Tomasz Wostowski, Erik van der Bij, Javier
Serrano
\emph{White Rabbit Specification: Draft for Comments}.
CERN, Geneva
07/2011.\\
\vspace*{-2em}
\bibitem{JohnExpliciteState} %done x
John Eidson,
\emph{Option to explicitely confgure port state}.
ISPCS2012, San Francisco, USA
2012.\\
\vspace*{-2em}
\bibitem{PTPv2} %done x
IEEE Instrumentation and Measurement Society
\emph{IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems}.
IEEE Std 1588TM-2008,
2008, New York, USA\\
\vspace*{-2em}
\end{thebibliography}
\end{document}
%
% wrspec.tex
%
\def\us{\char`\_}
\documentclass[a4paper, 12pt]{article}
%\documentclass{article}
\usepackage{fullpage}
\usepackage{pgf}
\usepackage{tikz}
\usetikzlibrary{arrows,automata,shapes}
\usepackage{multirow}
\usepackage{color}
\usepackage[latin1]{inputenc}
\usepackage{verbatim}
\usepackage{amsmath}
\usepackage{times,mathptmx}
\usepackage{chngcntr}
\usepackage{mdwlist}
%%%%%5% used in Tomeks %%%%%%%
\usepackage{listings}
\usepackage{cancel}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% fig/tomeksDrawings
\usepackage{listings}
\usepackage{color}
\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}
\lstset{frame=tb,
language=Java,
aboveskip=3mm,
belowskip=3mm,
showstringspaces=false,
columns=flexible,
%basicstyle={\scriptsize},
basicstyle={\footnotesize},
numbers=none,
numberstyle=\tiny\color{gray},
keywordstyle=\color{blue},
commentstyle=\color{dkgreen},
stringstyle=\color{mauve},
breaklines=false,
breakatwhitespace=false
tabsize=3
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% creating subsubsubsection notation
% src: http://www.latex-community.org/forum/viewtopic.php?f=5&t=791
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setcounter{secnumdepth}{6}
\renewcommand\theparagraph{\Alph{paragraph}}
\makeatletter
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{0.0001pt \@plus .2ex}%
{\normalfont\normalsize\bfseries}}
\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{0.0001pt \@plus .2ex}%
{\normalfont\normalsize\bfseries}}
%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
\renewcommand{\thefootnote}{\alph{footnote}}
\counterwithin{paragraph}{subsubsection}
\counterwithin{subparagraph}{paragraph}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\eqoffset}[1]{%
{\ensuremath{%
{\text{offset}}_{#1}}%
}%
}
\newcommand{\eqdelay}[1]{{\text{delay}}_{#1}}
\newcommand{\eqasymm}{{\text{asymmetry}}}
%\renewcommand*{\refname}{\vspace*{-3em}}
\begin{document}
\title{ IEEE Standard for a Precision Clock \\
Synchronization Protocol for \\
Networked Measurement and Control Systems\\ \textit{High Accuracy changelog}}
\author{Maciej Lipi\'{n}ski\\CERN -- European Organization for Nuclear Research\\Warsaw University of Technology}
\date{January 2013}
\maketitle
% \thispagestyle{empty}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
This document proposes the way White Rabbit (WR) extension \cite{WRPTP} could be included into
the next revision of PTP \cite{PTPv2}. The original WR was devided into smaller key pieces
which can be also useful on their own (outside WR). This pieces are defined as separate
options in Chapter~\ref{chap:highAccuracyOption}. This key pieces (options) are used togother by a
\textit{High Accuracy Default Profile} defined in Chapter~\ref{chap:highAccuracyProfile}.
The new options/profile might require some small changes in the main body of the PTP
standard, these changes are listed in Chapter~\ref{chap:changesToPtpv2}.
Finaly, some solutions can be achieved in many ways, thus some doubts and open questions are
explained in Chapter~\ref{chap:openQuestions}.
In order to make this document "standard-human-readible", the main body includes
a consise information with references but without firm/concrete/boring proposals (i.e. text of
options/profile, or text-references changes to PTP standard). However, experts will find
precise propsals in the Appendixes.
\newpage
\input{highAccuracyOption}
\newpage
\input{highAccuracyProfile}
\newpage
\input{changesToPtpv2}
\newpage
\input{openQuestions}
\newpage
minor issues not included into High Accuracy changelog:
\begin{itemize}
\item Follow\_up sequence requirement: chap~\ref{chap:followUP}
\item modified BMC -- need to check this
\item
\end{itemize}
\section {Huge changes: Causes or Annex additions}
\subsection {Explicite port state configuration} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Based on John Eidson idea \cite{JohnExpliciteState}.
\subsubsection {Additional of portDS.explicitPortState}
\begin{itemize}
\item Configurable member of portDS
\item Shall be taken from enumeration: MASTER, SLAVE, PASSIVE
\item Initialization value shall be MASTER
\item Update of this value shall force state machine to enter INITIALIZATING state
\end{itemize}
\subsubsection {State machine for fixed-state configuration}
\begin{itemize}
\item Based on John Eidson \textit{Modified state machine} \cite{JohnExpliciteState} and
\textit{State machine for a slave-only implementation} (Figure 24 of \cite{PTPv2})
\item Shall be taken from enumeration: MASTER, SLAVE, PASSIVE
\item Initialization value shall be MASTER
\end{itemize}
\subsubsection {Data Set update rules}
Can be defined in a similar way as for the ANNOUNCE\_RECEIPT\_TIMEOUT\_EXPIRES case
in 9.2.6.11@83.
\subsubsection {Some issues}
\begin{itemize}
\item What if we have more ports explicitely configured to be SLAVEs ?
\begin{itemize}
\item We can actually want it to have redundant Slave connections, see
Sec~\ref{sec:multiSlaveBC}
\item If this is a misconfig... do we want to have some mechanims to resolve it ?
\end{itemize}
\item .
\end{itemize}
\subsection {Multi-slave boundary clock} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{sec:multiSlaveBC}
\subsubsection {Additional of currentDS.slavePortsPriorities}
\textbf{Explicit configuration} \\
Additional of portDS.slavePortsPriority configurable to port data set:
\begin{itemize}
\item Initialized to 0;
\item it is used in S1 (Table 16 of \cite{PTPv2}) to update currentDS.slavePortsPriorities
\end{itemize}
\textbf{Modified BMC} \\
Modification to BMC which enables for secondary Slaves. It is used to update
currentDS.slavePortsPriorities.
\subsubsection {Additional of portDS.offsetFromMaster and portDS.meanPathDelay}
Store these two values calculated for each port, if the port is a SLAVE.
\subsubsection {Update of currentDS.offsetFromMaster and currentDS.meanPathDelay}
Upate values of these fields using portDS.offsetFromMaster and portDS.meanPathDelay of the
port which has slavePortPriority = 0 in the currentDS.slavePortsPrioritie.
\subsubsection {Time source}
Take the time / update the currentDS.
\subsubsection {Selection of the best master clock algorithm (9.3.1@84->b)}
The idea is to enable selection of "Secondary Slave" as described in WRSPEC 6.4.2@22.
It could be done by :
\begin{description}
\item [Option 1:] Re-wording P2:
\textit{P2: The port is in the PASSIVE or SLAVE state because it is on a clockClass 128 or
higher node and is PASSIVE or (secondary) SLAVE to break a timing loop}
\item [Option 2:] Adding:\
\textit{S2: The port is in the SLAVE state because it is on a clockClass 128 or
higher node and is Secondary SLAVE to backup the Primary SLAVE}
\end{description}
\subsubsection {backupParentDS data set}
Th backupParentDS data set stores information about the backup Slaves (if exist) as
defined in WRSPEC 6.3.2.
\subsubsection {Multicast MAC address (F3@223}
In multi-slave BC, like when using peer-to-peer mechanism, we need to be able to communicate
with the other BCs even if (e)RSTP blocks the ports.... so we would need to be using
01-80-C2-00-00-0E address for all PTP messages.
\subsection {L1 syntonization + PTP option} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection {SYNTONIZATION\_FAULT}
The SYNTONIZATION\_FAULT event shall occure when the physical frequency lock is lost.
This event shell trigger:
\begin{itemize}
\item cleaning of ForeignMaster record for this port -- so that it is not used in BMC
\item clearing of WR stuff
\end{itemize}
\subsection {High Accuracy option} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection {MASTER\_CLOCK\_SELECTED}
The MASTER\_CLOCK\_SELECTED event is triggered as defined in WRSPEC 6.7.1@33.
\subsubsection {Update of HA-specific data sets}
Extension of Tables 13 through 16 @ 91-92 as defined in WRSPEC 6.4.3@24.
\subsection {Transport annex (modificatin to exisitng Ethernet ?} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Include L1 syntonization (maybe as proposed in ISPCS) - extend Table F.2@224.
The problem is a non-compatibility with the ethernet (default) transport layer (or it's
backward compatible as the new values are ingored ??). How to achive compatibility ??
If we detect announce message with transportSpecific field = 0, then change on WR the
transmitted value to 0 ?
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\section {Small changes: existing text modifications}
\subsection{Definitions (3.1@p4)}
Maybe include also syntonization into the definitions ?
\begin{description}
\item[option 1] Add definition of \textbf{time} which says that time is UTC/TAI and
(in some cases, i.e. High Accuracy) frequency.
\item[option 2] Add syntonization to definitions, example below.
\item[option 3] Leave at it is.
\end{description}
Example below, much more places in
this clause possible for including this change.
{\itshape
3.1.3 boundary clock: A clock that has multiple Precision Time Protocol (PTP) ports in a
domain and maintains the timescale used in the domain. It may serve as the source of time
\textbf{and/or frequency}, i.e., be a master clock, and may synchronize \textbf{and/or
syntonize} to another clock, i.e., be a slave clock.
}
\subsection{Primitive data types specifications (5.2@p12)}
Adding UInteger64 to Table 1.
\subsection{Timestamp (5.3.3@p13)}
Adding units smaller then nanoseconds to the Timestamp structure
(the scaledNanoseconds enable to carry femtoseconds, so go why not make it compatible), i.e.:
\begin{lstlisting}
struct Timestamp
{
UInteger48 secondsField;
UInteger32 nanosecondsField;
UInteger32 femtosecondsField;
};
\end{lstlisting}
\subsection{Asymmetry (6.2@p16 and 7.4.2@46)}
Maybe, this sentence needs to be updated:\\
\textit{"Asymmetry is not detectabel by PTP; however, if known, PTP corrects for asymmetry"}
\subsection{Boundary clock (6.5.3@p21)}
Figure 3 - Time, in some cases, means also frequency, if we change definition, it is ok,
otherwise, the figure could be modified, maybe.
\subsection{State (7.5.3@p52)}
Adding reference to High Accuracy State Machine as an example in the Note: \\
{{\itshape
NOTE -- This definition of stateful and stateless PTP ports does not rule out state
mechanisms other than that of 9.2 that may apply to a PTP port
\textbf{(e.g.: High Accuracy State Machine, clause x,y,z)}.
}
\subsection{clockAccuracy (7.6.2.5@p56)}
Use reserve values (00-1F) to add accuracies beyond 25ns, e.g.:\\
\begin{table}[ht!]
\caption{Table 6 -- clockAccuracy enumeration (extension)}
\centering
\begin{tabular}{| l | l |} \hline
\textbf{Value}(hex) & \textbf{Specification} \\ \hline
10 & The time is accurate to within 1 fs \\ \hline
11 & The time is accurate to within 2.5 fs \\ \hline
12 & The time is accurate to within 10 fs \\ \hline
13 & The time is accurate to within 25 fs \\ \hline
14 & The time is accurate to within 100 fs \\ \hline
15 & The time is accurate to within 250 fs \\ \hline
16 & The time is accurate to within 1 ps \\ \hline
17 & The time is accurate to within 2.5 ps \\ \hline
18 & The time is accurate to within 10 ps \\ \hline
19 & The time is accurate to within 25 ps \\ \hline
1A & The time is accurate to within 100 ps \\ \hline
1B & The time is accurate to within 250 ps \\ \hline
1C & The time is accurate to within 1 ns \\ \hline
1D & The time is accurate to within 2.5 ns \\ \hline
1E & The time is accurate to within 10 ns \\ \hline
1F & The time is accurate to within 25 ns \\ \hline
... & ... \\ \hline
\end{tabular}
\label{tab:clockAccuracy}
\end{table}
\subsection{currentDS data set member specification (8.2.2@p67-68)}
\subsubsection{Asymmetry}
\label{sec:asymmetry}
It could be useful/neat to add \textit{currentDS.asymmetry} dynamic current data set member. \\
\textbf{8.2.2.5 currentDS.asymmetry} \\
The value of currentDS.asymmetry is an implementation-specific representation of the current
value of the asymmetry between master-slave and slave-master delays as
computed/estimated/provided by the slave and defined in 7.4.2. The data type should be
TimeItnerval. The initialization value shall be eiher:
\begin{itemize}
\item The value in non-volatile read-write storage if implemented
\item Implementation-specific
\end{itemize}
\textbf{NOTE:} maybe not good... it is better to hide the implementation of asymmetry calculation...
as we have a direct formula to calculate master-slave delay...
Including asymmetry into DS will work in normal cases but for redundancy... it will not
as we need to know asymmetries for each port.
\subsubsection{Redundancy stuff (independant from High Accuracy)}
It could be useful for redundancy stuff to have currentDS.primarySlavePortNumber.\\
currentDS.{offsetFromMaster, meanPathDelay, Asymmetry} are members only for primary slave...
if we have redundant connections which we track, we need to track these parameters for each
slavePort and update currentDS with the primarySlavePort data.
\subsubsection{Transmission of a Follow\_UP message (9.5.10@104}
\label{chap:followUP}
We violate this piece of standard:
{\itshape The Follow\_Up message should be transmitted as soon as possible after the
transmission of the associated Sync message and shall be transmitted prior to the transmission
of a subsequent Sync message to the same destination address.}
in a case where the Sync message is transmitted while the clock is being adjust -- the obtained
HW-timestamp is flagged to be incorrect. Sending an incorrect timestamp in the Follow\_UP
message can cause problems, so we don't send the invalid timestamp in the Follow\_UP but
instead we resend the Sync message and it's correct timestamp in the Follow\_UP message.
The mentioned paragraph of the standard could be modified appripriately.
\subsection {Syntonization based on other mechanisms (12.1.3@123)}
Modification of the following statement probably is required.
{\itshape In some networks, there may be physical signals accessible to clocks that can be
used to syntonize two clocks. Such signals may be used provided the syntonization of clock
A to clock B matches the synchronization hierarchy established by the best master clock
algorithm (see 9.3), which means that Sync messages proceed from clock B to clock A.
These means are out of the scope of this standard. }
\subsection {Addition of tlvType value for High Accuracy option (Table 34@134)}
HIGH ACCURACY OPTION tlvType.
\subsection {PTP profile recommendations (19.3.1.2@185)}
\textit{A PTP profile should define the node types required, permitted, or prohibited}
So, we could should say that we only support BC/OC.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\section {Doubts and analysis of future use}
\subsection {High Accuracy (a.k.a White Rabbit) for transparent clocks (6.5.4 \& 6.5.5 @ 21-29)}
The purpose of using transparent clocks is to avoid PLL cascades. Since WR uses SyncE, each
device needs to lock to the incoming reference frequency, this includes transparent clocks.
This means that the main advantage of using transparent clocks is invalid in WR. However,
this argument does not prevent one from using WR in transparent clocks, thus further analysis.
\subsubsection {Network redundancy vs. timestamp enhanced precision}
There seems to be a problem if we have redundant paths between transparent clocks with
obtaining enhanced precision of the timestamps. To enhance the precision of the timestamp,
we loop back frequency and measure phase shift at the master. However, in the boundary clock
solution, we loopback local frequency (phase aligned). In transparent clock the frequency
would need to be looped back per port on the uplinks to enable proper phase detection (since
we do not perform per-clock phase aligment). The chosen source of frequency would need to be
propagated to the downlinks. This frequency propagation in BC-based WR solution is based on
PTP-hierarchy. In transparent clocks, such hierarchy is not really resolved. PTP bases the
Announce Message propagation on the underlying topology resolution (e.g. RSTP) and the
transparent clocks do not analyse Announce messages in this regards. Additionaly, in
peer-to-peer transparent clocks the propagation delay is measured in to ways: first one
switch requets measurement, then the other link partner - it does not seem to be working
in WR.
In the BC, the Announce message is not forwarded, so the underlying topology resolution
mechanims can be safely tricked (by sending Announce messages even on blocked ports and knowing
that they will not be forwarded by BC).
With TC, we need to relay on the underlying topology resolution, so the Link Setup Mechanism
in the next section cannot be triggered on the redundant links.
% \subsubsection {Timestamp enhanced precision}
%
% In order to use WR with transparent clocks the mechanims of extending timestamping precision
% by aligning slave's clock phase with that of the master using DDMTD-based phase detection would
% have to be rethinked or the phase aligment done. The later seems more "natural" in peer-to-peer
% transparent clocks. However, such a solution makes the transparent clocks even less transparent.
% Furthermore, a redundancy in the network would mean phase-aligment per port but syntonization
% to only one source of frequency.
\subsubsection {Link setup mechanism}
It seems that the same mechanims (as for boundary/ordinary clocks) can be used for transparent
clocks -- the Announce message that traverses from GrandMaster through transparent clocks would
trigger \textit{Link Setup} on all transparent clocks and ordinary clocks at the end. But,
there is an issue described above regarding redundant networks. It would work with the
eRSTP -- but this is not a comfort.
\subsection {Peer-to-peer boundary clock}
Peer-to-peer mechanims between boudnary clocks could be interesting for redundant networks.
\subsection{\{portDS, transparentClockPortDS\}.\{meanPeerPathDelay, peerAsymmetry\}}
The definition of \textit{meanPeerPathDelay} is a bit different then \textit{meanPathDelay}.
It seems a bit misleading. If \textit{meanPeerPathDelay} is mean, we need
\textit{peerAsymmetry}, otherwise, it's \textit{oneWayPathDelay}:
\begin{itemize}
\item portDS data set member specification (8.2.5@p72)
\item transparentClockPortDS data set member specification (8.3.3@p75)
\end{itemize}
\subsection{State Machine - Table 10 - INITIALIZATING (9.2.5@77)}
The sentence \textit{If one port of a boundary clock is in the INITIALIZING state, then all
ports shall be in the INITIALIZING state.} can be problematic:
\begin{itemize}
\item In the explicite port state configuration, the state machine needs to be set to
INITIALIZATING after setting new \textit{explicite state}. Often, we want to confgure
a single port, during operation, without affecting the others.
\end{itemize}
Maybe a sentence saying : \textit{With provision to clause x.y (explicite port state
configuration)}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\section {Possible changes to original WR}
\subsection {Timestamping point}
Currently, as specified in WRSPEC (B3@49):\\
\textit{Timestamps in WR are taken when the PCS detects a Start-of-Frame Delimiter (SDF)
character in the incoming or outgoing dta stream.} \\
In PTPv2 (6.6.5@36) \\
The \textit{message timestamp point} is defined at the begining of the
Ethernet Frame Header, so 1 octet later (it seems).
In PTPv2 (7.3.4@44) \\
Unless otherwise specified in a transport-specific annex to this standard, the message
timestamp point for an event message shall be the beginning of the first symbol after the
Start of Frame (SOF) delimiter.\\
This is not a big problem, we just need to modify the implementation, i.e. by adding an
appropriate delay of 1 octect.
\subsection {Redundancy}
Storing info about secondary offsetFromMaster/meanPathDelay/Asymmetry (Sec~\ref{sec:asymmetry}):
\begin{itemize}
\item PTPv2: 8.2.2.1@67
\item WRSPEC: 6.4@22
\end{itemize}
\subsection {Synchronization moment}
According to the standard (9.5.4-9.5.5@98-99), the synchronization of clock is done
after reception of Sync (one-step) or Follow\_UP message (two-step). In WR it's rather
at different point in time (to be verified).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\section {Old stuff}
\section {Date of submission:} 23 July 2012
\section {Clauses of IEEE 1588-2008 (V2) proposed for revision:}
\begin{itemize*}
\item Changes required in clauses: 7.6.2.5, 14.1.1, Annex F.4 and Annex J
\item Changes considered useful in clauses: 3.1, 5.3.3, 7.5.3, 9.3.1 and 9.5.10
\end{itemize*}
\section {Character of the proposed revision:}
New feature. This revision proposes extending PTPv2 to enable a high accuracy of synchronization --
the sub-nanosecond level of accuracy that is beyond what is achievable by the current implementations.
\section {Reason or rational for the proposed revision}
It has been shown \cite{WRinGS}\cite{WRinISPCS2011} that PTPv2 can be implemented in such a way that
a sub-nanosecond accuracy and picoseconds jitter of synchronization can be achieved over a number of
boundary clocks and several kilometers of cables. Such an implementation benefits from additional mechanisms
(i.e. Synchronous Ethernet \cite{SynchE}, phase detection \cite{icalepcs09}) incorporated into PTPv2 in
a way that keeps interoperability with current implementations while improving greatly the performance.
The mechanisms used could be incorporated into the IEEE 1588 standard to indicate to the vendors the optional means to enhance
PTP's performance and to ensure interoperability of such high-accuracy implementations.
The presented solution is based on \cite{WRPTP}.
% , the author sees a potential for the solution's
% further simplification/alignment with PTP in the process of standardization.
\section {Proposed revision:}
%loads of text here
In this section four types of changes are proposed:
\begin{enumerate*}
\item Section~\ref{syncEandEthernet} -- addition/modification of the transport annex;
\item Section~\ref{highAccuracy} -- addition of an optional "high accuracy" clause;
\item Section~\ref{HAprofile} -- addition of the "Default High Accuracy" profile to Annex J ;
\item Section~\ref{PTPchanges} -- minor changes to the existing clauses to accommodate (1)-(3).
\end{enumerate*}
\subsection{Syntonization capability of IEEE 802.3/Ethernet (modification of Annex F.4)}
\label{syncEandEthernet}
It is proposed to extend Annex F (it is also possible to add a new annex) such that the physical syntonization
of clocks is foreseen (i.e. by using Synchronous Ethernet). Proposed changes to Table F.2 and the addition of
a new Table F.3 are presented below.
%\vspace*{-1em}
\begin{table}[ht!]
\caption{\textcolor{gray}{Table F.2 -- Ethernet transportSpecific field} (Changes to existing Table F.2)}
\centering
\begin{tabular}{| l | l | p{9cm} |} \hline
\textcolor{gray}{\textbf{Enumeration}} & \textcolor{gray}{\textbf{Value}(hex)} & \textbf{\textcolor{gray}{Specification}} \\ \hline
\textcolor{gray}{DEFAULT} & \textcolor{gray}{ 0} & \textcolor{gray}{All PTP layer 2 Ethernet transmission not covered by another enumeration value} \\ \hline
\textcolor{gray}{ETHERNET\_AVB} & \textcolor{gray}{1} & \textcolor{gray}{This value is reserved for use in connection with the standard being developed by the IEEE 802.1 AVB Task Group as P802.1AS} \\ \hline
ETHERNET\_SYNCE&2-6 & Ethernet $+$ Synchronous Ethernet, further specified in Table~F.3\\ \hline
\textcolor{gray}{Reserved} & \textcolor{gray}{ 6-F} & \textcolor{gray}{Reserved for assignment in future version s of the standard} \\ \hline
\end{tabular}
\label{tab:transportSpecific}
\end{table}
%\vspace*{-2em}
\begin{table}[ht!]
\caption{Table F.3 - Syntonization capable Ethernet transportSpecific values (new table)}
\centering
\begin{tabular}{| l | p{13cm} |} \hline
\textbf{Value}(hex) & \textbf{Specification} \\ \hline
2 or 3 & Syntonization distribution topology aligned with PTP topology
(i.e~SyncE without using Ethernet Synchronization Messaging Channel (ESMC) \cite{SynchE2}) \\ \hline
4 or 5 & Syntonization distribution topology independent from PTP topology
(i.e.~SyncE using Ethernet Synchronization Messaging Channel (ESMC) \cite{SynchE2}) \\ \hline
2 or 4 & Recovered clock loopback disabled \\ \hline
3 or 5 & Recovered clock loopback enabled \\ \hline
\end{tabular}
\label{tab:transportSpecific}
\end{table}
When recovered clock loopback is enabled, a port (acting as a slave) which recovers frequency from the incoming data stream
shall, after proper phase alignment, encode such frequency into the outgoing data stream and send it back to the source
(a port acting as a master).
\subsection{High Accuracy (optional) clause}
\label{highAccuracy}
It is proposed to add an optional clause that could be implemented by devices for high accuracy synchronization.
The actions which are defined in this clause take place while a PTP link is being established; that is in the
UNCALIBRATED state of the BMC-selected slave port and in the MASTER state of the BMC-selected master port.
This clause presents the following requirements to the hardware/implementation:
\begin{itemize*}
\item It shall feature constant rx/tx latencies during operation and inform higher layers
about these latencies values (e.g. measure rx/tx latencies using calibration pattern).
\item It shall provide timestamps with a sufficient precision (i.e. using syntonization-capable Ethernet mapping,
transportSpecific=0x3, and phase detection techniques), the fractional nanosecond part of a timestamps shall
be included in the correctionField as specified in PTPv2.
\item It shall be able to generate the calibration pattern on request
(RD+K28.7 code group, Appendix 36A.2 of IEEE802.3).
\item It shall provide an estimation of the asymmetry using parameters provided by this clause
(e.g. using Link Delay Model, tx/rx latencies and relative delay coefficient as explained in \cite{WRPTP}).
\end{itemize*}
\vspace{-0.2cm}
\subsubsection{Definition of Data Set Fields}
The implementation-specific Data Set fields are defined to store per-port clause specific data:
(1)~values of hardware characteristics (e.g.: rx/tx latencies);
(2)~configuration parameters (e.g.: whether a calibration pattern is required, calibration period/pattern);
(3)~current state of the High Accuracy State Machine (section~\ref{fsm}).
The (re-)initialization methods and values are defined.
\vspace{-0.2cm}
\subsubsection{Definition TLVs}
It is proposed to define TLVs recognized by tlvType HIGH\_ACCURACY\_OPTION
(extension to clause 14.1.1) of the format presented in Table~\ref{tab:TLVformat}. Different messages of such TLV type
are recognized by messageID as defined in Table~\ref{tab:MessageId}. These TLVs are used to
exchange clause-specific data and trigger transitions in the High Accuracy State Machine (section~\ref{fsm}).
They are carried in Signaling Messages or suffixed to an Announce message (see Table~\ref{tab:MessageId}).
\vspace*{-1.0em}
\begin{table}[h!]
\caption{HIGH\_ACCURACY\_OPTION TLV format}
\centering
\begin{tabular}{| c | c | c | c | c | c | c | c | c | c |}
\hline
\multicolumn{8}{|c|}{\textbf{Bits}} & \textbf{Octets} & \textbf{TLV} \\
%\hline
\cline{0-7}
7 & 6 & 5 & 4 & 3 & 2 & 1 & 0 & & \textbf{Offset} \\
\hline
\multicolumn{8}{|c|}{tlvType } & 2 & 0 \\ \hline
\multicolumn{8}{|c|}{lengthField } & 2 & 2 \\ \hline
\multicolumn{8}{|c|}{messageID} & 2 & 4 \\ \hline
\multicolumn{8}{|c|}{dataField} & N & 6 \\ \hline
\end{tabular}
\label{tab:TLVformat}
\end{table}
\vspace*{-2em}
\begin{table}[tbp]
\caption{Message ID values/types}
\centering
\begin{tabular}{| l | p{2.5cm} | c | c |} \hline
\textbf{Message Name} & \textbf{MessageId value (hex)} & \textbf{Sent in message type} \\ \hline
SLAVE\_PRESENT & 0x1000 & Signaling \\ \hline
LOCK & 0x1001 & Signaling \\ \hline
LOCKED & 0x1002 & Signaling \\ \hline
CALIBRATE & 0x1003 & Signaling \\ \hline
CALIBRATED & 0x1004 & Signaling \\ \hline
HIGH\_ACCURACY\_ON & 0x1005 & Signaling \\ \hline
ANN\_SUFIX & 0x2000 & Announce \\ \hline
\end{tabular}
\label{tab:MessageId}
\end{table}
\subsubsection{High Accuracy State Machine}
\label{fsm}
The High Accuracy State Machine (HASM) controls the process of establishing a high accuracy (abbreviated \textit{HA}
in the figures)
link between two ports implementing high accuracy option. The HASM shall be non-preemptive with regard
to the execution of the PTP State Machine. It enables syntonization over the physical layer,
optional measurement of tx/rx latencies and exchange of their values across the link. The HASM shall be
executed in the PTP UNCALIBRATED state on the port on which the recommended (by BMC) state is SLAVE --
called Slave -- and in the PTP MASTER state on the port on which the recommended state is MASTER -- called
Master. The HASM is depicted in Figure~\ref{fig:wrFSM} and described in Table~\ref{tab:wrFSMdesc}.
The HASM shall be started when a port in non-Slave state is recommended (by BMC) to be Slave and
appropriate conditions are fulfilled (e.g. both communicating ports implement the high accuracy option)
-- D\_HA\_SETUP\_REQ transition event is triggers.
% \vspace*{-1.0em}
\begin{table}[hp!]
\caption{State definitions}
\centering
\begin{tabular}{| c | p{12.2cm} |} \hline
\textbf{Port State} & \textbf{Description} \\
%& \\
\hline
\small
IDLE & The HASM shall be in the IDLE state while establishing of High Accuracy link is not being performed.
\\ \hline
PRESENT & Slave-only state. Upon entering this state, the Slave sends a SLAVE\_PRESENT
message to the Master and waits for the $LOCK$ message.\\ \hline
M\_LOCK & Master-only state. Upon entering this state, the Master sends the $LOCK$
message. In this state, the Master waits for the Slave to finish
successfully the frequency locking process (indicated by reception of the $LOCKED$ message). \\ \hline
S\_LOCK & Slave-only state. The Slave locks its clock signal to the frequency distributed
over the physical layer by the Master. \\ \hline
LOCKED & Slave-only state. Upon entering this state, the Slave sends the $LOCKED$ message
to inform that it is syntonized, and waits for the \textit{CALIBRATE} message.
\\ \hline
CALIBRATION & In this state, optional calibration of the port's rx and/or
tx latencies can be performed.
Upon entering this state, the Port sends a \textit{CALIBRATE} message to
the other Port. In this message the characteristics of calibration pattern
are sent. If calibration is not needed, the next state is entered, otherwise an
indication from the hardware
that the calibration has been finished successfully is awaited. \\ \hline
CALIBRATED & Upon entering this state the WR Port sends a \text{CALIBRATED} message with the
values of its rx/tx latencies. \\ \hline
RESP\_CALIB\_REQ & The Port's action in this state depends on the content of CALIBRATION message.
If required, the calibration pattern shall be enabled (sent). The pattern shall be
disabled on exiting the state (after the timeout or reception of the
\textit{CALIBRATED} message).\\ \hline
HA\_LINK\_ON & Upon entering this state, the Master sends the HIGH\_ACCURACY\_LINK\_ON message.
In this state, the values of the clause-defined Data Set fields are set.
The \textit{IDLE} state is entered unconditionally.
The execution of the HASM is considered to be completed successfully. \\ \hline
\end{tabular}
\label{tab:wrFSMdesc}
\end{table}
\begin{figure}[ht!]
\centering
% \vspace{-1.3cm}
\includegraphics[width=.8\textwidth]{fig/wrFSM.eps}
\caption{High Accuracy State Machine}
\label{fig:wrFSM}
\end{figure}
\subsubsection{Event definition}
The implementation of two PTP State Machine transition events described as \textit{implementation-specific} is defined in this clause.
The \textbf{SYNCHRONIZATION\_FAULT} shall occur when syntonization break is detected by hardware
(e.g. link disconnected) or the high accuracy mode is exited out of another reason (e.g. management). It shall result in
clearing the record of foreign masters. The \textbf{MASTER\_CLOCK\_SELECTED} shall occur on the successful
completion of the HASM execution on the port selected by BMC as Slave and
being in PTP\_UNCALIBRATED state. Consequently, the PTP\_SLAVE state shall be entered.
\subsection{High Accuracy Default Profile (addition to Annex J)}
\label{HAprofile}
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 set to 3 (i.e. SyncE without ECMS and with recovered clock loopback enabled).
However, using transportSpecific flag set to 0 (DEFAULT) is allowed if the link partner is not
SyncE-capable. Such a situation shall be detected and handled properly by a port implementing this profile, therefore guaranteeing
backward-compatibility and interoperability. \\
By default the "High Accuracy" option shall be active. If a link-partner uses mapping defined in Annex F
with DEFAULT transport Specific field, the "High Accuracy" option shall be disabled.
\newpage
\subsection{Changes to clauses of PTPv2}
\label{PTPchanges}
\vspace*{-1em}
\begin{table}[h!]
\begin{tabular}{ l p{12.5cm}}
\multicolumn{2}{l}{\textbf{Required changes:}} \\
Clause 7.6.2.5: & Table 6 -- add accuracies greater then 25ns \\
Clause 14.1.1: & Table 34 -- add HIGH\_ACCURACY\_OPTION tlvType \\
% Annex F.4: & Described in section~\ref{highAccuracy} \\
% Annex J: & Described in section~\ref{HAprofile} \\
\multicolumn{2}{l}{ \textbf{Possibly helpful changes:}} \\
Clause 3.1: & Add time definition (time = time of day and/or frequency) \\
Clause 5.3.3: & Add picoseconds to the Timestamp structure \\
Clause 7.5.3: & Add High Accuracy State Machine as an example in the NOTE \\
% Clause 8.2.5.1 & Add portMode field to portDS (Master-only/Slave-only/Master-and-Slave \\
% Clause 9.3.2 & Modify default BMC in such way that port with portMode=Slave-only will not enter Slave
% state and the functioning of Boundary Clock (other ports) is not broken. Similarly
% with Master-only \\
Clause 9.3.1: & Add profile-specific decision code to enable e.g. choice of
secondarySlave \\
Clause 9.5.10: & Waive the requirement of sending Follow\_Up message prior to the transmission
of a subsequent Sync Message -- this is to enable resending Sync Messages
when detecting that Sync Message was sent on clock-adjustment and the timestamp
is faulty. \\
\end{tabular}
\end{table}
\vspace*{-1em}
\section {Benefits of the proposed revision}
This revision allows a high-accuracy implementation of the PTP protocol by providing to an implementer
a standardized way of deriving a stable frequency from the physical medium, evaluating physical delays,
using phase detection for enhancing timestamping precision and evaluating link asymmetry.
Moreover, the modification proposed in section~\ref{syncEandEthernet} can be useful in a currently
developed (by ITU-T) PTP Telecom profile.
\section {Backward compatibility to IEEE-1588:} A: Complete backward compatibility, i.e. V2 and the
revised version interoperate although V2 devices do not receive benefits of revision.
\newpage
\vspace*{-1em}
\begin{thebibliography}{9}
\footnotesize
\bibitem{WRinGS}
M. Lipi\'{n}ski, T. W\l{}ostowski, J. Serrano, P. Alvarez and P. Moreira
\emph{Performance results of the first White Rabbit installation for CNGS time transfer}.
ISPCS2012 Proccedings,
2012 \\
\vspace*{-2em}
\bibitem{WRinISPCS2011}
M. Lipi\'{n}ski, T. W\l{}ostowski, J. Serrano, P. Alvarez
\emph{White Rabbit: a PTP Application for Robust Sub-nanosecond Synchronization}.
ISPCS2011 Proccedings,
2011 \\
\vspace*{-2em}
\bibitem{SynchE}
ITU-T G.8262/Y.1362
\emph{Timing characteristics of a synchronous
Ethernet equipment slave clock}.
TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU,
07/2010.\\
\vspace*{-2em}
\bibitem{SynchE2}
ITU-T G.8264/Y.1364
\emph{Distribution of timing information through packet network}.
TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU,
10/2008.\\
\vspace*{-2em}
\bibitem{icalepcs09}
J. Serrano, P. Alvarez, M. Cattin, E. G. Cota, J. H. Lewis, P. Moreira, T. W\l{}ostowski
and others,
\emph{The White Rabbit Project}.
ICALEPCS TUC004,
2009.\\
\vspace*{-2em}
\bibitem{WRPTP} %done x
Emilio G. Cota, Maciej Lipinski, Tomasz Wostowski, Erik van der Bij, Javier
Serrano
\emph{White Rabbit Specification: Draft for Comments}.
CERN, Geneva
07/2011.\\
\vspace*{-2em}
\bibitem{JohnExpliciteState} %done x
John Eidson,
\emph{Option to explicitely confgure port state}.
ISPCS2012, San Francisco, USA
2012.\\
\vspace*{-2em}
\bibitem{PTPv2} %done x
IEEE Instrumentation and Measurement Society
\emph{IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems}.
IEEE Std 1588TM-2008,
2008, New York, USA\\
\vspace*{-2em}
\end{thebibliography}
\end{document}
%
% wrspec.tex
%
\def\us{\char`\_}
\documentclass[a4paper, 12pt]{article}
%\documentclass{article}
\usepackage{fullpage}
\usepackage{pgf}
\usepackage{tikz}
\usetikzlibrary{arrows,automata,shapes}
\usepackage{multirow}
\usepackage{color}
\usepackage[latin1]{inputenc}
\usepackage{verbatim}
\usepackage{amsmath}
\usepackage{times,mathptmx}
\usepackage{chngcntr}
\usepackage{mdwlist}
%%%%%5% used in Tomeks %%%%%%%
\usepackage{listings}
\usepackage{cancel}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% fig/tomeksDrawings
\usepackage{listings}
\usepackage{color}
\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}
\lstset{frame=tb,
language=Java,
aboveskip=3mm,
belowskip=3mm,
showstringspaces=false,
columns=flexible,
%basicstyle={\scriptsize},
basicstyle={\footnotesize},
numbers=none,
numberstyle=\tiny\color{gray},
keywordstyle=\color{blue},
commentstyle=\color{dkgreen},
stringstyle=\color{mauve},
breaklines=false,
breakatwhitespace=false
tabsize=3
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% creating subsubsubsection notation
% src: http://www.latex-community.org/forum/viewtopic.php?f=5&t=791
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setcounter{secnumdepth}{6}
\renewcommand\theparagraph{\Alph{paragraph}}
\makeatletter
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{0.0001pt \@plus .2ex}%
{\normalfont\normalsize\bfseries}}
\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{0.0001pt \@plus .2ex}%
{\normalfont\normalsize\bfseries}}
%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
\renewcommand{\thefootnote}{\alph{footnote}}
\counterwithin{paragraph}{subsubsection}
\counterwithin{subparagraph}{paragraph}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\eqoffset}[1]{%
{\ensuremath{%
{\text{offset}}_{#1}}%
}%
}
\newcommand{\eqdelay}[1]{{\text{delay}}_{#1}}
\newcommand{\eqasymm}{{\text{asymmetry}}}
%\renewcommand*{\refname}{\vspace*{-3em}}
\begin{document}
\title{ IEEE Standard for a Precision Clock \\
Synchronization Protocol for \\
Networked Measurement and Control Systems\\ \textit{High Accuracy changelog}}
\author{Maciej Lipi\'{n}ski\\CERN -- European Organization for Nuclear Research\\Warsaw University of Technology}
\date{January 2013}
\maketitle
% \thispagestyle{empty}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
This document proposes the way White Rabbit (WR) extension \cite{WRPTP} could be included into
the next revision of PTP \cite{PTPv2}. The original WR was devided into smaller key pieces
which can be also useful on their own (outside WR). This pieces are defined as separate
options in Chapter~\ref{chap:highAccuracyOption}. This key pieces (options) are used togother by a
\textit{High Accuracy Default Profile} defined in Chapter~\ref{chap:highAccuracyProfile}.
The new options/profile might require some small changes in the main body of the PTP
standard, these changes are listed in Chapter~\ref{chap:changesToPtpv2}.
Finaly, some solutions can be achieved in many ways, thus some doubts and open questions are
explained in Chapter~\ref{chap:openQuestions}.
In order to make this document "standard-human-readible", the main body includes
a consise information with references but without firm/concrete/boring proposals (i.e. text of
options/profile, or text-references changes to PTP standard). However, experts will find
precise propsals in the Appendixes.
\newpage
\input{highAccuracyOption}
\newpage
\input{highAccuracyProfile}
\newpage
\input{changesToPtpv2}
\newpage
\input{openQuestions}
\newpage
minor issues not included into High Accuracy changelog:
\begin{itemize}
\item Follow\_up sequence requirement: chap~\ref{chap:followUP}
\item modified BMC
\item
\end{itemize}
\section {Huge changes: Causes or Annex additions}
\subsection {Explicite port state configuration} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Based on John Eidson idea \cite{JohnExpliciteState}.
\subsubsection {Additional of portDS.explicitPortState}
\begin{itemize}
\item Configurable member of portDS
\item Shall be taken from enumeration: MASTER, SLAVE, PASSIVE
\item Initialization value shall be MASTER
\item Update of this value shall force state machine to enter INITIALIZATING state
\end{itemize}
\subsubsection {State machine for fixed-state configuration}
\begin{itemize}
\item Based on John Eidson \textit{Modified state machine} \cite{JohnExpliciteState} and
\textit{State machine for a slave-only implementation} (Figure 24 of \cite{PTPv2})
\item Shall be taken from enumeration: MASTER, SLAVE, PASSIVE
\item Initialization value shall be MASTER
\end{itemize}
\subsubsection {Data Set update rules}
Can be defined in a similar way as for the ANNOUNCE\_RECEIPT\_TIMEOUT\_EXPIRES case
in 9.2.6.11@83.
\subsubsection {Some issues}
\begin{itemize}
\item What if we have more ports explicitely configured to be SLAVEs ?
\begin{itemize}
\item We can actually want it to have redundant Slave connections, see
Sec~\ref{sec:multiSlaveBC}
\item If this is a misconfig... do we want to have some mechanims to resolve it ?
\end{itemize}
\item .
\end{itemize}
\subsection {Multi-slave boundary clock} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{sec:multiSlaveBC}
\subsubsection {Additional of currentDS.slavePortsPriorities}
\textbf{Explicit configuration} \\
Additional of portDS.slavePortsPriority configurable to port data set:
\begin{itemize}
\item Initialized to 0;
\item it is used in S1 (Table 16 of \cite{PTPv2}) to update currentDS.slavePortsPriorities
\end{itemize}
\textbf{Modified BMC} \\
Modification to BMC which enables for secondary Slaves. It is used to update
currentDS.slavePortsPriorities.
\subsubsection {Additional of portDS.offsetFromMaster and portDS.meanPathDelay}
Store these two values calculated for each port, if the port is a SLAVE.
\subsubsection {Update of currentDS.offsetFromMaster and currentDS.meanPathDelay}
Upate values of these fields using portDS.offsetFromMaster and portDS.meanPathDelay of the
port which has slavePortPriority = 0 in the currentDS.slavePortsPrioritie.
\subsubsection {Time source}
Take the time / update the currentDS.
\subsubsection {Selection of the best master clock algorithm (9.3.1@84->b)}
The idea is to enable selection of "Secondary Slave" as described in WRSPEC 6.4.2@22.
It could be done by :
\begin{description}
\item [Option 1:] Re-wording P2:
\textit{P2: The port is in the PASSIVE or SLAVE state because it is on a clockClass 128 or
higher node and is PASSIVE or (secondary) SLAVE to break a timing loop}
\item [Option 2:] Adding:\
\textit{S2: The port is in the SLAVE state because it is on a clockClass 128 or
higher node and is Secondary SLAVE to backup the Primary SLAVE}
\end{description}
\subsubsection {backupParentDS data set}
Th backupParentDS data set stores information about the backup Slaves (if exist) as
defined in WRSPEC 6.3.2.
\subsubsection {Multicast MAC address (F3@223}
In multi-slave BC, like when using peer-to-peer mechanism, we need to be able to communicate
with the other BCs even if (e)RSTP blocks the ports.... so we would need to be using
01-80-C2-00-00-0E address for all PTP messages.
\subsection {L1 syntonization + PTP option} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection {SYNTONIZATION\_FAULT}
The SYNTONIZATION\_FAULT event shall occure when the physical frequency lock is lost.
This event shell trigger:
\begin{itemize}
\item cleaning of ForeignMaster record for this port -- so that it is not used in BMC
\item clearing of WR stuff
\end{itemize}
\subsection {High Accuracy option} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection {MASTER\_CLOCK\_SELECTED}
The MASTER\_CLOCK\_SELECTED event is triggered as defined in WRSPEC 6.7.1@33.
\subsubsection {Update of HA-specific data sets}
Extension of Tables 13 through 16 @ 91-92 as defined in WRSPEC 6.4.3@24.
\subsection {Transport annex (modificatin to exisitng Ethernet ?} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Include L1 syntonization (maybe as proposed in ISPCS) - extend Table F.2@224.
The problem is a non-compatibility with the ethernet (default) transport layer (or it's
backward compatible as the new values are ingored ??). How to achive compatibility ??
If we detect announce message with transportSpecific field = 0, then change on WR the
transmitted value to 0 ?
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\section {Small changes: existing text modifications}
\subsection{Definitions (3.1@p4)}
Maybe include also syntonization into the definitions ?
\begin{description}
\item[option 1] Add definition of \textbf{time} which says that time is UTC/TAI and
(in some cases, i.e. High Accuracy) frequency.
\item[option 2] Add syntonization to definitions, example below.
\item[option 3] Leave at it is.
\end{description}
Example below, much more places in
this clause possible for including this change.
{\itshape
3.1.3 boundary clock: A clock that has multiple Precision Time Protocol (PTP) ports in a
domain and maintains the timescale used in the domain. It may serve as the source of time
\textbf{and/or frequency}, i.e., be a master clock, and may synchronize \textbf{and/or
syntonize} to another clock, i.e., be a slave clock.
}
\subsection{Primitive data types specifications (5.2@p12)}
Adding UInteger64 to Table 1.
\subsection{Timestamp (5.3.3@p13)}
Adding units smaller then nanoseconds to the Timestamp structure
(the scaledNanoseconds enable to carry femtoseconds, so go why not make it compatible), i.e.:
\begin{lstlisting}
struct Timestamp
{
UInteger48 secondsField;
UInteger32 nanosecondsField;
UInteger32 femtosecondsField;
};
\end{lstlisting}
\subsection{Asymmetry (6.2@p16 and 7.4.2@46)}
Maybe, this sentence needs to be updated:\\
\textit{"Asymmetry is not detectabel by PTP; however, if known, PTP corrects for asymmetry"}
\subsection{Boundary clock (6.5.3@p21)}
Figure 3 - Time, in some cases, means also frequency, if we change definition, it is ok,
otherwise, the figure could be modified, maybe.
\subsection{State (7.5.3@p52)}
Adding reference to High Accuracy State Machine as an example in the Note: \\
{{\itshape
NOTE -- This definition of stateful and stateless PTP ports does not rule out state
mechanisms other than that of 9.2 that may apply to a PTP port
\textbf{(e.g.: High Accuracy State Machine, clause x,y,z)}.
}
\subsection{clockAccuracy (7.6.2.5@p56)}
Use reserve values (00-1F) to add accuracies beyond 25ns, e.g.:\\
\begin{table}[ht!]
\caption{Table 6 -- clockAccuracy enumeration (extension)}
\centering
\begin{tabular}{| l | l |} \hline
\textbf{Value}(hex) & \textbf{Specification} \\ \hline
10 & The time is accurate to within 1 fs \\ \hline
11 & The time is accurate to within 2.5 fs \\ \hline
12 & The time is accurate to within 10 fs \\ \hline
13 & The time is accurate to within 25 fs \\ \hline
14 & The time is accurate to within 100 fs \\ \hline
15 & The time is accurate to within 250 fs \\ \hline
16 & The time is accurate to within 1 ps \\ \hline
17 & The time is accurate to within 2.5 ps \\ \hline
18 & The time is accurate to within 10 ps \\ \hline
19 & The time is accurate to within 25 ps \\ \hline
1A & The time is accurate to within 100 ps \\ \hline
1B & The time is accurate to within 250 ps \\ \hline
1C & The time is accurate to within 1 ns \\ \hline
1D & The time is accurate to within 2.5 ns \\ \hline
1E & The time is accurate to within 10 ns \\ \hline
1F & The time is accurate to within 25 ns \\ \hline
... & ... \\ \hline
\end{tabular}
\label{tab:clockAccuracy}
\end{table}
\subsection{currentDS data set member specification (8.2.2@p67-68)}
\subsubsection{Asymmetry}
\label{sec:asymmetry}
It could be useful/neat to add \textit{currentDS.asymmetry} dynamic current data set member. \\
\textbf{8.2.2.5 currentDS.asymmetry} \\
The value of currentDS.asymmetry is an implementation-specific representation of the current
value of the asymmetry between master-slave and slave-master delays as
computed/estimated/provided by the slave and defined in 7.4.2. The data type should be
TimeItnerval. The initialization value shall be eiher:
\begin{itemize}
\item The value in non-volatile read-write storage if implemented
\item Implementation-specific
\end{itemize}
\textbf{NOTE:} maybe not good... it is better to hide the implementation of asymmetry calculation...
as we have a direct formula to calculate master-slave delay...
Including asymmetry into DS will work in normal cases but for redundancy... it will not
as we need to know asymmetries for each port.
\subsubsection{Redundancy stuff (independant from High Accuracy)}
It could be useful for redundancy stuff to have currentDS.primarySlavePortNumber.\\
currentDS.{offsetFromMaster, meanPathDelay, Asymmetry} are members only for primary slave...
if we have redundant connections which we track, we need to track these parameters for each
slavePort and update currentDS with the primarySlavePort data.
\subsubsection{Transmission of a Follow\_UP message (9.5.10@104}
\label{chap:followUP}
We violate this piece of standard:
{\itshape The Follow\_Up message should be transmitted as soon as possible after the
transmission of the associated Sync message and shall be transmitted prior to the transmission
of a subsequent Sync message to the same destination address.}
in a case where the Sync message is transmitted while the clock is being adjust -- the obtained
HW-timestamp is flagged to be incorrect. Sending an incorrect timestamp in the Follow\_UP
message can cause problems, so we don't send the invalid timestamp in the Follow\_UP but
instead we resend the Sync message and it's correct timestamp in the Follow\_UP message.
The mentioned paragraph of the standard could be modified appripriately.
\subsection {Syntonization based on other mechanisms (12.1.3@123)}
Modification of the following statement probably is required.
{\itshape In some networks, there may be physical signals accessible to clocks that can be
used to syntonize two clocks. Such signals may be used provided the syntonization of clock
A to clock B matches the synchronization hierarchy established by the best master clock
algorithm (see 9.3), which means that Sync messages proceed from clock B to clock A.
These means are out of the scope of this standard. }
\subsection {Addition of tlvType value for High Accuracy option (Table 34@134)}
HIGH ACCURACY OPTION tlvType.
\subsection {PTP profile recommendations (19.3.1.2@185)}
\textit{A PTP profile should define the node types required, permitted, or prohibited}
So, we could should say that we only support BC/OC.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\section {Doubts and analysis of future use}
\subsection {High Accuracy (a.k.a White Rabbit) for transparent clocks (6.5.4 \& 6.5.5 @ 21-29)}
The purpose of using transparent clocks is to avoid PLL cascades. Since WR uses SyncE, each
device needs to lock to the incoming reference frequency, this includes transparent clocks.
This means that the main advantage of using transparent clocks is invalid in WR. However,
this argument does not prevent one from using WR in transparent clocks, thus further analysis.
\subsubsection {Network redundancy vs. timestamp enhanced precision}
There seems to be a problem if we have redundant paths between transparent clocks with
obtaining enhanced precision of the timestamps. To enhance the precision of the timestamp,
we loop back frequency and measure phase shift at the master. However, in the boundary clock
solution, we loopback local frequency (phase aligned). In transparent clock the frequency
would need to be looped back per port on the uplinks to enable proper phase detection (since
we do not perform per-clock phase aligment). The chosen source of frequency would need to be
propagated to the downlinks. This frequency propagation in BC-based WR solution is based on
PTP-hierarchy. In transparent clocks, such hierarchy is not really resolved. PTP bases the
Announce Message propagation on the underlying topology resolution (e.g. RSTP) and the
transparent clocks do not analyse Announce messages in this regards. Additionaly, in
peer-to-peer transparent clocks the propagation delay is measured in to ways: first one
switch requets measurement, then the other link partner - it does not seem to be working
in WR.
In the BC, the Announce message is not forwarded, so the underlying topology resolution
mechanims can be safely tricked (by sending Announce messages even on blocked ports and knowing
that they will not be forwarded by BC).
With TC, we need to relay on the underlying topology resolution, so the Link Setup Mechanism
in the next section cannot be triggered on the redundant links.
% \subsubsection {Timestamp enhanced precision}
%
% In order to use WR with transparent clocks the mechanims of extending timestamping precision
% by aligning slave's clock phase with that of the master using DDMTD-based phase detection would
% have to be rethinked or the phase aligment done. The later seems more "natural" in peer-to-peer
% transparent clocks. However, such a solution makes the transparent clocks even less transparent.
% Furthermore, a redundancy in the network would mean phase-aligment per port but syntonization
% to only one source of frequency.
\subsubsection {Link setup mechanism}
It seems that the same mechanims (as for boundary/ordinary clocks) can be used for transparent
clocks -- the Announce message that traverses from GrandMaster through transparent clocks would
trigger \textit{Link Setup} on all transparent clocks and ordinary clocks at the end. But,
there is an issue described above regarding redundant networks. It would work with the
eRSTP -- but this is not a comfort.
\subsection {Peer-to-peer boundary clock}
Peer-to-peer mechanims between boudnary clocks could be interesting for redundant networks.
\subsection{\{portDS, transparentClockPortDS\}.\{meanPeerPathDelay, peerAsymmetry\}}
The definition of \textit{meanPeerPathDelay} is a bit different then \textit{meanPathDelay}.
It seems a bit misleading. If \textit{meanPeerPathDelay} is mean, we need
\textit{peerAsymmetry}, otherwise, it's \textit{oneWayPathDelay}:
\begin{itemize}
\item portDS data set member specification (8.2.5@p72)
\item transparentClockPortDS data set member specification (8.3.3@p75)
\end{itemize}
\subsection{State Machine - Table 10 - INITIALIZATING (9.2.5@77)}
The sentence \textit{If one port of a boundary clock is in the INITIALIZING state, then all
ports shall be in the INITIALIZING state.} can be problematic:
\begin{itemize}
\item In the explicite port state configuration, the state machine needs to be set to
INITIALIZATING after setting new \textit{explicite state}. Often, we want to confgure
a single port, during operation, without affecting the others.
\end{itemize}
Maybe a sentence saying : \textit{With provision to clause x.y (explicite port state
configuration)}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\section {Possible changes to original WR}
\subsection {Timestamping point}
Currently, as specified in WRSPEC (B3@49):\\
\textit{Timestamps in WR are taken when the PCS detects a Start-of-Frame Delimiter (SDF)
character in the incoming or outgoing dta stream.} \\
In PTPv2 (6.6.5@36) \\
The \textit{message timestamp point} is defined at the begining of the
Ethernet Frame Header, so 1 octet later (it seems).
In PTPv2 (7.3.4@44) \\
Unless otherwise specified in a transport-specific annex to this standard, the message
timestamp point for an event message shall be the beginning of the first symbol after the
Start of Frame (SOF) delimiter.\\
This is not a big problem, we just need to modify the implementation, i.e. by adding an
appropriate delay of 1 octect.
\subsection {Redundancy}
Storing info about secondary offsetFromMaster/meanPathDelay/Asymmetry (Sec~\ref{sec:asymmetry}):
\begin{itemize}
\item PTPv2: 8.2.2.1@67
\item WRSPEC: 6.4@22
\end{itemize}
\subsection {Synchronization moment}
According to the standard (9.5.4-9.5.5@98-99), the synchronization of clock is done
after reception of Sync (one-step) or Follow\_UP message (two-step). In WR it's rather
at different point in time (to be verified).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\section {Old stuff}
\section {Date of submission:} 23 July 2012
\section {Clauses of IEEE 1588-2008 (V2) proposed for revision:}
\begin{itemize*}
\item Changes required in clauses: 7.6.2.5, 14.1.1, Annex F.4 and Annex J
\item Changes considered useful in clauses: 3.1, 5.3.3, 7.5.3, 9.3.1 and 9.5.10
\end{itemize*}
\section {Character of the proposed revision:}
New feature. This revision proposes extending PTPv2 to enable a high accuracy of synchronization --
the sub-nanosecond level of accuracy that is beyond what is achievable by the current implementations.
\section {Reason or rational for the proposed revision}
It has been shown \cite{WRinGS}\cite{WRinISPCS2011} that PTPv2 can be implemented in such a way that
a sub-nanosecond accuracy and picoseconds jitter of synchronization can be achieved over a number of
boundary clocks and several kilometers of cables. Such an implementation benefits from additional mechanisms
(i.e. Synchronous Ethernet \cite{SynchE}, phase detection \cite{icalepcs09}) incorporated into PTPv2 in
a way that keeps interoperability with current implementations while improving greatly the performance.
The mechanisms used could be incorporated into the IEEE 1588 standard to indicate to the vendors the optional means to enhance
PTP's performance and to ensure interoperability of such high-accuracy implementations.
The presented solution is based on \cite{WRPTP}.
% , the author sees a potential for the solution's
% further simplification/alignment with PTP in the process of standardization.
\section {Proposed revision:}
%loads of text here
In this section four types of changes are proposed:
\begin{enumerate*}
\item Section~\ref{syncEandEthernet} -- addition/modification of the transport annex;
\item Section~\ref{highAccuracy} -- addition of an optional "high accuracy" clause;
\item Section~\ref{HAprofile} -- addition of the "Default High Accuracy" profile to Annex J ;
\item Section~\ref{PTPchanges} -- minor changes to the existing clauses to accommodate (1)-(3).
\end{enumerate*}
\subsection{Syntonization capability of IEEE 802.3/Ethernet (modification of Annex F.4)}
\label{syncEandEthernet}
It is proposed to extend Annex F (it is also possible to add a new annex) such that the physical syntonization
of clocks is foreseen (i.e. by using Synchronous Ethernet). Proposed changes to Table F.2 and the addition of
a new Table F.3 are presented below.
%\vspace*{-1em}
\begin{table}[ht!]
\caption{\textcolor{gray}{Table F.2 -- Ethernet transportSpecific field} (Changes to existing Table F.2)}
\centering
\begin{tabular}{| l | l | p{9cm} |} \hline
\textcolor{gray}{\textbf{Enumeration}} & \textcolor{gray}{\textbf{Value}(hex)} & \textbf{\textcolor{gray}{Specification}} \\ \hline
\textcolor{gray}{DEFAULT} & \textcolor{gray}{ 0} & \textcolor{gray}{All PTP layer 2 Ethernet transmission not covered by another enumeration value} \\ \hline
\textcolor{gray}{ETHERNET\_AVB} & \textcolor{gray}{1} & \textcolor{gray}{This value is reserved for use in connection with the standard being developed by the IEEE 802.1 AVB Task Group as P802.1AS} \\ \hline
ETHERNET\_SYNCE&2-6 & Ethernet $+$ Synchronous Ethernet, further specified in Table~F.3\\ \hline
\textcolor{gray}{Reserved} & \textcolor{gray}{ 6-F} & \textcolor{gray}{Reserved for assignment in future version s of the standard} \\ \hline
\end{tabular}
\label{tab:transportSpecific}
\end{table}
%\vspace*{-2em}
\begin{table}[ht!]
\caption{Table F.3 - Syntonization capable Ethernet transportSpecific values (new table)}
\centering
\begin{tabular}{| l | p{13cm} |} \hline
\textbf{Value}(hex) & \textbf{Specification} \\ \hline
2 or 3 & Syntonization distribution topology aligned with PTP topology
(i.e~SyncE without using Ethernet Synchronization Messaging Channel (ESMC) \cite{SynchE2}) \\ \hline
4 or 5 & Syntonization distribution topology independent from PTP topology
(i.e.~SyncE using Ethernet Synchronization Messaging Channel (ESMC) \cite{SynchE2}) \\ \hline
2 or 4 & Recovered clock loopback disabled \\ \hline
3 or 5 & Recovered clock loopback enabled \\ \hline
\end{tabular}
\label{tab:transportSpecific}
\end{table}
When recovered clock loopback is enabled, a port (acting as a slave) which recovers frequency from the incoming data stream
shall, after proper phase alignment, encode such frequency into the outgoing data stream and send it back to the source
(a port acting as a master).
\subsection{High Accuracy (optional) clause}
\label{highAccuracy}
It is proposed to add an optional clause that could be implemented by devices for high accuracy synchronization.
The actions which are defined in this clause take place while a PTP link is being established; that is in the
UNCALIBRATED state of the BMC-selected slave port and in the MASTER state of the BMC-selected master port.
This clause presents the following requirements to the hardware/implementation:
\begin{itemize*}
\item It shall feature constant rx/tx latencies during operation and inform higher layers
about these latencies values (e.g. measure rx/tx latencies using calibration pattern).
\item It shall provide timestamps with a sufficient precision (i.e. using syntonization-capable Ethernet mapping,
transportSpecific=0x3, and phase detection techniques), the fractional nanosecond part of a timestamps shall
be included in the correctionField as specified in PTPv2.
\item It shall be able to generate the calibration pattern on request
(RD+K28.7 code group, Appendix 36A.2 of IEEE802.3).
\item It shall provide an estimation of the asymmetry using parameters provided by this clause
(e.g. using Link Delay Model, tx/rx latencies and relative delay coefficient as explained in \cite{WRPTP}).
\end{itemize*}
\vspace{-0.2cm}
\subsubsection{Definition of Data Set Fields}
The implementation-specific Data Set fields are defined to store per-port clause specific data:
(1)~values of hardware characteristics (e.g.: rx/tx latencies);
(2)~configuration parameters (e.g.: whether a calibration pattern is required, calibration period/pattern);
(3)~current state of the High Accuracy State Machine (section~\ref{fsm}).
The (re-)initialization methods and values are defined.
\vspace{-0.2cm}
\subsubsection{Definition TLVs}
It is proposed to define TLVs recognized by tlvType HIGH\_ACCURACY\_OPTION
(extension to clause 14.1.1) of the format presented in Table~\ref{tab:TLVformat}. Different messages of such TLV type
are recognized by messageID as defined in Table~\ref{tab:MessageId}. These TLVs are used to
exchange clause-specific data and trigger transitions in the High Accuracy State Machine (section~\ref{fsm}).
They are carried in Signaling Messages or suffixed to an Announce message (see Table~\ref{tab:MessageId}).
\vspace*{-1.0em}
\begin{table}[h!]
\caption{HIGH\_ACCURACY\_OPTION TLV format}
\centering
\begin{tabular}{| c | c | c | c | c | c | c | c | c | c |}
\hline
\multicolumn{8}{|c|}{\textbf{Bits}} & \textbf{Octets} & \textbf{TLV} \\
%\hline
\cline{0-7}
7 & 6 & 5 & 4 & 3 & 2 & 1 & 0 & & \textbf{Offset} \\
\hline
\multicolumn{8}{|c|}{tlvType } & 2 & 0 \\ \hline
\multicolumn{8}{|c|}{lengthField } & 2 & 2 \\ \hline
\multicolumn{8}{|c|}{messageID} & 2 & 4 \\ \hline
\multicolumn{8}{|c|}{dataField} & N & 6 \\ \hline
\end{tabular}
\label{tab:TLVformat}
\end{table}
\vspace*{-2em}
\begin{table}[tbp]
\caption{Message ID values/types}
\centering
\begin{tabular}{| l | p{2.5cm} | c | c |} \hline
\textbf{Message Name} & \textbf{MessageId value (hex)} & \textbf{Sent in message type} \\ \hline
SLAVE\_PRESENT & 0x1000 & Signaling \\ \hline
LOCK & 0x1001 & Signaling \\ \hline
LOCKED & 0x1002 & Signaling \\ \hline
CALIBRATE & 0x1003 & Signaling \\ \hline
CALIBRATED & 0x1004 & Signaling \\ \hline
HIGH\_ACCURACY\_ON & 0x1005 & Signaling \\ \hline
ANN\_SUFIX & 0x2000 & Announce \\ \hline
\end{tabular}
\label{tab:MessageId}
\end{table}
\subsubsection{High Accuracy State Machine}
\label{fsm}
The High Accuracy State Machine (HASM) controls the process of establishing a high accuracy (abbreviated \textit{HA}
in the figures)
link between two ports implementing high accuracy option. The HASM shall be non-preemptive with regard
to the execution of the PTP State Machine. It enables syntonization over the physical layer,
optional measurement of tx/rx latencies and exchange of their values across the link. The HASM shall be
executed in the PTP UNCALIBRATED state on the port on which the recommended (by BMC) state is SLAVE --
called Slave -- and in the PTP MASTER state on the port on which the recommended state is MASTER -- called
Master. The HASM is depicted in Figure~\ref{fig:wrFSM} and described in Table~\ref{tab:wrFSMdesc}.
The HASM shall be started when a port in non-Slave state is recommended (by BMC) to be Slave and
appropriate conditions are fulfilled (e.g. both communicating ports implement the high accuracy option)
-- D\_HA\_SETUP\_REQ transition event is triggers.
% \vspace*{-1.0em}
\begin{table}[hp!]
\caption{State definitions}
\centering
\begin{tabular}{| c | p{12.2cm} |} \hline
\textbf{Port State} & \textbf{Description} \\
%& \\
\hline
\small
IDLE & The HASM shall be in the IDLE state while establishing of High Accuracy link is not being performed.
\\ \hline
PRESENT & Slave-only state. Upon entering this state, the Slave sends a SLAVE\_PRESENT
message to the Master and waits for the $LOCK$ message.\\ \hline
M\_LOCK & Master-only state. Upon entering this state, the Master sends the $LOCK$
message. In this state, the Master waits for the Slave to finish
successfully the frequency locking process (indicated by reception of the $LOCKED$ message). \\ \hline
S\_LOCK & Slave-only state. The Slave locks its clock signal to the frequency distributed
over the physical layer by the Master. \\ \hline
LOCKED & Slave-only state. Upon entering this state, the Slave sends the $LOCKED$ message
to inform that it is syntonized, and waits for the \textit{CALIBRATE} message.
\\ \hline
CALIBRATION & In this state, optional calibration of the port's rx and/or
tx latencies can be performed.
Upon entering this state, the Port sends a \textit{CALIBRATE} message to
the other Port. In this message the characteristics of calibration pattern
are sent. If calibration is not needed, the next state is entered, otherwise an
indication from the hardware
that the calibration has been finished successfully is awaited. \\ \hline
CALIBRATED & Upon entering this state the WR Port sends a \text{CALIBRATED} message with the
values of its rx/tx latencies. \\ \hline
RESP\_CALIB\_REQ & The Port's action in this state depends on the content of CALIBRATION message.
If required, the calibration pattern shall be enabled (sent). The pattern shall be
disabled on exiting the state (after the timeout or reception of the
\textit{CALIBRATED} message).\\ \hline
HA\_LINK\_ON & Upon entering this state, the Master sends the HIGH\_ACCURACY\_LINK\_ON message.
In this state, the values of the clause-defined Data Set fields are set.
The \textit{IDLE} state is entered unconditionally.
The execution of the HASM is considered to be completed successfully. \\ \hline
\end{tabular}
\label{tab:wrFSMdesc}
\end{table}
\begin{figure}[ht!]
\centering
% \vspace{-1.3cm}
\includegraphics[width=.8\textwidth]{fig/wrFSM.eps}
\caption{High Accuracy State Machine}
\label{fig:wrFSM}
\end{figure}
\subsubsection{Event definition}
The implementation of two PTP State Machine transition events described as \textit{implementation-specific} is defined in this clause.
The \textbf{SYNCHRONIZATION\_FAULT} shall occur when syntonization break is detected by hardware
(e.g. link disconnected) or the high accuracy mode is exited out of another reason (e.g. management). It shall result in
clearing the record of foreign masters. The \textbf{MASTER\_CLOCK\_SELECTED} shall occur on the successful
completion of the HASM execution on the port selected by BMC as Slave and
being in PTP\_UNCALIBRATED state. Consequently, the PTP\_SLAVE state shall be entered.
\subsection{High Accuracy Default Profile (addition to Annex J)}
\label{HAprofile}
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 set to 3 (i.e. SyncE without ECMS and with recovered clock loopback enabled).
However, using transportSpecific flag set to 0 (DEFAULT) is allowed if the link partner is not
SyncE-capable. Such a situation shall be detected and handled properly by a port implementing this profile, therefore guaranteeing
backward-compatibility and interoperability. \\
By default the "High Accuracy" option shall be active. If a link-partner uses mapping defined in Annex F
with DEFAULT transport Specific field, the "High Accuracy" option shall be disabled.
\newpage
\subsection{Changes to clauses of PTPv2}
\label{PTPchanges}
\vspace*{-1em}
\begin{table}[h!]
\begin{tabular}{ l p{12.5cm}}
\multicolumn{2}{l}{\textbf{Required changes:}} \\
Clause 7.6.2.5: & Table 6 -- add accuracies greater then 25ns \\
Clause 14.1.1: & Table 34 -- add HIGH\_ACCURACY\_OPTION tlvType \\
% Annex F.4: & Described in section~\ref{highAccuracy} \\
% Annex J: & Described in section~\ref{HAprofile} \\
\multicolumn{2}{l}{ \textbf{Possibly helpful changes:}} \\
Clause 3.1: & Add time definition (time = time of day and/or frequency) \\
Clause 5.3.3: & Add picoseconds to the Timestamp structure \\
Clause 7.5.3: & Add High Accuracy State Machine as an example in the NOTE \\
% Clause 8.2.5.1 & Add portMode field to portDS (Master-only/Slave-only/Master-and-Slave \\
% Clause 9.3.2 & Modify default BMC in such way that port with portMode=Slave-only will not enter Slave
% state and the functioning of Boundary Clock (other ports) is not broken. Similarly
% with Master-only \\
Clause 9.3.1: & Add profile-specific decision code to enable e.g. choice of
secondarySlave \\
Clause 9.5.10: & Waive the requirement of sending Follow\_Up message prior to the transmission
of a subsequent Sync Message -- this is to enable resending Sync Messages
when detecting that Sync Message was sent on clock-adjustment and the timestamp
is faulty. \\
\end{tabular}
\end{table}
\vspace*{-1em}
\section {Benefits of the proposed revision}
This revision allows a high-accuracy implementation of the PTP protocol by providing to an implementer
a standardized way of deriving a stable frequency from the physical medium, evaluating physical delays,
using phase detection for enhancing timestamping precision and evaluating link asymmetry.
Moreover, the modification proposed in section~\ref{syncEandEthernet} can be useful in a currently
developed (by ITU-T) PTP Telecom profile.
\section {Backward compatibility to IEEE-1588:} A: Complete backward compatibility, i.e. V2 and the
revised version interoperate although V2 devices do not receive benefits of revision.
\newpage
\vspace*{-1em}
\begin{thebibliography}{9}
\footnotesize
\bibitem{WRinGS}
M. Lipi\'{n}ski, T. W\l{}ostowski, J. Serrano, P. Alvarez and P. Moreira
\emph{Performance results of the first White Rabbit installation for CNGS time transfer}.
ISPCS2012 Proccedings,
2012 \\
\vspace*{-2em}
\bibitem{WRinISPCS2011}
M. Lipi\'{n}ski, T. W\l{}ostowski, J. Serrano, P. Alvarez
\emph{White Rabbit: a PTP Application for Robust Sub-nanosecond Synchronization}.
ISPCS2011 Proccedings,
2011 \\
\vspace*{-2em}
\bibitem{SynchE}
ITU-T G.8262/Y.1362
\emph{Timing characteristics of a synchronous
Ethernet equipment slave clock}.
TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU,
07/2010.\\
\vspace*{-2em}
\bibitem{SynchE2}
ITU-T G.8264/Y.1364
\emph{Distribution of timing information through packet network}.
TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU,
10/2008.\\
\vspace*{-2em}
\bibitem{icalepcs09}
J. Serrano, P. Alvarez, M. Cattin, E. G. Cota, J. H. Lewis, P. Moreira, T. W\l{}ostowski
and others,
\emph{The White Rabbit Project}.
ICALEPCS TUC004,
2009.\\
\vspace*{-2em}
\bibitem{WRPTP} %done x
Emilio G. Cota, Maciej Lipinski, Tomasz Wostowski, Erik van der Bij, Javier
Serrano
\emph{White Rabbit Specification: Draft for Comments}.
CERN, Geneva
07/2011.\\
\vspace*{-2em}
\bibitem{JohnExpliciteState} %done x
John Eidson,
\emph{Option to explicitely confgure port state}.
ISPCS2012, San Francisco, USA
2012.\\
\vspace*{-2em}
\bibitem{PTPv2} %done x
IEEE Instrumentation and Measurement Society
\emph{IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems}.
IEEE Std 1588TM-2008,
2008, New York, USA\\
\vspace*{-2em}
\end{thebibliography}
\end{document}
...@@ -4,13 +4,17 @@ ...@@ -4,13 +4,17 @@
\subsection{Multi-slave boundary clock} \subsection{Multi-slave boundary clock}
\label{chap:multiSlaveBC} \label{chap:multiSlaveBC}
This option enables a BC to have many ports in a SLAVE state. One of the SLAVE ports is Note necesserily connected to \textit{High Accuracy}. A option which 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 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, 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 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. 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 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. (also SDA modified per clause~\ref{chap:modifiedSDA}) to enter PASSIVE state.
This requires using multicast MAC address 01-80-C2-00-00-0E (in case of mapping PTP over
Ethernet) for PTP messages in order to enable communication on Spanning Tree -blocked
ports.
\subsection{High Accuracy Signaling Message address } \subsection{High Accuracy Signaling Message address }
...@@ -40,10 +44,11 @@ is in arbitrary place.... such setting would need to be somehow defined. ...@@ -40,10 +44,11 @@ is in arbitrary place.... such setting would need to be somehow defined.
\subsection{L1 Syntonization related flags} \subsection{L1 Syntonization related flags}
I'm not sure why AVB has different transportSpecific field value. I think it is only 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 in order to make it not inter-operable with "standard" PTP. If the information
about L1 Syntonization into transportSpecific field of Ethernet mapping (Annex F), about L1 Syntonization is put into transportSpecific field of Ethernet mapping (Annex F,
we will limite High Accuracy options of \textit{{Layer 1 Syntonization}} only to as previously suggested in \cite{WRinPTPv3}),
this mapping. But, actually, High Accuracy options (even profile) can be used at least over it limits the \textit{Layer 1 Syntonization} option only to
single mapping. But, actually, it (and the profile) can be used at least over
IP as well. IP as well.
\subsection{Calibration Pattern definition} \subsection{Calibration Pattern definition}
...@@ -54,4 +59,44 @@ Or, it can be indicated in the CALIBRATE\_REQ: ...@@ -54,4 +59,44 @@ Or, it can be indicated in the CALIBRATE\_REQ:
\item give pattern (e.g.: 111110000) and repetition size/rate/whatever \item give pattern (e.g.: 111110000) and repetition size/rate/whatever
\item indicate kind -- some reference somewhere \item indicate kind -- some reference somewhere
\item indicate character to be sent (e.g.: RD+K28.7 code group) \item indicate character to be sent (e.g.: RD+K28.7 code group)
\end{itemize*} \end{itemize*}
\ No newline at end of file
\subsection{High Accuracy Default Profile inter-operability}
\label{chap:q:highAccuracyProfileInter-operability}
\textbf{On one hand it can be specified in the profile that:} \\
By default the "High Accuracy" options shall be active. If the Communication Path
partner of a given port implements \textit{Delay Request-Response Default PTP profile},
the "High Accuracy" options shall be disabled on that 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 (parent) for the later based on the decision of the Data Comparison
Algorithm (defaultDS.priority1 value). See clause~\ref{chap:q:per-portOptionEnabling}.\\
\textbf{... on the other hand} \\
A Boundary Clock is a natural bridge between different Profiles.
So, it can be said that both profiles (i.e. High Accuracy and Request-Response Default Profiles)
are implemented on each port of the BC and depending on the path-partner configuration (which
can be determined thanks to High Accuracy Suffix) one profile is used or the other.
\subsection{Explicit Port State Configuration}
\label{chap:q:explicitPortStateConfiguration}
\subsubsection{Per-port option enabling}
\label{chap:q:per-portOptionEnabling}
It could be considered to enable only some ports of a Boundary Clock to
have their ports set using \textit{Explicit Port State Configuration}. In other words,
to apply the \textit{Explicit Port State Configuration} option on port bases. In such case,
the ports of a BC implementing \textit{High Accuracy Default Profile} which "speak" with BC
implementing \textit{Delay Request-Response Default PTP profile} would be set to SLAVE
state using this option. Just an idea, probably there is a better solution.
\subsubsection{PTP State Machine}
The sentence in PTP (clause~9.2.5 \cite{PTPv2}):\\
\textit{If one port of a boundary clock is in the INITIALIZING state, then all
ports shall be in the INITIALIZING state.} \\
can be problematic. Reconfiguration of port state requires going through INITIALIZING state.
...@@ -96,22 +96,50 @@ Networked Measurement and Control Systems\\ \textit{High Accuracy changelog}} ...@@ -96,22 +96,50 @@ Networked Measurement and Control Systems\\ \textit{High Accuracy changelog}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage \newpage
This document proposes the way how White Rabbit (WR) extension \cite{WRPTP} could be included into This document proposes the way White Rabbit (WR) extension \cite{WRPTP} could be included into
the next revision of PTP \cite{PTPv2}. The original WR was divided into smaller key pieces the next revision of PTP \cite{PTPv2}. The original WR was divided into smaller key pieces
which can be also useful on their own (outside WR). This pieces are defined as separate which can be also useful on their own (outside WR). This pieces are defined as separate
options in Chapter~\ref{chap:highAccuracyOption}. The options are used by a \textit{High Accuracy} options in Chapter~\ref{chap:highAccuracyOption}. The options are used
\textit{High Accuracy Default Profile} defined in Chapter~\ref{chap:highAccuracyProfile} by a \textit{High Accuracy Default Profile} defined in Chapter~\ref{chap:highAccuracyProfile}
to enable high quality synchronization. to enable high quality synchronization.
The new options/profile might require some small changes in the main body of the PTP The new options/profile might require some small changes in the main body of the PTP
standard, these changes are listed in Chapter~\ref{chap:changesToPtpv2}. standard, these changes are listed in Chapter~\ref{chap:changesToPtpv2}.
Finaly, some solutions can be achieved in many ways, thus some doubts and open questions are Finaly, some solutions can be achieved in many ways, thus some doubts and open questions are
explained in Chapter~\ref{chap:openQuestions}. explained in Chapter~\ref{chap:openQuestions}.
In order to make this document "standard-human-readible", the main body includes In order to make this document "standard-human-readible" and reasonably consise, it does
a consise information with references but without firm/concrete/boring proposals (i.e. text of not include detailed solutions or precise definitions but more high level description what
options/profile, or text-referenced changes to PTP standard). However, experts will find each clause should specify.\\
precise propsals in the Appendixes. \\
The \textit{High Accuracy options} include:
\begin{itemize*}
% \begin{description*}
\item \textbf{General Clause} -- defines means of communication between clocks implementing
the options (i.e. \textit{Announce Messages Suffix} and \textit{High Accuracy
Signaling Messages})
\item \textbf{Layer 1 Syntonization} -- defines option which enables syntonization
on Layer 1, i.e. using SyncE or alike
\item \textbf{Rx/Tx Delays Calibration} -- defines protocol tools to perform calibration
of internal rx/tx delays
\item \textbf{Explicit Port State Configuration} -- defines how states of a clock (i.e. BC/OC)
can be explicitly configured (to be MASTER or SLAVE or PASSIVE) through configuration
\item \textbf{Medium Asymmetry Estimation} -- describes how to estimate asymmetry introduced
by communication medium.
\end{itemize*}
% \end{description*}
The \textit{High Accuracy Default Profile}:
\begin{itemize*}
\item defines hardware requirements
\item uses \textit{High Accuracy options} (defines their parameters)
\item defines PTP attributes/parameters/configuration
\item describes how \textit{High Accuracy Communication Path} is established
\end{itemize*}
\textcolor{red}{Some parts of the text in clause \ref{chap:highAccuracyOption}
\and \ref{chap:highAccuracyProfile} are in red color. It means that I was not
very confident about this -- further description is provided in a referenced clause
of \textit{Open Questions}.}
\newpage \newpage
\input{highAccuracyOption} \input{highAccuracyOption}
...@@ -123,6 +151,9 @@ precise propsals in the Appendixes. ...@@ -123,6 +151,9 @@ precise propsals in the Appendixes.
\input{openQuestions} \input{openQuestions}
\newpage \newpage
\newpage
\tableofcontents
\begin{thebibliography}{9} \begin{thebibliography}{9}
\footnotesize \footnotesize
\bibitem{WRinGS} \bibitem{WRinGS}
...@@ -177,6 +208,21 @@ precise propsals in the Appendixes. ...@@ -177,6 +208,21 @@ precise propsals in the Appendixes.
2008, New York, USA\\ 2008, New York, USA\\
\vspace*{-2em} \vspace*{-2em}
\bibitem{IEEE802.3}
IEEE Std 802.3-2008
\emph{IEEE Standard for Information technology -- Telecommunications and information exchange
between systems -- Local and Metropolitan area networks -- Specific requirements}.
IEEE Computer Society, New York,
2008.\\
\vspace*{-2em}
\bibitem{WRinPTPv3}
Maciej Lipinski
\emph{High accuracy extension/option/profile}.
Special Session of ISPCS2012, San Francisco,
2012.\\
\vspace*{-2em}
\end{thebibliography} \end{thebibliography}
......
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