rfc-9441

Static Context Header Compression (SCHC) Compound Acknowledgement (ACK)

J. Zúñiga, C. Gomez, S. Aguilar, L. Toutain, S. Céspedes, D. Wistuba
date2023-07 streamIETF areaint wglpwan statusPROPOSED STANDARD pages22 canonicalhttps://www.rfc-editor.org/rfc/rfc9441 doi10.17487/RFC9441
This document updates the Static Context Header Compression (SCHC) and fragmentation protocol (RFC 8724) and the corresponding YANG module (RFC 9363). It defines a SCHC Compound Acknowledgement (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 the message format and procedure are generic, so they can be used, for instance, by any of the four Low-Power Wide Area Network (LPWAN) technologies defined in RFC 8376, which are Sigfox, Long Range Wide Area Network (LoRaWAN), Narrowband Internet of Things (NB-IoT), and IEEE 802.15.4w.

updates

Extracted elements (26)

design-rationale §3.1

Intermediate bitmaps in the SCHC Compound ACK are prohibited from using compressed bitmap format (they MUST be full WINDOW_SIZE) to ensure unambiguous parsing of the variable-length message, since only the last bitmap has a known boundary from L2 Word alignment or the M-zero-bits terminator.

design-rationale §3.1

The end-of-message signaling in the SCHC Compound ACK uses M zero bits (or implicit termination when padding is less than M bits) rather than an explicit length field. This approach works because window number 0, when present, is always placed first in the header, so M zero bits appearing later unambiguously signal end-of-message rather than window 0.

design-rationale §1

The SCHC Compound ACK is designed to reduce the number of uplink transmissions in ACK-on-Error mode on LPWAN networks, where downlink capacity is scarce. In the RFC 8724 baseline, fragment losses spanning multiple windows require one failure SCHC ACK per window; the Compound ACK collapses these into a single message, reducing overhead proportionally to the number of windows with losses.

interoperability-note §3.2

The SCHC Compound ACK is backwards compatible with the SCHC ACK format in RFC 8724; the standard ACK is a special case reporting only one window. If a sender does not support SCHC Compound ACK (evidenced by only retransmitting tiles from the first reported window despite multi-window reports), the receiver can fall back to sending SCHC Compound ACKs with only one window.

normative-requirement §3.2.1.2 MUST

After receiving an All-1 SCHC Fragment, a receiver MUST check the integrity of the reassembled SCHC Packet at least every time it prepares to send a SCHC Compound ACK for the last window. Upon expiration of the Inactivity Timer, the receiver MUST send a SCHC Receiver-Abort.

normative-requirement §3.2.1 MUST

All tiles except the last and penultimate MUST be of equal (regular) size. The last tile MUST be smaller than or equal to the regular tile size. A Profile MUST pick one of two options for the penultimate tile: it MUST be the regular tile size, or it MUST be either regular size or regular size minus one L2 Word.

normative-requirement §3.2.1 MUST

Each Profile MUST specify which RuleID value(s) correspond to SCHC F/R messages in ACK-on-Error mode, and for each RuleID must define tile size, M, N, WINDOW_SIZE (strictly less than 2^N), RCS field size and algorithm, T, MAX_ACK_REQUESTS, Retransmission Timer, Inactivity Timer, last tile fragment type, penultimate tile size option, and usage of SCHC Compound ACK and Compressed Bitmap.

normative-requirement §3.1 MUST

If a SCHC sender receives a SCHC Compound ACK with invalid window numbers (duplicate W values or W values not yet sent), it MUST discard the whole SCHC Compound ACK message.

normative-requirement §3.1 MUST

If M or more padding bits would be needed after the last bitmap to fill the last L2 Word, M bits set to 0 MUST be appended after the last bitmap before padding is applied, signaling the end of the SCHC Compound ACK message.

normative-requirement §3.2.1.2 MUST

On receiving a SCHC ACK REQ or All-1 SCHC Fragment, if the receiver knows of windows with missing tiles, it MUST return a SCHC Compound ACK for the missing tiles starting from the lowest-numbered window. Otherwise, if it has received at least one tile, it MUST return a SCHC Compound ACK for the highest-numbered window; otherwise it MUST return one for window 0.

normative-requirement §3.2.1.1 MUST

On receiving a SCHC Compound ACK where a W field corresponds to the last window with C bit set, the sender MAY exit successfully. If C bit is not set and the profile mandates the last tile in All-1, but the Compound ACK shows no missing tiles, the sender MUST send a SCHC Sender-Abort; otherwise it MUST send SCHC Fragments for all missing tiles reported.

normative-requirement §3.2.1.1 MUST

On Retransmission Timer expiration, if Attempts counter is strictly less than MAX_ACK_REQUESTS the sender MUST send either the All-1 SCHC Fragment or a SCHC ACK REQ with W corresponding to the last window; otherwise, the sender MUST send a SCHC Sender-Abort.

normative-requirement §3.2.1.2 MUST

On the Attempts counter exceeding MAX_ACK_REQUESTS, the receiver MUST send a SCHC Receiver-Abort and MAY exit with an error condition.

normative-requirement §3.2 MUST

The application MUST set expiration timer values according to when the feedback is expected to be received, e.g., after the All-0 or after the All-1, to account for the flexibility introduced in whether the receiver responds to All-0 fragments.

normative-requirement §3.2.1.1 MUST

The fragment sender MUST listen for SCHC Compound ACK messages after sending an All-1 SCHC Fragment or a SCHC ACK REQ. Each time a sender sends an All-1 SCHC Fragment or SCHC ACK REQ, it MUST increment the Attempts counter and MUST reset the Retransmission Timer.

normative-requirement §3 MUST NOT

The SCHC Compound ACK MAY be used only in fragmentation modes that use windows and allow reporting bitmaps of multiple windows simultaneously; otherwise the SCHC Compound ACK MUST NOT be used.

normative-requirement §3.1 MUST NOT

The SCHC Compound ACK MUST NOT use the Compressed Bitmap format for intermediate windows/bitmaps; intermediate bitmap fields MUST be of size WINDOW_SIZE. The SCHC Compound ACK MAY use a Compressed Bitmap format only for the last bitmap, and its optional usage MUST be specified by the technology-specific SCHC Profile.

normative-requirement §3.1 MUST

Window numbers and their corresponding bitmaps included in the SCHC Compound ACK message MUST be ordered from the lowest-numbered to the highest-numbered window. If window number zero is present, it MUST always be first and its window number MUST be placed in the SCHC ACK Header.

protocol-element §3

The SCHC Compound ACK is a failure SCHC ACK message that can contain several bitmaps, each identified by its corresponding window number. It provides feedback only for windows with fragment losses, has variable size depending on the number of windows reported, and is backwards compatible with the SCHC ACK defined in RFC 8724.

measurement

protocol-element §5.1

The YANG module 'ietf-schc-compound-ack' augments the RFC 9363 SCHC YANG data model with two new leaves in the ack-on-error fragmentation mode: 'bitmap-format' (with identities bitmap-RFC8724 and bitmap-compound-ack, defaulting to bitmap-RFC8724) and 'last-bitmap-compression' (boolean, default true).

yang, netconf

registry §8

IANA registered URI 'urn:ietf:params:xml:ns:yang:ietf-schc-compound-ack' in the IETF XML Registry (RFC 3688) and registered YANG module name 'ietf-schc-compound-ack' with prefix 'schc-compound-ack' in the YANG Module Names registry (RFC 6020).

registry, yang

security-consideration §7

Read access to the YANG module may expose sensitive operational information: an attacker could learn the F/R mode, bitmap management configuration, buffer sizes, and ACK request timing, enabling potential traffic analysis or targeted attacks. Read access should be controlled via NACM (RFC 8341).

security, privacy, yang

security-consideration §7

The SCHC Compound ACK YANG module data nodes controlling F/R mode and Compound ACK configuration are sensitive: an attacker modifying another device's Rules could block communication or generate extra ACKs. Access MUST be restricted so a device can only modify its own Rules on the remote SCHC instance, with requester identity validated via certificates or access lists. NETCONF/RESTCONF access to the module MUST use SSH or TLS as the secure transport.

security, yang, netconf

state-machine §3.2.1

Fragmentation concludes at the sender when: integrity checking confirms correct reassembly and this is conveyed back to sender (C=1 ACK received for last window), too many retransmission attempts have been made (Attempts >= MAX_ACK_REQUESTS), or the receiver determines transmission has been inactive too long (Inactivity Timer expiry triggers Receiver-Abort).

state-machine §3.2.1.2

Reassembly concludes at the receiver when: a Sender-Abort is received, the Inactivity Timer has expired, the Attempts counter has exceeded MAX_ACK_REQUESTS, or at least one All-1 SCHC Fragment has been received and integrity checking of the reassembled SCHC Packet is successful.

wire-format §3.1

The SCHC Compound ACK message format contains a SCHC ACK Header (RuleID, DTag, W=w1, C=0) followed by a bitmap for the first window with losses, then repeated (W=wi, Bitmap) pairs for each additional window with losses, ordered from lowest to highest window number, terminated by M zero bits if needed to signal end-of-message before L2 Word padding.