| // Copyright 2015 The Vanadium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package clock |
| |
| import ( |
| "time" |
| ) |
| |
| // ClockData is the persistent state of syncbase clock used to estimate current |
| // NTP time and catch any unexpected changes to system clock. |
| type ClockData struct { |
| // UTC time in unix nano seconds obtained from system clock at boot. |
| SystemTimeAtBoot int64 |
| |
| // Skew in nanoseconds between the system clock and NTP time. |
| Skew int64 |
| |
| // The elapsed time in nanoseconds since boot as last seen during a run of |
| // clockservice. This is used to determine if the device rebooted since the |
| // last run of clockservice. |
| ElapsedTimeSinceBoot int64 |
| |
| // Timestamp received from NTP during last NTP sync. The last NTP sync could |
| // be done either by this device or some other device that this device |
| // synced its clock with. |
| LastNtpTs ?time.Time |
| |
| // Number of cumulative reboots since last NTP sync. If the LastNtpTs was |
| // received from a peer device then this field represents the number |
| // of reboots on that device since it did NTP and the number of reboots |
| // on this device since syncing with the peer device. |
| NumReboots uint16 |
| |
| // Number of hops between this device and the device that did the last |
| // NTP sync. |
| NumHops uint16 |
| } |