idnits 2.17.1 draft-bormann-core-senml-versions-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- -- The draft header indicates that this document updates RFC8428, but the abstract doesn't seem to directly say this. It does mention RFC8428 though, so this could be OK. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (February 10, 2020) is 1538 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-06) exists of draft-ietf-core-senml-more-units-03 Summary: 0 errors (**), 0 flaws (~~), 2 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group C. Bormann 3 Internet-Draft Universitaet Bremen TZI 4 Updates: 8428 (if approved) February 10, 2020 5 Intended status: Standards Track 6 Expires: August 13, 2020 8 SenML: Features and Versions 9 draft-bormann-core-senml-versions-00 11 Abstract 13 The Sensor Measurement Lists (SenML) specification provides a version 14 number that is set to the number 10 in RFC 8428, without further 15 specification on the way to make use of different version numbers. 16 This short document specifies the use of "SenML Features" and maps 17 them to SenML version numbers, updating RFC 8428. 19 Status of This Memo 21 This Internet-Draft is submitted in full conformance with the 22 provisions of BCP 78 and BCP 79. 24 Internet-Drafts are working documents of the Internet Engineering 25 Task Force (IETF). Note that other groups may also distribute 26 working documents as Internet-Drafts. The list of current Internet- 27 Drafts is at https://datatracker.ietf.org/drafts/current/. 29 Internet-Drafts are draft documents valid for a maximum of six months 30 and may be updated, replaced, or obsoleted by other documents at any 31 time. It is inappropriate to use Internet-Drafts as reference 32 material or to cite them other than as "work in progress." 34 This Internet-Draft will expire on August 13, 2020. 36 Copyright Notice 38 Copyright (c) 2020 IETF Trust and the persons identified as the 39 document authors. All rights reserved. 41 This document is subject to BCP 78 and the IETF Trust's Legal 42 Provisions Relating to IETF Documents 43 (https://trustee.ietf.org/license-info) in effect on the date of 44 publication of this document. Please review these documents 45 carefully, as they describe your rights and restrictions with respect 46 to this document. Code Components extracted from this document must 47 include Simplified BSD License text as described in Section 4.e of 48 the Trust Legal Provisions and are provided without warranty as 49 described in the Simplified BSD License. 51 Table of Contents 53 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 54 2. Feature Codes and the Version number . . . . . . . . . . . . 2 55 3. Features: Reserved0, Reserved1, Reserved2, Reserved3 . . . . 3 56 4. Feature: Secondary Units . . . . . . . . . . . . . . . . . . 3 57 5. Security Considerations . . . . . . . . . . . . . . . . . . . 3 58 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 3 59 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 4 60 8. Normative References . . . . . . . . . . . . . . . . . . . . 4 61 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 5 63 1. Introduction 65 The Sensor Measurement Lists (SenML) specification [RFC8428] provides 66 a version number that is set to 10, without further specification on 67 the way to make use of different version numbers. 69 The traditional idea of using a version number for evolving an 70 interchange format presupposes a linear progression of that format. 71 A more likely form of evolution of SenML is the addition of 72 "features" that can be added to the base version (version 10) in a 73 fashion that is mostly independent of each other. A recipient of a 74 SenML pack can check the features it implements against those 75 required by the pack, processing the pack only if all required 76 features are provided in the implementation. 78 This short document specifies the use of SenML Features and maps them 79 to SenML version number space, updating [RFC8428]. 81 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 82 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 83 "OPTIONAL" in this document are to be interpreted as described in 84 BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all 85 capitals, as shown here. 87 Where bit arithmetic is explained, this document uses the notation 88 familiar from the programming language C, except that "**" denotes 89 exponentiation. 91 2. Feature Codes and the Version number 93 The present specification defines "SenML Features", identified by a 94 "feature name" (a text string) and a "feature code", an unsigned 95 integer less than 53. 97 The specific version of a SenML pack is composed of a set of 98 features. The SenML version number ("bver" field) is then the sum 99 of, for each feature present, two taken to the power of the feature 100 code of that feature. 102 \~~ 52 fc 103 version = > present(fc) x 2 104 /__ fc=0 106 where present(fc) is 1 if the feature with the feature code "fc" is 107 present, 0 otherwise. 109 3. Features: Reserved0, Reserved1, Reserved2, Reserved3 111 For SenML Version 10 as described in [RFC8428], the feature codes 0 112 to 3 are already in use. Reserved1 (1) and Reserved3 (3) are always 113 present and the features Reserved0 (0) and Reserved2 (2) are always 114 absent, yielding a version number of 10 if no other feature is in 115 use. These four reserved feature codes are not to be used with any 116 more specific semantics except in a specification that updates the 117 present specification. 119 4. Feature: Secondary Units 121 The feature "Secondary Units" (code number 4) indicates that 122 secondary unit names [I-D.ietf-core-senml-more-units] MAY be be used 123 in the "u" field, in addition to the primary unit names already 124 allowed by [RFC8428]. 126 Note that the most basic use of this feature simply sets the SenML 127 version number to 26 (10 + 2**4). 129 5. Security Considerations 131 The security considerations of [RFC8428] apply. This specification 132 provides structure to the interpretation of the SenML version number, 133 which poses no additional security considerations except for some 134 potential for surprise that version numbers do not simply increase 135 linearly. 137 6. IANA Considerations 139 IANA is requested to create a new subregistry "SenML features" within 140 the SenML registry [IANA.senml], with the registration policy 141 "specification required" [RFC8126] and the columns: 143 o Feature code (an unsigned integer less than 53) 144 o Feature name (text) 146 o Specification 148 The initial content of this registry is as follows: 150 +--------------+-----------------+---------------+ 151 | Feature code | Feature name | Specification | 152 +--------------+-----------------+---------------+ 153 | 0 | Reserved0 | RFCthis | 154 | 1 | Reserved1 | RFCthis | 155 | 2 | Reserved2 | RFCthis | 156 | 3 | Reserved3 | RFCthis | 157 | 4 | Secondary Units | RFCthis | 158 +--------------+-----------------+---------------+ 160 Table 1: Features defined for SenML at the time of writing 162 Acknowledgements 164 Ari Keranen proposed to use the version number as a bitset. 166 8. Normative References 168 [I-D.ietf-core-senml-more-units] 169 Bormann, C., "Additional Units for SenML", draft-ietf- 170 core-senml-more-units-03 (work in progress), November 171 2019. 173 [IANA.senml] 174 IANA, "Sensor Measurement Lists (SenML)", 175 . 177 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 178 Requirement Levels", BCP 14, RFC 2119, 179 DOI 10.17487/RFC2119, March 1997, 180 . 182 [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for 183 Writing an IANA Considerations Section in RFCs", BCP 26, 184 RFC 8126, DOI 10.17487/RFC8126, June 2017, 185 . 187 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 188 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 189 May 2017, . 191 [RFC8428] Jennings, C., Shelby, Z., Arkko, J., Keranen, A., and C. 192 Bormann, "Sensor Measurement Lists (SenML)", RFC 8428, 193 DOI 10.17487/RFC8428, August 2018, 194 . 196 Author's Address 198 Carsten Bormann 199 Universitaet Bremen TZI 200 Postfach 330440 201 Bremen D-28359 202 Germany 204 Phone: +49-421-218-63921 205 Email: cabo@tzi.org