2.4 Uncompressed OAB Version 2 and OAB Version 3 RDN Index File

 The client uses the RDN Index file<3> for primary key lookups based on the X500 DN and SMTP address properties of the Address Book object.

The RDN Index file is split into two sections: the parent distinguished name (PDN) table and the RDN index. The PDN table contains the list of all PDN values for X500 DNs and all domain names used by SMTP addresses. The server stores the last RDN of the X500 DNs and the local-part of SMTP addresses in the key field of the records in the RDN index section.

For example, given the following distinguished name (DN) (3) value, /o=Adventure-Works/ou=New York/CN=recipients/CN=JohnH, the RDN object is /CN=JohnH and the PDN is /o=Adventure-Works/ou=New York/CN=recipients/. The key field of the RDN index, also known as the RDN value, is simply JohnH.

Records in the RDN index part of the file are of variable size, contain the index key value, and have pointers to the record in the PDN table so that the original value of the X500 DN or SMTP address can be reconstructed. In the record is an index of the related browse record in the Browse file and four more offsets are stored to create a threaded tree structure within the RDN Index file. An offset in the header of the RDN Index file points past the end of the PDN table to the root of the RDN index tree.

The following ABNF definition illustrates an uncompressed OAB version 2 or OAB version 3 RDN Index file.

 rdn-file       =    RDN_HDR 1*pdn-record 1*RDN2_REC
 pdn-record     =   1*(CHAR) %x00