Subject: replica id lookup table words

From: "Ed Reed" <[email-masked]>
Date: Thu, 11 Nov 1999 08:52:37 -0700

Gordon - here are the words I'd put into the Info Model draft describing the ReplicaIDLookupTable, which
we decided in Washington to document in the protocol spec, instead.  Use any or none of these words that make sense to you to use.

Ed

1.1.1     ReplicaIDLookupTable
In order to reduce the amount of redundant data associated with the string representation of replicaIDs in the ldapChangeSequenceNumber data structure (see below), a lookup table MUST be provided by the supplier of CSNs, mapping a numeric value to each Replica whose identity is to be used in a CSN.
ReplicaIDLookupTable = length "#" replicaTuple *
length = INTEGER
replicaTuple = "(" replicaNumber "#" replicaRDN ")"
replicaNumber = INTEGER
An explicit pairing of replicaNumber with replicaRDN is used so that a specific ordering is not required.  
An explicit length, or number of replicaTuples to be sent, is used as a convenience to the consumer, or receiver, of subsequent CSNs, and as an indicator of an empty list. 
All instances of replicaNumber MUST be fixed length, having the same number of digits, with leading zeros, using base 10 numbering.  If, for instance, the length of the replicaLookupTable is 9 entries, a single digit would suffice for each replicaNumber.  On the other hand, if the length of the repliaLookupTable is 11 entries, then ALL replicaNumbers in the table MUST be exactly two digits long, with the left most digit being "0" for all of the entries whose replicaNumbers are less than 10.  This kludge is so no special syntax matching rules need be supported in servers.
Each ReplicaTuple begins with an open parenthisis character "(", and ends with a close parenthisis character ")".
There may be zero or more replicaTuples in the lookup table.  An empty lookup table, with a length of zero and no replicaTuples, MUST be interpreted to mean that the RDN of the replica (left justified, fixed length with spaces padding to the right before the sharp "#" field separator) is used in lieu of an integer in the ldapChangeSequenceNumber (CSN) values that follow.