Is used for attributes whose values mark the time when a particular event occurred or will occur.
#define SYN_TIMESTAMP 19
NDS Timestamp
2.16.840.1.113719.1.1.5.1.19
typedef struct { nuint32 wholeSeconds; nuint16 replicaNum; nuint16 eventID; } TimeStamp_T;
uint32 Length = 8 TIMESTAMP Timestamp Value /* The Timestamp Value is represented as follows */ uint32 Seconds uint16 Replica Number uint16 Event
ndsTimestamp = wholeseconds "#" replicanum "#" event wholeseconds = uint32string ; 0 = 12:00 midnight Jan 01 1970, UTC replicanum = uint16string event = uint16string
ndsTimestamp ::= SEQUENCE { wholeSeconds uint32, replicaNum uint16, eventID uint16 }
For help in understanding the syntax definition template, see Reading Syntax Definitions.
A timestamp value has three components:
The wholeSeconds field consists of the whole number of seconds, where zero equals 12:00 midnight, January 1, 1970, UTC.
The replicaNum field identifies the server that created the timestamp. A replica number is assigned whenever a replica is created on a server.
The eventID field is an integer that orders events occurring within the same whole-second interval. The event number restarts at one for each new second.
The initial NULL value of a timestamp has seconds=1 and event=0. Values can be skipped, but must not be reused. An “unknown” event is coded as 0xFFFF.
Time stamps can be compared for equality and for ordering. Two Timestamp values are matched for equality by comparing the whole Seconds fields and then the Event fields. If the whole Seconds fields are unequal, order is determined by that field alone. If the Seconds fields are equal and the Event fields are unequal, order is determined by the Event fields. If both fields are equal, the time stamps are equal. For ordering comparisons, the Timestamp value is treated as a 64-bit unsigned integer, with Seconds as the most significant.