rfc9100.original.xml | rfc9100.xml | |||
---|---|---|---|---|
<?xml version='1.0' encoding='utf-8'?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> | ||||
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.4.14 --> | ||||
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
<?rfc toc="yes"?> | ||||
<?rfc tocompact="yes"?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | |||
<?rfc tocdepth="3"?> | -ietf-core-senml-versions-05" number="9100" submissionType="IETF" category="std" | |||
<?rfc tocindent="yes"?> | consensus="true" updates="8428" obsoletes="" xml:lang="en" tocInclude="true" to | |||
<?rfc symrefs="yes"?> | cDepth="3" | |||
<?rfc sortrefs="yes"?> | symRefs="true" sortRefs="true" version="3"> | |||
<?rfc comments="yes"?> | ||||
<?rfc inline="yes"?> | ||||
<?rfc strict="no"?> | ||||
<?rfc compact="yes"?> | ||||
<?rfc subcompact="no"?> | ||||
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | ||||
-ietf-core-senml-versions-05" category="std" consensus="true" updates="8428" obs | ||||
oletes="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="3" sym | ||||
Refs="true" sortRefs="true" version="3"> | ||||
<!-- xml2rfc v2v3 conversion 3.8.0 --> | ||||
<front> | <front> | |||
<title abbrev="SenML Features and Versions ">SenML Features and Versions</ti | <title abbrev="SenML Features and Versions ">Sensor Measurement Lists | |||
tle> | (SenML) Features and Versions</title> | |||
<seriesInfo name="Internet-Draft" value="draft-ietf-core-senml-versions-05"/ | <seriesInfo name="RFC" value="9100"/> | |||
> | ||||
<author initials="C." surname="Bormann" fullname="Carsten Bormann"> | <author initials="C." surname="Bormann" fullname="Carsten Bormann"> | |||
<organization>Universitaet Bremen TZI</organization> | <organization>Universität Bremen TZI</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Postfach 330440</street> | <street>Postfach 330440</street> | |||
<city>Bremen</city> | <city>Bremen</city> | |||
<code>D-28359</code> | <code>D-28359</code> | |||
<country>Germany</country> | <country>Germany</country> | |||
</postal> | </postal> | |||
<phone>+49-421-218-63921</phone> | <phone>+49-421-218-63921</phone> | |||
<email>cabo@tzi.org</email> | <email>cabo@tzi.org</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date year="2021" month="June" day="04"/> | <date year="2021" month="August"/> | |||
<workgroup>CoRE</workgroup> | <workgroup>CoRE</workgroup> | |||
<keyword>Internet-Draft</keyword> | ||||
<keyword>Internet of Things (IoT)</keyword> | ||||
<keyword>Internet of Things</keyword> | ||||
<keyword>IOT</keyword> | ||||
<keyword>data model</keyword> | ||||
<abstract> | <abstract> | |||
<t>This short document updates RFC 8428, Sensor Measurement Lists | <t>This short document updates RFC 8428, "Sensor Measurement Lists | |||
(SenML), by specifying the use of independently selectable "SenML | (SenML)", by specifying the use of independently selectable "SenML | |||
Features" and mapping them to SenML version numbers.</t> | Features" and mapping them to SenML version numbers.</t> | |||
</abstract> | </abstract> | |||
<note removeInRFC="true"> | ||||
<name>Discussion Venues</name> | ||||
<t>Discussion of this document takes place on the | ||||
CORE Working Group mailing list (core@ietf.org), | ||||
which is archived at | ||||
<eref target="https://mailarchive.ietf.org/arch/browse/core/">https://mailarchiv | ||||
e.ietf.org/arch/browse/core/</eref>.</t> | ||||
<t>Source for this draft and an issue tracker can be found at | ||||
<eref target="https://github.com/core-wg/senml-versions">https://github.com/core | ||||
-wg/senml-versions</eref>.</t> | ||||
</note> | ||||
</front> | </front> | |||
<middle> | <middle> | |||
<section anchor="intro" numbered="true" toc="default"> | <section anchor="intro" numbered="true" toc="default"> | |||
<name>Introduction</name> | <name>Introduction</name> | |||
<t>The Sensor Measurement Lists (SenML) specification <xref target="RFC842 | <t>The Sensor Measurement Lists (SenML) specification <xref | |||
8" format="default"/> provides a version | target="RFC8428" format="default"/> provides a version number that is | |||
number that is initially set to 10, without further | initially set to 10, without further specification on the way to make | |||
specification on the way to make use of different version numbers.</t> | use of different version numbers.</t> | |||
<t>The traditional idea of using a version number to indicate the | <t>The common idea of using a version number to indicate the | |||
evolution of an interchange format generally assumes an incremental | evolution of an interchange format generally assumes an incremental | |||
progression of the version number as the format accretes additional | progression of the version number as the format accretes additional | |||
features over time. | features over time. However, in the case of SenML, it is expected that | |||
However, in the case of SenML, it is expected that the likely evolution | the likely evolution will be for independently selectable capability | |||
will be for independently selectable capability <em>features</em> to be added | <em>features</em> to be added to the basic specification that is | |||
to the basic specification that is indicated by version number 10. | indicated by version number 10. To support this model, this document | |||
To support this model, this document repurposes the single version | repurposes the single version number accompanying a pack of SenML | |||
number accompanying a pack of SenML records so that it is interpreted | records so that it is interpreted as a bitmap that indicates the set of | |||
as a bitmap that indicates the set of features a recipient would need | features a recipient would need to have implemented to be able to | |||
to have implemented to be able to process the pack.</t> | process the pack.</t> | |||
<t>This short document specifies the use of SenML Features and maps | <t>This short document specifies the use of SenML Features and maps them | |||
them to SenML version number space, updating <xref target="RFC8428" format="defa | to SenML version number space, updating <xref target="RFC8428" | |||
ult"/>.</t> | format="default"/>.</t> | |||
<section anchor="terminology" numbered="true" toc="default"> | <section anchor="terminology" numbered="true" toc="default"> | |||
<name>Terminology</name> | <name>Terminology</name> | |||
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | ||||
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
"MAY", and "OPTIONAL" in this document are to be interpreted as | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
described in BCP 14 <xref target="RFC2119" format="default"/> <xref target="RFC8 | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | |||
174" format="default"/> when, and only when, they | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
appear in all capitals, as shown here.</t> | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document | |||
<t>Where bit arithmetic is explained, this document uses the notation | are to be interpreted as described in BCP 14 <xref target="RFC2119" | |||
familiar from the programming language C <xref target="C" format="default"/>, in | format="default"/> <xref target="RFC8174" format="default"/> when, and | |||
cluding the <tt>0b</tt> | only when, they appear in all capitals, as shown here.</t> | |||
prefix for binary numbers defined in Section 5.13.2 of the C++ | ||||
language standard <xref target="Cplusplus" format="default"/>, except that super | <t>Where bit arithmetic is explained, this document uses the notation | |||
script notation | familiar from the programming language C <xref target="C" | |||
(example for two to the power of 64: 2<sup>64</sup>) denotes | format="default"/>, including the <tt>0b</tt> prefix for binary | |||
exponentiation; in the plain text version of this draft, superscript | numbers defined in Section 5.13.2 of the C++ language standard <xref | |||
notation is rendered in paragraph text by C-incompatible surrogate | target="CPLUSPLUS" format="default"/>, except that superscript | |||
notation as seen in this example, and in display math by a crude | notation (example for two to the power of 64: 2<sup>64</sup>) denotes | |||
plaintext representation, as is the sum (Sigma) sign.</t> | exponentiation; in the plain text version of this document, superscript | |||
notation is rendered in paragraph text by C-incompatible surrogate | ||||
notation as seen in this example, and in display math by a crude | ||||
plain text representation, as is the sum (Sigma) sign.</t> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="codes" numbered="true" toc="default"> | <section anchor="codes" numbered="true" toc="default"> | |||
<name>Feature Codes and the Version number</name> | <name>Feature Codes and the Version Number</name> | |||
<t>The present specification defines "SenML Features", each identified by | <t>The present specification defines "SenML Features", each identified | |||
a "feature | by a "feature name" (a text string) and a "feature code" (an unsigned | |||
name" (a text string) and a "feature code" (an unsigned integer less | integer less than 53).</t> | |||
than 53).</t> | ||||
<t>The specific version of a SenML pack is composed of a set of | <t>The specific version of a SenML pack is composed of a set of | |||
features. | features. The SenML version number (<tt>bver</tt> field) is then a | |||
The SenML version number (<tt>bver</tt> field) is then a bitmap of these | bitmap of these features represented as an unsigned integer, | |||
features represented as an unsigned integer, specifically the sum of, | specifically the sum of, for each feature present, two taken to the | |||
for each feature present, two taken | power of the feature code of that feature (<xref target="bitmap-as-sum" | |||
to the power of the feature code of that feature (<xref target="bitmap-as-sum" f | format="default"/>).</t> | |||
ormat="default"/>).</t> | ||||
<figure anchor="bitmap-as-sum"> | <figure anchor="bitmap-as-sum"> | |||
<name>Feature bitmap as a sum of feature bits</name> | <name>Feature Bitmap as a Sum (Sigma Symbol) of Feature Bits</name> | |||
<artset> | <artset> | |||
<artwork type="svg" name="" align="left" alt=""><svg xmlns:xlink="http ://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="7.676ex" ro le="img" viewBox="0 -1867.7 12842.8 3304.9" width="29.829ex"> | <artwork type="svg" name="" align="left" alt=""><svg xmlns:xlink="http ://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="7.676ex" ro le="img" viewBox="0 -1867.7 12842.8 3304.9" width="29.829ex"> | |||
<defs> | <defs> | |||
<path d="M247 454l-89 -326c-3 -10 -4 -21 -4 -32c0 -38 20 -66 60 -66c108 0 178 113 210 203c8 24 15 49 15 74c0 74 -61 65 -61 109c0 34 25 42 54 42c 42 0 47 -51 47 -83c0 -99 -39 -200 -97 -280c-43 -60 -120 -104 -194 -104c-64 0 -11 6 20 -116 93c0 21 3 42 9 62l58 210 c2 8 5 17 5 25c0 20 -44 20 -57 20v15c52 13 10 6 20 156 42Z" id="E1-STIXWEBNORMALI-1D463" stroke-width="1"/> | <path d="M247 454l-89 -326c-3 -10 -4 -21 -4 -32c0 -38 20 -66 60 -66c108 0 178 113 210 203c8 24 15 49 15 74c0 74 -61 65 -61 109c0 34 25 42 54 42c 42 0 47 -51 47 -83c0 -99 -39 -200 -97 -280c-43 -60 -120 -104 -194 -104c-64 0 -11 6 20 -116 93c0 21 3 42 9 62l58 210 c2 8 5 17 5 25c0 20 -44 20 -57 20v15c52 13 10 6 20 156 42Z" id="E1-STIXWEBNORMALI-1D463" stroke-width="1"/> | |||
<path d="M363 112l14 -13c-70 -86 -138 -110 -200 -110c-98 0 -137 84 -137 156c0 23 1 37 6 60c25 111 135 236 262 236c42 0 102 -14 102 -76c0 -127 -1 67 -176 -286 -182v-28c0 -64 52 -107 113 -107c42 0 90 18 126 64zM124 211h9c104 0 198 69 198 157c0 25 -19 43 -44 43 c-74 0 -134 -115 -163 -200Z" id="E1-STIXWEBNOR MALI-1D452" stroke-width="1"/> | <path d="M363 112l14 -13c-70 -86 -138 -110 -200 -110c-98 0 -137 84 -137 156c0 23 1 37 6 60c25 111 135 236 262 236c42 0 102 -14 102 -76c0 -127 -1 67 -176 -286 -182v-28c0 -64 52 -107 113 -107c42 0 90 18 126 64zM124 211h9c104 0 198 69 198 157c0 25 -19 43 -44 43 c-74 0 -134 -115 -163 -200Z" id="E1-STIXWEBNOR MALI-1D452" stroke-width="1"/> | |||
<path d="M175 267l5 -1c9 18 21 38 32 56c34 54 82 119 137 119c29 0 44 -21 44 -48c0 -38 -24 -82 -65 -82c-39 0 -29 38 -47 38c-61 0 -148 -256 -153 - 273l-21 -76h-77l92 364c3 11 4 18 4 23c0 13 -11 19 -33 19c-7 0 -21 -2 -27 -3l-2 1 5l157 23Z" id="E1-STIXWEBNORMALI-1D45F" stroke-width="1"/> | <path d="M175 267l5 -1c9 18 21 38 32 56c34 54 82 119 137 119c29 0 44 -21 44 -48c0 -38 -24 -82 -65 -82c-39 0 -29 38 -47 38c-61 0 -148 -256 -153 - 273l-21 -76h-77l92 364c3 11 4 18 4 23c0 13 -11 19 -33 19c-7 0 -21 -2 -27 -3l-2 1 5l157 23Z" id="E1-STIXWEBNORMALI-1D45F" stroke-width="1"/> | |||
<path d="M390 441l-24 -146h-15c0 64 -36 120 -92 120c-25 0 -51 -1 7 -51 -58c0 -55 134 -147 134 -242c0 -62 -48 -125 -135 -125c-34 0 -98 20 -110 20c -9 0 -18 -4 -30 -21h-17l25 156h16c0 -63 41 -130 104 -130c59 0 73 50 73 89c0 82 - 130 132 -130 230c0 79 59 107 114 107 c43 0 63 -20 92 -20c11 0 22 10 30 20h16Z" i d="E1-STIXWEBNORMALI-1D460" stroke-width="1"/> | <path d="M390 441l-24 -146h-15c0 64 -36 120 -92 120c-25 0 -51 -1 7 -51 -58c0 -55 134 -147 134 -242c0 -62 -48 -125 -135 -125c-34 0 -98 20 -110 20c -9 0 -18 -4 -30 -21h-17l25 156h16c0 -63 41 -130 104 -130c59 0 73 50 73 89c0 82 - 130 132 -130 230c0 79 59 107 114 107 c43 0 63 -20 92 -20c11 0 22 10 30 20h16Z" i d="E1-STIXWEBNORMALI-1D460" stroke-width="1"/> | |||
<path d="M257 566c0 -26 -22 -46 -48 -46c-29 0 -48 20 -48 46c0 25 19 50 48 50c26 0 48 -25 48 -50zM227 441l-92 -364c-1 -6 -1 -10 -1 -14c0 -7 6 -10 13 -10c22 0 28 12 64 51l13 -10c-35 -45 -85 -105 -134 -105c-28 0 -40 19 -40 46c0 12 0 31 79 338c1 2 2 9 2 12 c0 17 -8 22 -31 22c-9 0 -21 -2 -28 -4l-3 16Z" id="E 1-STIXWEBNORMALI-1D456" stroke-width="1"/> | <path d="M257 566c0 -26 -22 -46 -48 -46c-29 0 -48 20 -48 46c0 25 19 50 48 50c26 0 48 -25 48 -50zM227 441l-92 -364c-1 -6 -1 -10 -1 -14c0 -7 6 -10 13 -10c22 0 28 12 64 51l13 -10c-35 -45 -85 -105 -134 -105c-28 0 -40 19 -40 46c0 12 0 31 79 338c1 2 2 9 2 12 c0 17 -8 22 -31 22c-9 0 -21 -2 -28 -4l-3 16Z" id="E 1-STIXWEBNORMALI-1D456" stroke-width="1"/> | |||
<path d="M438 287c0 -139 -110 -298 -263 -298c-101 0 -135 90 -135 163c0 128 103 289 251 289c80 0 147 -46 147 -154zM357 318c0 38 -14 93 -67 93c-82 0 -169 -149 -169 -285c0 -33 3 -107 59 -107c106 0 177 223 177 299Z" id="E1-STIXW EBNORMALI-1D45C" stroke-width="1"/> | <path d="M438 287c0 -139 -110 -298 -263 -298c-101 0 -135 90 -135 163c0 128 103 289 251 289c80 0 147 -46 147 -154zM357 318c0 38 -14 93 -67 93c-82 0 -169 -149 -169 -285c0 -33 3 -107 59 -107c106 0 177 223 177 299Z" id="E1-STIXW EBNORMALI-1D45C" stroke-width="1"/> | |||
<path d="M467 96l-5 -6c-28 -34 -76 -98 -128 -98c-32 0 -41 23 -41 46c0 13 4 29 7 40l57 221c2 8 7 28 7 42c0 19 -6 38 -24 38c-38 0 -101 -86 -132 -1 33c-36 -54 -62 -101 -68 -122l-33 -124h-77l95 374c0 18 -3 32 -30 32c-10 0 -21 -2 -28 -3l-2 15l159 23l-51 -189h3 c5 0 54 70 56 73c40 50 100 116 160 116c44 0 56 -2 9 56 -62c0 -25 -6 -50 -11 -70l-59 -231c-1 -2 -1 -5 -1 -10c1 -6 4 -14 15 -14c24 0 48 36 62 53Z" id="E1-STIXWEBNORMALI-1D45B" stroke-width="1"/> | <path d="M467 96l-5 -6c-28 -34 -76 -98 -128 -98c-32 0 -41 23 -41 46c0 13 4 29 7 40l57 221c2 8 7 28 7 42c0 19 -6 38 -24 38c-38 0 -101 -86 -132 -1 33c-36 -54 -62 -101 -68 -122l-33 -124h-77l95 374c0 18 -3 32 -30 32c-10 0 -21 -2 -28 -3l-2 15l159 23l-51 -189h3 c5 0 54 70 56 73c40 50 100 116 160 116c44 0 56 -2 9 56 -62c0 -25 -6 -50 -11 -70l-59 -231c-1 -2 -1 -5 -1 -10c1 -6 4 -14 15 -14c24 0 48 36 62 53Z" id="E1-STIXWEBNORMALI-1D45B" stroke-width="1"/> | |||
skipping to change at line 169 ¶ | skipping to change at line 166 ¶ | |||
<g transform="translate(11513,0)"> | <g transform="translate(11513,0)"> | |||
<use xlink:href="#E1-STIXWEBMAIN-32" x="0" y="0"/> | <use xlink:href="#E1-STIXWEBMAIN-32" x="0" y="0"/> | |||
<g transform="translate(500,412)"> | <g transform="translate(500,412)"> | |||
<use xlink:href="#E1-STIXWEBNORMALI-1D453" transform="scale( 0.707)" x="0" y="0"/> | <use xlink:href="#E1-STIXWEBNORMALI-1D453" transform="scale( 0.707)" x="0" y="0"/> | |||
<use xlink:href="#E1-STIXWEBNORMALI-1D450" transform="scale( 0.707)" x="615" y="0"/> | <use xlink:href="#E1-STIXWEBNORMALI-1D450" transform="scale( 0.707)" x="615" y="0"/> | |||
</g> | </g> | |||
</g> | </g> | |||
</g> | </g> | |||
</svg> | </svg> | |||
</artwork> | </artwork> | |||
<artwork type="ascii-art" name="" align="left" alt=""><![CDATA[ | <artwork type="ascii-art" name="" align="left" alt=""><![CDATA[ | |||
__ 52 fc | __ 52 fc | |||
version = \ present(fc) ⋅ 2 | version = \ present(fc) ⋅ 2 | |||
/__ fc = 0 | /__ fc = 0 | |||
]]></artwork> | ]]></artwork> | |||
</artset> | </artset> | |||
</figure> | </figure> | |||
<t>where present(fc) is 1 if the feature with the feature code <tt>fc</tt> is | <t>where present(fc) is 1 if the feature with the feature code <tt>fc</tt> is | |||
present, 0 otherwise. | present, 0 otherwise. | |||
(The expression 2<sup>fc</sup> can be implemented as <tt>1 << fc</tt> in C | (The expression 2<sup>fc</sup> can be implemented as <tt>1 << fc</tt> in C | |||
and related languages.)</t> | and related languages.)</t> | |||
<t>RFC editor: Please check that, in the TXT version, no <tt>&nbsp;</t | ||||
t> crept | ||||
into the above due to xml2rfc bug 641, and remove this paragraph. If | ||||
possible with today's RFCXML, add the Sigma character as a parenthesis | ||||
after "sum" in the caption.</t> | ||||
<section anchor="discussion" numbered="true" toc="default"> | <section anchor="discussion" numbered="true" toc="default"> | |||
<name>Discussion</name> | <name>Discussion</name> | |||
<t>Representing features as a bitmap within a number is quite efficient | <t>Representing features as a bitmap within a number is quite | |||
as long as | efficient as long as feature codes are sparingly allocated (see also | |||
feature codes are sparingly allocated (see also <xref target="iana" format="defa | <xref target="iana" format="default"/>).</t> | |||
ult"/>).</t> | ||||
<t>Compatibility with the existing SenML version number, 10 decimal | <t>Compatibility with the existing SenML version number, 10 decimal | |||
(0b1010), requires reserving four of the least significant bit | (0b1010), requires reserving four of the least significant bit | |||
positions for the base version as described in <xref target="resv" format="defau | positions for the base version as described in <xref target="resv" | |||
lt"/>. | format="default"/>. There is an upper limit to the range of the | |||
There is an upper limit to the range of the integer numbers that can | integer numbers that can be represented in all SenML representations: | |||
be represented in all SenML representations: practical JSON limits | practical JSON limits this to 2<sup>53</sup>-1 <xref target="RFC7493" | |||
this to 2<sup>53</sup>-1 <xref target="RFC7493" format="default"/>. | format="default"/>. This means the feature codes 4 to 52 are | |||
This means the feature codes 4 to 52 are available, one of which is | available, one of which is taken by the feature defined in <xref | |||
taken by the feature defined in <xref target="secondary-units" format="default"/ | target="secondary-units" format="default"/>, leaving 48 for | |||
>, leaving 48 for allocation. | allocation. (The current version 10 (with all other feature codes | |||
(The current version 10 (with all other feature codes unset) can be | unset) can be visualized as | |||
visualized as <tt>0b00000000000000000000000000000000000000000000000001010</tt>.) | <tt>0b00000000000000000000000000000000000000000000000001010</tt>.) | |||
For a lifetime of this scheme of several decades, approximately two feature code | For a lifetime of this scheme of several decades, approximately two | |||
s | feature codes per year or fewer should be allocated. Note that less | |||
per year or fewer should be allocated. | generally applicable features can always be communicated via fields | |||
Note that less generally applicable features can always be | labeled with names that end with the "_" character ("must-understand | |||
communicated via fields labeled with names that end with the "_" | fields"). See <xref section="4.4" sectionFormat="of" target="RFC8428" | |||
character ("must-understand fields"), see <xref section="4.4" sectionFormat="of" | format="default"/> for details.</t> | |||
target="RFC8428" format="default"/>.)</t> | <t>Most representations visible to engineers working with SenML will | |||
<t>Most representations visible to engineers working with SenML will use | use decimal numbers. For instance, 26 (0b11010, 0x1a) denotes a version | |||
decimal numbers, e.g., 26 (0b11010, 0x1a) for a version that adds the | that adds | |||
"Secondary Units" feature (<xref target="secondary-units" format="default"/>). | the "Secondary Units" feature (<xref target="secondary-units" | |||
This is slightly unwieldy, but | format="default"/>). This is slightly unwieldy but will be quickly | |||
will be quickly memorized in practice.</t> | memorized in practice.</t> | |||
<t>As a general observation, ending up over time with dozens of | <t>As a general observation, ending up over time with dozens of | |||
individually selectable optional extensions may lead to too many | individually selectable optional extensions may lead to too many | |||
variants of what is supported by different implementations, reducing | variants of what is supported by different implementations, reducing | |||
interoperability. So, in practice, it is still desirable to batch up | interoperability. So, in practice, it is still desirable to batch up | |||
extensions that are expected to be supported together into a single | extensions that are expected to be supported together into a single | |||
feature bit, leading to a sort of hybrid between completely | feature bit, leading to a sort of hybrid between completely | |||
independent extensions and a linear version scheme. This is also | independent extensions and a linear version scheme. This is also | |||
another reason why a space of 48 remaining feature codes should | another reason why a space of 48 remaining feature codes should | |||
suffice for a while.</t> | suffice for a while.</t> | |||
</section> | </section> | |||
<section anchor="updating-section-44-of-rfc8428" numbered="true" toc="defa ult"> | <section anchor="updating-section-44-of-rfc8428" numbered="true" toc="defa ult"> | |||
<name>Updating <xref section="4.4" sectionFormat="of" target="RFC8428" f | <name>Updating Section 4.4 of RFC 8428</name> | |||
ormat="default"/></name> | ||||
<t>The last paragraph of <xref section="4.4" sectionFormat="of" target=" | <t>The last paragraph of <xref section="4.4" sectionFormat="of" | |||
RFC8428" format="default"/> may be read to give | target="RFC8428" format="default"/> may be read to give the impression | |||
the impression that SenML version numbers are totally ordered, i.e., | that SenML version numbers are totally ordered, i.e., that an | |||
that an implementation that understands version n also always | implementation that understands version n also always understands all | |||
understands all versions k < n. | versions k < n. If this ever was true for SenML versions before | |||
If this ever was true for SenML versions before 10, it certainly is no | 10, it certainly is no longer true with this specification.</t> | |||
longer true with this specification.</t> | ||||
<t>Any SenML pack that sets feature bits beyond the first four will | <t>Any SenML pack that sets feature bits beyond the first four will | |||
lead to a version number that actually is greater than 10, so the | lead to a version number that actually is greater than 10, so the | |||
requirement in <xref section="4.4" sectionFormat="of" target="RFC8428" format="d efault"/> will prevent false | requirement in <xref section="4.4" sectionFormat="of" target="RFC8428" format="d efault"/> will prevent false | |||
interoperability with version 10 implementations.</t> | interoperability with version 10 implementations.</t> | |||
<t>Implementations that do implement feature bits beyond the first four, | <t>Implementations that do implement feature bits beyond the first four, | |||
i.e., versions greater than 10, will instead need to perform a bitwise | i.e., versions greater than 10, will instead need to perform a bitwise | |||
comparison of the feature bitmap as described in this specification | comparison of the feature bitmap as described in this specification | |||
and ensure that all features indicated are understood before using the | and ensure that all features indicated are understood before using the | |||
pack. | pack. | |||
E.g., an implementation that implements basic SenML (version number | For example, an implementation that implements basic SenML (version number | |||
10) plus only a future feature code 5, will accept version number 42, | 10) plus only a future feature code 5 will accept version number 42, | |||
but would not be able to work with a pack indicating version number | but it would not be able to work with a pack indicating version number | |||
26 (base specification plus feature code 4). | 26 (base specification plus feature code 4). | |||
(If the implementation <em>requires</em> feature code 5 without being | (If the implementation <em>requires</em> feature code 5 without being | |||
backwards compatible, it will accept 42, but not 10.)</t> | backwards compatible, it will accept 42, but not 10.)</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="resv" numbered="true" toc="default"> | <section anchor="resv" numbered="true" toc="default"> | |||
<name>Features: Reserved0, Reserved1, Reserved2, Reserved3</name> | <name>Features: Reserved0, Reserved1, Reserved2, Reserved3</name> | |||
<t>For SenML Version 10 as described in <xref target="RFC8428" format="def | <t>For SenML version 10 as described in <xref target="RFC8428" | |||
ault"/>, the feature codes 0 to 3 are already in use. | format="default"/>, the feature codes 0 to 3 are already in use. | |||
Reserved1 (1) and Reserved3 (3) are always present | Reserved1 (1) and Reserved3 (3) are always present, and the features | |||
and the features Reserved0 (0) and Reserved2 (2) are always absent, | Reserved0 (0) and Reserved2 (2) are always absent, i.e., the four | |||
i.e., the four least significant bits set to 0b1010 indicate a version | least significant bits set to 0b1010 indicate a version number of 10 if | |||
number of 10 if no other feature is in use. | no other feature is in use. These four reserved feature codes are not | |||
These four reserved feature codes are not to be used with any more specific | to be used with any more specific semantics except in a specification | |||
semantics except in a specification that updates the present specification. | that updates the present specification. (Note that Reserved0 and | |||
(Note that Reserved0 and Reserved2 could be used in such a | Reserved2 could be used in such a specification in a way similar to that | |||
specification in a similar way to the way the feature codes 4 to 52 | of feature codes 4 to 52 in the present specification.)</t> | |||
are in the present specification.)</t> | ||||
</section> | </section> | |||
<section anchor="secondary-units" numbered="true" toc="default"> | <section anchor="secondary-units" numbered="true" toc="default"> | |||
<name>Feature: Secondary Units</name> | <name>Feature: Secondary Units</name> | |||
<t>The feature "Secondary Units" (code number 4) indicates that secondary | <t>The feature "Secondary Units" (code number 4) indicates that | |||
unit names <xref target="RFC8798" format="default"/> MAY be used in the "u" fiel | secondary unit names <xref target="RFC8798" format="default"/> | |||
d of SenML Records, in addition to the | <bcp14>MAY</bcp14> be used in the "u" field of SenML records in addition | |||
primary unit names already allowed by <xref target="RFC8428" format="default"/>. | to the primary unit names already allowed by <xref target="RFC8428" | |||
</t> | format="default"/>.</t> | |||
<t>Note that the most basic use of this feature simply sets the SenML | <t>Note that the most basic use of this feature simply sets the SenML | |||
version number to 26 (10 + 2<sup>4</sup>).</t> | version number to 26 (10 + 2<sup>4</sup>).</t> | |||
</section> | </section> | |||
<section anchor="seccons" numbered="true" toc="default"> | <section anchor="seccons" numbered="true" toc="default"> | |||
<name>Security Considerations</name> | <name>Security Considerations</name> | |||
<t>The security considerations of <xref target="RFC8428" format="default"/ > apply. | <t>The security considerations of <xref target="RFC8428" format="default"/ > apply. | |||
This specification provides structure to the interpretation of the | This specification provides structure to the interpretation of the | |||
SenML version number, which poses no additional security | SenML version number, which poses no additional security | |||
considerations except for some potential for surprise that version | considerations except for some potential for surprise that version | |||
numbers do not simply increase linearly.</t> | numbers do not simply increase linearly.</t> | |||
</section> | </section> | |||
<section anchor="iana" numbered="true" toc="default"> | <section anchor="iana" numbered="true" toc="default"> | |||
<name>IANA Considerations</name> | <name>IANA Considerations</name> | |||
<t>IANA is requested to create a new subregistry "SenML features" within t | <t>IANA has created a new "<xref section="SenML Features" | |||
he SenML | sectionFormat="bare" target="IANA.SENML" relative="#senml-features"/>" | |||
registry <xref target="IANA.senml" format="default"/>, with the registration pol | subregistry within the "Sensor Measurement Lists (SenML)" registry <xref | |||
icy "specification required" <xref target="RFC8126" format="default"/> | target="IANA.SENML" format="default"/> with the registration policy | |||
and the columns:</t> | "Specification Required" <xref target="RFC8126" format="default"/> and | |||
the columns:</t> | ||||
<ul spacing="normal"> | <ul spacing="normal"> | |||
<li>Feature code (an unsigned integer less than 53)</li> | <li>Feature Code (an unsigned integer less than 53)</li> | |||
<li>Feature name (text)</li> | <li>Feature Name (text)</li> | |||
<li>Specification</li> | <li>Reference</li> | |||
</ul> | </ul> | |||
<t>To facilitate the use of feature names in programs, the designated | <t>To facilitate the use of feature names in programs, the designated | |||
expert is requested to ensure that feature names are usable as | expert is requested to ensure that feature names are usable as | |||
identifiers in most programming languages, after lower-casing the | identifiers in most programming languages, after lowercasing the feature | |||
feature name in the registry entry and replacing whitespace with | name in the registry entry and replacing blank space with underscores or | |||
underscores or hyphens, and that they also are distinct in this form.</t> | hyphens, and that they also are distinct in this form.</t> | |||
<t>The initial content of this registry is as follows:</t> | <t>The initial content of this registry is as follows:</t> | |||
<table anchor="feat" align="center"> | <table anchor="feat" align="center"> | |||
<name>Features defined for SenML at the time of writing</name> | <name>Features Defined for SenML at the Time of Writing</name> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">Feature code</th> | <th align="left">Feature Code</th> | |||
<th align="left">Feature name</th> | <th align="left">Feature Name</th> | |||
<th align="left">Specification</th> | <th align="left">Reference</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left">0</td> | <td align="left">0</td> | |||
<td align="left">Reserved0</td> | <td align="left">Reserved0</td> | |||
<td align="left">RFCthis</td> | <td align="left">[RFC9100]</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left">1</td> | <td align="left">1</td> | |||
<td align="left">Reserved1</td> | <td align="left">Reserved1</td> | |||
<td align="left">RFCthis</td> | <td align="left">[RFC9100]</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left">2</td> | <td align="left">2</td> | |||
<td align="left">Reserved2</td> | <td align="left">Reserved2</td> | |||
<td align="left">RFCthis</td> | <td align="left">[RFC9100]</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left">3</td> | <td align="left">3</td> | |||
<td align="left">Reserved3</td> | <td align="left">Reserved3</td> | |||
<td align="left">RFCthis</td> | <td align="left">[RFC9100]</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left">4</td> | <td align="left">4</td> | |||
<td align="left">Secondary Units</td> | <td align="left">Secondary Units</td> | |||
<td align="left">RFCthis, <xref target="RFC8798" format="default"/>< /td> | <td align="left">[RFC9100] <xref target="RFC8798" format="default"/> </td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table> | </table> | |||
<t>As the number of features that can be registered has a hard limit (48 | <t>As the number of features that can be registered has a hard limit (48 | |||
codes left at the time of writing), the designated expert is | codes left at the time of writing), the designated expert is | |||
specifically instructed to maintain a frugal regime of code point | specifically instructed to maintain a frugal regime of code point | |||
allocation, keeping code points available for SenML Features that are | allocation, keeping code points available for SenML Features that are | |||
likely to be useful for non-trivial subsets of the SenML ecosystem. | likely to be useful for non-trivial subsets of the SenML ecosystem. | |||
Quantitatively, the expert could for instance steer the allocation to | Quantitatively, the expert could, for instance, steer the allocation to | |||
a target of not allocating more than 10 % of the remaining set per year.</t> | a target of not allocating more than 10% of the remaining set per year.</t> | |||
<t>Where the specification of the feature code is provided in a document | <t>Where the specification of the feature code is provided in a document | |||
that is separate from the specification of the feature itself (as with | that is separate from the specification of the feature itself (as with | |||
feature code 4 above), both specifications should be listed.</t> | feature code 4 above), both specifications should be listed.</t> | |||
</section> | </section> | |||
</middle> | </middle> | |||
<back> | <back> | |||
<references> | <references> | |||
<name>References</name> | <name>References</name> | |||
<references> | <references> | |||
<name>Normative References</name> | <name>Normative References</name> | |||
<reference anchor="RFC8428" target="https://www.rfc-editor.org/info/rfc8 | ||||
428"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8428. | |||
<front> | xml"/> | |||
<title>Sensor Measurement Lists (SenML)</title> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8126. | |||
<author fullname="C. Jennings" initials="C." surname="Jennings"> | xml"/> | |||
<organization/> | ||||
</author> | <reference anchor="IANA.SENML" target="https://www.iana.org/assignments/ | |||
<author fullname="Z. Shelby" initials="Z." surname="Shelby"> | senml"> | |||
<organization/> | ||||
</author> | ||||
<author fullname="J. Arkko" initials="J." surname="Arkko"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="A. Keranen" initials="A." surname="Keranen"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="C. Bormann" initials="C." surname="Bormann"> | ||||
<organization/> | ||||
</author> | ||||
<date month="August" year="2018"/> | ||||
<abstract> | ||||
<t>This specification defines a format for representing simple sen | ||||
sor measurements and device parameters in Sensor Measurement Lists (SenML). Rep | ||||
resentations are defined in JavaScript Object Notation (JSON), Concise Binary Ob | ||||
ject Representation (CBOR), Extensible Markup Language (XML), and Efficient XML | ||||
Interchange (EXI), which share the common SenML data model. A simple sensor, su | ||||
ch as a temperature sensor, could use one of these media types in protocols such | ||||
as HTTP or the Constrained Application Protocol (CoAP) to transport the measure | ||||
ments of the sensor or to be configured.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8428"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8428"/> | ||||
</reference> | ||||
<reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8 | ||||
126"> | ||||
<front> | ||||
<title>Guidelines for Writing an IANA Considerations Section in RFCs | ||||
</title> | ||||
<author fullname="M. Cotton" initials="M." surname="Cotton"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="B. Leiba" initials="B." surname="Leiba"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="T. Narten" initials="T." surname="Narten"> | ||||
<organization/> | ||||
</author> | ||||
<date month="June" year="2017"/> | ||||
<abstract> | ||||
<t>Many protocols make use of points of extensibility that use con | ||||
stants to identify various protocol parameters. To ensure that the values in th | ||||
ese fields do not have conflicting uses and to promote interoperability, their a | ||||
llocations are often coordinated by a central record keeper. For IETF protocols | ||||
, that role is filled by the Internet Assigned Numbers Authority (IANA).</t> | ||||
<t>To make assignments in a given registry prudently, guidance des | ||||
cribing the conditions under which new values should be assigned, as well as whe | ||||
n and how modifications to existing values can be made, is needed. This documen | ||||
t defines a framework for the documentation of these guidelines by specification | ||||
authors, in order to assure that the provided guidance for the IANA Considerati | ||||
ons is clear and addresses the various issues that are likely in the operation o | ||||
f a registry.</t> | ||||
<t>This is the third edition of this document; it obsoletes RFC 52 | ||||
26.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="BCP" value="26"/> | ||||
<seriesInfo name="RFC" value="8126"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8126"/> | ||||
</reference> | ||||
<reference anchor="IANA.senml" target="http://www.iana.org/assignments/s | ||||
enml"> | ||||
<front> | <front> | |||
<title>Sensor Measurement Lists (SenML)</title> | <title>Sensor Measurement Lists (SenML)</title> | |||
<author> | <author> | |||
<organization>IANA</organization> | <organization>IANA</organization> | |||
</author> | </author> | |||
<date/> | <date/> | |||
</front> | </front> | |||
</reference> | </reference> | |||
<reference anchor="RFC8798" target="https://www.rfc-editor.org/info/rfc8 | ||||
798"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8798. | |||
<front> | xml"/> | |||
<title>Additional Units for Sensor Measurement Lists (SenML)</title> | ||||
<author fullname="C. Bormann" initials="C." surname="Bormann"> | ||||
<organization/> | ||||
</author> | ||||
<date month="June" year="2020"/> | ||||
<abstract> | ||||
<t>The Sensor Measurement Lists (SenML) media type supports the in | ||||
dication of units for a quantity represented. This short document registers a n | ||||
umber of additional unit names in the IANA registry for units in SenML. It also | ||||
defines a registry for secondary units that cannot be in SenML's main registry, | ||||
as they are derived by linear transformation from units already in that registr | ||||
y.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8798"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8798"/> | ||||
</reference> | ||||
<reference anchor="C" target="https://www.iso.org/standard/74528.html"> | <reference anchor="C" target="https://www.iso.org/standard/74528.html"> | |||
<front> | <front> | |||
<title>Information technology — Programming languages — C</title> | <title>Information technology - Programming languages - C</title> | |||
<author> | <author> | |||
<organization>International Organization for Standardization</orga nization> | <organization>International Organization for Standardization</orga nization> | |||
</author> | </author> | |||
<date year="2018" month="June"/> | <date year="2018" month="June"/> | |||
</front> | </front> | |||
<seriesInfo name="ISO/IEC" value="9899:2018, Fourth Edition"/> | <seriesInfo name="ISO/IEC" value="9899:2018, Fourth Edition"/> | |||
</reference> | </reference> | |||
<reference anchor="Cplusplus" target="https://www.iso.org/standard/79358 | ||||
.html"> | <reference anchor="CPLUSPLUS" target="https://www.iso.org/standard/79358 | |||
.html"> | ||||
<front> | <front> | |||
<title>Programming languages — C++</title> | <title>Programming languages - C++</title> | |||
<author> | <author> | |||
<organization>International Organization for Standardization</orga nization> | <organization>International Organization for Standardization</orga nization> | |||
</author> | </author> | |||
<date year="2020" month="December"/> | <date year="2020" month="December"/> | |||
</front> | </front> | |||
<seriesInfo name="ISO/IEC" value="14882:2020, Sixth Edition"/> | <seriesInfo name="ISO/IEC" value="14882:2020, Sixth Edition"/> | |||
</reference> | </reference> | |||
<reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2 | ||||
119"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119. | |||
<front> | xml"/> | |||
<title>Key words for use in RFCs to Indicate Requirement Levels</tit | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174. | |||
le> | xml"/> | |||
<author fullname="S. Bradner" initials="S." surname="Bradner"> | ||||
<organization/> | ||||
</author> | ||||
<date month="March" year="1997"/> | ||||
<abstract> | ||||
<t>In many standards track documents several words are used to sig | ||||
nify the requirements in the specification. These words are often capitalized. | ||||
This document defines these words as they should be interpreted in IETF document | ||||
s. This document specifies an Internet Best Current Practices for the Internet | ||||
Community, and requests discussion and suggestions for improvements.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="BCP" value="14"/> | ||||
<seriesInfo name="RFC" value="2119"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC2119"/> | ||||
</reference> | ||||
<reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8 | ||||
174"> | ||||
<front> | ||||
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</ti | ||||
tle> | ||||
<author fullname="B. Leiba" initials="B." surname="Leiba"> | ||||
<organization/> | ||||
</author> | ||||
<date month="May" year="2017"/> | ||||
<abstract> | ||||
<t>RFC 2119 specifies common key words that may be used in protoco | ||||
l specifications. This document aims to reduce the ambiguity by clarifying tha | ||||
t only UPPERCASE usage of the key words have the defined special meanings.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="BCP" value="14"/> | ||||
<seriesInfo name="RFC" value="8174"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8174"/> | ||||
</reference> | ||||
</references> | </references> | |||
<references> | <references> | |||
<name>Informative References</name> | <name>Informative References</name> | |||
<reference anchor="RFC7493" target="https://www.rfc-editor.org/info/rfc7 | ||||
493"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7493. | |||
<front> | xml"/> | |||
<title>The I-JSON Message Format</title> | ||||
<author fullname="T. Bray" initials="T." role="editor" surname="Bray | ||||
"> | ||||
<organization/> | ||||
</author> | ||||
<date month="March" year="2015"/> | ||||
<abstract> | ||||
<t>I-JSON (short for "Internet JSON") is a restricted profile of J | ||||
SON designed to maximize interoperability and increase confidence that software | ||||
can process it successfully with predictable results.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="7493"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC7493"/> | ||||
</reference> | ||||
</references> | </references> | |||
</references> | </references> | |||
<section numbered="false" anchor="acks" toc="default"> | <section numbered="false" anchor="acks" toc="default"> | |||
<name>Acknowledgements</name> | <name>Acknowledgements</name> | |||
<t><contact fullname="Ari Keränen"/> proposed to use the version number as | <t><contact fullname="Ari Keränen"/> proposed to use the version number | |||
a bitmap and | as a bitmap and provided further input on this specification. <contact | |||
provided further input on this specification. | fullname="Jaime Jiménez"/> helped clarify the document by providing a | |||
<contact fullname="Jaime Jiménez"/> helped clarify the document by providing a r | review and acted as Document Shepherd. <contact fullname="Elwyn Davies"/> | |||
eview. | provided a detailed GENART | |||
<contact fullname="Elwyn Davies"/> provided a detailed GENART review, with direc | review with directly implementable text suggestions that now form part | |||
tly | of this specification. <contact fullname="Rob Wilton"/> supplied | |||
implementable text suggestions that now form part of this specification. | comments, one of which became the last paragraph of <xref | |||
<contact fullname="Rob Wilton"/> supplied comments one of which became the last | target="discussion" format="default"/>; <contact fullname="Éric | |||
paragraph of <xref target="discussion" format="default"/>; <contact fullname="Ér | Vyncke"/> helped with <xref target="codes" format="default"/>. | |||
ic Vyncke"/> helped with <xref target="codes" format="default"/>. | Additional thanks go to the other IESG reviewers.</t> | |||
Additional thanks go to the other IESG reviewers.</t> | ||||
<!-- LocalWords: selectable subregistry whitespace | ||||
--> | ||||
</section> | </section> | |||
</back> | </back> | |||
<!-- ##markdown-source: | ||||
H4sIAK6LumAAA7Vay3IbR5bd51dkQzFj0gZAAIRkEpYdTVOUTY9eLVJy98RE | ||||
S4mqBJDDQhW6sooQBNHRm15MzHY+wIvZzG/Yf9JfMufezKwHSHnUi1GEw0RV | ||||
Pm7ex7nn3qxerydsodL4jUqyVE9kkZdamFXOf9liNBgcD0YizqJULfE6ztWs | ||||
6BldzHpRluue1eky6V3r3Jostb1EFdoW4kpv1lkeT+R5Wug81UXvEc0TkSom | ||||
0haxiDBYp7a0E7nRVpSrmCZO5NF4dCTW84k8zV6eiZWZCCmLLJrIzzDsM/cj | ||||
W65UVLQexXpVLPDk0P82aazTxhC7WeZ6ZhsPsrxoP8GyS8xpPDFpYkgj1Zwi | ||||
N7xvmvkJbTlsOa2f0ZjCFAnmf4N3Fzp9+kQ+1qooc20l9C1fe50JNZ3m+vr/ | ||||
HkcqmsjRYDTsDR70BmOhymKR5RPRY2Eh+WlffpvlS5WmeOLsdapyW+i08TzL | ||||
od5XqWGbFUoX8ttc4+jy8l/P3Sm1xgleZLaYqWghDw8H4/GADmyKzcQP5vPH | ||||
WP9Rb3R0eP+Yf5dpkWPEd5q22uDRasEu9cX4uDeG1KPhUe/B4fFoiFd6qUwy | ||||
kZGaZr8v3ps+pBIiJSELSEZmf/n4lLwB/kIu5h8MRw8m0qhUkQPh2fnJs5M+ | ||||
DwhTvjzGlDI1Bb0+pafwCGeI83TmNshSWehokWZJNt/Iv//1v+SLPJvnark0 | ||||
6VwmKp2Xag7105tTXiGoWvI/VqFzbV5NJfJ5Plepee8WxzbygoJK5bF/xjOD | ||||
BaGHwQMnmcrnpO1FUazs5OBgvV73jc1IHQfWr3Dw5fj+6Ki/KFgLsJDOjbYG | ||||
hwnynF88Pzg/O53I46Pj4wmt35WPszIvFvIsNn7701VSWvqvpZPfOPgXX/w/ | ||||
HH006A1H/8DRjw/vf9rRh+Ojo9GENujKC/OucXQTzF751Zfj40O4Ue/fLV6L | ||||
Xq8n1RR+j8gV4nJhrLQ4cSEBeiVhgvTwRFMZoboUp4AQ+VQrW3JAFPKJsfC5 | ||||
PY7g/a6cbqRd6cjMNqTaYqFlabXMZpKwaaUZoBKM0YmOCjVNtOzwVBGCv8PR | ||||
v1SrlV9gCWTzAOHxVqblcoo/++4QRfZmqt9AnOxax2/SrNBvHhkblZbGvnmt | ||||
0xJQK+pHJE1Bx60OWqgrHHOVqAiiprSpOH3+8kz+mOVXJMV3eVauJIUu+wtO | ||||
LPcoDfyeEgJZbr8r1gsD1MCqKo8W0HksVSEeBivTXP+iHyYd0IODaZ6trT6g | ||||
5Q6+wYku4MAQgxzKCUkZhHWiUixvSy3JZFc6B4qkckpDy7S929wUi3LaByzz | ||||
ur01XKuVsL7xqluaOE60EOIeOXeexWXE7ry9Z+jnjSDH0B81u/Rm9yY3kQuG | ||||
7dblx5sbucqzaxMTpAfjCWc8HE4VpC4DzDIqYZ8oyNRDePIaB8jKQs4omHUu | ||||
2us7E8m12tD4JYwXnCw2s5nOSb7brkIHgeZcdCB+IZaiOaUlo6qdGbQyXJa2 | ||||
1OwQ+jpLysK7D5mCwCBaADvYWAg0OdepzvkoCnZaciLDuMipTCViRaijG06o | ||||
d3dVlp/6BVWEuRSBKg5ii1lIkvB2SGmWui++z9Yav7rYjKdHyqmDrYOnrGj9 | ||||
Dkos4JeseRqWmCsNYauTibVJEudR+cfjNVIrNUUkFBv5JgjzhtSFiZBTxwJ/ | ||||
0/JTZU204xq11Z1qYwKMHR0MB31xmYFXrFYERxwFS2TdpLsTtrlelfkqs9op | ||||
jeyY6F0/gw6JnaQbZ2XwlKtKNVgB8RED+DIvmRcOpl2R5mOhyHWnpgAg+SFe | ||||
cr8nfBarVUZRtKRZGRJvnZVJLFPtNLJQ11qa5SphZyAzOI2RSvEnXCOCZ/Ci | ||||
JGP/bkj22vS7lw0zt9kTxLXit8ATKwHtug7jSTV10GLre/fkJeiMcVTBxQ7I | ||||
rVyztjpPX11cdrru//LZc/775dkfXp2/PHtEf198f/LkSfWH8CMuvn/+6smj | ||||
+q965unzp0/Pnj1yk/FUth6JztOTP+ENnavz/MXl+fNnJ086zteb7qBy7ZXa | ||||
MCAiSgB/otxM8QNzvj198cvPwzHO+zvktdFweAyYcj+Ohl+O8WO90KnbLUvh | ||||
+u4ndLkRSEpaUWhIRDkFAohkYrsUtbDTOpXAKoSjED/SH+Q2EApQttQFIsHF | ||||
YKLAruNdVy6DEyN9OfYwU0sEGXab5dnSucUdnEWeQvbTmxsK/Sgp45B03w6m | ||||
bwE3embecTRPTaryTUBDGeNF6vRxoR3k3+8PD/ujAEvEgqo9Ai2hrQKboi31 | ||||
uwgFiAsLRCsWhprxoDrDnn6nyONdNltn0iPDCniV01YPxiBHDzH3mwfjhwf0 | ||||
/33IRincCugKNDpFcqC1vgrYxgoEj31XY3yVzylVdpuiiCAKKT8nNMvdqVcq | ||||
V1DmauFWAgid9qBBQorCUEgi0UHdiPN6CbKy1mnleP5wzlXwMDbQDHISkHtB | ||||
KyoZ5WWsBUvM2wCwEKCUC2hB9hvjcaRcIpma+VIhmZp5SjEYIhpFYezDmoa+ | ||||
bsfx9h5VJPbGBalffwd1nbmtp1oVUiCmNJU6hkCeUCV2Ync8nAmqpTpyTzkl | ||||
USGYzvcdF6kGcUFEg1KUHyQ6K7jQc8iWANGAQnh1/3Dfp+AgWdN6ykMUgzM0 | ||||
QnYArMfuncPYKvH1AyW5jWl7b6d48lbiKEm873Wb1gDunNvqOolWFmGkkHcc | ||||
olvrkjJ7MFY26wryalZgUIVfq+t8HbwkFbsez9m9oTn3DAEUHu5tt07anrI9 | ||||
7HRzQ5r76aef2K9EOPHX8t/w8s12Fn09uPnz9v7oJuy+N4v25S8///0///bL | ||||
z3L0Z4y4oeliO5H3Wiu7WujrTnAzryTOeO6IlVB4ZTtwsTXjWnMj6HgoTftc | ||||
xN5uH/TtLHqL4aJS0kBmRO7WxgIz98ioCPlAjxwqzCKHCoHqNvMn5Hw7lA8f | ||||
Sl43RcVKjpnrhGlFVdT194WgAkaDQaGeky8STewoWmj4Gmm+Yk2Xf7wMDtUF | ||||
hsm3/5xO7eqrtwhjwBzqKW9L1O5I5XHJ2ebdMhnls0hOyznQbOjAwNUiDiUq | ||||
pOmjapsJ+LVlgHFKymK1+YwrrD8SUwN/4i0YCSCjouLM0UKiLsRs4b9QIoAO | ||||
jzswU6cmfSsKdpe962oHpw8+TsmhZioNYkOyUFILcQSx/1IaEF89g98zmcHw | ||||
JCMGZUXTqpazLrgEQQMR3yTJHK/bA1biJ5jVdkudC+fHpx5hHX+sHEW/QzlB | ||||
4t0V1l0wQkBYZJagv3uD6XAwHKDSzDVkdDGM+viaD4faKQQZmblgLOXYxRFw | ||||
WFI/E2nrCyxmqTULV5QaG2Rhu8Xi10SJLtnzjYMI0ACAm1maImS0nOsAv3WA | ||||
v5BtOb4hgoAHNwHH84hARZu5wU4QZbA9oY784eL5M7cdoSmhWubj4/6hi4/e | ||||
kPibq+ydtMSZtUrtrTi0ckzz74/YcuqaCtMpZTEkWzpAqGMF4xclhOYKDeKw | ||||
3VqwZyIGmx43nogSQOtsifERK9i7A7slR3iEtNosz2DZPfYCUgTDwY6wgGNd | ||||
7Pv4F9fGliox7334D6aDf/QfOc9bYMJjkg5KnWkqoSoKYYEL7qeligrKh+Mp | ||||
CILYXIGAvYMTFlQ0EcK3JBXkExuihxmdgeAenJAqAGL5ISz64lnGBSU8grJj | ||||
s2ZcrRKYm7ChClI6tkpQ6Fo6PfVqoWkXX9dGuTyHwFRTlGexCyfK2d7lwHfq | ||||
EOu86YgaUPY6y9IWsBsYEdM7v1YHgUWBu90GXjjuj0kdVXEAOH2a2V0uYyGP | ||||
wzX4lk7ncBLy/LVvoLAUzs+5xgTdFT6iQ5SAi/Tn/a4cPZAU42QnpIh3QxAi | ||||
9qTKZfhoAEp2bQFK452QmrvIUs1EestB9wHCHBtk6sTMF1Tblumazr7pAsSL | ||||
qgYGuERXeLsElufscUQbXUwSxz8h/PTWk9mUIMizOqidzlyu6hLdKSDO3mto | ||||
ClyGishrE5e+71HV1tnKNyfAtzCUFbsEpURYccFYZNTvSDfiGoALTLMuYl1N | ||||
7Qtmx+LqTkiVM52hCDjjMoKEgsukDH7r63ko5yLrNs8ZegcA54RCwZo8FKxT | ||||
VQAnypVoiOpMk+tGr4HrsVqyIptrjnLOpsrX7KLBMxhDXB3DA6j8xSEXm2lu | ||||
KJaKNXFwYoiJpkgUjUZFU22OpdJVBkIy+I4L74YTUIICb3DIkyNlYNB6QSSY | ||||
62PaGVCWU9s+baRPD04uwIUtKU1q76cA0ES7LPyqLq4/Ek6OEyeUquqSBO8/ | ||||
OoHdgfOI84i5udaCk86y4k5shjs7pr5GLtjvUMtTOQQb93W/K5zx0h1/cYvV | ||||
OGHrJV12d/AkmiMIy0OnUV7JhxLof+4BllBVrqnNlZdOYy1BCefwUHMXEL4X | ||||
6byA6iEt5qaZIA5CMUWTPbSRezarHYrNdNOsKFyBqhEtTT6LnTaZr6lmBrI7 | ||||
+kDxL0K83e4KspKiwkUutp7DEIV7kbLQ3ErSwrMTLu45WX7Mnow3MN01jZxB | ||||
pfpWXLqTNlLmTkjjxOftJ07OOKtHfsLRu4IdoTbFrbOxrCa1BamHGlvcudI5 | ||||
tSsdmyQyL7iMzo2tu5yzWyVGi2bdNiJzebopzX2yJJ+q0mLdPSR/9q6XZXFw | ||||
HtfSJTO4VtoZZ5aP+Hb1zPqOpfOcvbblBTinpMaHawoh95Z8olaJc9+rSEXc | ||||
GNnxnfGoK5BhQl8wK5r9P8qUzs6+R+nPSAfZkYQyJLPWdpHPwrXEGYNx7517 | ||||
Tto++eeBPX++c4Kq9T7VlCKmEGWtqOlX90Y4MJvnxMEodfKRhgNiCFXvAjz2 | ||||
JdNzHcN/wp/D+s9R/eeh3N5jui2YnTkzvK69/jY5D0HUvYPlDkirh47kJoSW | ||||
G5pTUq1ZiSH3hq6dUYuwd7jv5zDr8hxHhOZL5YLVqcBW2muM5N6otYaacr3r | ||||
o8u198v87gLFhlsQV+bUVxC37k8QWfR+RpVqmzhzB9ud9JK6HW673Isnb5dv | ||||
ZDeXqEsbaCRIhlxmee1kwiIJooaMbOj7ccV4R3s/XBsWH+tHwStrFlwrsq3E | ||||
KHBnlgl72RJ8Q+1cBTkZUBolKg8XQtXd0McqH0GHDu3EOwVsuvBE7lBMuOku | ||||
sXRpPGx2m5PucXAFHNhvXSJwbvLjBS3nKTzc27NW+fTkT01NMJ0vO46y1xcA | ||||
L91lBhO4cGHk9SFWObh2vpGN9UNUUG2ydqSxdQdQm4j2WxLnd/jobx0YtMOR | ||||
LeHLxiXZIrTnxG7yzJjdw22/8PVraPpyuxNaK3NKd6dIPgaY7nMZq5s+fPBq | ||||
tmFc1B7HtKnKq1RObXwlvAOU4U7SgkZELL73mureQIWLPtLd3T0JVye72yeE | ||||
YH1DV8knduTzYUOcx2ZL6gkW3N5O3KMSOyN7OpW3g50uCjhKvZr5TpEygKO3 | ||||
dE66wT15dnJbd9x7AUGgl9wE/0uprafmESd46vvoNX3Hk+u5gVI2oVEc0K4T | ||||
OkS1aauh2239MQohcVVw+hFe5xlqW6zbtoRPQnEHq/jPXECJA9ZGWVIuUzsR | ||||
4vOqFc5x9NFeswy95sYMcna5Rw1senrRIhl0zThTEZEsf80bnHvWmG1dRcSX | ||||
L9YBOFVC85QYCF1TgKPeUm2Tu7QXY8piOe8rK6ree87bcJjdddFDDQju+VGw | ||||
5r1IVRSnuXpAh8o6mr5N8j1J+r6Bi/GFAfJweUPG8tSdPhSw1LtYbFYLTXWi | ||||
s4OL/40n+9QC4lZdVFTEjdifb+77y3yKTPLtCiYqeQw3HmcZYQ5Z9kPbsh/a | ||||
ZsO/D22TyQ+Y0vg3wIA6g7h/H6idytv63+0pw8aU4adNGTWmjD5tymFjyuGn | ||||
TRnTYXdSTTWl28wHH7iZT4bf6eHXN3t1ZeUBPLS51oAmeAF180/8lWNFKCp2 | ||||
EzqWrtIk2/HF2YKbxgu6CnTdz73xkXCpNdH0lcqdW+3vxoysYka07laosiBE | ||||
dhFEJTfVfsS183IOryJJ3MrsLKvMEDOrWoxdeaU1fzVUv7Z1h7Ohksetc8Kp | ||||
hf8UomJBs9KhcpqlvSI31+TUAEjOb76mcUvBXnYD9SAC/lASPyr4i6tk0/WN | ||||
bT6pIzPuswoqkiO6VNXadaDrE2B/ofwXYrQNQX54i2MxH/PFmPynIEfdnCDq | ||||
GLqQ/XAJXSx2C4W7bqHoosKlRdeWrm6mRfhiw2pqUAAlq/vo31wVjqqTGaDa | ||||
OpBpFybuDoU+FwN1bS9kG21T+tKKeqb8rRKVIpTmTqKrNFsnOp77qm17D29A | ||||
DhATzpV1/HUnzcjDt9vtSW7kv+j81/9OdXrjvkhyd4uwdWn1Rz7Cqa5GAIKi | ||||
0oz/HAkaWqHcye4qXPu05w+K/PQHs/z1f1L9nnZd6GSFBSLQVDNz1LS6+wfx | ||||
cju4L1RyfW30mtc5S9abVD5SeGBv6q+pqLEVg6QYavp+d/bs5OWln+XTb4yk | ||||
GhXUG6uqPi4z+Ra3nCObNLoEUCZDODWgasS+faiX2VT+aJIiYzVSSy+hG+Pw | ||||
AXH7/mCqIwLwwje3xE5zK66up25uvsLv7a//kYNZvt6k0ZVu6ItPs926G26Q | ||||
0pOaZVEcXFk5rz4qcEXQ+dnFd14Z7rOvh7+D78gniKHkR6LHE9lsuDZJT50X | ||||
hez1vhH/Czg2lIYkLgAA | ||||
</rfc> | </rfc> | |||
End of changes. 44 change blocks. | ||||
455 lines changed or deleted | 193 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/ |