| < draft-cridland-acap-vendor-registry-01.txt | draft-cridland-acap-vendor-registry-02.txt > | |||
|---|---|---|---|---|
| Network Working Group D. Cridland | Network Working Group D. Cridland | |||
| Internet-Draft Isode Limited | Internet-Draft Isode Limited | |||
| Intended status: Standards Track Aug 17, 2010 | Updates: 2244 (if approved) Oct 22, 2010 | |||
| Expires: February 18, 2011 | Intended status: Standards Track | |||
| Expires: April 25, 2011 | ||||
| The Internet Assigned Number Authority (IANA) Application Configurations | The Internet Assigned Number Authority (IANA) Application Configuration | |||
| Access Protocol (ACAP) Vendor Subtrees Registry | Access Protocol (ACAP) Vendor Subtrees Registry | |||
| draft-cridland-acap-vendor-registry-01 | draft-cridland-acap-vendor-registry-02 | |||
| Abstract | Abstract | |||
| The original ACAP specification included a vendor registry now used | The original ACAP specification included a vendor registry now used | |||
| in other protocols. This document updates the description of this | in other protocols. This document updates the description of this | |||
| registry, removing the need for a direct normative reference to ACAP, | registry, removing the need for a direct normative reference to ACAP, | |||
| and removing ambiguity. | and removing ambiguity. | |||
| Status of this Memo | Status of this Memo | |||
| skipping to change at page 1, line 34 ¶ | skipping to change at page 1, line 35 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on February 18, 2011. | This Internet-Draft will expire on April 25, 2011. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2010 IETF Trust and the persons identified as the | Copyright (c) 2010 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 10 ¶ | skipping to change at page 2, line 11 ¶ | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Conventions used in this document . . . . . . . . . . . . . . . 3 | 1. Conventions used in this document . . . . . . . . . . . . . . . 3 | |||
| 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. The Vendor Subtree Registry . . . . . . . . . . . . . . . . . . 3 | 3. The Vendor Subtree Registry . . . . . . . . . . . . . . . . . . 3 | |||
| 3.1. Internationalization . . . . . . . . . . . . . . . . . . . 3 | 3.1. Internationalization . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.2. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . 4 | 3.2. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.3. Examples . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3.3. Examples . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.4. Changes from RFC 2244 . . . . . . . . . . . . . . . . . . . 5 | 3.4. Changes from RFC 2244 . . . . . . . . . . . . . . . . . . . 6 | |||
| 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5 | 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.1. Example Registration . . . . . . . . . . . . . . . . . . . 5 | 4.1. Example Registration . . . . . . . . . . . . . . . . . . . 6 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . . 6 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . . 7 | |||
| 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 6 | 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 7.1. Normative References . . . . . . . . . . . . . . . . . . . 6 | 7.1. Normative References . . . . . . . . . . . . . . . . . . . 7 | |||
| 7.2. Informative References . . . . . . . . . . . . . . . . . . 6 | 7.2. Informative References . . . . . . . . . . . . . . . . . . 7 | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 7 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 1. Conventions used in this document | 1. Conventions used in this document | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in [KEYWORDS]. | document are to be interpreted as described in [KEYWORDS]. | |||
| Formal Syntax are to be considered normative, and are specified using | Formal Syntax are to be considered normative, and are specified using | |||
| [ABNF]. Where a formal syntax and the prose are in conflict, the | [ABNF]. Where a formal syntax and the prose are in conflict, the | |||
| formal syntax takes precedence. | formal syntax takes precedence. | |||
| 2. Introduction | 2. Introduction | |||
| The [ACAP] specification includes the specification and creation of | The [ACAP] specification includes the specification and creation of | |||
| the ACAP Vendor Registry, and this registry has subsequently been | the ACAP Vendor Registry, and this registry has subsequently been | |||
| reused by several specifications, including both [ANNOTATE] and | reused by several specifications, including both [ANNOTATE] and | |||
| [METADATA], and is proving to be a useful mechanism for namespacing | [METADATA], and is proving to be a useful mechanism for namespacing | |||
| various names to within a specific vendor's scope. | various names to within a specific vendor's scope. | |||
| The use of textual rather than numeric identifiers for vendors | ||||
| benefits engineers and operators who are diagnosing protocol problems | ||||
| by allowing them some possibility of identifying the origin of a | ||||
| vendor attribute without having to look it up in a registry (although | ||||
| that remains a necessary fallback). As such engineers and operators | ||||
| already have to be familiar with international technical English to | ||||
| diagnose textual protocol problems, the restriction to ASCII may help | ||||
| and is not believed to harm that intended use. Exposure of vendor | ||||
| attributes directly in end-user user interfaces was not an intended | ||||
| use of the registry. | ||||
| This document merely updates the registry to reduce ambiguity in the | This document merely updates the registry to reduce ambiguity in the | |||
| original specification, and dissociates it from the original document | original specification, and dissociates it from the original document | |||
| in all but name, allowing easier referencing. It replaces section | in all but name, allowing easier referencing. It replaces section | |||
| 7.4 and portions of section 4, particularly 4.3, of [ACAP]. | 7.4 and portions of section 4, particularly 4.3, of [ACAP]. | |||
| 3. The Vendor Subtree Registry | 3. The Vendor Subtree Registry | |||
| A Vendor Token is a UTF-8 string beginning with "vendor.", and | A Vendor Token is a UTF-8 string beginning with "vendor.", and | |||
| followed by the name of the company or product. This name MUST NOT | followed by the name of the company or product. This name MUST NOT | |||
| contain any slash character, period, or the percent and asterisk | contain any slash character, period, or the percent and asterisk | |||
| skipping to change at page 3, line 48 ¶ | skipping to change at page 4, line 14 ¶ | |||
| 3.1. Internationalization | 3.1. Internationalization | |||
| Vendor Tokens are able to contain any valid Unicode codepoint, | Vendor Tokens are able to contain any valid Unicode codepoint, | |||
| encoded as [UTF-8], except the special characters. Since the | encoded as [UTF-8], except the special characters. Since the | |||
| publication of [ACAP], however, concerns have been raised on the | publication of [ACAP], however, concerns have been raised on the | |||
| handling and comparison of full Unicode strings, and therefore this | handling and comparison of full Unicode strings, and therefore this | |||
| specification restricts the current registrations to the ASCII subset | specification restricts the current registrations to the ASCII subset | |||
| of UTF-8. | of UTF-8. | |||
| Furthermore, characters such as control characters, whitespace, and | Furthermore, characters such as ASCII control characters, most | |||
| quotes are likely to be confusing and have been similarly restricted. | whitespace, and quotes are likely to be confusing and have been | |||
| similarly restricted. | ||||
| Therefore, this document allows only ASCII letters, digits, the | Therefore, this document allows only ASCII letters, digits, the | |||
| hyphen, and space to be used. | hyphen, and space to be used (the <iana-vendor-tag> ABNF production | |||
| in Section 3.2). | ||||
| At the time of publication of this document, no existing | ||||
| registrations violate the new restricted syntax on characters allowed | ||||
| in registrations. [ACAP] required all Vendor Tokens to be registered | ||||
| with IANA, so the new restriction is not believed to introduce any | ||||
| interoperability issue. | ||||
| Finally, note that this document does not change the requirement on | ||||
| processors to accept other non-ASCII Unicode codepoints in Vendor | ||||
| Tokens (the <possible-vendor-tag> ABNF production in Section 3.2). | ||||
| 3.2. Formal Syntax | 3.2. Formal Syntax | |||
| This syntax draws upon productions found within [ABNF] and [UTF-8]. | This syntax draws upon productions found within [ABNF] and [UTF-8]. | |||
| Productions replace those in section 4.3 of [ACAP]. | Productions replace those in section 4.3 of [ACAP]. | |||
| vendor-name = vendor-token ["." name-component] | vendor-name = vendor-token *("." name-component) | |||
| name-component = *(name-char / UTF8-2 / UTF8-3 / UTF8-4) | name-component = *(name-char / UTF8-2 / UTF8-3 / UTF8-4) | |||
| name-char = %x01-24 / %x26-29 / %x2B-2D / %x30-7F | name-char = %x01-24 / %x26-29 / %x2B-2D / %x30-7F | |||
| ;; ASCII-range characters not including ".", | ;; ASCII-range characters not including ".", | |||
| ;; "/", "%", or "*". | ;; "/", "%", or "*". | |||
| vendor-token = "vendor." vendor-tag | vendor-token = "vendor." vendor-tag | |||
| ;; MUST be registered with IANA | ||||
| vendor-tag = iana-vendor-tag / possible-vendor-tag | vendor-tag = iana-vendor-tag / possible-vendor-tag | |||
| iana-vendor-tag = 1*(ALPHA / DIGIT / SP / "-") | iana-vendor-tag = 1*(ALPHA / DIGIT / SP / "-") | |||
| ;; This production represents | ;; This production represents | |||
| ;; allowed forms for current registrations. | ;; allowed forms for registrations | |||
| ;; under the rules specified in this | ||||
| ;; document. | ||||
| possible-vendor-tag = name-component | possible-vendor-tag = name-component | |||
| ;; This production represents what | ;; This production represents what | |||
| ;; applications and specifications | ;; applications and specifications | |||
| ;; may encounter. | ;; MUST be able to accept. | |||
| 3.3. Examples | 3.3. Examples | |||
| A company Example Ltd might register the Subtree "vendor.example". | A company Example Ltd might register the Subtree "vendor.example". | |||
| This means it may use "vendor.example", or any name at all beginning | This means it may use "vendor.example", or any name at all beginning | |||
| "vendor.example.", such as "vendor.example.product". | "vendor.example.", such as "vendor.example.product". | |||
| These names might be used in several protocols, and are reserved in | These names might be used in several protocols, and are reserved in | |||
| all the relevant protocols, so "vendor.example" might be an ACAP | all the relevant protocols, so "vendor.example" might be an ACAP | |||
| dataset class name, and "/vendor/vendor.example" might be a tree of | dataset class name, and "/vendor/vendor.example" might be a tree of | |||
| IMAP ANNOTATE entries. | IMAP ANNOTATE entries. | |||
| Example Ltd is free to use either "vendor.example", and group | Example Ltd is free to use either "vendor.example", and group | |||
| specific products under it using the relevant protocol's hierarchy - | specific products under it using the relevant protocol's hierarchy - | |||
| perhaps "/shared/vendor/vendor.example/product", or using more | perhaps "/shared/vendor/vendor.example/product", or using more | |||
| specific names, such as "/shared/vendor/vendor.example.product". | specific names, such as "/shared/vendor/vendor.example.product". | |||
| Note that the solidus ("/") characters in the examples above are | ||||
| protocol delimiters which are themselves not part of the vendor token | ||||
| itself. | ||||
| 3.4. Changes from RFC 2244 | 3.4. Changes from RFC 2244 | |||
| This non-normative section details changes from RFC 2244's original | This non-normative section details changes from RFC 2244's original | |||
| specification of the registry. | specification of the registry. | |||
| o UTF-8 names are restricted to ASCII | o Vendor tokens are restricted to ASCII for registration purposes. | |||
| o Clarifications that "vendor.<company/product name>" means | o Clarifications that "vendor.<company/product name>" means | |||
| "vendor.company name" or "vendor.product name" - "vendor.company/ | "vendor.company name" or "vendor.product name" - "vendor.company/ | |||
| product" is and always has been illegal. | product" is and always has been illegal. | |||
| o Made "vendor.company" a name in its own right - RFC 2244 only | o Made "vendor.company" a name in its own right - RFC 2244 only | |||
| refers to a prefix of "vendor.company.". | refers to a prefix of "vendor.company.". | |||
| o Added example registration, in line with [EXAMPLES]. | o Added example registration, in line with [EXAMPLES]. | |||
| 4. IANA Considerations | 4. IANA Considerations | |||
| This specification updates the IANA registry named the ACAP Vendor | This specification updates the IANA registry named the ACAP Vendor | |||
| Subtrees Registry. | Subtrees Registry. IANA is requested to update the registry to point | |||
| at this document. | ||||
| Vendors may reserve a portion of the ACAP namespace, which is also | Vendors may reserve a portion of the ACAP namespace, which is also | |||
| used as the namespace for several other protocols, for private use. | used as the namespace for several other protocols, for private use. | |||
| Vendor Names are reserved for use by that company or product, | Vendor Names are reserved for use by that company or product, | |||
| wherever used, once registered. Registration is on a first come, | wherever used, once registered. Registration is on a first come, | |||
| first served basis. Whenever possible, private attributes and | first served basis. Whenever possible, private attributes and | |||
| classes should be eschewed in favour of improving interoperable | classes should be eschewed in favour of improving interoperable | |||
| protocols. | protocols. | |||
| Vendors may only use names conforming to iana-vendor-tag at the | Vendors may only use names conforming to iana-vendor-tag at the | |||
| skipping to change at page 6, line 34 ¶ | skipping to change at page 7, line 34 ¶ | |||
| of ACAP for the initial creation of the registry. Thanks also to | of ACAP for the initial creation of the registry. Thanks also to | |||
| Alexey Melnikov for advice on this revision. | Alexey Melnikov for advice on this revision. | |||
| 7. References | 7. References | |||
| 7.1. Normative References | 7.1. Normative References | |||
| [ABNF] Crocker, D. and P. Overell, "Augmented BNF for Syntax | [ABNF] Crocker, D. and P. Overell, "Augmented BNF for Syntax | |||
| Specifications: ABNF", STD 68, RFC 5234, January 2008. | Specifications: ABNF", STD 68, RFC 5234, January 2008. | |||
| [ACAP] Newman, C. and J. Myers, "ACAP -- Application | ||||
| Configuration Access Protocol", RFC 2244, November 1997. | ||||
| [KEYWORDS] | [KEYWORDS] | |||
| Bradner, S., "Key words for use in RFCs to Indicate | Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| [UTF-8] Yergeau, F., "UTF-8, a transformation format of ISO | [UTF-8] Yergeau, F., "UTF-8, a transformation format of ISO | |||
| 10646", STD 63, RFC 3629, November 2003. | 10646", STD 63, RFC 3629, November 2003. | |||
| 7.2. Informative References | 7.2. Informative References | |||
| [ACAP] Newman, C. and J. Myers, "ACAP -- Application | ||||
| Configuration Access Protocol", RFC 2244, November 1997. | ||||
| [ANNOTATE] | [ANNOTATE] | |||
| Daboo, C. and R. Gellens, "Internet Message Access | Daboo, C. and R. Gellens, "Internet Message Access | |||
| Protocol - ANNOTATE Extension", RFC 5257, June 2008. | Protocol - ANNOTATE Extension", RFC 5257, June 2008. | |||
| [EXAMPLES] | [EXAMPLES] | |||
| Eastlake, D. and A. Panitz, "Reserved Top Level DNS | Eastlake, D. and A. Panitz, "Reserved Top Level DNS | |||
| Names", BCP 32, RFC 2606, June 1999. | Names", BCP 32, RFC 2606, June 1999. | |||
| [METADATA] | [METADATA] | |||
| Daboo, C., "The IMAP METADATA Extension", RFC 5464, | Daboo, C., "The IMAP METADATA Extension", RFC 5464, | |||
| End of changes. 17 change blocks. | ||||
| 28 lines changed or deleted | 60 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||