Timestamp

Is used for attributes whose values mark the time when a particular event occurred or will occur.

Syntax ID

#define SYN_TIMESTAMP 19

LDAP Name

NDS Timestamp

ASN.1 ID

2.16.840.1.113719.1.1.5.1.19

API Data Structure

typedef struct 
{
    nuint32    wholeSeconds; 
    nuint16    replicaNum; 
    nuint16    eventID; 
} TimeStamp_T;

Transfer Format

uint32                 Length = 8 
TIMESTAMP              Timestamp Value 
 
/* The Timestamp Value is represented as follows */ 
 
uint32   Seconds 
uint16   Replica Number 
uint16   Event 

LDAP Format

String

ndsTimestamp = wholeseconds "#" replicanum "#" event

wholeseconds = uint32string ; 0 = 12:00 midnight Jan 01 1970, UTC

replicanum = uint16string

event = uint16string

Binary

ndsTimestamp ::= SEQUENCE {
   wholeSeconds   uint32,
   replicaNum     uint16,
   eventID        uint16
}

Matching Rules

Remarks

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.

Used In