RFC 6075

The Internet Assigned Number Authority (IANA) Application Configuration Access Protocol (ACAP) Vendor Subtrees Registry

๐Ÿ“… published December 2010, from ietf

RFC 6075 ๐Ÿ“œ The Internet Assigned Number Authority (IANA) Application Configuration Access Protocol (ACAP) Vendor Subtrees Registry

okay bestie, the facts first ๐ŸŽ€ This is an IETF doc from December 2010, written by D. Cridland of Isode Limited. It's Standards Track and its number is 6075. It updates RFC 2244. ISSN 2070-1721 ๐Ÿ“Ž

Abstract ๐Ÿ’–

The original ACAP spec (Application Configuration Access Protocol) included a vendor registry that other protocols now use. This doc updates how that registry is described, so it no longer needs a direct normative reference to ACAP, and it clears up some ambiguity too โœจ

Status of This Memo ๐ŸŒธ

This is an Internet Standards Track document.

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 5741.

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc6075.

Copyright (c) 2010 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

Table of Contents ๐Ÿ—‚๏ธ

1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.  Conventions Used in This Document . . . . . . . . . . . . . . . 2
3.  The Vendor Subtree Registry . . . . . . . . . . . . . . . . . . 3
  3.1.  Internationalization  . . . . . . . . . . . . . . . . . . . 3
  3.2.  Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . 4
  3.3.  Examples  . . . . . . . . . . . . . . . . . . . . . . . . . 4
  3.4.  Changes from RFC 2244 . . . . . . . . . . . . . . . . . . . 5
4.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5
  4.1.  Example Registration  . . . . . . . . . . . . . . . . . . . 6
5.  Security Considerations . . . . . . . . . . . . . . . . . . . . 6
6.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . 6
7.  References  . . . . . . . . . . . . . . . . . . . . . . . . . . 6
  7.1.  Normative References  . . . . . . . . . . . . . . . . . . . 6
  7.2.  Informative References  . . . . . . . . . . . . . . . . . . 7

1. Introduction ๐ŸŽ€

okay so the [ACAP] spec is where the ACAP Vendor Registry was first created, and now it's been reused by a bunch of specs, including [ANNOTATE] and [METADATA] ๐Ÿ’… It's proving to be super useful for namespacing names inside one vendor's scope, no cap.

Using textual rather than numeric identifiers for vendors is lowkey iconic for engineers and operators debugging protocol stuff. It lets them figure out where a vendor attribute came from without looking it up in a registry first (although the registry is still the necessary fallback ๐Ÿงš). Engineers and operators already need international technical English to debug textual protocol problems, so the ASCII restriction may help and is not believed to harm that intended use. Showing vendor attributes directly in end-user interfaces was never the goal of the registry, so bestie, don't do that ๐Ÿ™ˆ

This document basically just updates the registry to reduce ambiguity in the original spec. It also separates the registry from the original document in all but name, which makes it way easier to reference ๐Ÿฆ‹ It replaces Section 7.4 and portions of Section 4, particularly Section 4.3, of [ACAP].

2. Conventions Used in This Document ๐Ÿ“

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 [KEYWORDS].

The formal syntax is to be considered normative and is specified using [ABNF]. Where a formal syntax and the prose are in conflict, the formal syntax takes precedence ๐Ÿ‘‘

3. The Vendor Subtree Registry ๐ŸŒธ

A Vendor Token is a UTF-8 string that begins with "vendor." and that is followed by the name of the company or product. This name MUST NOT contain any slash character, period, or the percent and asterisk characters typically used as wildcards ๐Ÿšซ

Following this may be names, separated from the Vendor Token by a period, which need not be registered, thus forming a complete Vendor Name โœจ

3.1. Internationalization ๐ŸŒ

Vendor Tokens are able to contain any valid Unicode codepoint, encoded as [UTF-8], except the special characters. Since the publication of [ACAP], however, people have raised concerns about handling and comparing full Unicode strings. So this specification restricts the current registrations to the ASCII subset of UTF-8 ๐Ÿ’…

Furthermore, characters such as ASCII control characters, most whitespace, and quotes are likely to be confusing, so they've been similarly restricted ๐Ÿ˜ญ

Therefore, this document allows only ASCII letters, digits, the hyphen, and space to be used in registrations (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 ๐Ÿงฎ

This syntax draws upon productions found within [ABNF] and [UTF-8]. Productions replace those in Section 4.3 of [ACAP].

vendor-name         = vendor-token *("." name-component)

name-component      = *(name-char / UTF8-2 / UTF8-3 / UTF8-4)

name-char           = %x01-24 / %x26-29 / %x2B-2D / %x30-7F
                  ;; ASCII-range characters not including ".",
                  ;; "/", "%", or "*".

vendor-token        = "vendor." vendor-tag
                  ;; MUST be registered with IANA

vendor-tag          = iana-vendor-tag / possible-vendor-tag

iana-vendor-tag     = 1*(ALPHA / DIGIT / SP / "-")
                  ;; This production represents
                  ;; allowed forms for registrations
                  ;; under the rules specified in this
                  ;; document.

possible-vendor-tag = name-component
                  ;; This production represents what
                  ;; applications and specifications
                  ;; MUST be able to accept.

3.3. Examples ๐Ÿงš

A company Example, Ltd. might register the Subtree "vendor.example". This means it may use "vendor.example", or any name at all beginning "vendor.example.", such as "vendor.example.product".

These names might be used in several protocols, and are reserved in all the relevant protocols, so "vendor.example" might be an ACAP [ACAP] dataset class name, and "/vendor/vendor.example" might be a tree of IMAP ANNOTATE entries [ANNOTATE].

Example, Ltd. is free to use either "vendor.example", and group specific products under it using the relevant protocol's hierarchy -- perhaps "/shared/vendor/vendor.example/product" annotation [ANNOTATE], or using more specific names, such as "/shared/vendor/vendor.example.product" annotation.

Note that the solidus ("/") characters in the examples above are protocol delimiters that are themselves not part of the Vendor Token ๐Ÿ“

3.4. Changes from RFC 2244 ๐Ÿ”ฅ

This non-normative section details changes from the original specification of the registry in RFC 2244.

  • Vendor Tokens are restricted to ASCII for registration purposes.
  • Clarifications that "vendor.<company/product name>" means "vendor.company name" or "vendor.product name" - "vendor.company/product" is and always has been illegal.
  • Made "vendor.company" a name in its own right - RFC 2244 only refers to a prefix of "vendor.company.".
  • Added example registration, in line with [EXAMPLES].

Author's Address ๐ŸŽ€

okay bestie, this is where we find the author, Dave Cridland ๐Ÿ’… he's at Isode Limited, and you can reach him at the email below ๐Ÿ“งโœจ

Dave Cridland
Isode Limited
5 Castle Business Village
36, Station Road
Hampton, Middlesex  TW12 2BX
GB

EMail: dave.cridland@isode.com

that's the whole crew, the end of RFC 6075 ๐Ÿฆ‹๐Ÿ’œ

๐Ÿ“ฆ where this page comes from