lpwan Working Group JC. Zuniga Internet-Draft Cisco Updates: 8724 (if approved) C. Gomez Intended status: Standards Track S. Aguilar Expires: 2 February 2023 Universitat Politecnica de Catalunya L. Toutain IMT-Atlantique S. Cespedes Concordia University D. Wistuba NIC Labs, Universidad de Chile 1 August 2022 SCHC Compound ACK draft-ietf-lpwan-schc-compound-ack-06 Abstract The present document describes an extension to the SCHC (Static Context Header Compression and fragmentation) protocol RFC8724. It defines a SCHC Compound ACK message format and procedure, which are intended to reduce the number of response transmissions (i.e., SCHC ACKs) in the ACK-on-Error mode, by accumulating bitmaps of several windows in a single SCHC message (i.e., the SCHC Compound ACK). Both message format and procedure are generic, so they can be used, for instance, by any of the four LWPAN technologies defined in RFC8376, being Sigfox, LoRaWAN, NB-IoT and IEEE 802.15.4w. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on 2 February 2023. Zuniga, et al. Expires 2 February 2023 [Page 1] Internet-Draft SCHC Compound ACK August 2022 Copyright Notice Copyright (c) 2022 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/ license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. SCHC Compound ACK . . . . . . . . . . . . . . . . . . . . . . 3 3.1. SCHC Compound ACK Message Format . . . . . . . . . . . . 4 3.2. SCHC Compound ACK Behaviour . . . . . . . . . . . . . . . 6 8.4.3. ACK-on-Error Mode . . . . . . . . . . . . . . . . . . 7 4. SCHC Compound ACK Examples . . . . . . . . . . . . . . . . . 15 5. SCHC Compound ACK YANG Data Model . . . . . . . . . . . . . . 16 5.1. SCHC YANG Data Model Extension . . . . . . . . . . . . . 16 5.2. SCHC YANG Tree Extension . . . . . . . . . . . . . . . . 18 6. SCHC Compound ACK Parameters . . . . . . . . . . . . . . . . 18 7. Security considerations . . . . . . . . . . . . . . . . . . . 19 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 19 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 10.1. Normative References . . . . . . . . . . . . . . . . . . 19 10.2. Informative References . . . . . . . . . . . . . . . . . 20 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 1. Introduction The Generic Framework for Static Context Header Compression and Fragmentation (SCHC) specification [RFC8724] describes two mechanisms: i) a protocol header compression scheme, and ii) a frame fragmentation and loss recovery functionality. Either can be used on top of radio technologies such as the four LWPAN defined in [RFC8376], being Sigfox, LoRaWAN, NB-IoT and IEEE 802.15.4w. These LPWANs have similar characteristics such as star-oriented topologies, network architecture, connected devices with built-in applications, etc. Zuniga, et al. Expires 2 February 2023 [Page 2] Internet-Draft SCHC Compound ACK August 2022 SCHC offers a great level of flexibility to accommodate all these LPWAN technologies. Even though there are a great number of similarities between them, some differences exist with respect to the transmission characteristics, payload sizes, etc. Hence, there are optimal parameters and modes of operation that can be used when SCHC is used on top of a specific LPWAN technology. The present document describes an extension to the SCHC protocol for frame fragmentation and loss recovery. It defines a SCHC Compound ACK format and procedure, which is intended to reduce the number of response transmissions (i.e., SCHC ACKs) in the ACK-on-Error mode of SCHC. The SCHC Compound ACK extends the SCHC ACK message format so that it can contain several bitmaps, each bitmap being identified by its corresponding window number. The SCHC Compound ACK: * provides feedback only for windows with fragment losses, * has a variable size that depends on the number of windows with fragment losses being reported in the single Compound SCHC ACK, * includes the window number (i.e., W) of each bitmap, * might not cover all windows with fragment losses of a SCHC Packet, * and is distinguishable from the SCHC Receiver-Abort. 2. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. It is assumed that the reader is familiar with the terms and mechanisms defined in [RFC8376] and in [RFC8724]. 3. SCHC Compound ACK The SCHC Compound ACK is a SCHC ACK message that can contain several bitmaps, each bitmap being identified by its corresponding window number. The SCHC Compound ACK MAY be used in fragmentation modes that use windows and that allow reporting the bitmaps of multiple windows at the same time, and MUST NOT be used otherwise. Zuniga, et al. Expires 2 February 2023 [Page 3] Internet-Draft SCHC Compound ACK August 2022 The SCHC Compound ACK groups the window number (W) with its corresponding bitmap. Windows do not need to be contiguous. However, the window numbers and corresponding bitmaps included in the SCHC Compound ACK message MUST be ordered from the lowest-numbered to the highest-numbered window. Hence, if the bitmap of window number zero is present in the SCHC Compound ACK message, it MUST always be the first one in order and its W number MUST be placed in the SCHC ACK Header. 3.1. SCHC Compound ACK Message Format Figure 1 shows the regular SCHC ACK format when all fragments have been correctly received (C=1), as defined in [RFC8724]. |-- SCHC ACK Header --| |--T-|-M-| 1 | +--------+----+---+---+~~~~~~~~~~~~~~~~~~ | RuleID |DTag| W |C=1| padding as needed +--------+----+---+---+~~~~~~~~~~~~~~~~~~ Figure 1: SCHC Success ACK message format, as defined in RFC8724 In case SCHC Fragment losses are found in any of the windows of the SCHC Packet, the SCHC Compound ACK MAY be used. The SCHC Compound ACK message format is shown in Figure 2 and Figure 3. If M or more padding bits would be needed after the last bitmap in the message to fill the last L2 Word, M bits at 0 MUST be appended after the last bitmap, and then padding is applied as needed (see Figure 2). Since window number 0, if present in the message, is placed as w1, the M bits set to zero can't be confused with window number 0, and therefore they signal the end of the SCHC Compound ACK message. |--- SCHC ACK Header --|- W=w1 -|...|---- W=wi -----| |--T-|---M--|-1-| |...|---M--| |---M--| +------+----+------+---+--------+...+------+--------+------+-----+ |RuleID|DTag| W=w1 |C=0| Bitmap |...| W=wi | Bitmap |00..00| pad | +------+----+------+---+--------+...+------+--------+------+-----+ next L2 Word boundary ->|<-- L2 Word ->| Losses are found in windows W = w1,...,wi; where w1| Losses are found in windows W = w1,...,wi; where w1| SCHC Compound ACK with uncompressed Bitmap |--- SCHC ACK Header --|- W=w1 -|...|-- W=wi --| |--T-|---M--|-1-| |...|---M--| +------+----+------+---+--------+...+------+---+ |RuleID|DTag| W=w1 |C=0| Bitmap |...| W=wi |0 1| +------+----+------+---+--------+...+------+---+ next L2 Word boundary ->| Transmitted SCHC Compound ACK Losses are found in windows W = w1,...,wi; where w1| SCHC Compound ACK with uncompressed Bitmap |--- SCHC ACK Header --|-W=w1-|...|-------- W=wi -------| |--T-|---M--|-1-| |...|---M--| |---M--| +------+----+------+---+------+...+------+--------------+------+---+ |RuleID|DTag| W=w1 |C=0|Bitmap|...| W=wi |1 0 1 0 1 1 1 |00..00|pad| +------+----+------+---+------+...+------+--------------+------+---+ next L2 Word boundary ->|<------ L2 Word ------>| Transmitted SCHC Compound ACK Losses are found in windows W = w1,...,wi; where w1 for one among several possible examples of a Finite State Machine implementing a sender behavior obeying this specification. 8.4.3.2. Receiver Behavior On receiving a SCHC Fragment with a RuleID and DTag pair not being processed at that time: Zuniga, et al. Expires 2 February 2023 [Page 12] Internet-Draft SCHC Compound ACK August 2022 * the receiver SHOULD check if the DTag value has not recently been used for that RuleID value, thereby ensuring that the received SCHC Fragment is not a remnant of a prior fragmented SCHC Packet transmission. The initial value of the Inactivity Timer is the RECOMMENDED lifetime for the DTag value at the receiver. If the SCHC Fragment is determined to be such a remnant, the receiver MAY silently ignore it and discard it. * the receiver MUST start a process to assemble a new SCHC Packet with that RuleID and DTag value pair. The receiver MUST start an Inactivity Timer for that RuleID and DTag value pair. It MUST initialize an Attempts counter to 0 for that RuleID and DTag value pair. If the receiver is under-resourced to do this, it MUST respond to the sender with a SCHC Receiver-Abort. On reception of any SCHC F/R message for the RuleID and DTag pair being processed, the receiver MUST reset the Inactivity Timer pertaining to that RuleID and DTag pair. All message receptions being discussed in the rest of this section are to be understood as "matching the RuleID and DTag pair being processed", even if not spelled out, for brevity. On receiving a SCHC Fragment message, the receiver determines what tiles were received, based on the payload length and on the W and FCN fields of the SCHC Fragment. * if the FCN is All-1, if a Payload is present, the full SCHC Fragment Payload MUST be assembled including the padding bits. This is because the size of the last tile is not known by the receiver; therefore, padding bits are indistinguishable from the tile data bits, at this stage. They will be removed by the SCHC C/D sublayer. If the size of the SCHC Fragment Payload exceeds or equals the size of one regular tile plus the size of an L2 Word, this SHOULD raise an error flag. * otherwise, tiles MUST be assembled based on the a priori known tile size. - If allowed by the Profile, the end of the payload MAY contain the last tile, which may be shorter. Padding bits are indistinguishable from the tile data bits, at this stage. - The payload may contain the penultimate tile that, if allowed by the Profile, MAY be exactly one L2 Word shorter than the regular tile size. Zuniga, et al. Expires 2 February 2023 [Page 13] Internet-Draft SCHC Compound ACK August 2022 - Otherwise, padding bits MUST be discarded. This is possible because: o the size of the tiles is known a priori, o tiles are larger than an L2 Word, and o padding bits are always strictly less than an L2 Word. **On receiving a SCHC All-0 SCHC Fragment: * if the receiver knows of any windows with missing tiles for the packet being reassembled (and if network conditions are known to be conducive), it MAY return a SCHC Compound ACK for the missing tiles, starting from the lowest-numbered window.** On receiving a SCHC ACK REQ or an All-1 SCHC Fragment: * if the receiver knows of any windows with missing tiles for the packet being reassembled, it MUST return a SCHC **Compound** ACK for the **missing tiles, starting from the lowest-numbered window.**--lowest-numbered such window:-- * otherwise: - if it has received at least one tile, it MUST return a SCHC **Compound** ACK for the highest-numbered window it currently has tiles for, - otherwise, it MUST return a SCHC **Compound** ACK for window numbered 0. A Profile MAY specify other times and circumstances at which a receiver sends a SCHC **Compound** ACK, and which window the SCHC **Compound** ACK reports about in these circumstances. Upon sending a SCHC **Compound** ACK, the receiver MUST increase the Attempts counter. After receiving an All-1 SCHC Fragment, a receiver MUST check the integrity of the reassembled SCHC Packet at least every time it prepares for sending a SCHC **Compound** ACK for the last window. Upon receiving a SCHC Sender-Abort, the receiver MAY exit with an error condition. Upon expiration of the Inactivity Timer, the receiver MUST send a SCHC Receiver-Abort, and it MAY exit with an error condition. Zuniga, et al. Expires 2 February 2023 [Page 14] Internet-Draft SCHC Compound ACK August 2022 On the Attempts counter exceeding MAX_ACK_REQUESTS, the receiver MUST send a SCHC Receiver-Abort, and it MAY exit with an error condition. Reassembly of the SCHC Packet concludes when: * a Sender-Abort has been received, or * the Inactivity Timer has expired, or * the Attempts counter has exceeded MAX_ACK_REQUESTS, or * at least an All-1 SCHC Fragment has been received and integrity checking of the reassembled SCHC Packet is successful. See Figure 44 for one among several possible examples of a Finite State Machine implementing a receiver behavior obeying this specification. The example provided is meant to match the sender Finite State Machine of Figure 43. 4. SCHC Compound ACK Examples Figure 7 shows an example transmission of a SCHC Packet in ACK-on- Error mode using the SCHC Compound ACK. In the example, the SCHC Packet is fragmented in 14 tiles, with N=3, WINDOW_SIZE=7, M=2 and two lost SCHC fragments. Only 1 compound SCHC ACK is generated. Sender Receiver |-----W=0, FCN=6 ----->| |-----W=0, FCN=5 ----->| |-----W=0, FCN=4 ----->| |-----W=0, FCN=3 ----->| |-----W=0, FCN=2 --X-->| |-----W=0, FCN=1 ----->| |-----W=0, FCN=0 ----->| Bitmap: 1111011 (no ACK) |-----W=1, FCN=6 ----->| |-----W=1, FCN=5 ----->| |-----W=1, FCN=4 ----->| |-----W=1, FCN=3 ----->| |-----W=1, FCN=2 ----->| |-----W=1, FCN=1 --X-->| |-- W=1, FCN=7 + RCS ->| Integrity check: failure |<--- Compound ACK ----| [C=0, W=0 - Bitmap:1111011, |-----W=0, FCN=2 ----->| W=1 - Bitmap:1111101] |-----W=1, FCN=1 ----->| Integrity check: success |<--- ACK, W=1, C=1 ---| C=1 (End) Zuniga, et al. Expires 2 February 2023 [Page 15] Internet-Draft SCHC Compound ACK August 2022 Figure 7: SCHC Compound ACK message sequence example |--- SCHC ACK Header --|- W=00 --|----- W=01 -----| |--T-|---M--|-1-| |---M--| |---M--| +------+----+------+---+---------+------+---------+------+-----+ |RuleID|DTag| W=00 |C=0| 1111011 | W=01 | 1111101 | 00 | pad | +------+----+------+---+---------+------+---------+------+-----+ next L2 Word boundary ->|<-- L2 Word ->| Figure 8: SCHC Compound ACK message format example: Losses are found in windows 00 and 01 5. SCHC Compound ACK YANG Data Model The present document also extends the SCHC YANG data model defined in [I-D.ietf-lpwan-schc-yang-data-model] by including a new leaf in the Ack-on-Error fragmentation mode to describe both the option to use the SCHC Compound ACK, as well as its bitmap format. 5.1. SCHC YANG Data Model Extension file "ietf-compound-ack@2021-12-10.yang" module ietf-schc-compound-ack { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-schc-compound-ack"; prefix schc-compound-ack; import ietf-schc { prefix schc; } organization "IETF IPv6 over Low Power Wide-Area Networks (lpwan) working group"; contact "WG Web: WG List: Editor: Laurent Toutain Editor: Juan Carlos Zuniga "; description " Copyright (c) 2021 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Zuniga, et al. Expires 2 February 2023 [Page 16] Internet-Draft SCHC Compound ACK August 2022 Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC XXXX (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself for full legal notices. The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document are to be interpreted as described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here. *************************************************************** This module extends the ietf-schc module to include the Compound ACK behavior for ACK-on-Error as defined in RFC YYYY. It introduces a new leaf for ACK-on-Error defining the format of the SCHC Compound ACK, adding the possibility to send several bitmaps in a single SCHC ACK message."; revision 2022-02-08 { description "Initial version for RFC YYYY "; reference "RFC YYYY: SCHC Compound ACK"; } identity bitmap-format-base-type { description "Define how the bitmap is formed in ACK messages."; } identity bitmap-RFC8724 { base bitmap-format-base-type; description "Bitmap by default as defined in RFC8724."; } identity bitmap-compound-ack { base bitmap-format-base-type; description "Compound ACK."; } typedef bitmap-format-type { type identityref { base bitmap-format-base-type; } description Zuniga, et al. Expires 2 February 2023 [Page 17] Internet-Draft SCHC Compound ACK August 2022 "type used in rules"; } augment "/schc:schc/schc:rule/schc:nature/schc:fragmentation/schc:mode/schc:ack-on-error" { leaf bitmap-format { when "derived-from(../schc:fragmentation-mode, 'schc:fragmentation-mode-ack-on-error')"; type schc-compound-ack:bitmap-format-type; default "schc-compound-ack:bitmap-RFC8724"; description "How the bitmaps are included in the SCHC ACK message."; } leaf last-bitmap-compression { when "derived-from(../schc:fragmentation-mode, 'schc:fragmentation-mode-ack-on-error')"; type boolean; default true; description "when true ultimate bitmap in the SCHC ACK message can be compressed"; } description "added to SCHC rules"; } } Figure 9: SCHC YANG Data Model - Compound ACK extension 5.2. SCHC YANG Tree Extension augment /schc:schc/schc:rule/schc:nature/schc:fragmentation/schc:mode/schc:ack-on-error: +--rw bitmap-format? schc-compound-ack:bitmap-format-type Figure 10: SCHC YANG Tree - Compound ACK extension 6. SCHC Compound ACK Parameters This section lists the parameters related to the SCHC Compound ACK usage that need to be defined in the Profile, in addition to the ones listed in Annex D of [RFC8724]. * Usage or not of the SCHC Compound ACK message. * Usage or not of the compressed bitmap format in the last window of the SCHC Compound ACK message. Zuniga, et al. Expires 2 February 2023 [Page 18] Internet-Draft SCHC Compound ACK August 2022 7. Security considerations The current document specifies a message format extension for SCHC. Hence, the same Security Considerations defined in [RFC8724] apply. 8. IANA Considerations This document has no IANA actions. 9. Acknowledgements Carles Gomez has been funded in part by the Spanish Government through the TEC2016-79988-P grant, and the PID2019-106808RA-I00 grant (funded by MCIN / AEI / 10.13039/501100011033), and by Secretaria d'Universitats i Recerca del Departament d'Empresa i Coneixement de la Generalitat de Catalunya 2017 through grant SGR 376. Sergio Aguilar has been funded by the ERDF and the Spanish Government through project TEC2016-79988-P and project PID2019-106808RA-I00, AEI/FEDER, EU (funded by MCIN / AEI / 10.13039/501100011033). Sandra Cespedes has been funded in part by the ANID Chile Project FONDECYT Regular 1201893 and Basal Project FB0008. Diego Wistuba has been funded by the ANID Chile Project FONDECYT Regular 1201893. The authors would like to thank Rafael Vidal, Julien Boite, Renaud Marty, Antonis Platis, Dominique Barthel and Pascal Thubert for their very useful comments, reviews and implementation design considerations. 10. References 10.1. Normative References [I-D.ietf-lpwan-schc-yang-data-model] Minaburo, A. and L. Toutain, "Data Model for Static Context Header Compression (SCHC)", Work in Progress, Internet-Draft, draft-ietf-lpwan-schc-yang-data-model-14, February 2021, . [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", DOI 10.17487/RFC2119, BCP 14, RFC 2119, March 1997, . Zuniga, et al. Expires 2 February 2023 [Page 19] Internet-Draft SCHC Compound ACK August 2022 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", DOI 10.17487/RFC8174, RFC 8174, BCP 14, May 2017, . [RFC8724] Minaburo, A., Toutain, L., Gomez, C., Barthel, D., and JC. Zuniga, "SCHC: Generic Framework for Static Context Header Compression and Fragmentation", RFC 8724, DOI 10.17487/RFC8724, April 2020, . 10.2. Informative References [RFC8376] Farrell, S., Ed., "Low-Power Wide Area Network (LPWAN) Overview", RFC 8376, DOI 10.17487/RFC8376, May 2018, . Authors' Addresses Juan Carlos Zúñiga Cisco Montreal QC Canada Email: juzuniga@cisco.com Carles Gomez Universitat Politecnica de Catalunya C/Esteve Terradas, 7 08860 Castelldefels Spain Email: carlesgo@entel.upc.edu Sergio Aguilar Universitat Politecnica de Catalunya C/Esteve Terradas, 7 08860 Castelldefels Spain Email: sergio.aguilar.romero@upc.edu Laurent Toutain IMT-Atlantique 2 rue de la Chataigneraie CS 17607 35576 Cesson-Sevigne Cedex France Email: Laurent.Toutain@imt-atlantique.fr Zuniga, et al. Expires 2 February 2023 [Page 20] Internet-Draft SCHC Compound ACK August 2022 Sandra Cespedes Concordia University 1455 De Maisonneuve Blvd. W. Montreal QC, H3G 1M8 Canada Email: sandra.cespedes@concordia.ca Diego Wistuba NIC Labs, Universidad de Chile Av. Almte. Blanco Encalada 1975 Santiago Chile Email: wistuba@niclabs.cl Zuniga, et al. Expires 2 February 2023 [Page 21]