rfc2849.txt
proposal.txt
f1f1
22
33
44
55
66
7Network Working Group                                             G. Good7Network Working Group                                             G. Good
n8Request for Comments: 2849                   iPlanet e-commerce Solutionsn8INTERNET-DRAFT
9Category: Standards Track                                       June 20009Obsoletes: 2849
10Category: Standards Track
1011
1112
12   The LDAP Data Interchange Format (LDIF) - Technical Specification13   The LDAP Data Interchange Format (LDIF) - Technical Specification
1314
nn15 
14Status of this Memo16Status of this Memo
1517
n16   This document specifies an Internet standards track protocol for then18   By submitting this Internet-Draft, each author represents that any
17   Internet community, and requests discussion and suggestions for19   applicable patent or other IPR claims of which he or she is aware
18   improvements.  Please refer to the current edition of the "Internet20   have been or will be disclosed, and any of which he or she becomes
19   Official Protocol Standards" (STD 1) for the standardization state21   aware will be disclosed, in accordance with Section 6 of BCP 79.
20   and status of this protocol.  Distribution of this memo is unlimited.
21 
22Copyright Notice
23 
24   Copyright (C) The Internet Society (2000).  All Rights Reserved.
2522
26Abstract23Abstract
2724
28   This document describes a file format suitable for describing25   This document describes a file format suitable for describing
29   directory information or modifications made to directory information.26   directory information or modifications made to directory information.
30   The file format, known as LDIF, for LDAP Data Interchange Format, is27   The file format, known as LDIF, for LDAP Data Interchange Format, is
31   typically used to import and export directory information between28   typically used to import and export directory information between
32   LDAP-based directory servers, or to describe a set of changes which29   LDAP-based directory servers, or to describe a set of changes which
33   are to be applied to a directory.30   are to be applied to a directory.
3431
nn32Relationship to Obsolete Specification
33 
34   This obsoletes and replaces [RFC2849] which defined version 1
35   of LDIF.
36 
37   The paragraph "Notes on LDIF Syntax" in [RFC2849] documented the
38   use of non-encoded UTF-8 inside an LDIF file, but the "Formal Syntax
39   Definition of LDIF" specified either ASCII or base64 encoded UTF-8
40   for distinguishedName, rdn and attrval-spec.  The specification has
41   been changed to allow UTF-8 strings without the use of encoding.
42 
43   The definition of UTF-8 has been slightly modified to follow the
44   definition from [RFC3629].
45 
46   The style has been changed to conform with the newer editorial
47   standards from [RFC223], specifically in quoting references.
48 
35Background and Intended Usage49Background and Intended Usage
3650
37   There are a number of situations where a common interchange format is51   There are a number of situations where a common interchange format is
38   desirable.  For example, one might wish to export a copy of the52   desirable.  For example, one might wish to export a copy of the
39   contents of a directory server to a file, move that file to a53   contents of a directory server to a file, move that file to a
40   different machine, and import the contents into a second directory54   different machine, and import the contents into a second directory
41   server.55   server.
4256
43   Additionally, by using a well-defined interchange format, development57   Additionally, by using a well-defined interchange format, development
44   of data import tools from legacy systems is facilitated.  A fairly58   of data import tools from legacy systems is facilitated.  A fairly
45   simple set of tools written in awk or perl can, for example, convert59   simple set of tools written in awk or perl can, for example, convert
n46   a database of personnel information into an LDIF file. This file cann60   a database of personnel information into an LDIF file.  This file can
47   then be imported into a directory server, regardless of the internal61   then be imported into a directory server, regardless of the internal
48   database representation the target directory server uses.62   database representation the target directory server uses.
4963
50   The LDIF format was originally developed and used in the University64   The LDIF format was originally developed and used in the University
51   of Michigan LDAP implementation.  The first use of LDIF was in65   of Michigan LDAP implementation.  The first use of LDIF was in
52   describing directory entries.  Later, the format was expanded to66   describing directory entries.  Later, the format was expanded to
53   allow representation of changes to directory entries.67   allow representation of changes to directory entries.
5468
55   Relationship to the application/directory MIME content-type:69   Relationship to the application/directory MIME content-type:
5670
n57   The application/directory MIME content-type [1] is a generaln71   The application/directory MIME content-type [RFC2425] is a general
58   framework and format for conveying directory information, and is72   framework and format for conveying directory information, and is
59   independent of any particular directory service.  The LDIF format is73   independent of any particular directory service.  The LDIF format is
60   a simpler format which is perhaps easier to create, and may also be74   a simpler format which is perhaps easier to create, and may also be
61   used, as noted, to describe a set of changes to be applied to a75   used, as noted, to describe a set of changes to be applied to a
62   directory.76   directory.
6377
64   The key words "MUST", "MUST NOT", "MAY", "SHOULD", and "SHOULD NOT"78   The key words "MUST", "MUST NOT", "MAY", "SHOULD", and "SHOULD NOT"
n65   used in this document are to be interpreted as described in [7].n79   used in this document are to be interpreted as described
80   in [RFC2119].
6681
67Definition of the LDAP Data Interchange Format82Definition of the LDAP Data Interchange Format
6883
69   The LDIF format is used to convey directory information, or a84   The LDIF format is used to convey directory information, or a
70   description of a set of changes made to directory entries.  An LDIF85   description of a set of changes made to directory entries.  An LDIF
71   file consists of a series of records separated by line separators.  A86   file consists of a series of records separated by line separators.  A
72   record consists of a sequence of lines describing a directory entry,87   record consists of a sequence of lines describing a directory entry,
73   or a sequence of lines describing a set of changes to a directory88   or a sequence of lines describing a set of changes to a directory
74   entry.  An LDIF file specifies a set of directory entries, or a set89   entry.  An LDIF file specifies a set of directory entries, or a set
75   of changes to be applied to directory entries, but not both.90   of changes to be applied to directory entries, but not both.
7691
77   There is a one-to-one correlation between LDAP operations that modify92   There is a one-to-one correlation between LDAP operations that modify
78   the directory (add, delete, modify, and modrdn), and the types of93   the directory (add, delete, modify, and modrdn), and the types of
79   changerecords described below ("add", "delete", "modify", and94   changerecords described below ("add", "delete", "modify", and
80   "modrdn" or "moddn").  This correspondence is intentional, and95   "modrdn" or "moddn").  This correspondence is intentional, and
81   permits a straightforward translation from LDIF changerecords to96   permits a straightforward translation from LDIF changerecords to
82   protocol operations.97   protocol operations.
8398
84Formal Syntax Definition of LDIF99Formal Syntax Definition of LDIF
85100
86   The following definition uses the augmented Backus-Naur Form101   The following definition uses the augmented Backus-Naur Form
n87   specified in RFC 2234 [2].n102   specified in [RFC2234].
88103
89ldif-file                = ldif-content / ldif-changes104ldif-file                = ldif-content / ldif-changes
90105
91ldif-content             = version-spec 1*(1*SEP ldif-attrval-record)106ldif-content             = version-spec 1*(1*SEP ldif-attrval-record)
92107
93ldif-changes             = version-spec 1*(1*SEP ldif-change-record)108ldif-changes             = version-spec 1*(1*SEP ldif-change-record)
94109
95ldif-attrval-record      = dn-spec SEP 1*attrval-spec110ldif-attrval-record      = dn-spec SEP 1*attrval-spec
96111
97ldif-change-record       = dn-spec SEP *control changerecord112ldif-change-record       = dn-spec SEP *control changerecord
98113
99version-spec             = "version:" FILL version-number114version-spec             = "version:" FILL version-number
100115
101version-number           = 1*DIGIT116version-number           = 1*DIGIT
n102                           ; version-number MUST be "1" for then117                           ; version-number MUST be "2" for the
103                           ; LDIF format described in this document.118                           ; LDIF format described in this document.
104119
105dn-spec                  = "dn:" (FILL distinguishedName /120dn-spec                  = "dn:" (FILL distinguishedName /
106                                  ":" FILL base64-distinguishedName)121                                  ":" FILL base64-distinguishedName)
107122
n108distinguishedName        = SAFE-STRINGn123distinguishedName        = SAFE-UTF8-STRING
109                           ; a distinguished name, as defined in [3]124                           ; a distinguished name, as defined
125                           ; in [RFC2253]
110126
111base64-distinguishedName = BASE64-UTF8-STRING127base64-distinguishedName = BASE64-UTF8-STRING
112                           ; a distinguishedName which has been base64128                           ; a distinguishedName which has been base64
113                           ; encoded (see note 10, below)129                           ; encoded (see note 10, below)
114130
n115rdn                      = SAFE-STRINGn131rdn                      = SAFE-UTF8-STRING
116                           ; a relative distinguished name, defined as132                           ; a relative distinguished name, defined as
n117                           ; <name-component> in [3]n133                           ; <name-component> in [RFC2253]
118134
119base64-rdn               = BASE64-UTF8-STRING135base64-rdn               = BASE64-UTF8-STRING
120                           ; an rdn which has been base64 encoded (see136                           ; an rdn which has been base64 encoded (see
121                           ; note 10, below)137                           ; note 10, below)
122138
123control                  = "control:" FILL ldap-oid        ; controlType139control                  = "control:" FILL ldap-oid        ; controlType
124                           0*1(1*SPACE ("true" / "false")) ; criticality140                           0*1(1*SPACE ("true" / "false")) ; criticality
125                           0*1(value-spec)                ; controlValue141                           0*1(value-spec)                ; controlValue
126                           SEP142                           SEP
127                           ; (See note 9, below)143                           ; (See note 9, below)
128144
129ldap-oid                 = 1*DIGIT 0*1("." 1*DIGIT)145ldap-oid                 = 1*DIGIT 0*1("." 1*DIGIT)
n130                           ; An LDAPOID, as defined in [4]n146                           ; An LDAPOID, as defined in [RFC2251]
131147
132attrval-spec             = AttributeDescription value-spec SEP148attrval-spec             = AttributeDescription value-spec SEP
133149
n134value-spec               = ":" (    FILL 0*1(SAFE-STRING) /n150value-spec               = ":" (    FILL 0*1(SAFE-UTF8-STRING) /
135                                ":" FILL (BASE64-STRING) /151                                ":" FILL (BASE64-STRING) /
136                                "<" FILL url)152                                "<" FILL url)
137                           ; See notes 7 and 8, below153                           ; See notes 7 and 8, below
138154
139url                      = <a Uniform Resource Locator,155url                      = <a Uniform Resource Locator,
n140                            as defined in [6]>n156                            as defined in [RFC1738]>
141                                   ; (See Note 6, below)157                                   ; (See Note 6, below)
142158
143AttributeDescription     = AttributeType [";" options]159AttributeDescription     = AttributeType [";" options]
n144                           ; Definition taken from [4]n160                           ; Definition taken from [RFC2251]
145161
146AttributeType            = ldap-oid / (ALPHA *(attr-type-chars))162AttributeType            = ldap-oid / (ALPHA *(attr-type-chars))
147163
148options                  = option / (option ";" options)164options                  = option / (option ";" options)
149165
150option                   = 1*opt-char166option                   = 1*opt-char
151167
152attr-type-chars          = ALPHA / DIGIT / "-"168attr-type-chars          = ALPHA / DIGIT / "-"
153169
154opt-char                 = attr-type-chars170opt-char                 = attr-type-chars
155171
156changerecord             = "changetype:" FILL172changerecord             = "changetype:" FILL
157                           (change-add / change-delete /173                           (change-add / change-delete /
158                            change-modify / change-moddn)174                            change-modify / change-moddn)
159175
160change-add               = "add"                SEP 1*attrval-spec176change-add               = "add"                SEP 1*attrval-spec
161177
162change-delete            = "delete"             SEP178change-delete            = "delete"             SEP
163179
164change-moddn             = ("modrdn" / "moddn") SEP180change-moddn             = ("modrdn" / "moddn") SEP
165                            "newrdn:" (    FILL rdn /181                            "newrdn:" (    FILL rdn /
166                                       ":" FILL base64-rdn) SEP182                                       ":" FILL base64-rdn) SEP
167                            "deleteoldrdn:" FILL ("0" / "1")  SEP183                            "deleteoldrdn:" FILL ("0" / "1")  SEP
168                            0*1("newsuperior:"184                            0*1("newsuperior:"
169                            (    FILL distinguishedName /185                            (    FILL distinguishedName /
170                             ":" FILL base64-distinguishedName) SEP)186                             ":" FILL base64-distinguishedName) SEP)
171187
172change-modify            = "modify"             SEP *mod-spec188change-modify            = "modify"             SEP *mod-spec
173189
174mod-spec                 = ("add:" / "delete:" / "replace:")190mod-spec                 = ("add:" / "delete:" / "replace:")
175                           FILL AttributeDescription SEP191                           FILL AttributeDescription SEP
176                           *attrval-spec192                           *attrval-spec
177                           "-" SEP193                           "-" SEP
178194
179SPACE                    = %x20195SPACE                    = %x20
180                           ; ASCII SP, space196                           ; ASCII SP, space
181197
182FILL                     = *SPACE198FILL                     = *SPACE
183199
184SEP                      = (CR LF / LF)200SEP                      = (CR LF / LF)
185201
186CR                       = %x0D202CR                       = %x0D
187                           ; ASCII CR, carriage return203                           ; ASCII CR, carriage return
188204
189LF                       = %x0A205LF                       = %x0A
190                           ; ASCII LF, line feed206                           ; ASCII LF, line feed
191207
192ALPHA                    = %x41-5A / %x61-7A208ALPHA                    = %x41-5A / %x61-7A
193                           ; A-Z / a-z209                           ; A-Z / a-z
194210
195DIGIT                    = %x30-39211DIGIT                    = %x30-39
196                           ; 0-9212                           ; 0-9
197213
n198UTF8-1                   = %x80-BFn214UTF8-1                   = %x00-7F
199215
nn216UTF8-tail                = %x80-BF
217 
200UTF8-2                   = %xC0-DF UTF8-1218UTF8-2                   = %xC2-DF UTF8-tail
201219
n202UTF8-3                   = %xE0-E2UTF8-1n220UTF8-3                   = %xE0 %xA0-BF UTF8-tail /
221                           %xE1-EC 2( UTF8-tail ) /
222                           %xED %x80-9F UTF8-tail /
223                           %xEE-EF 2( UTF8-tail )
203224
n204UTF8-4                   = %xF0-F7 3UTF8-1n225UTF8-4                   = %xF0 %x90-BF 2( UTF8-tail ) /
226                           %xF1-F3 3( UTF8-tail ) /
227                           %xF4 %x80-8F 2( UTF8-tail )
205228
n206UTF8-5                   = %xF8-FB 4UTF8-1n229UTF8-CHAR                = UTF8-1 / UTF8-2 / UTF8-3 / UTF8-4
207230
n208UTF8-6                   = %xFC-FD 5UTF8-1n231UTF8-STRING              = *UTF8-CHAR
209232
210SAFE-CHAR                = %x01-09 / %x0B-0C / %x0E-7F233SAFE-CHAR                = %x01-09 / %x0B-0C / %x0E-7F
211                           ; any value <= 127 decimal except NUL, LF,234                           ; any value <= 127 decimal except NUL, LF,
212                           ; and CR235                           ; and CR
213236
214SAFE-INIT-CHAR           = %x01-09 / %x0B-0C / %x0E-1F /237SAFE-INIT-CHAR           = %x01-09 / %x0B-0C / %x0E-1F /
215                           %x21-39 / %x3B / %x3D-7F238                           %x21-39 / %x3B / %x3D-7F
216                           ; any value <= 127 except NUL, LF, CR,239                           ; any value <= 127 except NUL, LF, CR,
217                           ; SPACE, colon (":", ASCII 58 decimal)240                           ; SPACE, colon (":", ASCII 58 decimal)
218                           ; and less-than ("<" , ASCII 60 decimal)241                           ; and less-than ("<" , ASCII 60 decimal)
219242
220SAFE-STRING              = [SAFE-INIT-CHAR *SAFE-CHAR]243SAFE-STRING              = [SAFE-INIT-CHAR *SAFE-CHAR]
221244
n222UTF8-CHAR                = SAFE-CHAR / UTF8-2 / UTF8-3 /n245SAFE-UTF8-CHAR           = SAFE-CHAR / UTF8-2 / UTF8-3 / UTF8-4
223                           UTF8-4 / UTF8-5 / UTF8-6
224246
n225UTF8-STRING              = *UTF8-CHARn247SAFE-INIT-UTF8-CHAR      = SAFE-INIT-CHAR / UTF8-2 / UTF8-3 / UTF8-4
248 
249SAFE-UTF8-STRING         = [SAFE-INIT-UTF8-CHAR *SAFE-UTF8-CHAR]
226250
227BASE64-UTF8-STRING       = BASE64-STRING251BASE64-UTF8-STRING       = BASE64-STRING
228                           ; MUST be the base64 encoding of a252                           ; MUST be the base64 encoding of a
229                           ; UTF8-STRING253                           ; UTF8-STRING
230254
231BASE64-CHAR              = %x2B / %x2F / %x30-39 / %x3D / %x41-5A /255BASE64-CHAR              = %x2B / %x2F / %x30-39 / %x3D / %x41-5A /
232                           %x61-7A256                           %x61-7A
233                           ; +, /, 0-9, =, A-Z, and a-z257                           ; +, /, 0-9, =, A-Z, and a-z
n234                           ; as specified in [5]n258                           ; as specified in [RFC2045]
235259
236BASE64-STRING            = [*(BASE64-CHAR)]260BASE64-STRING            = [*(BASE64-CHAR)]
237261
238262
239   Notes on LDIF Syntax263   Notes on LDIF Syntax
240264
241      1)  For the LDIF format described in this document, the version265      1)  For the LDIF format described in this document, the version
n242          number MUST be "1". If the version number is absent,n266          number MUST be "2".  If the version number is absent,
243          implementations MAY choose to interpret the contents as an267          implementations MAY choose to interpret the contents as an
244          older LDIF file format, supported by the University of268          older LDIF file format, supported by the University of
n245          Michigan ldap-3.3 implementation [8].n269          Michigan ldap-3.3 implementation [UMich96].
246270
247      2)  Any non-empty line, including comment lines, in an LDIF file271      2)  Any non-empty line, including comment lines, in an LDIF file
248          MAY be folded by inserting a line separator (SEP) and a SPACE.272          MAY be folded by inserting a line separator (SEP) and a SPACE.
249          Folding MUST NOT occur before the first character of the line.273          Folding MUST NOT occur before the first character of the line.
250          In other words, folding a line into two lines, the first of274          In other words, folding a line into two lines, the first of
n251          which is empty, is not permitted. Any line that begins with an275          which is empty, is not permitted.  Any line that begins with a
252          single space MUST be treated as a continuation of the previous276          single space MUST be treated as a continuation of the previous
n253          (non-empty) line. When joining folded lines, exactly one spacen277          (non-empty) line.  When joining folded lines, exactly one space
254          character at the beginning of each continued line must be278          character at the beginning of each continued line must be
n255          discarded. Implementations SHOULD NOT fold lines in the middlen279          discarded.  Implementations SHOULD NOT fold lines in the middle
256          of a multi-byte UTF-8 character.280          of a multi-byte UTF-8 character.
257281
258      3)  Any line that begins with a pound-sign ("#", ASCII 35) is a282      3)  Any line that begins with a pound-sign ("#", ASCII 35) is a
259          comment line, and MUST be ignored when parsing an LDIF file.283          comment line, and MUST be ignored when parsing an LDIF file.
260284
nn285      4)  Any dn, rdn or attrval-spec that contains characters other
286          than those defined as "SAFE-UTF8-CHAR", or begins with a
287          character other than those defined as "SAFE-INIT-UTF8-CHAR",
288          above, MUST be base-64 encoded.  Other values MAY be base-64
261      4)  Any dn or rdn that contains characters other than those289          encoded.  Any value that contains characters other than those
262          defined as "SAFE-UTF8-CHAR", or begins with a character other290          defined as "SAFE--CHAR", or begins with a character other than
263          than those defined as "SAFE-INIT-UTF8-CHAR", above, MUST be291          those defined as "SAFE-INIT--CHAR", above, MUST be base-64
264          base-64 encoded.  Other values MAY be base-64 encoded.  Any292          encoded.  Other values MAY be base-64 encoded.
265          value that contains characters other than those defined as
266          "SAFE-CHAR", or begins with a character other than those
267          defined as "SAFE-INIT-CHAR", above, MUST be base-64 encoded.
268          Other values MAY be base-64 encoded.
269293
270      5)  When a zero-length attribute value is to be included directly294      5)  When a zero-length attribute value is to be included directly
271          in an LDIF file, it MUST be represented as295          in an LDIF file, it MUST be represented as
272          AttributeDescription ":" FILL SEP.  For example, "seeAlso:"296          AttributeDescription ":" FILL SEP.  For example, "seeAlso:"
273          followed by a newline represents a zero-length "seeAlso"297          followed by a newline represents a zero-length "seeAlso"
274          attribute value.  It is also permissible for the value298          attribute value.  It is also permissible for the value
275          referred to by a URL to be of zero length.299          referred to by a URL to be of zero length.
276300
277      6) When a URL is specified in an attrval-spec, the following301      6) When a URL is specified in an attrval-spec, the following
278          conventions apply:302          conventions apply:
279303
280         a) Implementations SHOULD support the file:// URL format.  The304         a) Implementations SHOULD support the file:// URL format.  The
281            contents of the referenced file are to be included verbatim305            contents of the referenced file are to be included verbatim
282            in the interpreted output of the LDIF file.306            in the interpreted output of the LDIF file.
283         b) Implementations MAY support other URL formats.  The307         b) Implementations MAY support other URL formats.  The
284            semantics associated with each supported URL will be308            semantics associated with each supported URL will be
285            documented in an associated Applicability Statement.309            documented in an associated Applicability Statement.
286310
287      7)  Distinguished names, relative distinguished names, and311      7)  Distinguished names, relative distinguished names, and
288          attribute values of DirectoryString syntax MUST be valid UTF-8312          attribute values of DirectoryString syntax MUST be valid UTF-8
289          strings.  Implementations that read LDIF MAY interpret files313          strings.  Implementations that read LDIF MAY interpret files
290          in which these entities are stored in some other character set314          in which these entities are stored in some other character set
291          encoding, but implementations MUST NOT generate LDIF content315          encoding, but implementations MUST NOT generate LDIF content
292          which does not contain valid UTF-8 data.316          which does not contain valid UTF-8 data.
293317
294      8)  Values or distinguished names that end with SPACE SHOULD be318      8)  Values or distinguished names that end with SPACE SHOULD be
295          base-64 encoded.319          base-64 encoded.
296320
297      9)  When controls are included in an LDIF file, implementations321      9)  When controls are included in an LDIF file, implementations
n298          MAY choose to ignore some or all of them. This may ben322          MAY choose to ignore some or all of them.  This may be
299          necessary if the changes described in the LDIF file are being323          necessary if the changes described in the LDIF file are being
300          sent on an LDAPv2 connection (LDAPv2 does not support324          sent on an LDAPv2 connection (LDAPv2 does not support
301          controls), or the particular controls are not supported by the325          controls), or the particular controls are not supported by the
n302          remote server. If the criticality of a control is "true", thenn326          remote server.  If the criticality of a control is "true", then
303          the implementation MUST either include the control, or MUST327          the implementation MUST either include the control, or MUST
304          NOT send the operation to a remote server.328          NOT send the operation to a remote server.
305329
306      10) When an attrval-spec, distinguishedName, or rdn is base64-330      10) When an attrval-spec, distinguishedName, or rdn is base64-
n307          encoded, the encoding rules specified in [5] are used with then331          encoded, the encoding rules specified in [RFC2045] are used
308          following exceptions:  a) The requirement that base64 output332          with the following exceptions:  a) The requirement that base64
309          streams must be represented as lines of no more than 76333          output streams must be represented as lines of no more than 76
310          characters is removed. Lines in LDIF files may only be folded334          characters is removed.  Lines in LDIF files may only be folded
311          according to the folding rules described in note 2, above.  b)335          according to the folding rules described in note 2, above.  b)
n312          Base64 strings in [5] may contain characters other than thosen336          Base64 strings in [RFC2045] may contain characters other than
313          defined in BASE64-CHAR, and are ignored. LDIF does not permit337          those defined in BASE64-CHAR, and are ignored.  LDIF does not
314          any extraneous characters, other than those used for line338          permit any extraneous characters, other than those used for
315          folding.339          line folding.
316340
317Examples of LDAP Data Interchange Format341Examples of LDAP Data Interchange Format
318342
319Example 1: An simple LDAP file with two entries343Example 1: An simple LDAP file with two entries
320344
321version: 1345version: 1
322dn: cn=Barbara Jensen, ou=Product Development, dc=airius, dc=com346dn: cn=Barbara Jensen, ou=Product Development, dc=airius, dc=com
323objectclass: top347objectclass: top
324objectclass: person348objectclass: person
325objectclass: organizationalPerson349objectclass: organizationalPerson
326cn: Barbara Jensen350cn: Barbara Jensen
327cn: Barbara J Jensen351cn: Barbara J Jensen
328cn: Babs Jensen352cn: Babs Jensen
329sn: Jensen353sn: Jensen
330uid: bjensen354uid: bjensen
331telephonenumber: +1 408 555 1212355telephonenumber: +1 408 555 1212
332description: A big sailing fan.356description: A big sailing fan.
333357
334dn: cn=Bjorn Jensen, ou=Accounting, dc=airius, dc=com358dn: cn=Bjorn Jensen, ou=Accounting, dc=airius, dc=com
335objectclass: top359objectclass: top
336objectclass: person360objectclass: person
337objectclass: organizationalPerson361objectclass: organizationalPerson
338cn: Bjorn Jensen362cn: Bjorn Jensen
339sn: Jensen363sn: Jensen
340telephonenumber: +1 408 555 1212364telephonenumber: +1 408 555 1212
341365
342Example 2: A file containing an entry with a folded attribute value366Example 2: A file containing an entry with a folded attribute value
343367
344version: 1368version: 1
345dn:cn=Barbara Jensen, ou=Product Development, dc=airius, dc=com369dn:cn=Barbara Jensen, ou=Product Development, dc=airius, dc=com
346objectclass:top370objectclass:top
347objectclass:person371objectclass:person
348objectclass:organizationalPerson372objectclass:organizationalPerson
349cn:Barbara Jensen373cn:Barbara Jensen
350cn:Barbara J Jensen374cn:Barbara J Jensen
351cn:Babs Jensen375cn:Babs Jensen
352sn:Jensen376sn:Jensen
353uid:bjensen377uid:bjensen
354telephonenumber:+1 408 555 1212378telephonenumber:+1 408 555 1212
355description:Babs is a big sailing fan, and travels extensively in sea379description:Babs is a big sailing fan, and travels extensively in sea
356 rch of perfect sailing conditions.380 rch of perfect sailing conditions.
357title:Product Manager, Rod and Reel Division381title:Product Manager, Rod and Reel Division
358382
359Example 3: A file containing a base-64-encoded value383Example 3: A file containing a base-64-encoded value
360384
361version: 1385version: 1
362dn: cn=Gern Jensen, ou=Product Testing, dc=airius, dc=com386dn: cn=Gern Jensen, ou=Product Testing, dc=airius, dc=com
363objectclass: top387objectclass: top
364objectclass: person388objectclass: person
365objectclass: organizationalPerson389objectclass: organizationalPerson
366cn: Gern Jensen390cn: Gern Jensen
367cn: Gern O Jensen391cn: Gern O Jensen
368sn: Jensen392sn: Jensen
369uid: gernj393uid: gernj
370telephonenumber: +1 408 555 1212394telephonenumber: +1 408 555 1212
371description:: V2hhdCBhIGNhcmVmdWwgcmVhZGVyIHlvdSBhcmUhICBUaGlzIHZhbHVl395description:: V2hhdCBhIGNhcmVmdWwgcmVhZGVyIHlvdSBhcmUhICBUaGlzIHZhbHVl
372IGlzIGJhc2UtNjQtZW5jb2RlZCBiZWNhdXNlIGl0IGhhcyBhIGNvbnRyb2wgY2hhcmFjdG396IGlzIGJhc2UtNjQtZW5jb2RlZCBiZWNhdXNlIGl0IGhhcyBhIGNvbnRyb2wgY2hhcmFjdG
373VyIGluIGl0IChhIENSKS4NICBCeSB0aGUgd2F5LCB5b3Ugc2hvdWxkIHJlYWxseSBnZXQg397VyIGluIGl0IChhIENSKS4NICBCeSB0aGUgd2F5LCB5b3Ugc2hvdWxkIHJlYWxseSBnZXQg
374b3V0IG1vcmUu398b3V0IG1vcmUu
375399
376Example 4: A file containing an entries with UTF-8-encoded attribute400Example 4: A file containing an entries with UTF-8-encoded attribute
377values, including language tags.  Comments indicate the contents401values, including language tags.  Comments indicate the contents
378of UTF-8-encoded attributes and distinguished names.402of UTF-8-encoded attributes and distinguished names.
379403
380version: 1404version: 1
381dn:: b3U95Za25qWt6YOoLG89QWlyaXVz405dn:: b3U95Za25qWt6YOoLG89QWlyaXVz
382# dn:: ou=<JapaneseOU>,o=Airius406# dn:: ou=<JapaneseOU>,o=Airius
383objectclass: top407objectclass: top
384objectclass: organizationalUnit408objectclass: organizationalUnit
385ou:: 5Za25qWt6YOo409ou:: 5Za25qWt6YOo
386# ou:: <JapaneseOU>410# ou:: <JapaneseOU>
387ou;lang-ja:: 5Za25qWt6YOo411ou;lang-ja:: 5Za25qWt6YOo
388# ou;lang-ja:: <JapaneseOU>412# ou;lang-ja:: <JapaneseOU>
389ou;lang-ja;phonetic:: 44GI44GE44GO44KH44GG44G2413ou;lang-ja;phonetic:: 44GI44GE44GO44KH44GG44G2
390414
391# ou;lang-ja:: <JapaneseOU_in_phonetic_representation>415# ou;lang-ja:: <JapaneseOU_in_phonetic_representation>
392ou;lang-en: Sales416ou;lang-en: Sales
393description: Japanese office417description: Japanese office
394418
395dn:: dWlkPXJvZ2FzYXdhcmEsb3U95Za25qWt6YOoLG89QWlyaXVz419dn:: dWlkPXJvZ2FzYXdhcmEsb3U95Za25qWt6YOoLG89QWlyaXVz
396# dn:: uid=<uid>,ou=<JapaneseOU>,o=Airius420# dn:: uid=<uid>,ou=<JapaneseOU>,o=Airius
397userpassword: {SHA}O3HSv1MusyL4kTjP+HKI5uxuNoM=421userpassword: {SHA}O3HSv1MusyL4kTjP+HKI5uxuNoM=
398objectclass: top422objectclass: top
399objectclass: person423objectclass: person
400objectclass: organizationalPerson424objectclass: organizationalPerson
401objectclass: inetOrgPerson425objectclass: inetOrgPerson
402uid: rogasawara426uid: rogasawara
403mail: rogasawara@airius.co.jp427mail: rogasawara@airius.co.jp
404givenname;lang-ja:: 44Ot44OJ44OL44O8428givenname;lang-ja:: 44Ot44OJ44OL44O8
405# givenname;lang-ja:: <JapaneseGivenname>429# givenname;lang-ja:: <JapaneseGivenname>
406sn;lang-ja:: 5bCP56yg5Y6f430sn;lang-ja:: 5bCP56yg5Y6f
407# sn;lang-ja:: <JapaneseSn>431# sn;lang-ja:: <JapaneseSn>
408cn;lang-ja:: 5bCP56yg5Y6fIOODreODieODi+ODvA==432cn;lang-ja:: 5bCP56yg5Y6fIOODreODieODi+ODvA==
409# cn;lang-ja:: <JapaneseCn>433# cn;lang-ja:: <JapaneseCn>
410title;lang-ja:: 5Za25qWt6YOoIOmDqOmVtw==434title;lang-ja:: 5Za25qWt6YOoIOmDqOmVtw==
411# title;lang-ja:: <JapaneseTitle>435# title;lang-ja:: <JapaneseTitle>
412preferredlanguage: ja436preferredlanguage: ja
413givenname:: 44Ot44OJ44OL44O8437givenname:: 44Ot44OJ44OL44O8
414# givenname:: <JapaneseGivenname>438# givenname:: <JapaneseGivenname>
415sn:: 5bCP56yg5Y6f439sn:: 5bCP56yg5Y6f
416# sn:: <JapaneseSn>440# sn:: <JapaneseSn>
417cn:: 5bCP56yg5Y6fIOODreODieODi+ODvA==441cn:: 5bCP56yg5Y6fIOODreODieODi+ODvA==
418# cn:: <JapaneseCn>442# cn:: <JapaneseCn>
419title:: 5Za25qWt6YOoIOmDqOmVtw==443title:: 5Za25qWt6YOoIOmDqOmVtw==
420# title:: <JapaneseTitle>444# title:: <JapaneseTitle>
421givenname;lang-ja;phonetic:: 44KN44Gp44Gr44O8445givenname;lang-ja;phonetic:: 44KN44Gp44Gr44O8
422# givenname;lang-ja;phonetic::446# givenname;lang-ja;phonetic::
423<JapaneseGivenname_in_phonetic_representation_kana>447<JapaneseGivenname_in_phonetic_representation_kana>
424sn;lang-ja;phonetic:: 44GK44GM44GV44KP44KJ448sn;lang-ja;phonetic:: 44GK44GM44GV44KP44KJ
425# sn;lang-ja;phonetic:: <JapaneseSn_in_phonetic_representation_kana>449# sn;lang-ja;phonetic:: <JapaneseSn_in_phonetic_representation_kana>
426cn;lang-ja;phonetic:: 44GK44GM44GV44KP44KJIOOCjeOBqeOBq+ODvA==450cn;lang-ja;phonetic:: 44GK44GM44GV44KP44KJIOOCjeOBqeOBq+ODvA==
427# cn;lang-ja;phonetic:: <JapaneseCn_in_phonetic_representation_kana>451# cn;lang-ja;phonetic:: <JapaneseCn_in_phonetic_representation_kana>
428title;lang-ja;phonetic:: 44GI44GE44GO44KH44GG44G2IOOBtuOBoeOCh+OBhg==452title;lang-ja;phonetic:: 44GI44GE44GO44KH44GG44G2IOOBtuOBoeOCh+OBhg==
429# title;lang-ja;phonetic::453# title;lang-ja;phonetic::
430# <JapaneseTitle_in_phonetic_representation_kana>454# <JapaneseTitle_in_phonetic_representation_kana>
431givenname;lang-en: Rodney455givenname;lang-en: Rodney
432sn;lang-en: Ogasawara456sn;lang-en: Ogasawara
433cn;lang-en: Rodney Ogasawara457cn;lang-en: Rodney Ogasawara
434title;lang-en: Sales, Director458title;lang-en: Sales, Director
435459
436Example 5: A file containing a reference to an external file460Example 5: A file containing a reference to an external file
437461
438version: 1462version: 1
439dn: cn=Horatio Jensen, ou=Product Testing, dc=airius, dc=com463dn: cn=Horatio Jensen, ou=Product Testing, dc=airius, dc=com
440objectclass: top464objectclass: top
441objectclass: person465objectclass: person
442objectclass: organizationalPerson466objectclass: organizationalPerson
443cn: Horatio Jensen467cn: Horatio Jensen
444468
445cn: Horatio N Jensen469cn: Horatio N Jensen
446sn: Jensen470sn: Jensen
447uid: hjensen471uid: hjensen
448telephonenumber: +1 408 555 1212472telephonenumber: +1 408 555 1212
449jpegphoto:< file:///usr/local/directory/photos/hjensen.jpg473jpegphoto:< file:///usr/local/directory/photos/hjensen.jpg
450474
451Example 6: A file containing a series of change records and comments475Example 6: A file containing a series of change records and comments
452476
453version: 1477version: 1
454# Add a new entry478# Add a new entry
455dn: cn=Fiona Jensen, ou=Marketing, dc=airius, dc=com479dn: cn=Fiona Jensen, ou=Marketing, dc=airius, dc=com
456changetype: add480changetype: add
457objectclass: top481objectclass: top
458objectclass: person482objectclass: person
459objectclass: organizationalPerson483objectclass: organizationalPerson
460cn: Fiona Jensen484cn: Fiona Jensen
461sn: Jensen485sn: Jensen
462uid: fiona486uid: fiona
463telephonenumber: +1 408 555 1212487telephonenumber: +1 408 555 1212
464jpegphoto:< file:///usr/local/directory/photos/fiona.jpg488jpegphoto:< file:///usr/local/directory/photos/fiona.jpg
465489
466# Delete an existing entry490# Delete an existing entry
467dn: cn=Robert Jensen, ou=Marketing, dc=airius, dc=com491dn: cn=Robert Jensen, ou=Marketing, dc=airius, dc=com
468changetype: delete492changetype: delete
469493
470# Modify an entry's relative distinguished name494# Modify an entry's relative distinguished name
471dn: cn=Paul Jensen, ou=Product Development, dc=airius, dc=com495dn: cn=Paul Jensen, ou=Product Development, dc=airius, dc=com
472changetype: modrdn496changetype: modrdn
473newrdn: cn=Paula Jensen497newrdn: cn=Paula Jensen
474deleteoldrdn: 1498deleteoldrdn: 1
475499
476# Rename an entry and move all of its children to a new location in500# Rename an entry and move all of its children to a new location in
477# the directory tree (only implemented by LDAPv3 servers).501# the directory tree (only implemented by LDAPv3 servers).
478dn: ou=PD Accountants, ou=Product Development, dc=airius, dc=com502dn: ou=PD Accountants, ou=Product Development, dc=airius, dc=com
479changetype: modrdn503changetype: modrdn
480newrdn: ou=Product Development Accountants504newrdn: ou=Product Development Accountants
481deleteoldrdn: 0505deleteoldrdn: 0
482newsuperior: ou=Accounting, dc=airius, dc=com506newsuperior: ou=Accounting, dc=airius, dc=com
483507
484# Modify an entry: add an additional value to the postaladdress508# Modify an entry: add an additional value to the postaladdress
485# attribute, completely delete the description attribute, replace509# attribute, completely delete the description attribute, replace
486# the telephonenumber attribute with two values, and delete a specific510# the telephonenumber attribute with two values, and delete a specific
487# value from the facsimiletelephonenumber attribute511# value from the facsimiletelephonenumber attribute
488dn: cn=Paula Jensen, ou=Product Development, dc=airius, dc=com512dn: cn=Paula Jensen, ou=Product Development, dc=airius, dc=com
489changetype: modify513changetype: modify
490add: postaladdress514add: postaladdress
491postaladdress: 123 Anystreet $ Sunnyvale, CA $ 94086515postaladdress: 123 Anystreet $ Sunnyvale, CA $ 94086
492-516-
493517
494delete: description518delete: description
495-519-
496replace: telephonenumber520replace: telephonenumber
497telephonenumber: +1 408 555 1234521telephonenumber: +1 408 555 1234
498telephonenumber: +1 408 555 5678522telephonenumber: +1 408 555 5678
499-523-
500delete: facsimiletelephonenumber524delete: facsimiletelephonenumber
501facsimiletelephonenumber: +1 408 555 9876525facsimiletelephonenumber: +1 408 555 9876
502-526-
503527
504# Modify an entry: replace the postaladdress attribute with an empty528# Modify an entry: replace the postaladdress attribute with an empty
505# set of values (which will cause the attribute to be removed), and529# set of values (which will cause the attribute to be removed), and
n506# delete the entire description attribute. Note that the first willn530# delete the entire description attribute.  Note that the first will
507# always succeed, while the second will only succeed if at least531# always succeed, while the second will only succeed if at least
508# one value for the description attribute is present.532# one value for the description attribute is present.
509dn: cn=Ingrid Jensen, ou=Product Support, dc=airius, dc=com533dn: cn=Ingrid Jensen, ou=Product Support, dc=airius, dc=com
510changetype: modify534changetype: modify
511replace: postaladdress535replace: postaladdress
512-536-
513delete: description537delete: description
514-538-
515539
516Example 7: An LDIF file containing a change record with a control540Example 7: An LDIF file containing a change record with a control
517version: 1541version: 1
n518# Delete an entry. The operation will attach the LDAPv3n542# Delete an entry.  The operation will attach the LDAPv3
519# Tree Delete Control defined in [9]. The criticality543# Tree Delete Control defined in [Armijo00].  The criticality
520# field is "true" and the controlValue field is544# field is "true" and the controlValue field is
n521# absent, as required by [9].n545# absent, as required by [Armijo00].
522dn: ou=Product Development, dc=airius, dc=com546dn: ou=Product Development, dc=airius, dc=com
523control: 1.2.840.113556.1.4.805 true547control: 1.2.840.113556.1.4.805 true
524changetype: delete548changetype: delete
525549
526Security Considerations550Security Considerations
527551
528   Given typical directory applications, an LDIF file is likely to552   Given typical directory applications, an LDIF file is likely to
529   contain sensitive personal data.  Appropriate measures should be553   contain sensitive personal data.  Appropriate measures should be
530   taken to protect the privacy of those persons whose data is contained554   taken to protect the privacy of those persons whose data is contained
531   in an LDIF file.555   in an LDIF file.
532556
533   Since ":<" directives can cause external content to be included when557   Since ":<" directives can cause external content to be included when
534   processing an LDIF file, one should be cautious of accepting LDIF558   processing an LDIF file, one should be cautious of accepting LDIF
535   files from external sources.  A "trojan" LDIF file could name a file559   files from external sources.  A "trojan" LDIF file could name a file
536   with sensitive contents and cause it to be included in a directory560   with sensitive contents and cause it to be included in a directory
537   entry, which a hostile entity could read via LDAP.561   entry, which a hostile entity could read via LDAP.
538562
539   LDIF does not provide any method for carrying authentication563   LDIF does not provide any method for carrying authentication
540   information with an LDIF file.  Users of LDIF files must take care to564   information with an LDIF file.  Users of LDIF files must take care to
541   verify the integrity of an LDIF file received from an external565   verify the integrity of an LDIF file received from an external
542   source.566   source.
543567
nn568Contributors
569   Gordon Good was the author of [RFC2849] which defined LDIF. Most
570   of this specification is a copy of [RFC2849], simply adding full
571   support for UTF-8 and editing according to newer RFC standards.
572 
544Acknowledgments573Acknowledgments
545574
546   The LDAP Interchange Format was developed as part of the University575   The LDAP Interchange Format was developed as part of the University
547   of Michigan LDAP reference implementation, and was developed by Tim576   of Michigan LDAP reference implementation, and was developed by Tim
548   Howes, Mark Smith, and Gordon Good.  It is based in part upon work577   Howes, Mark Smith, and Gordon Good.  It is based in part upon work
549   supported by the National Science Foundation under Grant No.  NCR-578   supported by the National Science Foundation under Grant No.  NCR-
550   9416667.579   9416667.
551580
552   Members of the IETF LDAP Extensions Working group provided many581   Members of the IETF LDAP Extensions Working group provided many
n553   helpful suggestions. In particular, Hallvard B. Furuseth of then582   helpful suggestions.  In particular, Hallvard B. Furuseth of the
554   University of Oslo made many significant contributions to this583   University of Oslo made many significant contributions to this
555   document, including a thorough review and rewrite of the BNF.584   document, including a thorough review and rewrite of the BNF.
556585
n557Referencesn586Normative References
558587
n559   [1]  Howes, T. and M. Smith, "A MIME Content-Type for Directoryn
560        Information", RFC 2425, September 1998.
561 
562   [2]  Crocker, D., and P. Overell, "Augmented BNF for Syntax588   [RFC2234]   Crocker, D., and P. Overell, "Augmented BNF for Syntax
563        Specifications: ABNF", RFC 2234, November 1997.589               Specifications: ABNF", RFC 2234, November 1997.
564590
n565   [3]  Wahl, M., Kille, S. and T. Howes, "A String Representation ofn591   [RFC2253]   Wahl, M., Kille, S. and T. Howes, "A String
566        Distinguished Names", RFC 2253, December 1997.592               Representation of Distinguished Names", RFC 2253,
593               December 1997.
567594
n568   [4]  Wahl, M., Howes, T. and S. Kille, "Lightweight Directory Accessn595   [RFC2251]   Wahl, M., Howes, T. and S. Kille, "Lightweight Directory
569        Protocol (v3)", RFC 2251, July 1997.596               Access Protocol (v3)", RFC 2251, July 1997.
570597
n571   [5]  Freed, N. and N. Borenstein, "Multipurpose Internet Mailn598   [RFC2045]   Freed, N. and N. Borenstein, "Multipurpose Internet Mail
572        Extensions (MIME) Part One: Format of Internet Message Bodies",599               Extensions (MIME) Part One: Format of Internet Message
573        RFC 2045, November 1996.600               Bodies", RFC 2045, November 1996.
574601
n575   [6]  Berners-Lee,  T., Masinter, L. and M. McCahill, "Uniformn602   [RFC1738]   Berners-Lee,  T., Masinter, L. and M. McCahill, "Uniform
576        Resource Locators (URL)", RFC 1738, December 1994.603               Resource Locators (URL)", RFC 1738, December 1994.
577604
n578   [7]  Bradner, S., "Key Words for use in RFCs to Indicate Requirementn605   [RFC2119]   Bradner, S., "Key Words for use in RFCs to Indicate
579        Levels", BCP 14, RFC 2119, March 1997.606               Requirement Levels", BCP 14, RFC 2119, March 1997.
580607
nn608   [RFC3629]   Yergeau, F., "UTF-8, a transformation format
609               of ISO 10646", November 2003
610 
611 
612 
613 
614Informative References
615 
616   [RFC2849]   Good, G., "The LDAP Data Interchange Format",
617               RFC 2849, June 2000.
618 
619   [RFC2425]   Howes, T. and M. Smith, "A MIME Content-Type for Directory
620               Information", RFC 2425, September 1998.
621 
622   [Armijo00]  M. P. Armijo, "Tree Delete Control", Work in Progress.
623               August 2000.
624 
581   [8]  The SLAPD and SLURPD Administrators Guide.  University of625   [UMich96]   The SLAPD and SLURPD Administrators Guide.  University of
582        Michigan, April 1996.  <URL:626               Michigan, April 1996.  <URL:
583        http://www.umich.edu/~dirsvcs/ldap/doc/guides/slapd/toc.html>627           http://www.umich.edu/~dirsvcs/ldap/doc/guides/slapd/toc.html>
584628
n585   [9]  M. P. Armijo, "Tree Delete Control", Work in Progress.n629   [RFC2223]   Postel, J. and Reynolds, J., "Instructions to RFC
630               Authors", RFC2223, October 1997.
586631
587Author's Address632Author's Address
588633
589   Gordon Good634   Gordon Good
590   iPlanet e-commerce Solutions635   iPlanet e-commerce Solutions
591   150 Network Circle636   150 Network Circle
592   Mailstop USCA17-201637   Mailstop USCA17-201
593   Santa Clara, CA 95054, USA638   Santa Clara, CA 95054, USA
594639
595   Phone: +1 408 276 4351640   Phone: +1 408 276 4351
596   EMail:  ggood@netscape.com641   EMail:  ggood@netscape.com
597642
n598Full Copyright Statementn643Intellectual Property
599644
n600   Copyright (C) The Internet Society (2000).  All Rights Reserved.n645   The IETF takes no position regarding the validity or scope of any
646   Intellectual Property Rights or other rights that might be claimed
647   to pertain to the implementation or use of the technology
648   described in this document or the extent to which any license
649   under such rights might or might not be available; nor does it
650   represent that it has made any independent effort to identify any
651   such rights.  Information on the ISOC's procedures with respect to
652   rights in ISOC Documents can be found in BCP 78 and BCP 79.
601653
n602   This document and translations of it may be copied and furnished ton654   Copies of IPR disclosures made to the IETF Secretariat and any
603   others, and derivative works that comment on or otherwise explain it655   assurances of licenses to be made available, or the result of an
604   or assist in its implementation may be prepared, copied, published656   attempt made to obtain a general license or permission for the use
605   and distributed, in whole or in part, without restriction of any657   of such proprietary rights by implementers or users of this
606   kind, provided that the above copyright notice and this paragraph are658   specification can be obtained from the IETF on-line IPR repository
607   included on all such copies and derivative works.  However, this659   at http://www.ietf.org/ipr.
608   document itself may not be modified in any way, such as by removing
609   the copyright notice or references to the Internet Society or other
610   Internet organizations, except as needed for the purpose of
611   developing Internet standards in which case the procedures for
612   copyrights defined in the Internet Standards process must be
613   followed, or as required to translate it into languages other than
614   English.
615660
n616   The limited permissions granted above are perpetual and will not ben661   The IETF invites any interested party to bring to its attention
617   revoked by the Internet Society or its successors or assigns.662   any copyrights, patents or patent applications, or other
663   proprietary rights that may cover technology that may be required
664   to implement this standard.  Please address the information to the
665   IETF at ietf-ipr@ietf.org.
666 
667Disclaimer of Validity
618668
619   This document and the information contained herein is provided on an669   This document and the information contained herein is provided on an
620   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING670   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
621   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING671   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
622   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION672   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
623   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF673   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
624   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.674   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
625675
tt676Copyright Statement
677 
678   Copyright (C) The IETF Trust (2009).
679 
680   This document is subject to the rights, licenses and restrictions
681   contained in BCP 78, and except as set forth therein, the authors
682   retain all their rights.
683 
626Acknowledgement684Acknowledgement
627685
628   Funding for the RFC Editor function is currently provided by the686   Funding for the RFC Editor function is currently provided by the
629   Internet Society.687   Internet Society.
630688
631689
632690
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op