| rfc9039xml2.original.xml | rfc9039.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="iso-8859-1" ?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
| <!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .2119.xml"> | ||||
| <!ENTITY RFC2578 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .2578.xml"> | ||||
| <!ENTITY RFC3986 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .3986.xml"> | ||||
| <!ENTITY RFC5234 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .5234.xml"> | ||||
| <!ENTITY RFC3261 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .3261.xml"> | ||||
| <!ENTITY RFC3971 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .3971.xml"> | ||||
| <!ENTITY RFC3972 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .3972.xml"> | ||||
| <!ENTITY RFC4122 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .4122.xml"> | ||||
| <!ENTITY RFC4648 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .4648.xml"> | ||||
| <!ENTITY RFC5612 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .5612.xml"> | ||||
| <!ENTITY RFC6920 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .6920.xml"> | ||||
| <!ENTITY RFC7230 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .7230.xml"> | ||||
| <!ENTITY RFC7252 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .7252.xml"> | ||||
| <!ENTITY RFC7254 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .7254.xml"> | ||||
| <!ENTITY RFC7405 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .7405.xml"> | ||||
| <!ENTITY RFC7540 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .7540.xml"> | ||||
| <!ENTITY RFC7721 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .7721.xml"> | ||||
| <!ENTITY RFC8126 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .8126.xml"> | ||||
| <!ENTITY RFC8141 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .8141.xml"> | ||||
| <!ENTITY RFC8174 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .8174.xml"> | ||||
| <!ENTITY RFC8259 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .8259.xml"> | ||||
| <!ENTITY RFC8428 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .8428.xml"> | ||||
| <!ENTITY RFC8464 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .8464.xml"> | ||||
| <!ENTITY I-D.ietf-core-resource-directory SYSTEM "http://xml.resource.org/public | ||||
| /rfc/bibxml3/reference.I-D.ietf-core-resource-directory.xml"> | ||||
| ]> | ||||
| <rfc ipr="trust200902" | ||||
| docName="draft-ietf-core-dev-urn-11" | ||||
| category="std"> | ||||
| <?rfc toc="yes"?> <?rfc symrefs="yes"?> <?rfc autobreaks="yes"?> | ||||
| <?rfc tocindent="yes"?> <?rfc compact="yes"?> <?rfc subcompact="no"?> | ||||
| <front> | ||||
| <title abbrev="DEV URN">Uniform Resource Names for Device Identifiers</title> | ||||
| <author initials="J" surname="Arkko" fullname="Jari Arkko"> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | |||
| <organization>Ericsson</organization> | -ietf-core-dev-urn-11" number="9039" obsoletes="" updates="" submissionType="IET | |||
| <address> | F" category="std" consensus="true" xml:lang="en" tocInclude="true" symRefs="true | |||
| <postal> | " sortRefs="true" version="3"> | |||
| <street/> | ||||
| <city>Jorvas</city> <code>02420</code> | ||||
| <country>Finland</country> | ||||
| </postal> | ||||
| <email>jari.arkko@piuha.net</email> | ||||
| </address> | ||||
| </author> | ||||
| <!-- xml2rfc v2v3 conversion 3.5.0 --> | ||||
| <front> | ||||
| <title abbrev="DEV URN">Uniform Resource Names for Device Identifiers</title | ||||
| > | ||||
| <seriesInfo name="RFC" value="9039"/> | ||||
| <author initials="J." surname="Arkko" fullname="Jari Arkko"> | ||||
| <organization>Ericsson</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street/> | ||||
| <city>Jorvas</city> | ||||
| <code>02420</code> | ||||
| <country>Finland</country> | ||||
| </postal> | ||||
| <email>jari.arkko@piuha.net</email> | ||||
| </address> | ||||
| </author> | ||||
| <author fullname="Cullen Jennings" initials="C." surname="Jennings"> | <author fullname="Cullen Jennings" initials="C." surname="Jennings"> | |||
| <organization>Cisco</organization> | <organization>Cisco</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>170 West Tasman Drive</street> | <street>170 West Tasman Drive</street> | |||
| <city>San Jose</city> | <city>San Jose</city> | |||
| <region>CA</region> | <region>CA</region> | |||
| <code>95134</code> | <code>95134</code> | |||
| <country>United States of America</country> | ||||
| <country>USA</country> | ||||
| </postal> | </postal> | |||
| <phone>+1 408 421-9990</phone> | <phone>+1 408 421-9990</phone> | |||
| <email>fluffy@iii.ca</email> | ||||
| <email>fluffy@cisco.com</email> | ||||
| </address> | </address> | |||
| </author> | </author> | |||
| <author initials="Z." surname="Shelby" fullname="Zach Shelby"> | ||||
| <author initials="Z" surname="Shelby" fullname="Zach Shelby"> | <organization> | |||
| <organization> | Edge Impulse | |||
| ARM | </organization> | |||
| </organization> | <address> | |||
| <address> | <postal> | |||
| <postal> | <street>3031 Tisch Way</street> | |||
| <street>Kidekuja 2</street> | <city>San Jose</city> | |||
| <city>Vuokatti</city> | <region>CA</region> | |||
| <code>88600</code> | <code>95128</code> | |||
| <country>FINLAND</country> | <country>United States of America</country> | |||
| </postal> | </postal> | |||
| <phone>+358407796297</phone> | <email>zach@edgeimpulse.com</email> | |||
| <email>Zach.Shelby@arm.com</email> | </address> | |||
| </address> | </author> | |||
| </author> | <date month="June" year="2021"/> | |||
| <keyword>URN</keyword> | ||||
| <date month="February" year="2021" /> | <keyword>device identifier</keyword> | |||
| <keyword>IMEI</keyword> | ||||
| <keyword>URN</keyword> | <keyword>1-Wire</keyword> | |||
| <keyword>device identifier</keyword> | <keyword>MAC address</keyword> | |||
| <keyword>IMEI</keyword> | <keyword>EUI-48</keyword> | |||
| <keyword>1-Wire</keyword> | <keyword>EUI-64</keyword> | |||
| <keyword>MAC address</keyword> | <abstract> | |||
| <keyword>EUI-48</keyword> | <t>This document describes a new Uniform Resource Name (URN) namespace for | |||
| <keyword>EUI-64</keyword> | ||||
| <abstract> | ||||
| <t>This document describes a new Uniform Resource Name (URN) namespace for | ||||
| hardware device identifiers. A general representation of device | hardware device identifiers. A general representation of device | |||
| identity can be useful in many applications, such as in sensor data | identity can be useful in many applications, such as in sensor data | |||
| streams and storage, or equipment inventories. A URN-based | streams and storage or in equipment inventories. A URN-based | |||
| representation can be passed along in applications that | representation can be passed along in applications that | |||
| need the information.</t> | need the information.</t> | |||
| </abstract> | ||||
| </front> | ||||
| <middle> | ||||
| <section anchor="intro" numbered="true" toc="default"> | ||||
| <name>Introduction</name> | ||||
| </abstract> | <t>This document describes a new Uniform Resource Name (URN) <xref target= | |||
| "RFC8141" format="default"/> namespace for hardware | ||||
| </front> | ||||
| <middle> | ||||
| <section anchor="intro" title="Introduction"> | ||||
| <t>This document describes a new Uniform Resource Name (URN) <xref | ||||
| target="RFC8141"/> namespace for hardware | ||||
| device identifiers. A general representation of device identity | device identifiers. A general representation of device identity | |||
| can be useful in many applications, such as in sensor data streams | can be useful in many applications, such as in sensor data streams | |||
| and storage | and storage | |||
| <xref target="RFC8428"/>, or equipment inventories <xref target="RFC7252"/>, | or in equipment inventories <xref target="RFC7252" format="default"/> <xref | |||
| <xref target="I-D.ietf-core-resource-directory"/>.</t> | target="RFC8428" format="default"/> <xref target="I-D.ietf-core-resource-direct | |||
| ory" format="default"/>.</t> | ||||
| <t>A URN-based representation can be passed along in applications | <t>A URN-based representation can be passed along in applications | |||
| that need the information. It fits particularly well for protocols | that need the information. It fits particularly well for protocols | |||
| mechanisms that are designed to carry URNs <xref | mechanisms that are designed to carry URNs <xref target="RFC7230" format="de | |||
| target="RFC7230"/>, <xref target="RFC7540"/>, <xref | fault"/> <xref target="RFC7540" format="default"/> <xref target="RFC3261" format | |||
| target="RFC3261"/>, <xref target="RFC7252"/>. Finally, URNs can | ="default"/> <xref target="RFC7252" format="default"/>. Finally, URNs can | |||
| also be easily carried and stored in formats such as XML <xref | also be easily carried and stored in formats such as XML <xref target="W3C.R | |||
| target="W3C.REC-xml-19980210"/>, JSON <xref target="RFC8259"/> or | EC-xml-19980210" format="default"/>, JSON <xref target="RFC8259" format="default | |||
| SenML <xref target="RFC8428"/>. Using URNs in these formats is | "/>, or | |||
| SenML <xref target="RFC8428" format="default"/>. Using URNs in these format | ||||
| s is | ||||
| often preferable as they are universally recognized and | often preferable as they are universally recognized and | |||
| self-describing, and therefore avoid the need for agreeing to | self-describing and therefore avoid the need to agree to | |||
| interpret an octet string as a specific form of a MAC address, for | interpret an octet string as a specific form of a Media Access Control (MAC) | |||
| address, for | ||||
| instance. Passing URNs may consume additional bytes compared to, | instance. Passing URNs may consume additional bytes compared to, | |||
| for instance, passing 4-byte binary IPv4 addresses, but offers | for instance, passing 4-byte binary IPv4 addresses, but the former offers | |||
| some flexibility in return.</t> | some flexibility in return.</t> | |||
| <t>This document defines identifier URN types for situations where no | ||||
| <t>This document defines identifier URN types for situations where no | such convenient type already exists. For instance, <xref target="RFC6920" fo | |||
| such convenient type already exists. For instance, <xref | rmat="default"/> defines cryptographic identifiers, <xref target="RFC7254" forma | |||
| target="RFC6920"/> defines cryptographic identifiers, <xref | t="default"/> defines International Mobile station Equipment | |||
| target="RFC7254"/> defines International Mobile station Equipment | ||||
| Identity (IMEI) identifiers for use with 3GPP cellular systems, | Identity (IMEI) identifiers for use with 3GPP cellular systems, | |||
| and <xref target="RFC8464"/> defines Mobile | and <xref target="RFC8464" format="default"/> defines Mobile | |||
| Equipment Identity (MEID) identifiers for use with 3GPP2 cellular | Equipment Identity (MEID) identifiers for use with 3GPP2 cellular | |||
| systems. Those URN types should be employed when such identifiers | systems. Those URN types should be employed when such identifiers | |||
| are transported; this document does not redefine these identifiers in | are transported; this document does not redefine these identifiers in | |||
| any way.</t> | any way.</t> | |||
| <t>Universally Unique IDentifier (UUID) URNs <xref | <t>Universally Unique Identifier (UUID) URNs <xref target="RFC4122" format | |||
| target="RFC4122"/> are another alternative way for representing | ="default"/> are another alternative way to represent | |||
| device identifiers, and already support MAC addresses as one type | device identifiers and already support MAC addresses as one type | |||
| of an identifier. However, UUIDs can be inconvenient in | of identifier. However, UUIDs can be inconvenient in | |||
| environments where it is important that the identifiers are as | environments where it is important that the identifiers be as | |||
| simple as possible and where additional requirements on stable | simple as possible and where additional requirements on stable | |||
| storage, real-time clocks, and identifier length can be | storage, real-time clocks, and identifier length can be | |||
| prohibitive. Often, UUID-based identifiers are preferred for | prohibitive. Often, UUID-based identifiers are preferred for | |||
| general purpose uses instead of MAC-based device URNs defined in | general purpose uses instead of the MAC-based device URNs defined in | |||
| this document. The device URNs are recommended for constrained | this document. The device URNs are recommended for constrained | |||
| environments.</t> | environments.</t> | |||
| <t>Future device identifier types can extend the device URN | ||||
| <t>Future device identifier types can extend the device URN | type defined in this document (see <xref target="iana" format="default"/>), | |||
| type defined here (see <xref target="iana"/>), or define their own URNs.</t> | or they can define their own URNs.</t> | |||
| <t>Note that long-term stable unique identifiers are problematic | ||||
| <t>Note that long-term stable unique identifiers are problematic | ||||
| for privacy reasons and should be used with care as | for privacy reasons and should be used with care as | |||
| described in <xref target="RFC7721"/>.</t> | described in <xref target="RFC7721" format="default"/>.</t> | |||
| <t>The rest of this document is organized as follows. <xref target="devurn | ||||
| <t>The rest of this document is organized as follows. <xref | " format="default"/> defines the "DEV" URN type, and <xref target="subtypes" for | |||
| target="devurn"/> defines the "DEV" URN type, and <xref | mat="default"/> defines subtypes for IEEE MAC-48, EUI-48 and | |||
| target="subtypes"/> defines subtypes for IEEE MAC-48, EUI-48 and | EUI-64 addresses, and 1-Wire device identifiers. <xref target="ex" format=" | |||
| EUI-64 addresses and 1-Wire device identifiers. <xref | default"/> gives examples. <xref target="sec" format="default"/> discusses the | |||
| target="ex"/> gives examples. <xref target="sec"/> discusses the | security and privacy considerations of the new URN type. Finally, <xref targ | |||
| security and privacy considerations of the new URN type. Finally, <xref | et="iana" format="default"/> specifies the IANA registration for the new URN | |||
| target="iana"/> specifies the IANA registration for the new URN | ||||
| type and sets requirements for subtype allocations within this | type and sets requirements for subtype allocations within this | |||
| type.</t> | type.</t> | |||
| </section> | ||||
| </section> | <section anchor="kwd" numbered="true" toc="default"> | |||
| <name>Requirements Language</name> | ||||
| <section anchor="kwd" title='Requirements language'> | <t> | |||
| The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | ||||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14> | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
| 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | |||
| when, they appear in all capitals, as shown here.</t> | be interpreted as | |||
| described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | ||||
| </section> | when, and only when, they appear in all capitals, as shown here. | |||
| </t> | ||||
| <section anchor="devurn" title="DEV URN Definition"> | </section> | |||
| <section anchor="devurn" numbered="true" toc="default"> | ||||
| <t>Namespace Identifier: "dev" requested</t> | <name>DEV URN Definition</name> | |||
| <dl> | ||||
| <t>Version: 1</t> | <dt>Namespace Identifier:</dt><dd>"dev"</dd> | |||
| <dt>Version:</dt><dd>1</dd> | ||||
| <t>Date: 2020-06-24</t> | <dt>Date:</dt><dd>2020-06-24</dd> | |||
| <dt>Registrant:</dt><dd>IETF and the CORE Working Group. Should the workin | ||||
| <t>Registrant: IETF and the CORE working group. Should the working | g | |||
| group cease to exist, discussion should be directed to the application | group cease to exist, discussion should be directed to the | |||
| area or general IETF discussion forums, or the IESG.</t> | Applications and Real-Time Area or general IETF discussion forums, or the | |||
| IESG.</dd></dl> | ||||
| <section title="Purpose"> | <section numbered="true" toc="default"> | |||
| <name>Purpose</name> | ||||
| <t>Purpose: The DEV URNs identify devices with device-specific | <t>The DEV URNs identify devices with device-specific | |||
| identifiers such as network card hardware addresses. DEV URNs | identifiers such as network card hardware addresses. DEV URNs | |||
| are scoped to be globally applicable (see <xref | are scoped to be globally applicable (see <xref target="RFC8141" sectionF | |||
| target="RFC8141"/> Section 6.4.1) and, in general, enable | ormat="comma" section="6.4.1"/>) and, in general, enable | |||
| systems to use these identifiers from multiple sources in an | systems to use these identifiers from multiple sources in an | |||
| interoperable manner. Note that in some deployments, ensuring | interoperable manner. Note that in some deployments, ensuring | |||
| uniqueness requires care if manual or local assignment | uniqueness requires care if manual or local assignment | |||
| mechanisms are used, as discussed in <xref | mechanisms are used, as discussed in <xref target="assignment" format="de | |||
| target="assignment"/>. | fault"/>. | |||
| <vspace blankLines="1"/> | </t> | |||
| <t> | ||||
| Some typical DEV URN applications include equipment | Some typical DEV URN applications include equipment | |||
| inventories and smart object systems.<vspace blankLines="1"/> | inventories and smart object systems. | |||
| </t> | ||||
| <t> | ||||
| DEV URNs can be used in various ways in applications, software | DEV URNs can be used in various ways in applications, software | |||
| systems, and network components, in tasks ranging from | systems, and network components, in tasks ranging from | |||
| discovery (for instance when discovering 1-Wire network | discovery (for instance, when discovering 1-Wire network | |||
| devices or detecting MAC-addressable devices on a LAN) to | devices or detecting MAC-addressable devices on a LAN) to | |||
| intrusion detection systems and simple catalogues of system | intrusion detection systems and simple catalogues of system | |||
| information.<vspace blankLines="1"/> | information. | |||
| </t> | ||||
| <t> | ||||
| While it is possible to implement resolution systems for specific | While it is possible to implement resolution systems for specific | |||
| applications or network locations, DEV URNs are typically not used in | applications or network locations, DEV URNs are typically not used in | |||
| a way that requires resolution beyond direct observation of the | a way that requires resolution beyond direct observation of the | |||
| relevant identifier fields in local link communication. However, it is | relevant identifier fields in local link communication. However, it is | |||
| often useful to be able to pass device identifier information in generic | often useful to be able to pass device identifier information in generic | |||
| URN fields in databases or protocol fields, which makes the use of | URN fields in databases or protocol fields, which makes the use of | |||
| URNs for this purpose convenient.<vspace blankLines="1"/> | URNs for this purpose convenient. | |||
| </t> | ||||
| The DEV URN name space complements existing name spaces such as those | <t> | |||
| The DEV URN namespace complements existing namespaces such as those | ||||
| involving IMEI or UUID identifiers. DEV URNs are expected to be a part | involving IMEI or UUID identifiers. DEV URNs are expected to be a part | |||
| of the IETF-provided basic URN types, covering identifiers that have | of the IETF-provided basic URN types, covering identifiers that have | |||
| previously not been possible to use in URNs.</t> | previously not been possible to use in URNs. | |||
| </t> | ||||
| </section> | </section> | |||
| <section anchor="syntax" numbered="true" toc="default"> | ||||
| <section anchor="syntax" title="Syntax"> | <name>Syntax</name> | |||
| <t>The identifier is expressed in | ||||
| <t>Syntax: The identifier is expressed in | ||||
| ASCII characters and has a hierarchical structure as | ASCII characters and has a hierarchical structure as | |||
| follows:</t> | follows:</t> | |||
| <sourcecode name="" type="abnf"><![CDATA[ | ||||
| <figure> | devurn = "urn:dev:" body componentpart | |||
| <artwork> | body = macbody / owbody / orgbody / osbody / opsbody / otherbody | |||
| devurn = "urn:dev:" body componentpart | macbody = %s"mac:" hexstring | |||
| body = macbody / owbody / orgbody / osbody / opsbody / otherbody | owbody = %s"ow:" hexstring | |||
| macbody = %s"mac:" hexstring | orgbody = %s"org:" posnumber "-" identifier *( ":" identifier ) | |||
| owbody = %s"ow:" hexstring | osbody = %s"os:" posnumber "-" serial *( ":" identifier ) | |||
| orgbody = %s"org:" posnumber "-" identifier *( ":" identifier ) | opsbody = %s"ops:" posnumber "-" product "-" serial | |||
| osbody = %s"os:" posnumber "-" serial *( ":" identifier ) | *( ":" identifier ) | |||
| opsbody = %s"ops:" posnumber "-" product "-" serial *( ":" identifier ) | otherbody = subtype ":" identifier *( ":" identifier ) | |||
| otherbody = subtype ":" identifier *( ":" identifier ) | subtype = LALPHA *(DIGIT / LALPHA) | |||
| subtype = LALPHA *(DIGIT / LALPHA) | identifier = 1*devunreserved | |||
| identifier = 1*devunreserved | identifiernodash = 1*devunreservednodash | |||
| identifiernodash = 1*devunreservednodash | product = identifiernodash | |||
| product = identifiernodash | serial = identifier | |||
| serial = identifier | componentpart = *( "_" identifier ) | |||
| componentpart = *( "_" identifier ) | devunreservednodash = ALPHA / DIGIT / "." | |||
| devunreservednodash = ALPHA / DIGIT / "." | devunreserved = devunreservednodash / "-" | |||
| devunreserved = devunreservednodash / "-" | hexstring = 1*(hexdigit hexdigit) | |||
| hexstring = 1*(hexdigit hexdigit) | hexdigit = DIGIT / "a" / "b" / "c" / "d" / "e" / "f" | |||
| hexdigit = DIGIT / "a" / "b" / "c" / "d" / "e" / "f" | posnumber = NZDIGIT *DIGIT | |||
| posnumber = NZDIGIT *DIGIT | ALPHA = %x41-5A / %x61-7A | |||
| ALPHA = %x41-5A / %x61-7A | LALPHA = %x41-5A | |||
| LALPHA = %x41-5A | NZDIGIT = %x31-39 | |||
| NZDIGIT = %x31-39 | DIGIT = %x30-39 | |||
| DIGIT = %x30-39 | ]]></sourcecode> | |||
| </artwork> | <t>The above syntax is represented in Augmented Backus-Naur | |||
| </figure> | Form (ABNF) as defined in <xref target="RFC5234" format="default"/> and | |||
| <xref target="RFC7405" format="default"/>. The syntax also copies the DIG | ||||
| <t>The above syntax is represented in Augmented Backus-Naur | IT and | |||
| Form (ABNF) form as defined in <xref target="RFC5234"/> and | ALPHA rules originally defined in <xref target="RFC5234" format="default" | |||
| <xref target="RFC7405"/>. The syntax also copies the DIGIT and | />, | |||
| ALPHA rules originally defined in <xref target="RFC5234"/>, | ||||
| exactly as defined there.</t> | exactly as defined there.</t> | |||
| <t>The device identifier namespace includes five subtypes (see | ||||
| <t>The device identifier namespace includes five subtypes (see | <xref target="subtypes" format="default"/>), and more may be defined in t | |||
| <xref target="subtypes"/>, and more may be defined in the future as | he future as | |||
| specified in <xref target="iana"/>.</t> | specified in <xref target="iana" format="default"/>.</t> | |||
| <t>The optional underscore-separated components at the end of | ||||
| <t>The optional underscore-separated components at the end of | ||||
| the DEV URN depict individual aspects of a | the DEV URN depict individual aspects of a | |||
| device. The specific strings and their semantics are up to the | device. The specific strings and their semantics are up to the | |||
| designers of the device, but could be used to refer to | designers of the device but could be used to refer to | |||
| specific interfaces or functions within the device.</t> | specific interfaces or functions within the device.</t> | |||
| <t>With the exception of the MAC address and 1-Wire DEV URNs, | ||||
| <t>With the exception of the MAC-address and 1-Wire DEV URNs, | ||||
| each DEV URN may also contain optional colon-separated | each DEV URN may also contain optional colon-separated | |||
| identifiers. These are provided for extensibility.</t> | identifiers. These are provided for extensibility.</t> | |||
| <t>There are no special character encoding rules or | ||||
| <t>There are no special character encoding rules or | considerations for conforming with the URN syntax beyond | |||
| considerations for conforming with the URN syntax, beyond | those applicable for URNs in general <xref target="RFC8141" format="defau | |||
| those applicable for URNs in general <xref target="RFC8141"/>, | lt"/> | |||
| or the context where these URNs are carried (e.g., inside JSON | or the context where these URNs are carried (e.g., inside JSON | |||
| <xref target="RFC8259"/> or SenML <xref | <xref target="RFC8259" format="default"/> or SenML <xref target="RFC8428" | |||
| target="RFC8428"/>). Due to the SenML RFC 8428 Section 4.5.1 | format="default"/>). Due to the SenML rules in <xref target="RFC8428" sectionFo | |||
| rules, it is not desirable to use percent-encoding in DEV | rmat="comma" section="4.5.1"/>, it is not desirable to use percent-encoding in D | |||
| EV | ||||
| URNs, and the subtypes defined in this specification do not | URNs, and the subtypes defined in this specification do not | |||
| really benefit from percent-encoding. However, this | really benefit from percent-encoding. However, this | |||
| specification does not deviate from the general syntax of URNs | specification does not deviate from the general syntax of URNs | |||
| or their processing and normalization rules as specified in | or their processing and normalization rules as specified in | |||
| <xref target="RFC3986"/> and <xref target="RFC8141"/>.</t> | <xref target="RFC3986" format="default"/> and <xref target="RFC8141" form | |||
| at="default"/>.</t> | ||||
| <t>DEV URNs do not use r-, q-, or f-components as defined in | <t>DEV URNs do not use r-, q-, or f-components as defined in | |||
| <xref target="RFC8141"/>.</t> | <xref target="RFC8141" format="default"/>.</t> | |||
| <t>Specific subtypes of DEV URNs may be validated through | ||||
| <t>Specific subtypes of DEV URNs may be validated through | mechanisms discussed in <xref target="subtypes" format="default"/>.</t> | |||
| mechanisms discussed in <xref target="subtypes"/>.</t> | <t>The string representation of the device | |||
| <t>The string representation of the device | ||||
| identifier URN is fully compatible with | identifier URN is fully compatible with | |||
| the URN syntax.</t> | the URN syntax.</t> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Character Case and URN-Equivalence"> | <name>Character Case and URN-Equivalence</name> | |||
| <t>The DEV URN syntax allows both uppercase and lowercase | ||||
| <t>The DEV URN syntax allows both upper and lower case | ||||
| characters. The URN-equivalence of the DEV URNs is defined per | characters. The URN-equivalence of the DEV URNs is defined per | |||
| <xref target="RFC8141"/> Section 3.1, i.e., two URNs are | <xref target="RFC8141" sectionFormat="comma" section="3.1"/>, i.e., two U RNs are | |||
| URN-equivalent if their assigned-name portions are | URN-equivalent if their assigned-name portions are | |||
| octet-by-octet equal after applying case normalization to the | octet-by-octet equal after applying case normalization to the | |||
| URI scheme ("urn") and namespace identifier ("dev"). | URI scheme ("urn") and namespace identifier ("dev"). | |||
| The rest of the DEV URN is | The rest of the DEV URN is | |||
| compared in a case sensitive manner. It should be noted that | compared in a case-sensitive manner. It should be noted that | |||
| URN-equivalence matching merely quickly shows that two URNs | URN-equivalence matching merely quickly shows that two URNs | |||
| are definitely the same for the purposes of caching and other | are definitely the same for the purposes of caching and other | |||
| similar uses. Two DEV URNs may still refer to the same entity, | similar uses. Two DEV URNs may still refer to the same entity and may not | |||
| and not be found URN-equivalent according to the RFC 8141 | be found to be URN-equivalent according to the <xref target="RFC8141" format="d | |||
| efault"/> | ||||
| definition. For instance, in ABNF, strings are | definition. For instance, in ABNF, strings are | |||
| case-insensitive (see <xref target="RFC5234"/> Section 2.3), | case insensitive (see <xref target="RFC5234" sectionFormat="comma" sectio n="2.3"/>), | |||
| and a MAC address could be represented either with uppercase | and a MAC address could be represented either with uppercase | |||
| or lowercase hexadecimal digits.</t> | or lowercase hexadecimal digits.</t> | |||
| <t>Character case is not otherwise significant for the DEV URN | ||||
| <t>Character case is not otherwise significant for the DEV URN | ||||
| subtypes defined in this document. However, future subtypes | subtypes defined in this document. However, future subtypes | |||
| might include identifiers that use encodings such as BASE64, | might include identifiers that use encodings such as base64, | |||
| which encode strings in a larger variety of characters, and | which encodes strings in a larger variety of characters and | |||
| might even encode binary data.</t> | might even encode binary data.</t> | |||
| <t>To facilitate equivalence checks, it is <bcp14>RECOMMENDED</bcp14> | ||||
| <t>To facilitate equivalence checks, it is RECOMMENDED that | that | |||
| implementations always use lower case letters where they have | implementations always use lowercase letters where they have | |||
| a choice in case, unless there is a reason otherwise. (Such a | a choice in case, unless there is a reason otherwise. (Such a | |||
| reason might be, for instance, the use of a subtype that | reason might be, for instance, the use of a subtype that | |||
| requires the use of both upper case and lower case | requires the use of both uppercase and lowercase | |||
| letters.)</t> | letters.)</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="assignment" numbered="true" toc="default"> | ||||
| <section anchor="assignment" title="Assignment"> | <name>Assignment</name> | |||
| <t>The process for identifier | ||||
| <t>Assignment: The process for identifier | assignment is dependent on the used subtype and is documented in the | |||
| assignment is dependent on the used subtype, and documented in the | specific subsection under <xref target="subtypes" format="default"/>.</t> | |||
| specific subsection under <xref target="subtypes"/>.</t> | <t>Device identifiers are generally expected to identify a | |||
| <t>Device identifiers are generally expected to identify a | ||||
| unique device, | unique device, | |||
| barring the accidental issue of multiple devices with the same | barring the accidental issue of multiple devices with the same | |||
| identifiers. In many cases, device identifiers can also be | identifiers. In many cases, device identifiers can also be | |||
| changed by users, or sometimes assigned in an algorithmic | changed by users or are sometimes assigned in an algorithmic | |||
| or local fashion. Any potential conflicts arising from such | or local fashion. Any potential conflicts arising from such | |||
| assignments are not something that the DEV URNs as such | assignments are not something that the DEV URNs as such | |||
| manage; they simply are there to refer to a particular | manage; they simply are there to refer to a particular | |||
| identifier. And of course, a single device may (and often | identifier. And, of course, a single device may (and often | |||
| does) have multiple identifiers, e.g., identifiers associated | does) have multiple identifiers, e.g., identifiers associated | |||
| with different link technologies it supports.</t> | with different link technologies it supports.</t> | |||
| <t>The DEV URN type <bcp14>SHOULD</bcp14> only be used for | ||||
| <t>The DEV URN type SHOULD only be used for | ||||
| hardware-based identifiers that are expected to be | hardware-based identifiers that are expected to be | |||
| persistent (with some limits, as discussed above).</t> | persistent (with some limits, as discussed above).</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Security and Privacy"> | <name>Security and Privacy</name> | |||
| <t>As discussed in <xref target="sec" format="default"/>, | ||||
| <t>Security and Privacy: As discussed in <xref target="sec"/>, | ||||
| care must be taken in the use of device-identifier-based | care must be taken in the use of device-identifier-based | |||
| identifiers due to their nature as long-term identifiers that | identifiers due to their nature as long-term identifiers that | |||
| are not normally changeable. Leakage of these identifiers | are not normally changeable. Leakage of these identifiers | |||
| outside systems where their use is justified should be | outside systems where their use is justified should be | |||
| controlled.</t> | controlled.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Interoperability"> | <name>Interoperability</name> | |||
| <t>There are no specific interoperability | ||||
| <t>Interoperability: There are no specific interoperability | ||||
| concerns.</t> | concerns.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Resolution"> | <name>Resolution</name> | |||
| <t>The device identifiers are not expected to be globally | ||||
| <t>Resolution: The device identifiers are not expected to be globally | ||||
| resolvable. No identifier resolution system is expected. Systems may | resolvable. No identifier resolution system is expected. Systems may | |||
| perform local matching of identifiers to previously seen identifiers | perform local matching of identifiers to previously seen identifiers | |||
| or configured information, however.</t> | or configured information, however.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Documentation"> | <name>Documentation</name> | |||
| <t>See RFC 9039.</t> | ||||
| <t>See RFC NNNN (RFC Editor: Please replace NNNN by a reference to | ||||
| the RFC number of this document).</t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Additional Information"> | <name>Additional Information</name> | |||
| <t>See <xref target="intro" format="default"/> for a discussion of relat | ||||
| <t>See <xref target="intro"/> for a discussion of related name spaces.</t | ed namespaces.</t> | |||
| > | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Revision Information"> | <name>Revision Information</name> | |||
| <t>This is the first version of this registration.</t> | ||||
| <t>Revision Information: This is the first version of this registration.< | ||||
| /t> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="subtypes" numbered="true" toc="default"> | ||||
| <section anchor="subtypes" title="DEV URN Subtypes"> | <name>DEV URN Subtypes</name> | |||
| <section anchor="mac" numbered="true" toc="default"> | ||||
| <section anchor="mac" title="MAC Addresses"> | <name>MAC Addresses</name> | |||
| <t>DEV URNs of the "mac" subtype are based on the EUI-64 identifier | ||||
| <t>DEV URNs of the "mac" subtype are based on the EUI-64 identifier | <xref target="IEEE.EUI64" format="default"/> derived from a device with a built- | |||
| <xref target="IEEE.EUI64"/> derived from a device with a built-in | in | |||
| 64-bit EUI-64. The EUI-64 is formed from 24 or 36 bits of organization | 64-bit EUI-64. The EUI-64 is formed from 24 or 36 bits of organization | |||
| identifier followed by 40 or 28 bits of device-specific extension | identifier followed by 40 or 28 bits of device-specific extension | |||
| identifier assigned by that organization.</t> | identifier assigned by that organization.</t> | |||
| <t>In the DEV URN "mac" subtype, the hexstring is simply the full | ||||
| <t>In the DEV URN "mac" subtype the hexstring is simply the full | ||||
| EUI-64 identifier represented as a hexadecimal string. It is always | EUI-64 identifier represented as a hexadecimal string. It is always | |||
| exactly 16 characters long.</t> | exactly 16 characters long.</t> | |||
| <t>MAC-48 and EUI-48 identifiers are also supported by the same DEV | ||||
| <t>MAC-48 and EUI-48 identifiers are also supported by the same DEV | URN subtype. To convert a MAC-48 address to an EUI-64 identifier, the | |||
| URN subtype. To convert a MAC-48 address to an EUI-64 identifier, The | Organizationally Unique Identifier (OUI) of the MAC-48 address (the first three | |||
| OUI of the MAC-48 address (the first three octets) becomes the | octets) becomes the | |||
| organization identifier of the EUI-64 (the first three octets). The | organization identifier of the EUI-64 (the first three octets). The | |||
| fourth and fifth octets of the EUI are set to the fixed value 0xffff | fourth and fifth octets of the EUI are set to the fixed value 0xffff | |||
| (hexadecimal). The last three octets of the MAC-48 address become the | (hexadecimal). The last three octets of the MAC-48 address become the | |||
| last three octets of the EUI-64. The same process is used to convert | last three octets of the EUI-64. The same process is used to convert | |||
| an EUI-48 identifier, but the fixed value 0xfffe is used instead.</t> | an EUI-48 identifier, but the fixed value 0xfffe is used instead.</t> | |||
| <t>Identifier assignment for all of these identifiers rests within the | ||||
| <t>Identifier assignment for all of these identifiers rests within the | ||||
| IEEE Registration Authority.</t> | IEEE Registration Authority.</t> | |||
| <t>Note that where randomized MAC addresses are used, the resulting | ||||
| DEV URNs cannot be expected to have uniqueness, as discussed in <xref target="as | ||||
| signment" format="default"/>.</t> | ||||
| </section> | ||||
| <section anchor="s1wire" numbered="true" toc="default"> | ||||
| <name>1-Wire Device Identifiers</name> | ||||
| <t>Note that where randomized MAC addresses are used, the resulting | <t>The 1-Wire system is a device communications bus system designed | |||
| DEV URNs cannot be expected to have uniqueness, as discussed in <xref | by Dallas Semiconductor Corporation. (1-Wire is a registered trademark.) 1-Wire | |||
| target="assignment"/>.</t> | devices are identified by | |||
| a 64-bit identifier that consists of an 8-bit family code, a 48-bit | ||||
| </section> | identifier unique within a family, and an 8-bit Cyclic Redundancy Check (CRC) co | |||
| de <xref target="OW" format="default"/>. | ||||
| <section anchor="s1wire" title="1-Wire Device Identifiers"> | ||||
| <t>The 1-Wire* system is a device communications bus system designed | ||||
| by Dallas Semiconductor Corporation. 1-Wire devices are identified by | ||||
| a 64-bit identifier that consists of 8 bit family code, 48 bit | ||||
| identifier unique within a family, and 8 bit CRC code <xref | ||||
| target="OW"/>. | ||||
| <list style="empty"> | ||||
| <t>*) 1-Wire is a registered trademark.</t> | ||||
| </list> | ||||
| </t> | </t> | |||
| <t>In DEV URNs with the "ow" subtype the hexstring is a representation | <t>In DEV URNs with the "ow" subtype, the hexstring is a representation | |||
| of the full 64-bit identifier as a hexadecimal string. It is always | of the full 64-bit identifier as a hexadecimal string. It is always | |||
| exactly 16 characters long. Note that the last two characters | exactly 16 characters long. Note that the last two characters | |||
| represent the 8-bit CRC code. Implementations MAY check the validity | represent the 8-bit CRC code. Implementations <bcp14>MAY</bcp14> check the valid ity | |||
| of this code.</t> | of this code.</t> | |||
| <t>Family code and identifier assignment for all 1-Wire devices rests | ||||
| <t>Family code and identifier assignment for all 1-Wire devices rests | ||||
| with the manufacturers.</t> | with the manufacturers.</t> | |||
| </section> | ||||
| </section> | <section anchor="org" numbered="true" toc="default"> | |||
| <name>Organization-Defined Identifiers</name> | ||||
| <section anchor="org" title="Organization-Defined Identifiers"> | <t>Device identifiers that have only a meaning within an | |||
| <t>Device identifiers that have only a meaning within an | ||||
| organization can also be used to represent vendor-specific or | organization can also be used to represent vendor-specific or | |||
| experimental identifiers or identifiers designed for use within the | experimental identifiers or identifiers designed for use within the | |||
| context of an organization.</t> | context of an organization.</t> | |||
| <t>Organizations are identified by their Private Enterprise Number | ||||
| <t>Organizations are identified by their Private Enterprise Number | (PEN) <xref target="RFC2578" format="default"/>. These numbers can be obtained | |||
| (PEN) <xref target="RFC2578"/>. These numbers can be obtained from | from | |||
| IANA. Current PEN assignments can be viewed at | IANA. Current PEN assignments can be viewed at <eref brackets="angle" target= | |||
| https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers | "https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers"/>, | |||
| and new assignments requested at | and new assignments are requested at <eref brackets="angle" target="https://pen | |||
| https://pen.iana.org/pen/PenApplication.page.</t> | .iana.org/pen/PenApplication.page"/>.</t> | |||
| <t>Note that when included in an "org" DEV URN, the number cannot | ||||
| <t>Note that when included in an "org" DEV URN, the number can not | ||||
| be zero or have leading zeroes, as the ABNF requires the number to | be zero or have leading zeroes, as the ABNF requires the number to | |||
| start with a non-zero digit.</t> | start with a non-zero digit.</t> | |||
| </section> | ||||
| </section> | <section anchor="os" numbered="true" toc="default"> | |||
| <name>Organization Serial Numbers</name> | ||||
| <section anchor="os" title="Organization Serial Numbers"> | <t>The "os" subtype specifies an organization and serial | |||
| <t>The "os" subtype specifies an organization and a serial | ||||
| number. Organizations are identified by their PEN. As with the | number. Organizations are identified by their PEN. As with the | |||
| organization-defined identifiers (<xref target="org"/>), PEN number | organization-defined identifiers (<xref target="org" format="default"/>), PEN number | |||
| assignments are maintained by IANA, and assignments for new | assignments are maintained by IANA, and assignments for new | |||
| organizations can be made easily. | organizations can be made easily. | |||
| <list style="empty"> | </t> | |||
| <aside><t> | ||||
| <t>Historical note: The "os" subtype was originally been defined | Historical note: The "os" subtype was originally defined | |||
| in the Open Mobile Alliance "Lightweight Machine to Machine" | in the Open Mobile Alliance "Lightweight Machine to Machine" | |||
| standard <xref target="LwM2M"/>, but has been incorporated here | standard <xref target="LwM2M" format="default"/> but has been incorporated | |||
| to collect all syntax associated with DEV URNs in one place. At | here | |||
| to collect all syntaxes associated with DEV URNs in one place. At | ||||
| the same time, the syntax of this subtype was changed to avoid | the same time, the syntax of this subtype was changed to avoid | |||
| the possibility of characters that are not allowed in SenML Name | the possibility of characters that are not allowed in the SenML Name | |||
| field (see <xref target="RFC8428"/> Section 4.5.1).</t> | field (see <xref target="RFC8428" sectionFormat="comma" section="4.5.1"/>) | |||
| .</t> | ||||
| </list></t> | </aside> | |||
| <t>Organization serial number DEV URNs consist of the PEN number and | ||||
| <t>Organization serial number DEV URNs consist of the PEN number and | ||||
| the serial number. As with other DEV URNs, for carrying additional | the serial number. As with other DEV URNs, for carrying additional | |||
| information and extensibility, optional colon-separated identifiers | information and extensibility, optional colon-separated identifiers | |||
| and underscore-separated components may also be included. The serial | and underscore-separated components may also be included. The serial | |||
| numbers themselves are defined by the organization, and this | numbers themselves are defined by the organization, and this | |||
| specification does not specify how they are allocated.</t> | specification does not specify how they are allocated.</t> | |||
| <t>Organizations are also encouraged to select serial number formats | ||||
| <t>Organizations are also encouraged to select serial number formats | that avoid the possibility of ambiguity in the form of leading zeroes | |||
| that avoid possibility for ambiguity, in the form of leading zeroes | ||||
| or otherwise.</t> | or otherwise.</t> | |||
| </section> | ||||
| </section> | <section anchor="ops" numbered="true" toc="default"> | |||
| <name>Organization Product and Serial Numbers</name> | ||||
| <section anchor="ops" title="Organization Product and Serial Numbers"> | <t>The DEV URN "ops" subtype was originally defined in the | |||
| LwM2M standard but has been incorporated here to collect all syntaxes | ||||
| <t>The DEV URN "ops" subtype has originally been defined in the | ||||
| LwM2M standard, but has been incorporated here to collect all syntax | ||||
| associated with DEV URNs in one place. The "ops" subtype specifies | associated with DEV URNs in one place. The "ops" subtype specifies | |||
| an organization, product class, and a serial number. Organizations | an organization, product class, and a serial number. Organizations | |||
| are identified by their PEN. Again, as with the | are identified by their PEN. Again, as with the | |||
| organization-defined identifiers (<xref target="org"/>), PEN number | organization-defined identifiers (<xref target="org" format="default"/>), PEN number | |||
| assignments are maintained by IANA. | assignments are maintained by IANA. | |||
| </t> | ||||
| <list style="empty"> | <aside><t> | |||
| Historical note: As with the "os" subtype, the "ops" subtype | ||||
| <t>Historical note: As with the "os" subtype, the "ops" subtype | was originally defined in the Open Mobile Alliance "Lightweight Machine to M | |||
| has originally been defined in OMA.</t> | achine" standard <xref target="LwM2M" format="default"/>. | |||
| </t></aside> | ||||
| </list></t> | <t>Organization product and serial number DEV URNs consist of the | |||
| <t>Organization product and serial number DEV URNs consist of the | ||||
| PEN number, product class, and the serial number. As with other DEV | PEN number, product class, and the serial number. As with other DEV | |||
| URNs, for carrying additional information and extensibility, | URNs, for carrying additional information and extensibility, | |||
| optional colon-separated identifiers and underscore-separated | optional colon-separated identifiers and underscore-separated | |||
| components may also be included. Both the product class and serial | components may also be included. Both the product class and serial | |||
| numbers themselves are defined by the organization, and this | numbers themselves are defined by the organization, and this | |||
| specification does not specify how they are allocated.</t> | specification does not specify how they are allocated.</t> | |||
| <t>Organizations are also encouraged to select product and serial | ||||
| <t>Organizations are also encouraged to select product and serial | ||||
| number formats that avoid possibility for ambiguity.</t> | number formats that avoid possibility for ambiguity.</t> | |||
| </section> | ||||
| </section> | <section anchor="futuresubtypes" numbered="true" toc="default"> | |||
| <name>Future Subtypes</name> | ||||
| <section anchor="futuresubtypes" title="Future Subtypes"> | <t>Additional subtypes may be defined in future | |||
| specifications. See <xref target="iana" format="default"/>.</t> | ||||
| <t>Additional subtypes may be defined in other, future | <t>The DEV URN "example" subtype is reserved for use in examples. It | |||
| specifications. See <xref target="iana"/>.</t> | ||||
| <t>The DEV URN "example" subtype is reserved for use in examples. It | ||||
| has no specific requirements beyond those expressed by the ABNF in | has no specific requirements beyond those expressed by the ABNF in | |||
| <xref target="syntax"/>.</t> | <xref target="syntax" format="default"/>.</t> | |||
| </section> | ||||
| </section> | </section> | |||
| <section anchor="ex" numbered="true" toc="default"> | ||||
| </section> | <name>Examples</name> | |||
| <t>The following provides some examples of DEV URNs: | ||||
| <section anchor="ex" title="Examples"> | </t> | |||
| <table> | ||||
| <t>The following provides some examples of DEV URNs: | <thead> | |||
| <tr> | ||||
| <figure> | <th>URN</th> | |||
| <artwork> | <th>Description</th> | |||
| urn:dev:mac:0024beffff804ff1 # The MAC-48 address of | </tr> | |||
| # 0024be804ff1, converted | </thead> | |||
| # to EUI-64 format | <tbody> | |||
| <tr> | ||||
| urn:dev:mac:0024befffe804ff1 # The EUI-48 address of | <td>urn:dev:mac:0024beffff804ff1</td> | |||
| # 0024be804ff1, converted | <td>The MAC-48 address of 0024be804ff1, converted to EUI-64 format</td> | |||
| # to EUI-64 format | </tr> | |||
| <tr> | ||||
| urn:dev:mac:acde48234567019f # The EUI-64 address of | <td> urn:dev:mac | |||
| # acde48234567019f | :0024befffe804ff1</td> | |||
| <td> The | ||||
| urn:dev:ow:10e2073a01080063 # A 1-Wire temperature | EUI-48 address of 0024be804ff1, converted to EUI-64 format</td> | |||
| # sensor | </tr> | |||
| <tr> | ||||
| urn:dev:ow:264437f5000000ed_humidity # The humidity | <td>urn:dev:mac:acde48234567019f</td> | |||
| # part of a multi-sensor | <td>The EUI-64 address of acde482 | |||
| # device | 34567019f | |||
| </td> | ||||
| urn:dev:ow:264437f5000000ed_temperature # The temperature | </tr> | |||
| # part of a multi-sensor | <tr> <td> | |||
| # device | urn:dev:ow:10e2073a01080063</td> | |||
| <td>A 1-Wire temperature sensor</td | ||||
| urn:dev:org:32473-foo # An organization- | > | |||
| # specific URN in | </tr> | |||
| # the RFC 5612 example | <tr> | |||
| # organization, 32473. | <td>urn:dev:ow:264437f5000000ed_humidity</td> | |||
| <td>The humidity part of a multi-sensor | ||||
| urn:dev:os:32473-123456 # Device 123456 in | device | |||
| # the RFC 5612 example | </td> | |||
| # organization | </tr> | |||
| <tr> | ||||
| <td>urn:dev:ow:264437f5000000ed_temperature</td> | ||||
| <td>The temperature part of a multi-sensor device</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>urn:dev:org:32473-foo</td> | ||||
| <td>An organization-specific URN in the example organization 32473 in <xref ta | ||||
| rget="RFC5612"/> | ||||
| </td> | ||||
| </tr> | ||||
| urn:dev:os:32473-12-34-56 # A serial number with | <tr> | |||
| # dashes in it | <td>urn:dev:os:32473-123456</td> | |||
| <td>Device 123456 in the example organization in <xref target="RFC5612"/></td> | ||||
| </tr> | ||||
| urn:dev:ops:32473-Refrigerator-5002 # Refrigerator serial | <tr> | |||
| # number 5002 in the | <td>urn:dev:os:32473-12-34-56</td> | |||
| # RFC 5612 example | <td>A serial number with dashes in it</td> | |||
| # organization | </tr> | |||
| urn:dev:example:new-1-2-3_comp # An example of something | <tr> | |||
| # that is not defined today, | <td>urn:dev:ops:32473-Refrigerator-5002</td> | |||
| # and is not one of the | <td>Refrigerator serial number 5002 in the example organization in <xref targe | |||
| # mac, ow, os, or ops | t="RFC5612"/></td> | |||
| # subtypes | </tr> | |||
| </artwork> | <tr> | |||
| </figure> | <td>urn:dev:example:new-1-2-3_comp</td> | |||
| </t> | <td>An example of something that is not defined today, and is not one of the m | |||
| ac, ow, os, or ops subtypes</td> | ||||
| </tr> | ||||
| <t>The DEV URNs themselves can then appear in various contexts. A | </tbody> | |||
| simple example of this is the use of DEV URNs in SenML data. For | </table> | |||
| example, this example from <xref target="RFC8428"/> shows a | <t>The DEV URNs themselves can then appear in various contexts. A | |||
| simple example of this is the use of DEV URNs in SenML data. This example from | ||||
| <xref target="RFC8428" format="default"/> shows a | ||||
| measurement from a 1-Wire temperature gauge encoded in the JSON | measurement from a 1-Wire temperature gauge encoded in the JSON | |||
| syntax. | syntax: | |||
| <figure> | </t> | |||
| <artwork> | <sourcecode name="" type="json"><![CDATA[ | |||
| [ | [ | |||
| {"n":"urn:dev:ow:10e2073a01080063","u":"Cel","v":23.1} | {"n":"urn:dev:ow:10e2073a01080063","u":"Cel","v":23.1} | |||
| ] | ] | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | </section> | |||
| </t> | <section anchor="sec" numbered="true" toc="default"> | |||
| <name>Security Considerations</name> | ||||
| </section> | <t>On most devices, the user can display device identifiers. Depending | |||
| <section anchor="sec" title="Security Considerations"> | ||||
| <t>On most devices, the user can display device identifiers. Depending | ||||
| on circumstances, device identifiers may or may not be modified or | on circumstances, device identifiers may or may not be modified or | |||
| tampered with by the user. An implementation of the DEV URN MUST preserve | tampered with by the user. An implementation of the DEV URN <bcp14>MUST</bcp14> preserve | |||
| such limitations and behaviors associated with the device identifiers. In partic ular, | such limitations and behaviors associated with the device identifiers. In partic ular, | |||
| a device identifier that is intended to be immutable should not become mutable | a device identifier that is intended to be immutable should not become mutable | |||
| as a part of implementing the DEV URN type. More generally, nothing in | as a part of implementing the DEV URN type. More generally, nothing in | |||
| this document should be construed to override what the relevant device | this document should be construed to override what the relevant device | |||
| specifications have already said about the identifiers.</t> | specifications have already said about the identifiers.</t> | |||
| <section anchor="priv" numbered="true" toc="default"> | ||||
| <section anchor="priv" title="Privacy"> | <name>Privacy</name> | |||
| <t>Other devices in the same network may or may not be able to | ||||
| <t>Other devices in the same network may or may not be able to | ||||
| identify the device. For instance, on an Ethernet network, the MAC | identify the device. For instance, on an Ethernet network, the MAC | |||
| address of a device is visible to all other devices.</t> | address of a device is visible to all other devices.</t> | |||
| <t>DEV URNs often represent long-term stable unique identifiers for | ||||
| <t>DEV URNs often represent long-term stable unique identifiers for | ||||
| devices. Such identifiers may have privacy and security implications | devices. Such identifiers may have privacy and security implications | |||
| because they may enable correlating information about a specific | because they may enable correlating information about a specific | |||
| device over a long period of time, location tracking, and device | device over a long period of time, location tracking, and device-specific vulner | |||
| specific vulnerability exploitation <xref target="RFC7721"/>. Also, in | ability exploitation <xref target="RFC7721" format="default"/>. Also, in | |||
| some systems there is no easy way to change the identifier. Therefore | some systems, there is no easy way to change the identifier. Therefore, | |||
| these identifiers need to be used with care and especially care should | these identifiers need to be used with care, and special care should | |||
| be taken to avoid leaking them outside of the system that is intended | be taken to avoid leaking identifiers outside of the system that is intended | |||
| to use the identifiers.</t> | to use them.</t> | |||
| </section> | ||||
| </section> | <section anchor="valid" numbered="true" toc="default"> | |||
| <name>Validity</name> | ||||
| <section anchor="valid" title="Validity"> | <t>Information about identifiers may have significant effects in some | |||
| applications. For instance, in many sensor systems, the identifier | ||||
| <t>Information about identifiers may have significant effects in some | ||||
| applications. For instance, in many sensor systems the identifier | ||||
| information is used for deciding how to use the data carried in a | information is used for deciding how to use the data carried in a | |||
| measurement report. On some other systems, identifiers may be used in | measurement report. In some other systems, identifiers may be used in | |||
| policy decisions.</t> | policy decisions.</t> | |||
| <t>It is important that systems be designed to take into account the | ||||
| <t>It is important that systems are designed to take into account the | ||||
| possibility of devices reporting incorrect identifiers (either | possibility of devices reporting incorrect identifiers (either | |||
| accidentally or maliciously) and the manipulation of identifiers in | accidentally or maliciously) and the manipulation of identifiers in | |||
| communications by illegitimate entities. Integrity | communications by illegitimate entities. Integrity | |||
| protection of communications or data objects, the use of trusted | protection of communications or data objects, the use of trusted | |||
| devices, and various management practices can help address these | devices, and various management practices can help address these | |||
| issues. </t> | issues. </t> | |||
| <t>Similar to the advice in <xref target="RFC4122" sectionFormat="comma" | ||||
| <t>The advice from <xref target="RFC4122"/> Section 6 also applies: | section="6"/>: | |||
| Do not assume that DEV URNs are hard to guess.</t> | Do not assume that DEV URNs are hard to guess.</t> | |||
| </section> | ||||
| </section> | ||||
| <section anchor="iana" numbered="true" toc="default"> | ||||
| <name>IANA Considerations</name> | ||||
| <t>Per this document, IANA has registered a new URN namespace | ||||
| for "dev", as described in <xref target="devurn" format="default"/>.</t> | ||||
| </section> | <t>IANA has created a "DEV URN Subtypes" registry under "Device Identifica | |||
| tion". The initial values in this registry are as follows: | ||||
| </section> | </t> | |||
| <table> | ||||
| <section anchor="iana" title="IANA Considerations"> | <thead> | |||
| <tr> | ||||
| <t>This document requests the registration of a new URN namespace | <th>Subtype</th> | |||
| for "DEV", as described in <xref target="devurn"/>.</t> | <th>Description</th> | |||
| <th>Reference</th> | ||||
| <t>IANA is asked to create a "DEV URN Subtypes" registry. The initial values | </tr> | |||
| in this registry are as follows: | </thead> | |||
| <tbody> | ||||
| <figure> | <tr> | |||
| <artwork> | <td>mac</td> | |||
| Subtype Description Reference | <td>MAC Addresses</td> | |||
| mac MAC Addresses (THIS RFC) Section 4.1 | <td>RFC 9039, <xref target="mac"/></td> | |||
| ow 1-Wire Device Identifiers (THIS RFC) Section 4.2 | </tr> | |||
| org Organization-Defined Identifiers (THIS RFC) Section 4.3 | <tr> | |||
| os Organization Serial Numbers (THIS RFC) Section 4.4 | <td>ow</td> | |||
| ops Organization Product and Serial Numbers (THIS RFC) Section 4.5 | <td>1-Wire Device Identifiers</td> | |||
| example Reserved for examples (THIS RFC) Section 4.6 | <td>RFC 9039, <xref target="s1wire"/></td> | |||
| </artwork> | </tr> | |||
| </figure></t> | <tr> | |||
| <td>org</td> | ||||
| <t>Additional subtypes for DEV URNs can be defined through | <td>Organization-Defined Identifiers</td> | |||
| Specification Required or IESG Approval <xref | <td>RFC 9039, <xref target="org"/></td> | |||
| target="RFC8126"/>. These allocations are appropriate when there is | </tr> | |||
| a new namespace of some type of device identifiers, defined in | <tr> | |||
| stable fashion and with a publicly available specification.</t> | <td>os</td> | |||
| <td>Organization Serial Numbers</td> | ||||
| <t>Note that the organization (<xref target="org"/>) device | <td>RFC 9039, <xref target="os"/></td> | |||
| </tr> | ||||
| <tr> | ||||
| <td>ops</td> | ||||
| <td>Organization Product and Serial Numbers</td> | ||||
| <td>RFC 9039, <xref target="ops"/></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>example</td> | ||||
| <td>Reserved for examples</td> | ||||
| <td>RFC 9039, <xref target="futuresubtypes"/></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| <t>Additional subtypes for DEV URNs can be defined through | ||||
| Specification Required or IESG Approval <xref target="RFC8126" format="default | ||||
| "/>. These allocations are appropriate when there is | ||||
| a new namespace of some type of device identifier that is defined in | ||||
| a stable fashion and has a publicly available specification.</t> | ||||
| <t>Note that the organization (<xref target="org" format="default"/>) devi | ||||
| ce | ||||
| identifiers can also be used in some cases, at least as a temporary | identifiers can also be used in some cases, at least as a temporary | |||
| measure. It is preferable, however, that long-term usage of a | measure. It is preferable, however, that long-term usage of a | |||
| broadly employed device identifier be registered with IETF rather | broadly employed device identifier be registered with IETF rather | |||
| than used through the organization device identifier type.</t> | than used through the organization device identifier type.</t> | |||
| </section> | ||||
| </middle> | ||||
| <back> | ||||
| </section> | <displayreference target="I-D.ietf-core-resource-directory" to="CoRE-RD"/> | |||
| </middle> | ||||
| <back> | ||||
| <references title="Normative References"> | ||||
| &RFC2119; | ||||
| &RFC2578; | ||||
| &RFC3986; | ||||
| &RFC5234; | ||||
| &RFC8126; | ||||
| &RFC8141; | ||||
| &RFC8174; | ||||
| <reference | ||||
| anchor="IEEE.EUI64" | ||||
| target="https://standards.ieee.org/content/dam/ieee-standards/standards/we | ||||
| b/documents/tutorials/eui.pdf"> | ||||
| <front> | ||||
| <title>Guidelines For 64-bit Global Identifier (EUI-64)</title> | ||||
| <author> | ||||
| <organization>IEEE</organization> | ||||
| </author> | ||||
| <date year='unknown year' /> | ||||
| </front> | ||||
| <seriesInfo name="IEEE" value=" " /> | ||||
| </reference> | ||||
| <reference | ||||
| anchor="OW" | ||||
| target="https://www.maximintegrated.com/en/design/technical-documents/tuto | ||||
| rials/1/1796.html"> | ||||
| <front> | ||||
| <title>Guide to 1-Wire Communication</title> | ||||
| <author> | ||||
| <organization>Maxim</organization> | ||||
| </author> | ||||
| <date month='June' year='2008' /> | ||||
| </front> | ||||
| <seriesInfo name="MAXIM" value=" https://www.maximintegrated.com/en/design/t | ||||
| echnical-documents/tutorials/1/1796.html" /> | ||||
| </reference> | ||||
| </references> | ||||
| <references title="Informative References"> | ||||
| &RFC3261; | ||||
| &RFC4122; | ||||
| &RFC4648; | ||||
| &RFC7230; | ||||
| &RFC7540; | ||||
| &RFC7721; | ||||
| &RFC8259; | ||||
| <reference anchor='W3C.REC-xml-19980210' | ||||
| target='http://www.w3.org/TR/1998/REC-xml-19980210'> | ||||
| <front> | ||||
| <title>XML 1.0 Recommendation</title> | ||||
| <author initials='C.' surname='Sperberg-McQueen' fullname='C. M. Sperberg- | ||||
| McQueen'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='T.' surname='Bray' fullname='Tim Bray'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='J.' surname='Paoli' fullname='Jean Paoli'> | ||||
| <organization /> | ||||
| </author> | ||||
| <date month='February' day='10' year='1998' /> | ||||
| </front> | ||||
| <seriesInfo name='World Wide Web Consortium FirstEdition' value='REC-xml-199 | ||||
| 80210' /> | ||||
| <format type='HTML' target='http://www.w3.org/TR/1998/REC-xml-19980210' /> | ||||
| </reference> | ||||
| <reference anchor='OUI' | ||||
| target='http://standards.ieee.org/develop/regauth/oui/'> | ||||
| <front> | ||||
| <title>Registration Authority</title> | ||||
| <author initials="SA" surname="IEEE" fullname='IEEE-SA'> | ||||
| <organization /> | ||||
| </author> | ||||
| <date year='2018' /> | ||||
| </front> | ||||
| <seriesInfo name='IEEE-SA' value='webpage'/> | ||||
| <format type='HTML' target='http://standards.ieee.org/develop/regauth/oui/' | ||||
| /> | ||||
| </reference> | ||||
| &RFC7252; | ||||
| &RFC8428; | ||||
| &RFC6920; | ||||
| &RFC7254; | ||||
| &RFC7405; | ||||
| &RFC8464; | ||||
| &I-D.ietf-core-resource-directory; | ||||
| <reference anchor="LwM2M"> | ||||
| <front> | ||||
| <title>OMA Lightweight Machine to Machine Requirements</title> | ||||
| <author fullname="Open Mobile Alliance"></author> | ||||
| <date year='2019' month='January'/> | ||||
| </front> | ||||
| <seriesInfo name="OMA Standard" value="Candidate Version 1.2"/> | ||||
| <format type='HTML' target='http://www.openmobilealliance.org/wp/Overviews/lig | ||||
| htweightm2m_overview.html' /> | ||||
| </reference> | ||||
| </references> | ||||
| <section title="Changes from Previous Versions"> | ||||
| <t>Editor's note: Please remove this section before publication.</t> | ||||
| <t>Version -11 was created to address non-blocking comments from the | ||||
| IESG review. This version made the following changes: | ||||
| <list style="symbols"> | ||||
| <t>Removed space after the "%s" in the ABNF RFC 7405 | ||||
| syntax.</t> | ||||
| <t>Softened and clarified the recommendation regarding UUIDs | ||||
| in <xref target="intro"/>.</t> | ||||
| <t>Added a paragraph about the impacts of using randomized | ||||
| MAC addresses.</t> | ||||
| <t>Added advice regarding ease of guessing DEV URNs, in <xref target="va | ||||
| lid"/>.</t> | ||||
| <t>Simplified and clarified the "illegitimate entities" statement in <xr | ||||
| ef target="valid"/>.</t> | ||||
| <t>Clarified the persistence statement in <xref target="assignment"/>.</ | ||||
| t> | ||||
| </list></t> | ||||
| <t>Version -10 made the following changes: | ||||
| <list style="symbols"> | ||||
| <t>Restricted the case of "mac", "ow", etc. any subtype to lower | ||||
| case. This required the adoption of RFC 7405 syntax in the | ||||
| ABNF.</t> | ||||
| <t>Added a reserved "example" subtype to be used in examples.</t> | ||||
| <t>Clarified global applicability, particularly in cases with | ||||
| local or manual assignment mechanisms.</t> | ||||
| <t>Corrected byte/bit counts in for 1-Wire identifiers in <xref target="s1wi | ||||
| re"/>.</t> | ||||
| <t>Clarified that optional underscore-separated components come | ||||
| at the end of the DEV URN, not just "after the hexstring".</t> | ||||
| <t>Changed the requirement to not use percent-encoding to a preference inste | ||||
| ad of a hard rule, based on the needs of SenML but not wishing to break rules of | ||||
| RFC 8141.</t> | ||||
| <t>Added a description of tradeoffs involving using URNs instead of some mor | ||||
| e compact but more specific formats, in <xref target="intro"/>.</t> | ||||
| <t>Several minor corrections to the names in the ABNF.</t> | ||||
| <t>Added a reference for Base64 for clarity.</t> | ||||
| <t>Made the history of the OS and OPS subtypes a part of the permanent text, | ||||
| rather than an editor's note.</t> | ||||
| <t>Updated the 1-Wire reference URL.</t> | ||||
| <t>Some editorial corrections.</t> | ||||
| </list></t> | ||||
| <t>Version -09 of the WG draft took into account IANA, SECDIR, | ||||
| Gen-ART, and OPSDIR reviews. The following changes were made: | ||||
| <list style="symbols"> | ||||
| <t>Aligned the use of identifiers vs. identity terms.</t> | ||||
| <t>Added a security considerations subsection on validity of | ||||
| claimed identifiers.</t> | ||||
| <t>Focused on "care" in the RFC 7721 reference, rather than "care | ||||
| and avoidance".</t> | ||||
| <t>Renamed the "unreserved" ABNF terminal to avoid confusion with | ||||
| the general URN ABNF terminal with the same name.</t> | ||||
| <t>Removed the mistakenly included text about MEID subtype.</t> | ||||
| <t>Clarified URN syntax differences and normalization rules wrt | ||||
| the lack of percent-encoding in DEV URNs.</t> | ||||
| <t>Required PEN numbers to start with non-zero digit in the ABNF | ||||
| and changed the associated language later in the draft.</t> | ||||
| <t>Text about case-insensitivity in RFC 5234 was clarified.</t> | ||||
| <t>Text about uniqueness was clarified.</t> | ||||
| <t>Text about global scope was clarified.</t> | ||||
| <t>An example of DEV URN usage in SenML was added.</t> | ||||
| <t>Editorial changes.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Version -08 of the WG draft took into account Barry Leiba's AD | ||||
| review comments. To address these comments, changes were made in | ||||
| <list style="symbols"> | ||||
| <t>Further updates of the upper/lower case rules for the DEV URNs.</t> | ||||
| <t>Further updates to the ABNF.</t> | ||||
| <t>The use of HEXDIG from RFC 5234.</t> | ||||
| <t>IANA considerations for the creation of separate registry for the own par | ||||
| ameters of DEV URNs.</t> | ||||
| <t>Editorial improvements.</t> | ||||
| </list></t> | ||||
| <t>Version -07 of the WG draft took into account Carsten Bormann's | ||||
| feedback, primarily on character case issues and editorials.</t> | ||||
| <t>Version -06 of the WG draft took into account Marco Tiloca's | ||||
| feedback before a second WGLC, primarily on further cleanup of | ||||
| references and editorial issues.</t> | ||||
| <t>Version -05 of the WG draft made some updates based on WGLC | ||||
| input: examples for MAC-48 and EUI-48, clarification with regards to | ||||
| leading zeroes, new recommendation with the use of lower-case | ||||
| letters to avoid comparison problems, small update of the RFC 8141 | ||||
| template usage, reference updates, and editorial corrections.</t> | ||||
| <t>Version -04 of the WG draft cleaned up the ABNF: | ||||
| <list style="symbols"> | ||||
| <t>Parts of the ANBF now allow for use cases for the component part that were | ||||
| not previously | ||||
| covered: the syntax now allows the character "." to appear, and | ||||
| serial numbers can have dashes in them.</t> | ||||
| <t>The syntax was also | ||||
| extended to allow for extensibility by adding additional ":" | ||||
| separated parts for the org, op, ops, and other subtypes.</t> | ||||
| <t>The ABNF | ||||
| was changed to include directly the ALPHA and DIGIT parts imported | ||||
| from RFC 5234, instead of just having a verbal comment about | ||||
| it. (Note that the style in existing RFCs differs on this.)</t> | ||||
| </list></t> | ||||
| <t>In addition, in -04 the MAC example was corrected to use the | ||||
| inserted value ffff instead of fffe, required by <xref | ||||
| target="mac"/>, the org example was corrected, the os: examples and | ||||
| otherbody examples were added. The IANA rules for allocating new | ||||
| subtypes was slightly relaxed in order to cover for new subtype | ||||
| cases that are brought up regularly, and often not from inside the | ||||
| IETF. Finally, the allocation of PEN numbers and the use of product | ||||
| classes and serial numbers was better explained.</t> | ||||
| <t>Version -03 of the WG draft removed some unnecessary references, | ||||
| updated some other references, removed pct-encoding to ensure the | ||||
| DEV URNs fit <xref target="RFC8428"/> Section 4.5.1 rules, and | ||||
| clarified that the original source of the "os" and "ops" | ||||
| subtypes.</t> | ||||
| <t>Version -02 of the WG draft folded in the "ops" and "os" branches | ||||
| of the dev:urn syntax from LwM2M, as they seemed to match well what | ||||
| already existed in this document under the "org" branch. However, as a | ||||
| part of this three changes were incorporated: | ||||
| <list style="symbols"> | ||||
| <t>The syntax for the "org:" changes to use "-" rather than ":" | ||||
| between the OUI and the rest of the URN.</t> | ||||
| <t>The organizations for the "ops" and "os" branches have been | ||||
| changed to use PEN numbers rather than OUI numbers <xref | ||||
| target="OUI"/>. The reason for this is that PEN numbers are | ||||
| allocated through a simpler and less costly process. However, this | ||||
| is a significant change to how LwM2M identifiers were specified | ||||
| before.</t> | ||||
| <t>There were also changes to what general characters can be used | <references> | |||
| in the otherbody branch of the ABNF.</t> | <name>References</name> | |||
| <references> | ||||
| <name>Normative References</name> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.2119.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.2578.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.3986.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.5234.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8126.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8141.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8174.xml"/> | ||||
| </list></t> | <reference anchor="IEEE.EUI64" | |||
| target="https://standards.ieee.org/content/dam/ieee-standards/standards/web/docu | ||||
| ments/tutorials/eui.pdf"> | ||||
| <front> | ||||
| <title>Guidelines for Use of Extended Unique Identifier (EUI), Organizationally | ||||
| Unique Identifier (OUI), and Company ID (CID)</title> | ||||
| <author> | ||||
| <organization>IEEE</organization> | ||||
| </author> | ||||
| <date month="August" year="2017"/> | ||||
| </front> | ||||
| </reference> | ||||
| <t>The rationale for all these changes is that it would be helpful | <reference anchor="OW" target="https://www.maximintegrated.com/en/design | |||
| for the community collect and unify syntax between the different | /technical-documents/tutorials/1/1796.html"> | |||
| uses of DEV URNs. If there is significant use of either the org:, | <front> | |||
| os:, or ops: subtypes, then changes at this point may not be | <title>Guide to 1-Wire Communication</title> | |||
| warranted, but otherwise unified syntax, as well as the use of PEN | <author> | |||
| numbers would probably be beneficial. Comments on this topic are | <organization>Maxim</organization> | |||
| appreciated.</t> | </author> | |||
| <date month="June" year="2008"/> | ||||
| </front> | ||||
| </reference> | ||||
| </references> | ||||
| <references> | ||||
| <name>Informative References</name> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.3261.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.4122.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.5612.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7230.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7540.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7721.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8259.xml"/> | ||||
| <t>Version -01 of the WG draft converted the draft to use the new | <reference anchor="W3C.REC-xml-19980210" target="http://www.w3.org/TR/19 | |||
| URN registration template from <xref target="RFC8141"/>.</t> | 98/REC-xml-19980210"> | |||
| <front> | ||||
| <title>Extensible Markup Language (XML) 1.0</title> | ||||
| <author initials="C." surname="Sperberg-McQueen" fullname="C. M. Spe | ||||
| rberg-McQueen"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="T." surname="Bray" fullname="Tim Bray"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="J." surname="Paoli" fullname="Jean Paoli"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="February" year="1998"/> | ||||
| </front> | ||||
| <seriesInfo name="W3C" value="Recommendation"/> | ||||
| </reference> | ||||
| <t>Version -00 of the WG draft renamed the file name and fixed the | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | |||
| ABNF to correctly use "org:" rather than "dn:".</t> | C.7252.xml"/> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8428.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6920.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7254.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7405.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8464.xml"/> | ||||
| <t>Version -05 made a change to the delimiter for parameters within | <!-- [draft-ietf-core-resource-directory] MISSREF state --> | |||
| a DEV URN. Given discussions on allowed character sets in SenML | <reference anchor='I-D.ietf-core-resource-directory'> | |||
| <xref target="RFC8428"/>, we would like to suggest that | <front> | |||
| the "_" character be used instead of ";", to avoid the need to | <title>CoRE Resource Directory</title> | |||
| translate DEV URNs in SenML-formatted communications or | ||||
| files. However, this reverses the earlier decision to not use | ||||
| unreserved characters. This also means that device IDs cannot use | ||||
| "_" characters, and have to employ other characters | ||||
| instead. Feedback on this decision is sought.</t> | ||||
| <t>Version -05 also introduced local or organization-specific device | <author initials='C' surname='Amsüss' fullname='Christian Amsüss' role="editor"> | |||
| identifiers. Organizations are identified by their PEN number | <organization /> | |||
| (although we considered FQDNs as a potential alternative. The | </author> | |||
| authors belive an organization-specific device identifier type will | ||||
| make experiments and local use easier, but feedback on this point | ||||
| and the choice of PEN numbers vs. other possible organization | ||||
| identifiers would be very welcome.</t> | ||||
| <t>Version -05 also added some discussion of privacy concerns around | <author initials='Z' surname='Shelby' fullname='Zach Shelby'> | |||
| long-term stable identifiers.</t> | <organization /> | |||
| </author> | ||||
| <t>Finally, version -05 clarified the situations when new | <author initials='M' surname='Koster' fullname='Michael Koster'> | |||
| allocations within the registry of possible device identifier | <organization /> | |||
| subtypes is appropriate.</t> | </author> | |||
| <t>Version -04 is a refresh, as the need and interest for this | <author initials='C' surname='Bormann' fullname='Carsten Bormann'> | |||
| specification has re-emerged. And the editing author has emerged | <organization /> | |||
| back to actual engineering from the depths of IETF | </author> | |||
| administration.</t> | ||||
| <t>Version -02 introduced several changes. The biggest change is | <author initials='P' surname='van der Stok' fullname='Peter van der Stok'> | |||
| that with the NI URNs <xref target="RFC6920"/>, it was no longer | <organization /> | |||
| necessary to define cryptographic identifiers in this | </author> | |||
| specification. Another change was that we incorporated a more | <date month="March" day="7" year="2021"/> | |||
| generic syntax for future extensions; non-hexstring identifiers can | ||||
| now also be supported, if some future device identifiers for some | ||||
| reason would, for instance, use some kind of encoding such as Base64 | ||||
| <xref target="RFC4648"/>. As a part of this change, we | ||||
| also changed the component part separator character from '-' to ';' | ||||
| so that the general format of the rest of the URN can employ the | ||||
| unreserved characters <xref target="RFC3986"/>.</t> | ||||
| <t>Version -03 made several minor corrections to the ABNF as well as | </front> | |||
| some editorial corrections.</t> | ||||
| </section> | <seriesInfo name='Internet-Draft' value='draft-ietf-core-resource-directory-28' /> | |||
| <section title="Acknowledgments"> | </reference> | |||
| <t>The authors would like to thank Ari Keranen, Stephen Farrell, | <reference anchor="LwM2M" target="https://www.openmobilealliance.org/rel | |||
| Christer Holmberg, Peter Saint-Andre, Wouter Cloetens, Jaime | ease/LightweightM2M/V1_2-20190124-C/OMA-RD-LightweightM2M-V1_2-20190124-C.pdf"> | |||
| Jimenez, Joseph Knapp, Padmakumar Subramani, Mert Ocak, Hannes | <front> | |||
| Tschofenig, Jim Schaad, Thomas Fossati, Carsten Bormann, Marco | <title>OMA Lightweight Machine to Machine Requirements</title> | |||
| Tiloca, Barry Leiba, Amanda Baber, Juha Hakala, Dale Worley, Warren | <author fullname="Open Mobile Alliance"/> | |||
| Kumari, Benjamin Kaduk, Brian Weis, John Klensin, Dave Thaler, Russ | <date year="2019" month="January"/> | |||
| Housley, Dan Romascanu, Eric Vyncke, Roman Danyliw, and Ahmad | </front> | |||
| Muhanna for feedback and interesting discussions in this problem | <seriesInfo name="OMA Standard" value="Candidate Version 1.2"/> | |||
| </reference> | ||||
| </references> | ||||
| </references> | ||||
| <section numbered="false" toc="default"> | ||||
| <name>Acknowledgments</name> | ||||
| <t>The authors would like to thank <contact fullname="Ari Keränen"/>, <con | ||||
| tact fullname="Stephen Farrell"/>, | ||||
| <contact fullname="Christer Holmberg"/>, <contact fullname="Peter Saint-Andre" | ||||
| />, <contact fullname="Wouter Cloetens"/>, <contact fullname="Jaime | ||||
| Jimenez"/>, <contact fullname="Joseph Knapp"/>, <contact fullname="Padmakumar | ||||
| Subramani"/>, <contact fullname="Mert Ocak"/>, <contact fullname="Hannes | ||||
| Tschofenig"/>, <contact fullname="Jim Schaad"/>, <contact fullname="Thomas Fos | ||||
| sati"/>, <contact fullname="Carsten Bormann"/>, <contact fullname="Marco | ||||
| Tiloca"/>, <contact fullname="Barry Leiba"/>, <contact fullname="Amanda Baber" | ||||
| />, <contact fullname="Juha Hakala"/>, <contact fullname="Dale Worley"/>, <conta | ||||
| ct fullname="Warren | ||||
| Kumari"/>, <contact fullname="Benjamin Kaduk"/>, <contact fullname="Brian Weis | ||||
| "/>, <contact fullname="John Klensin"/>, <contact fullname="Dave Thaler"/>, <con | ||||
| tact fullname="Russ | ||||
| Housley"/>, <contact fullname="Dan Romascanu"/>, <contact fullname="Éric Vynck | ||||
| e"/>, <contact fullname="Roman Danyliw"/>, and <contact fullname="Ahmad | ||||
| Muhanna"/> for their feedback and interesting discussions in this problem | ||||
| space. We would also like to note prior documents that focused on | space. We would also like to note prior documents that focused on | |||
| specific device identifiers, such as <xref target="RFC7254"/> or | specific device identifiers, such as <xref target="RFC7254" format="default"/> | |||
| <xref target="RFC8464"/>.</t> | and | |||
| <xref target="RFC8464" format="default"/>.</t> | ||||
| </section> | </section> | |||
| </back> | ||||
| </back> | ||||
| </rfc> | </rfc> | |||
| End of changes. 125 change blocks. | ||||
| 893 lines changed or deleted | 632 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/ | ||||