3.2.1.1 Time Service Elements

The time service implementing this RPC interface MUST maintain the following abstract data elements that describe its capabilities:

IsTimeServer: A Boolean flag that indicates whether the time service provides a time source using NTP, as specified in [RFC1305].

IsReliableTimeServer: A Boolean flag that indicates whether the time service provides a reliable time source using NTP, as specified in [RFC1305].

TimeProviderList: A list of the time providers for the time service.

EventLogFlags: An unsigned integer that indicates the combination of flags that determines how the time provider logs events into an event log. The value MUST be a bitwise OR of zero or more of the following flags.

Value

Meaning

EvtLog_TimeJump

0x00000001

Log an event when the time service sets the clock directly to adjust the local clock.

EvtLog_SourceChange

0x00000002

Log an event when the time service synchronizes from a different time source.

All other values are reserved for future use.

TimeJumpAuditOffset:  An unsigned integer that indicates the time jump audit threshold, in seconds. If the time service adjusts the local clock by setting the clock directly, and the time correction is more than this value, then the time service logs an audit event.

MaxNegPhaseCorrection: An unsigned integer that indicates the maximum negative time correction value, in seconds, that the time service is allowed to use to adjust the local clock. If the time difference is negative and is more than this value, the time service discards the time sample. If the value is set to 0xFFFFFFFF, which is a special case, then the time service MUST be allowed to make any correction.

MaxPosPhaseCorrection: An unsigned integer that indicates the maximum positive time correction value, in seconds, that the time service is allowed to use to adjust the local clock. If the time difference is positive and is more than this value, the time service discards the time sample. If the value is set to 0xFFFFFFFF, which is a special case, then the time service MUST be allowed to make any correction.

MaxAllowedPhaseOffset: An unsigned integer that indicates the maximum time correction value, in seconds, that the time service is allowed to use to adjust the local clock, using the clock rate to skew the clock instead of setting the clock directly. If the time difference is more than this value, the time service MUST set the clock directly without skewing.

FrequencyCorrectRate: An unsigned integer that indicates the correction rate that determines how fast the time service adjusts the clock rate as a frequency correction. For more information on clock discipline algorithms, see [NTP-TR9733i] and [NTP-TR9733] section 4.

PollAdjustFactor: An unsigned integer that indicates the correction rate that determines how fast the time service adjusts the poll interval. For more information on adjusting the poll interval, see [NTP-TR9733i] and [NTP-TR9733] section 4.

PhaseCorrectRate: An unsigned integer that indicates the correction rate that determines how fast the time service adjusts the time difference by skewing the clock as a phase correction. For more information on the correction rate, see [NTP-TR9733i] and [NTP-TR9733] section 4.

UpdateInterval: An unsigned integer that indicates the number of clock ticks between each time correction. For more information on clock ticks, see [NTP-TR9733i] and [NTP-TR9733] section 4.

FileLogName: A null-terminated string that represents the location of the time service debug log file. The string value is implementation-specific.

FileLogEntries: A null-terminated string that represents the debug information that is logged in the time service debug log file. The string value is implementation-specific.<23>

FileLogSize: An unsigned integer that indicates the maximum size, in bytes, of the data that the time service can enter into a logging file. If the maximum value is reached, the time service logging MUST wrap around and begin overwriting from the beginning of the file.

FileLogFlags: An integer that indicates the time-stamp format of the time service logging. The value MUST be one of the following.

Value

Meaning

FL_HumanReadableTimestamps

0x00000000

Use human-readable time format.

FL_NTTimeEpochTimestamps

0x00000001

Use Windows NT operating system time format.

FL_LocalSystemTimestamps

0x00000002

Use local system format.

All other values are reserved for future use.

LastSyncTicks:  A 64-bit, unsigned integer that indicates the most recent time stamp for a successful time synchronization, expressed as the number of 100-nanosecond intervals since midnight January 1, 1601, in UTC.

TimeSourceIPAddress: A null-terminated string that indicates the name of the time source that the time service is synchronizing with. This string SHOULD be either the FQDN or the IP address of the time source in the form of a string; for example, "ntp1.nist.gov" or "10.0.0.1".

SysPhaseOffset: A 64-bit, signed integer that indicates the current time difference between the local clock of the time service and the clock of its time source, in 100-nanosecond units.

CurrentState: An integer that indicates the state of the time service, as specified in section 2.2.7.

TimeSourceFlags: An integer that indicates the flag combination that represents the properties of the time source. The value MUST be a bitwise OR of zero or more of the following flags.

Value

Meaning

TSF_Hardware

0x00000001

Unused. This flag MUST be unset.

TSF_Authenticated

0x00000002

If this flag is set, the authentication extensions described in [MS-SNTP] are being used by the time source. If the flag is not set, then the authentication extensions are not being used by the time source.

TSF_IPv6

0x00000004

If this flag is set, the time source is synchronized via an IPv6 address. If this flag is not set, then the time source is synchronized via an IPv4 address.

All other values are reserved for future use.

ClockRate: An integer that indicates the current clock rate of the local clock, in units of ticks per second.<24>

TimeLastGoodSync: An unsigned 64-bit integer that indicates the time since the time service last performed a successful time synchronization, in 100-nanosecond units.