Requested revision
Standard: | IEEE Std 802.1AS-2020 | Clause: | 10.2.9.2.1 |
Clause title: | setPSSyncCMSS (gmRateRatio) |
Rationale for revision
Item c)2) of 10.2.9.2.1 could be confusing to some readers. This item indicates that the quantity gmRateRatio x (currentTime – localTime) is added to the followUpCorrectionField. However, the definitions of currentTime (see 10.2.4.12) and localTime (see 10.2.4.19), along with the statement localTime =currentTime in the ClockMasterSyncReceive state machine, imply that currentTime and localTime are equal, and therefore this term is zero. Readers might wonder why the term is included. A NOTE giving more explanation of this would be helpful.
Proposed text
Add the following NOTE 1 to 10.2.9.2.1, just after item c)2), and renumber subsequent NOTES as needed:
NOTE 1: The definition of currentTime (see 10.2.4.12) and localTime (see 10.2.4.19), and the statement localTime = currentTime in the RECEIVE_SOURCE_TIME state of the ClockMasterSyncReceive state machine, imply that currentTime and localTime are always equal and the quantity gmRateRatio x (currentTime – localTime) is always zero. Both localTime and masterTime are updated by the ClockMasterSyncReceive state machine. The updates occur both when sourceTime is received from the ClockSource (indicated by the variable rcvdClockSourcReq being TRUE) and when the LocalClock entity itself updates by one tick (indicated by the variable rcvdLocalClockTickCMSR being TRUE). masterTime is updated to either the sourceTime (if the update occurs due to receipt of sourceTime from the ClockSource) or incremented by one LocalClock tick interval multiplied by gmRateRatio. localTime is updated by setting it equal to currentTime. The result is that localTime is always equal to the value of currentTime when masterTime was most recently updated. localTime, currentTime, and masterTime are per PTP Instance global variables. When they are updated, their values are known to all state machines. In setting (i)
preciseOriginTimestamp to masterTime with fractional ns truncated, and followUpCorrectionField to (ii) the fractional ns part of masterTime, plus ((iii) gmRateRatio x (currentTime - localTime), the contributions (i) plus (ii) give the estimate of the ClockSource time when masterTime was most recently updated, because this latest computed masterTime includes any updates due to LocalClock ticks. The quantity (iii) is zero in the model here, because currentTime and localTime are equal in this model. However, in practice there could be situations where currentTime and localTime are not equal. For example, if the ClockMasterSyncReceive state machine is implemented as a different module than the ClockMasterSyncSend state machine, with masterTime and localTime being sent from the ClockMasterSyncReceive state machine to the ClockMasterSyncSend state machine, then currentTime and localTime will not be equal. In this case, currentTime in c)2) is the value of the LocalClock time when the ClockMasterSyncSend state machine receives masterTime and localTime from the ClockMasterSyncReceive state machine.
Impact on existing networks
There is no impact on existing networks.
Originator
Name: | Geoffrey M. Garner | Email: | gmgarner@alum.mit.edu |
Affiliation: | Huawei | ||
Submitted: | 2021-08-18 |