RFC 9423

Constrained RESTful Environments (CoRE) Target Attributes Registry

πŸ“… published April 2024, from ietf

Constrained RESTful Environments (CoRE) Target Attributes Registry πŸŽ€

okay so this is RFC 9423 πŸ’– It's an IETF document, published April 2024, written by C. Bormann from UniversitΓ€t Bremen TZI. It's Informational, so it isn't a Standards Track spec. It updates the "RD Parameters" IANA registry from RFC 9176 🧚 and doesn't list anything it obsoletes. The ISSN is 2070-1721 ✨

Abstract ✨

okay so CoRE is all about bringing web tech to constrained devices πŸ¦‹ and one big piece of that is Web Linking ([RFC8288]). CoRE uses it as the base for discovery stuff like the Link Format ([RFC6690]) in CoAP's resource discovery (Section 7.2 of [RFC7252]) and the Resource Directory ([RFC9176]) πŸ’…

Web Links can have target attributes, but Web Linking doesn't coordinate what they're named (Section 2.2 of [RFC8288]). so this doc adds an IANA registry to coordinate target attribute names when they're used in CoRE 🌸 It also updates the "RD Parameters" registry from [RFC9176] so the two line up 🫢

Status of This Memo

This document is not an Internet Standards Track specification; it is published for informational purposes.

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). Not all documents approved by the IESG are candidates for any level of Internet Standard; see Section 2 of RFC 7841.

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

Copyright (c) 2024 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 (https://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 Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.

Table of Contents πŸ“‘

1.  Introduction
  1.1.  Terminology
2.  IANA Considerations
  2.1.  Instructions for the Designated Expert
  2.2.  Structure of Entries
  2.3.  Initial Entries
3.  Security Considerations
4.  References
  4.1.  Normative References
  4.2.  Informative References
Acknowledgements
Contributors
Author's Address

1. Introduction 🌸

okay so CoRE specs bring web technologies to constrained environments πŸ¦‹ and a big one is Web Linking [RFC8288]. CoRE uses it as the basis for a bunch of discovery protocols, like the Link Format [RFC6690] in CoAP's resource discovery (Section 7.2 of [RFC7252]) and the Resource Directory (RD) [RFC9176] ✨

so, Web Links can have target attributes. The original Web Linking spec (Section 3 of [RFC5988]) didn't try to coordinate their names, except for a few common ones for the Link HTTP header πŸ’… The current revision (Section 2.2 of [RFC8288]) makes it clear:

This specification does not attempt to coordinate the name of target attributes, their cardinality, or use. Those creating and maintaining serialisations SHOULD coordinate their target attributes to avoid conflicts in semantics or syntax and MAY define their own registries of target attributes.

so this doc introduces an IANA registry for coordinating target attribute names in CoRE πŸŽ€ It comes with specific instructions for the designated expert (Section 2.1), and it updates the "RD Parameters" registry from [RFC9176] so everything matches 🫢

now that the registry exists, registering target attributes is strongly encouraged πŸ’– The reason? An unregistered attribute name could get registered later with a totally different meaning. yikes 😭

1.1. Terminology 🧚

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

2. IANA Considerations πŸ¦‹

okay so IANA has created a new "Target Attributes" registry in the "Constrained RESTful Environments (CoRE) Parameters" registry group [IANA.core-parameters]. The policy is "Expert Review" (Section 4.5 of RFC 8126 [BCP26]) πŸ‘‘

2.1. Instructions for the Designated Expert πŸ’…

the expert is asked to nudge registrants toward reasonably short target attribute names, since shortness helps save resources on constrained systems 🌈 but they should also be stingy with very short names. those get saved for applications that are likely to be widely used and can really make the most of being short ✨

the expert is also told to ask the registrant for a specification (Section 4.6 of RFC 8126 [BCP26]). they're allowed to make exceptions though, like when a spec doesn't exist yet at registration time but is likely coming soon 🫢

anything that could interest a wider crowd can be raised by the expert on the core-parameters@ietf.org mailing list for a time-limited discussion πŸ’¬ That could be security considerations, or chances to coordinate, like when different names with similar intent are being or could be registered 🧠

and if the expert finds target attributes that are already deployed and in use, they can start a registration themselves if they think it'll prevent future collisions πŸ™Œ

2.3. Initial Entries πŸŽ€

okay so the initial entries in this registry are all listed in Table 1 πŸ’… and bestie, it's a whole lineup 🌸

   +===========+=========================+============+===============+
   | Attribute | Brief Description       | Change     | Reference     |
   | Name      |                         | Controller |               |
   +===========+=========================+============+===============+
   | href      | reserved (not useful as | IETF       | [RFC6690]     |
   |           | target attribute name)  |            |               |
   +-----------+-------------------------+------------+---------------+
   | anchor    | reserved (not useful as | IETF       | [RFC6690]     |
   |           | target attribute name)  |            |               |
   +-----------+-------------------------+------------+---------------+
   | rel       | reserved (not useful as | IETF       | [RFC6690]     |
   |           | target attribute name)  |            |               |
   +-----------+-------------------------+------------+---------------+
   | rev       | reserved (not useful as | IETF       | [RFC6690]     |
   |           | target attribute name)  |            |               |
   +-----------+-------------------------+------------+---------------+
   | hreflang  | (Web Linking)           | IETF       | [RFC8288]     |
   +-----------+-------------------------+------------+---------------+
   | media     | (Web Linking)           | IETF       | [RFC8288]     |
   +-----------+-------------------------+------------+---------------+
   | title     | (Web Linking)           | IETF       | [RFC8288]     |
   +-----------+-------------------------+------------+---------------+
   | type      | (Web Linking)           | IETF       | [RFC8288]     |
   +-----------+-------------------------+------------+---------------+
   | rt        | resource type           | IETF       | Section 3.1   |
   |           |                         |            | of [RFC6690]  |
   +-----------+-------------------------+------------+---------------+
   | if        | interface description   | IETF       | Section 3.2   |
   |           |                         |            | of [RFC6690]  |
   +-----------+-------------------------+------------+---------------+
   | sz        | maximum size estimate   | IETF       | Section 3.3   |
   |           |                         |            | of [RFC6690]  |
   +-----------+-------------------------+------------+---------------+
   | ct        | Content-Format hint     | IETF       | Section 7.2.1 |
   |           |                         |            | of [RFC7252]  |
   +-----------+-------------------------+------------+---------------+
   | obs       | observable resource     | IETF       | Section 6 of  |
   |           |                         |            | [RFC7641]     |
   +-----------+-------------------------+------------+---------------+
   | hct       | HTTP-CoAP URI mapping   | IETF       | Section 5.5   |
   |           | template                |            | of [RFC8075]  |
   +-----------+-------------------------+------------+---------------+
   | osc       | hint: resource only     | IETF       | Section 9 of  |
   |           | accessible using OSCORE |            | [RFC8613]     |
   +-----------+-------------------------+------------+---------------+
   | ep        | Endpoint Name (with     | IETF       | Section 9.3   |
   |           | rt="core.rd-ep")        |            | of [RFC9176]  |
   +-----------+-------------------------+------------+---------------+
   | d         | Sector (with            | IETF       | Section 9.3   |
   |           | rt="core.rd-ep")        |            | of [RFC9176]  |
   +-----------+-------------------------+------------+---------------+
   | base      | Registration Base URI   | IETF       | Section 9.3   |
   |           | (with rt="core.rd-ep")  |            | of [RFC9176]  |
   +-----------+-------------------------+------------+---------------+
   | et        | Endpoint Type (with     | IETF       | Section 9.3   |
   |           | rt="core.rd-ep")        |            | of [RFC9176]  |
   +-----------+-------------------------+------------+---------------+

        Table 1: Initial Entries in the Target Attributes Registry

A bunch of names are reserved πŸ”’, because they're already used as parameters in links that aren't target attributes. A further set of target attributes is predefined in [RFC8288] and gets imported into this registry 🧚.

Section 9.3 of [RFC9176] created the "RD Parameters" IANA registry πŸ“. Per this document, IANA has added the following note to that registry:

| Note: In accordance with RFC 9423, all entries with the "A" flag | set, including new ones, MUST also be registered in the "Target | Attributes" registry [IANA.core-parameters].

3. Security Considerations πŸ”

Okay bestie, this part is SERIOUS 😭🚨 The security considerations of [RFC8288] apply, and so do those of the discovery specifications [RFC6690], [RFC7252], and [RFC9176] πŸ’€. Read them all, no skipping!

4. References πŸ“š

4.1. Normative References πŸ’œ

   [BCP26]    Best Current Practice 26,
              <https://www.rfc-editor.org/info/bcp26>.
              At the time of writing, this BCP comprises the following:

              Cotton, M., Leiba, B., and T. Narten, "Guidelines for
              Writing an IANA Considerations Section in RFCs", BCP 26,
              RFC 8126, DOI 10.17487/RFC8126, June 2017,
              <https://www.rfc-editor.org/info/rfc8126>.

   [IANA.core-parameters]
              IANA, "Constrained RESTful Environments (CoRE)
              Parameters",
              <https://www.iana.org/assignments/core-parameters>.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [RFC8288]  Nottingham, M., "Web Linking", RFC 8288,
              DOI 10.17487/RFC8288, October 2017,
              <https://www.rfc-editor.org/info/rfc8288>.

   [STD80]    Internet Standard 80,
              <https://www.rfc-editor.org/info/std80>.
              At the time of writing, this STD comprises the following:

              Cerf, V., "ASCII format for network interchange", STD 80,
              RFC 20, DOI 10.17487/RFC0020, October 1969,
              <https://www.rfc-editor.org/info/rfc20>.

4.2. Informative References 🧠

   [RFC5988]  Nottingham, M., "Web Linking", RFC 5988,
              DOI 10.17487/RFC5988, October 2010,
              <https://www.rfc-editor.org/info/rfc5988>.

   [RFC6690]  Shelby, Z., "Constrained RESTful Environments (CoRE) Link
              Format", RFC 6690, DOI 10.17487/RFC6690, August 2012,
              <https://www.rfc-editor.org/info/rfc6690>.

   [RFC7252]  Shelby, Z., Hartke, K., and C. Bormann, "The Constrained
              Application Protocol (CoAP)", RFC 7252,
              DOI 10.17487/RFC7252, June 2014,
              <https://www.rfc-editor.org/info/rfc7252>.

   [RFC7641]  Hartke, K., "Observing Resources in the Constrained
              Application Protocol (CoAP)", RFC 7641,
              DOI 10.17487/RFC7641, September 2015,
              <https://www.rfc-editor.org/info/rfc7641>.

   [RFC8075]  Castellani, A., Loreto, S., Rahman, A., Fossati, T., and
              E. Dijk, "Guidelines for Mapping Implementations: HTTP to
              the Constrained Application Protocol (CoAP)", RFC 8075,
              DOI 10.17487/RFC8075, February 2017,
              <https://www.rfc-editor.org/info/rfc8075>.

   [RFC8613]  Selander, G., Mattsson, J., Palombini, F., and L. Seitz,
              "Object Security for Constrained RESTful Environments
              (OSCORE)", RFC 8613, DOI 10.17487/RFC8613, July 2019,
              <https://www.rfc-editor.org/info/rfc8613>.

   [RFC9176]  AmsΓΌss, C., Ed., Shelby, Z., Koster, M., Bormann, C., and
              P. van der Stok, "Constrained RESTful Environments (CoRE)
              Resource Directory", RFC 9176, DOI 10.17487/RFC9176, April
              2022, <https://www.rfc-editor.org/info/rfc9176>.

Acknowledgements 🫢

The CoRE Working Group had been discussing setting up a registry for target attributes since the final touches were made on [RFC6690]. The update of the Web Linking specification to [RFC8288] provided the formal setting, but it took until Jaime Jiménez provided the set of initial registrations to generate a first draft version of this specification. The current document addresses additional input and Working Group Last Call comments by Esko Dijk, Marco Tiloca, Thomas Fossati, and Mohamed Boucadair, as well as Area Director review comments from Rob Wilton. ✨

Contributors 🌈

Jaime JimΓ©nez Ericsson Email: jaime@iki.fi

Jaime provided the list of initial registrations. 🧚

Author's Address πŸ¦‹

Carsten Bormann UniversitΓ€t Bremen TZI Postfach 330440 D-28359 Bremen Germany Phone: +49-421-218-63921 Email: cabo@tzi.org

And that's the whole thing, bestie πŸŒˆπŸ‘‘ periodt!!

πŸ“¦ where this page comes from