[Search] [txt|pdfized|bibtex] [Tracker] [WG] [Email] [Nits]
Versions: 00 01 03 04 06 07 08                                          
INTERNET-DRAFT
draft-ietf-ldup-infomod-00.txt
                                                               Ed Reed
                                                          Novell, Inc.
                                                          June 1, 1999

                  LDUP Replication Information Model


1. Status of this Memo

This document is an Internet-Draft and is in full conformance with all
provisions of Section 10 of RFC2026.

Internet-Drafts are working documents of the Internet Engineering Task
Force (IETF), its areas, and its working groups. Note that other
groups may also distribute working documents as Internet-Drafts.

Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference material
or to cite them other than as "work in progress."

The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.

The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.

This Internet-Draft expires on December 1, 1999.


2. Abstract

[LDUP Model] describes the architectural approach to replication of
LDAP directory contents.  This document describes the information
model and schema elements which support LDAP Replication Services
which conform to [LDUP Model].

Directory schema is extended to provide object classes, subentries,
and attributes to describe areas of the namespace which are under
common administrative authority, units of replication (ie, subtrees,
or partitions of the namespace, which are replicated), servers which
hold replicas of various types for the various partitions of the
namespace, which namespaces are held on given servers, and the
progress of various namespace management and replication operations.
Among other things, this knowledge of where directory content is




Reed                                                         [Page 1]


                       Expires December 1, 1999


INTERNET-DRAFT                                            1 June 1999
                  LDUP Replication Information Model

located will provide the basis for dynamic generation of LDAP
referrals for clients who can follow them.

The controlling framework by which the relationships, types, and
health of replicas of the directory content will be defined so that,
as much as possible, directory content is itself used to monitor and
control the environment.

Security information, including access control policy identifiers and
information will be treated as directory content by the replication
protocols when specified by the LDAPEXT group.

The information model will describe required and optional house-
keeping duties for compliant systems to implement, such as garbage
collection of deleted objects, reconciliation of moved and renamed
objects, update sequencing and transaction bracketing of changes, etc.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and  "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119]. The
sections below reiterate these definitions and include some additional
ones.




























Reed                                                         [Page 2]


                       Expires December 1, 1999


INTERNET-DRAFT                                            1 June 1999
                  LDUP Replication Information Model

Table of Contents
1. Status of this Memo                                          1
2. Abstract                                                     1
3. Introduction                                                 3
3.1  Scope                                                       3
3.2  Terms and Definitions                                       4
4. Data design:                                                 4
5. Directory Knowledge                                          4
6. Schema                                                       5
6.1  Syntax Definitions                                          5
6.1.1     lDAPChangeSequenceNumber                               5
6.1.2     lDAPAccessPointSyntax                                  6
6.2  Attribute Definitions                                       7
6.2.1     lDAPAccessPoint                                        7
6.2.2     attributeExclusionFilter                               7
6.2.3     attributeInclusionFilter                               8
6.2.4     lDAPSearchFilter                                       8
6.2.5     replicationStatus                                      9
6.2.6     replicaType                                            10
6.2.7     updateVector                                           11
6.3  Class Definitions                                           11
6.3.1     lDAPsubEntry                                           11
6.3.2     nameContext                                            12
6.3.3     replicaSubentry                                        12
6.3.4     replicaAgreementSubentry                               13
6.3.5     scheduleSubentry Class                                 14
6.4  Matching Rule Specifications                                15
6.4.1     LDAPChangeSequenceNumberOrderingMatch                  15
7. Security Considerations                                      15
8. References                                                   16
9. Copyright Notice                                             16
10.Acknowledgements                                             16
11.Author's Address                                             17


3. Introduction


3.1 Scope

This document describes schema of subentries representing replicas,
replication agreements and their dependencies.

Management and status schema elements may be defined if there is
sufficient consensus.

Semantic interpretation of schema elements, including any special
handling expectations are to be provided here.


Reed                                                         [Page 3]


                       Expires December 1, 1999


INTERNET-DRAFT                                            1 June 1999
                  LDUP Replication Information Model

3.2 Terms and Definitions

Definitions are provided in [LDUP Requirements], and may be reproduced
here for the convenience of the reader.



4. Data design:

As described in [LDUP Model], knowledge of replicated portions of the
directory information tree (DIT) is stored in the directory itself.

An auxiliary class is defined to designate containers, or nodes, in
the DIT which are the root-most, or base, of naming contexts
[RFC2251].  Directory subentries [X501] are used to hold information
about replicas and replica agreements.



5. Directory Knowledge

Information about what replicas exist, what they contain, their types,
where they are stored, and how they may be contacted inevitably
provides the basis for distributed directory knowledge.  As namespaces
from stand-alone servers are inter-connected with one another, this
replica information can and will be used by name resolution operations
to locate servers holding copies of specific objects, and to optimize
distributed searches which span multiple Naming Contexts.

However, the focus of this document is NOT to fully enable such
distributed directory uses.  Instead, we are focused on how portions
of the namespace (Directory Information Tree - DIT) may be replicated,
and how those replicas are configured and related to one another via
Replication Agreements.

As such, the following high level description (from [LDUP Model])of
the information model envisioned is provided as reference for the
reader before presenting the detailed specifications.

Generally, the DSE Naming Context attribute of an LDAPv3 server names
the Naming Contexts for which there are replicas on that server.

The Naming Context Auxiliary Class (nameContext) is added to container
objects which may have separately defined replication policy.

Immediately subordinate to a Naming Context object are the Replica
Subentry containers which identify where the identified replica
resides (ie, its LDAP Access Point), its type (Primary, Updateable,


Reed                                                         [Page 4]


                       Expires December 1, 1999


INTERNET-DRAFT                                            1 June 1999
                  LDUP Replication Information Model

ReadOnly), if it is sparse, the LDAP search filter which defines what
object classes it holds, and if it is fractional, the attributes it
does or does not hold.

Immediately subordinate in the namespace to a Replica Subentry are
Replication Agreement leaf entries which each identify another
Replica, the scheduling policy for replication operations (including
times when replication is to be performed, when it is not to be
performed, or the policies governing event-driven replication
initiation).



6. Schema


6.1 Syntax Definitions

For the purposes of defining the encoding rules for attribute
syntaxes, the BNF definitions in section 4.1 of [RFC2252] will be
used.  They are based on the BNF styles of [RFC822].

6.1.1 lDAPChangeSequenceNumber

( 1.3.6.1.4.1.1466.115.121.1.TBD DESC 'LDAP Change Sequence Number' )

Values in this syntax are encoded according to the following BNF.
Note there are no whitespace separators, although there may be
embedded whitespace in the value of replicaID.

Note there is some discussion ongoing as to whether the replicaID
should be considered before the seqno, or after.  This definition will
be changed to support the consensus when reached.

  LDAPChangeSequenceNumber = GeneralizedZTime "$" replicaID "$" seqno
  GeneralizedZTime = yyyy mm dd hh mi ss "Z"
  yyyy = dddd <four digit year, e.g. 1998>
  mm = dd <two digit month of the year, e.g. 06>
  dd = dd <two digit day of month, e.g. 17>
  hh = dd <two digit hour of the day, inclusive range (00..23)>
  mi = dd <two digit minute of the hour, inclusive range (00..59)>
  ss = dd <two digit seconds of the minute, inclusive range (00..59)>
  replicaID = dstring
  seqno = numericstring

The GeneralizedTime is used as described (cf. [X680] section 39.3 case
b) without separators or whitespace, and representing a coordinated
universal time (i.e., Greenwich Mean Time, or GMT).  All times


Reed                                                         [Page 5]


                       Expires December 1, 1999


INTERNET-DRAFT                                            1 June 1999
                  LDUP Replication Information Model

referenced by this syntax MUST be normalized to GMT - no local times,
nor time zone offsets are permitted.

The ReplicaID is the distinguished commonName (CN) of the Replica of
this Naming Context where the event associated with this
LDAPChangeSequenceNumber occurred.

The seqno is a sequence number which is used to order two events with
the same Generalized Time and ReplicaID.  See the
LDAPChangeSequenceNumberMatch and
LDAPChangeSequenceNumberOrderingMatch matching rules, defined
elsewhere in this document.


6.1.2 lDAPAccessPointSyntax

( 1.3.6.1.4.1.1466.115.121.1.TBD DESC 'LDAP Access Point' )

Values in this syntax are encoded according to the following BNF.

  LDAPAccessPointSyntax = DN "$" OTHER "$" labeledURIList
  DN = dstring
  OTHER = dstring
  labeledURIList = qdstrings
  dstring = 1*utf8
  utf8 = <any sequence of octets formed from the UTF-8 [RFC2044]
     transformation of a character from [ISO10646] >

DN is the distinguished name of the LDAP Service Agent to which this
LDAP Access Point Syntax refers.  It is single valued.

OTHER - Any additional information to be stored with the reference,
such as connection-specific credentials, etc.  This is a single valued
string.  Note:  this means that the OTHER field applies to ALL of the
labeledURIs in the labeledURIList, so if OTHER is used to store
credential information, for instance, that credential information
needs to be able to be used with ANY of the labeledURI addresses
listed.

labeledURIList is used as defined in [RFC2079], as a HINT (i.e.,
cached address) as to where an LDAP replication client may connect to
the LDAP service named in DN.  There may be one LabeledURI, or more
than one inside a pair of matched parentheses.  Each LabeledURI is
single-quoted so they can be separated if there are more than one.

The rational for using LabeledURI format is that it is already defined
in [RFC2079], it is generally extensible (via the normal scheme
extensions mechanisms and registration systems being defined elsewhere


Reed                                                         [Page 6]


                       Expires December 1, 1999


INTERNET-DRAFT                                            1 June 1999
                  LDUP Replication Information Model

in the IETF), which means it should be usable for storing any kind of
address (such as IPX, AppleTalk, OSI, Ipv6, or whatever).  It is
flexible enough to store information about the protocols to be used
(such as ldap://), network addresses using either dotted quads or DNS
names (such as ldap://www.nldap.com, or ldap://192.108.102.213), and
port numbers (such as ldap://www.nldap.com:389), according to the
scheme definition used, as needed.

Multiple labeledURI values are permitted, so that multi-homed and
clustered LDAP DSAs can be conveniently represented, and so that each
of the various protocols by which the replica can be reached may be
cached.

As mentioned, the labeledURI in this syntax is a HINT.  The
authoritative address information is expected to be stored on the
object named in the DN of the LDAP Access Point.  However, because a
copy of the object named may not be held on an LDAP DSA which
references it (i.e., it may be named in a Naming Context of the DIT
which is not replicated locally), it is convenient to cache the
addresses where it may be found, here.


6.2 Attribute Definitions


6.2.1 lDAPAccessPoint

( {LDUPATTR 2} NAME 'lDAPAccessPoint'
   SYNTAX LDAPAccessPointSyntax
   USAGE dSAOperation )

The lDAPAccessPoint names a DSA in its DN component, provides an
optional OTHER string to store information specific to that DSA, and a
list of one or more network addresses, in the form of a labeledURI,
which may be used to bind to that DSA.

A common use of the OTHER string is intended to be to hold credentials
needed to authenticate to the other DSA, but I have real heart burn
with that.  If the lDAPAccessPoint attributes on replica agreement
subentries are replicated to other DSAs, then the secrecy of such
authentication credentials is lost.

The OTHER string may be useful, but the author is not sure how so.


6.2.2 attributeExclusionFilter

( {LDUPATTR 3} NAME 'attributeExclusionFilter'
   SYNTAX OCTET STRING


Reed                                                         [Page 7]


                       Expires December 1, 1999


INTERNET-DRAFT                                            1 June 1999
                  LDUP Replication Information Model

   SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation )

The attributeExclusionFilter is intended to contain a list of
attributes in the form of an AttributeDescriptionList as described in
section 4.5.1. Search Request of [RFC2251] with the following
interpretation:  an empty attributeExclusionFilter means that no
attributes are excluded; the special values ô*ö and ô1.1ö mean that
ALL attributes are excluded.

A non-empty attributeExclusionFilter attribute on a replica subEntry
describes the attributes NOT PRESENT on entries held by that replica.
Replicas MUST NOT accept changes for attributes they're not permitted
to hold, per the attributeInclusionFilter and attributeExclusionFilter
attributes on their replica subEntry.

A non-empty attributeExclusionFilter attribute on a
replicationAgreement subEntry describes which additional attributes
are to be excluded from the updates to be sent from the supplier
replica to the consumer replica.


6.2.3 attributeInclusionFilter

( {LDUPATTR 4} NAME 'attributeInclusionFilter'
   SYNTAX OCTET STRING
   SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation )

The attributeInclusionFilter is intended to contain a list of
attributes in the form of an AttributeDescriptionList as described in
section 4.5.1. Search Request of [RFC2251] with the following
interpretation:  an empty attributeInclusionFilter means that all
attributes are included; the special value ô*ö means that ALL
attributes are included; the special value ô1.1ö is meaningless and is
ignored in this usage.

A non-empty attributeInclusionFilter attribute on a replica subEntry
describes the attributes that may be PRESENT on entries held by that
replica.  Replicas MUST NOT accept changes for attributes they're not
permitted to hold, per the attributeIncludionFilter and
attributeExclusionFilter attributes on their replica subEntry.


6.2.4 lDAPSearchFilter

( {LDUPATTR 5} NAME 'lDAPSearchFilter'
   SYNTAX caseExactString
   SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation )




Reed                                                         [Page 8]


                       Expires December 1, 1999


INTERNET-DRAFT                                            1 June 1999
                  LDUP Replication Information Model

The lDAPSearchFilter is intended to contain a Filter as described in
section 4.5.1. Search Request of [RFC2251].

A non-empty lDAPSearchFilter attribute on a replica subEntry describes
the contents of that replica.  Replicas MUST NOT accept changes for
objects they're not permitted to hold, per the lDAPSearchFilter
attribute on their replica subEntry.

A non-empty lDAPSearchFilter attribute on a replicationAgreement
subEntry describes which other objects are to be excluded from the
updates to be sent from the supplier replica to the consumer replica.
Note that because the replica asserts and controls what entries it
holds, a replication agreement MAY NOT send changes for objects the
replica does not hold, but if it does, the consuming replica MUST NOT
accept them.


6.2.5 replicationStatus

( {LDUPATTR 9} NAME 'replicationStatus'
   DESC 'human readable status of last replication attempt'
   SYNTAX DirectoryString
   SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation )


The replicationStatus attribute MAY be used to hold a human readable
message describing the most recent replication session attempt for a
replicationAgreement.

For example, such a messages might include

1) [1998/08/05 16:22:03Z] Success

2) [1998/08/05 16:23:22Z] Failure - Server too busy, try again

3) [1998/08/05 17:02:15Z] Failure - Unable to connect to DSA

4) [1998/08/06 00:23:01Z] Failure - Authentication failed

5) [1998/08/06 00:32:01Z] Failure - lost connection, reset by peer

It is suggested, but not required, that the time of the attempt
success or failure, the result of the attempt, and any additional
information about a failure be included in the message.

It is suggested, but not required, that the messages be stored with
language tags (English, French, German, Japanese, Chinese, per [LANG



Reed                                                         [Page 9]


                       Expires December 1, 1999


INTERNET-DRAFT                                            1 June 1999
                  LDUP Replication Information Model

TAG]) particularly if multiple translations of the error messages are
available to the DSA implementers.

Note that this is a single-valued attribute.  Sequences of status
entries SHOULD be written to log files or other persistent storage,
but do not belong in the directory content itself.


6.2.6 replicaType

( {LDUPATTR 10} NAME 'replicaType'
   DESC 'Enum: 0-reserved, 1-Primary, 2-Updateable, 3-ReadOnly, all
others reserved'
   EQUALITY integerMatch
   SYNTAX INTEGER
   SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation )

ReplicaType is a simple enumeration, used to identify what kind of
replica is being described in a Replica object entry.

A ReadOnly replica only accepts LDAP Search operations (to Read
entries, list containers, and search for entries).  Because no updates
ever originate from ReadOnly replicas, they never have changes to send
to another replica.  However, a ReadOnly replica may be designated a
supplier DSA in a replica agreement, if it is simply passing along
information it receives from other Updateable replicas about entries
and their changes.

ReadOnly replicas may be incomplete replicas.

An Updateable replica may accept both LDAP Search operations (to read,
list, or search entries), as well as modification operations (to add,
modify, or delete entries).

The consequences of having incomplete updateable replicas are not
fully understood.  LDAP DSAs MAY require updateable replicas to be
complete replicas.

A Primary replica is an Updateable replica, but it is ômore specialö
than other Updateable replicas.  When LDAP application want to direct
their operations to a single replica, so that the application can be
sure that all application LDAP modification (add, delete, modify)
operations will be immediately visible to application readers, the
Primary replica is a good choice.  Such a use would be consistent with
High Confidence DAP option [X518].  One such application might be a
management application which creates new naming contexts or joins two
naming contexts into a single naming context.  Another application
might be one which creates new replicas, or replication agreements.


Reed                                                        [Page 10]


                       Expires December 1, 1999


INTERNET-DRAFT                                            1 June 1999
                  LDUP Replication Information Model

There SHOULD be only one Primary replica defined for a naming context
at any time.  If applications, expecting there to be a Primary replica
discover, by search or inspection of ReplicaType attributes of the
defined Replicas of a naming context, find more than one û they should
realize that something is wrong.

There MAY be NO primary replica defined for a naming context.

Primary replicas MAY NOT be incomplete replicas.

The way in which replicas change their type, as from ReadOnly to
Updateable, or Updateable to Primary is outside the scope of this
document.

Section 5.1 ôReplica Typeö of [LDUP MODEL] details the permissible
combinations of replica types and sparse/fractional replicas.


6.2.7 updateVector

( {LDUPATTR 12} NAME 'updateVector'
   SYNTAX lDAPChangeSequenceNumberSyntax
   NO-USER-MODIFICATION USAGE dSAOperation )

The attribute updateVector is a multi-valued attribute which contains
information for a replica describing the latest changes received by
the replica from other replicas.

There may be only one lDAPChangeSequenceNumber entry from each replica
in the updateVector.  That is to say, there is a unique value
constraint on the ReplicaID component of entries in the list.

This uniqueness constraint may mean that the syntax should be a single
list, or array, of values, rather than the set of valuesàdiscussion on
the list to follow.  Discussion is invited on the list.


6.3 Class Definitions


6.3.1 lDAPsubEntry

( 1.3.6.1.4.1.1466.115.121.1.?? NAME 'LDAPsubEntry'
   DESC 'Limited X.501 Subentry class, named by cn'
   SUP top STRUCTURAL MUST ( cn ) )

By agreement, LDUP will use subentries with commonName attributes
instead of subtreeSpecification attributes.



Reed                                                        [Page 11]


                       Expires December 1, 1999


INTERNET-DRAFT                                            1 June 1999
                  LDUP Replication Information Model

Note: the use of the [X501] subEntry is a matter of convenience, and
does not constitute the "nose of the camel".  That is, X.500 makes
many uses of subEntries, and we don't claim to be doing them all.
However, it's a very convenient concept, and its usefulness has been
demonstrated (by all those very things that X.500 uses them for!).  We
choose to use them, because they're useful, flexible, extensible, and
easy to specify.  They're even easy to understand, once the reader
figures out that they're just another object class (with possibly
special treatment - they may be treated as "operational objects" in
much the same way that "operational attributes" are not regularly
provided in search results and read operations when only user
attributes are requested).

NOTE:  As other uses for the lDAPsubEntry object class are found (in
the Access Control extensions design work, and in the non-global
schema representation work, it is probably desireable to move its
definition to a separate, stand-alone document)


6.3.2 nameContext

( TBD NAME 'nameContext' SUP top AUXILIARY )


The nameContext auxiliary class, when present on an object, indicates
the beginning, or root, of a naming context.  The naming context is
said to be rooted at the entry with the nameContext auxiliary class in
its list of object classes.  The root-most entry of a naming context
is the entry with the nameContext auxiliary class in its list of
object classes.

Characteristics of the replication topology of a naming context are
defined in the replicaSubentry sub-entries associated with the naming
context.

The attribute accessControlPolicyOID has been removed from here, and
should be published as an lDAPsubEntry subordinate to the nameContext,
instead.

The attribute nameContextCreationTimestamp used here in previous
drafts has been eliminated as redundant.  The lDAPChangeSequenceNumber
associated with the nameContext value in the list of objectClasses
attribute serves the same purpose.


6.3.3 replicaSubentry

( TBD NAME 'replicaSubentry' SUP lDAPsubEntry STRUCTURAL
   MUST (cn, replicaID, lDAPAccessPoint, replicaType)


Reed                                                        [Page 12]


                       Expires December 1, 1999


INTERNET-DRAFT                                            1 June 1999
                  LDUP Replication Information Model

   MAY (attributeExclusionFilter, attributeInclusionFilter,
description, lDAPSearchFilter, updateVector) )


The replicaID must be unique for all entries of type replicaSubentry
for a particular naming context.

Entries of type replicaSubentry MUST be named by their cn attribute.

The attributes attributeExclusionFilter, attributeInclusionFilter, and
lDAPSearchFilter, if present, govern which entries and attributes from
the local naming context are to be sent (or not sent) to the replica
named in replicaDN of replica agreements for this replica.  The
lDAPSearchFilter attribute identifies entries whose values may or may
not be sent.  The attributeExclusionFilter names attributes which are
not to be sent.  The attributeInclusionFilter names attributes which
may be sent.

The attribute description contains a human-readable description of the
sub-entry.

The attribute updateVector contains a set of
lDAPChangeSequenceNumbers, one for each of the other replicas for this
naming context, which records, from this replicas perspective, the
last change event received from the other indicated replica.


6.3.4 replicaAgreementSubentry

( TBD NAME 'replicaAgreementSubentry' SUP lDAPsubEntry STRUCTURAL
   MUST ( cn )
   MAY ( attributeExclusionFilter, description, lDAPSearchFilter,
replicaDN, replicationMechanismOID, replicationStatus, schedule ) )

Entries of type replicaSubentry MUST be named by their cn attribute.

The attributes attributeExclusionFilter, and lDAPSearchFilter, if
present, govern which entries and attributes from the local naming
context are to be sent (or not sent) to the replica named in
replicaDN.  The lDAPSearchFilter attribute identifies entries whose
values may or may not be sent.  The attributeExclusionFilter names
attributes which are not to be sent.  Note there is no
attributeInclusionFilter, because the list of attributes that may be
sent may not be extended beyond those documented in the
attributeInclusionFilter on the replicaSubentry.

Processing of allowable changes to be sent is as follows:



Reed                                                        [Page 13]


                       Expires December 1, 1999


INTERNET-DRAFT                                            1 June 1999
                  LDUP Replication Information Model

1) the lDAPSearchFilter from the replica subentry defines a set of
   entries;

2) the lDAPSearchFilter from the replicaAgreementSubentry defines a
   set of entries;

3) the intersection of the two lDAPSearchFilter sets constitutes the
   set of entries about which changes will be sent;

4) the attributeInclusionFilter from the replica subentry defines a
   set of attributes which may be sent, less exclusions;

5) the union of attributes excluded by the attributeExclusionFilter
   from the replicasubentry and the attributeExclusionFilter from the
   replicaAgreementSubentry defines a set of attributes which may not
   be sent;

6) the subtraction of attributes which may not be sent by (5) from
   the attributes which may be sent by (4) and which are present on
   entries which may be sent by (3) constitute the set of attributes
   for which changes may be sent.

The attribute description contains a human-readable description of the
sub-entry.

The attribute replicaDN of syntax DN names another sub-entry of type
replicaSubentry to whom changes are to be sent.  If there is no value
for the replicaDN attribute on a replicaAgreementSubentry, the
replicaAgreementSubentry is ignored.  Absence of a value may occur
briefly when replicas and replica agreements are first being created,
or when the replica to which a replica agreement applies is being
deleted.

The attribute replicationStatus MAY be used to record the most recent
result of an attempt to send changes to the replica named in
replicaDN, whether success, or if failure, the nature of the problem
encountered.

The attribute schedule, if present, names one or more entries of type
scheduleSubentry which govern the schedule for replication attempts.
If not present, replication shall be attempted when there are changes
to be sent.


6.3.5 scheduleSubentry Class

Need to pull this from Oracle's proposalàalong with the attributes it
specifies, or define it separately in another draft.


Reed                                                        [Page 14]


                       Expires December 1, 1999


INTERNET-DRAFT                                            1 June 1999
                  LDUP Replication Information Model

6.4 Matching Rule Specifications


6.4.1 LDAPChangeSequenceNumberOrderingMatch

As mentioned above, there is ongoing discussion as to the ordering to
be used.  This text will be changed to reflect the consensus when it
is reached.

Two lDAPChangeSequenceNumbers are compared according to the following:

1) the GeneralizedZTime components are compared (they may be compared
   using the same algorithm as generalizedTimeOrderingMatch û
   1.3.6.1.4.1.1466.115.121.1.24 [RFC2252]), and if different, the
   one with the later (highest) date and time is considered ôgreater
   thanö the other;  if the same, the comparison continuesà

2) the replicaID components are compared, and if different, the one
   with the lower value (implying that the replica was created prior
   to the other replica û such that the ôoldestö replica is more
   ôseniorö to ônewerö ones;  in most cases, the ôoldestö replica
   will likely also be the Primary replica, too) is considered ômore
   preferredö than the other;  if the same, the comparison continuesà

3) the seqno components are compared, and if different, the one with
   the higher numeric value is considered ôgreater thanö the other;
   if the same, the two entries are the same, and so they match for
   equality.



7. Security Considerations

Many of the attributes and object classes described in this document
should be considered ôsecurity sensitiveö, and protected from
unintended modification by LDAP servers.  Generally, creating Naming
Contexts, Replicas and Replica Agreement entries should only be
allowed by directory administrators who are authorized to do so.

The values of attributes defined here are intended to control the
behavior of the directory service agents, themselves.  Unintended
modification of their values may result in incomplete replication of
data (if lDAPSearchFilter or attributeExclusionFilter are changed),
inappropriate disclosure of information (if attributeInclusionFilter
is changed), or updates may be lost (if updateVector is changed).

To avoid depending to much on the lDAPAccessPoint values for other
replicas, connections between LDAP servers for the purpose of


Reed                                                        [Page 15]


                       Expires December 1, 1999


INTERNET-DRAFT                                            1 June 1999
                  LDUP Replication Information Model

replication MUST ALWAYS be authenticated using an authentication
mechanism appropriate for the nature of information to be exchanged.



8. References

[LANG TAG] û M. Wahl, T. Howes, ôUse of Language Codes in LDAPö,
Internet draft, draft-ietf-ldapext-lang-01.txt

[LDUP Model] - J. Merrells, E. Reed, U. Srinivisan, ôAn Abstract Model
of LDAP Replicationö, Internet draft, draft-merrells-ldup-model-01.txt

[LDUP Requirements] - R. Weiser, E. Stokes ôLDAP Replication
Requirementsö, Internet draft, draft-weiser-replica-req-02.txt, April
1998

[RFC2251] û M. Wahl, T. Howes, S. Kille, ôLightweight Directory Access
Protocol (v3)ö, December 1997, RFC 2251

[RFC2252] û M. Wahl, A. Coulbeck, T. Howes, S. Kille, ôLightweight
Directory Access Protocol (v3): Attribute Syntax Definitionsö,
December 1997, RFC 2252

[X525] - ITU-T Recommendation X.525 (1997) | ISO/IEC 9594-9:1997,
Information Technology û Open Systems Interconnection û The Directory:
Replication

[X680] - ITU-T Recommendation X.680 (1994) | ISO/IEC 8824-1:1995,
Information technology û Abstract Syntax Notation One (ASN.1):
Specification of Basic Notation



9. Copyright Notice

Copyright (C) The Internet Society (1999). All Rights Reserved.

This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implmentation may be prepared, copied, published and
distributed, in whole or in part, without restriction of any kind,
provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of developing
Internet standards in which case the procedures for copyrights defined


Reed                                                        [Page 16]


                       Expires December 1, 1999


INTERNET-DRAFT                                            1 June 1999
                  LDUP Replication Information Model

in the Internet Standards process must be followed, or as required to
translate it into languages other than English.

The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.

This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT
NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN
WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE."


10. Acknowledgements

The use of subEntry object class to store Replica and Replication
Agreement information is due primarily to the lucid explanation by
Mark Wahl, Innosoft, of how they could be used and extended.

The IETF takes no position regarding the validity or scope of any
intellectual property or other rights that might be claimed to pertain
to the implementation or use of the technology described in this
document or the extent to which any license under such rights might or
might not be available; neither does it represent that it has made any
effort to identify any such rights. Information on the IETF's
procedures with respect to rights in standards-track and standards-
related documentation can be found in BCP-11. Copies of claims of
rights made available for publication and any assurances of licenses
to be made available, or the result of an attempt made to obtain a
general license or permission for the use of such proprietary rights
by implementors or users of this specification can be obtained from
the IETF Secretariat.

The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights which may cover technology that may be required to practice
this standard. Please address the information to the IETF Executive
Director.



11. Author's Address

     Edwards E. Reed
     Novell, Inc.
     122 E 1700 S
     Provo, UT   84606


Reed                                                        [Page 17]


                       Expires December 1, 1999


INTERNET-DRAFT                                            1 June 1999
                  LDUP Replication Information Model

     USA
     E-mail: Ed_Reed@Novell.com

     LDUP Mailing List:  ietf-ldup@idc.org














































Reed                                                        [Page 18]

                       Expires December 1, 1999