< draft-ietf-lpwan-schc-over-sigfox-08.txt   draft-ietf-lpwan-schc-over-sigfox-09.txt >
lpwan Working Group JC. Zuniga lpwan Working Group JC. Zuniga
Internet-Draft SIGFOX Internet-Draft
Intended status: Standards Track C. Gomez Intended status: Standards Track C. Gomez
Expires: April 26, 2022 S. Aguilar Expires: 25 August 2022 S. Aguilar
Universitat Politecnica de Catalunya Universitat Politècnica de Catalunya
L. Toutain L. Toutain
IMT-Atlantique IMT-Atlantique
S. Cespedes S. Cespedes
D. Wistuba D. Wistuba
NIC Labs, Universidad de Chile NIC Labs, Universidad de Chile
October 23, 2021 J. Boite
SIGFOX
21 February 2022
SCHC over Sigfox LPWAN SCHC over Sigfox LPWAN
draft-ietf-lpwan-schc-over-sigfox-08 draft-ietf-lpwan-schc-over-sigfox-09
Abstract Abstract
The Generic Framework for Static Context Header Compression and The Generic Framework for Static Context Header Compression and
Fragmentation (SCHC) specification describes two mechanisms: i) an Fragmentation (SCHC) specification describes two mechanisms: i) an
application header compression scheme, and ii) a frame fragmentation application header compression scheme, and ii) a frame fragmentation
and loss recovery functionality. SCHC offers a great level of and loss recovery functionality. SCHC offers a great level of
flexibility that can be tailored for different Low Power Wide Area flexibility that can be tailored for different Low Power Wide Area
Network (LPWAN) technologies. Network (LPWAN) technologies.
skipping to change at page 1, line 46 skipping to change at page 1, line 48
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on April 26, 2022. This Internet-Draft will expire on 25 August 2022.
Copyright Notice Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the Copyright (c) 2022 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents (https://trustee.ietf.org/
(https://trustee.ietf.org/license-info) in effect on the date of license-info) in effect on the date of publication of this document.
publication of this document. Please review these documents Please review these documents carefully, as they describe your rights
carefully, as they describe your rights and restrictions with respect and restrictions with respect to this document. Code Components
to this document. Code Components extracted from this document must extracted from this document must include Revised BSD License text as
include Simplified BSD License text as described in Section 4.e of described in Section 4.e of the Trust Legal Provisions and are
the Trust Legal Provisions and are provided without warranty as provided without warranty as described in the Revised BSD License.
described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. SCHC over Sigfox . . . . . . . . . . . . . . . . . . . . . . 3 3. SCHC over Sigfox . . . . . . . . . . . . . . . . . . . . . . 3
3.1. Network Architecture . . . . . . . . . . . . . . . . . . 3 3.1. Network Architecture . . . . . . . . . . . . . . . . . . 3
3.2. Uplink . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2. Uplink . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.3. Downlink . . . . . . . . . . . . . . . . . . . . . . . . 6 3.3. Downlink . . . . . . . . . . . . . . . . . . . . . . . . 6
3.4. SCHC-ACK on Downlink . . . . . . . . . . . . . . . . . . 7 3.4. SCHC-ACK on Downlink . . . . . . . . . . . . . . . . . . 7
3.5. SCHC Rules . . . . . . . . . . . . . . . . . . . . . . . 7 3.5. SCHC Rules . . . . . . . . . . . . . . . . . . . . . . . 7
3.6. Fragmentation . . . . . . . . . . . . . . . . . . . . . . 7 3.6. Fragmentation . . . . . . . . . . . . . . . . . . . . . . 7
3.6.1. Uplink Fragmentation . . . . . . . . . . . . . . . . 8 3.6.1. Uplink Fragmentation . . . . . . . . . . . . . . . . 8
3.6.2. Downlink Fragmentation . . . . . . . . . . . . . . . 11 3.6.2. Downlink Fragmentation . . . . . . . . . . . . . . . 11
3.7. SCHC-over-Sigfox F/R Message Formats . . . . . . . . . . 12 3.7. SCHC-over-Sigfox F/R Message Formats . . . . . . . . . . 12
3.7.1. Uplink ACK-on-Error Mode: Single-byte SCHC Header . . 12 3.7.1. Uplink ACK-on-Error Mode: Single-byte SCHC Header . . 13
3.7.2. Uplink ACK-on-Error Mode: Two-byte SCHC Header . . . 16 3.7.2. Uplink ACK-on-Error Mode: Two-byte SCHC Header Option
2 . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.8. SCHC-Sender Abort . . . . . . . . . . . . . . . . . . . . 18 3.8. SCHC-Sender Abort . . . . . . . . . . . . . . . . . . . . 18
3.9. SCHC-Receiver Abort . . . . . . . . . . . . . . . . . . . 19 3.9. SCHC-Receiver Abort . . . . . . . . . . . . . . . . . . . 19
3.10. Padding . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.10. Padding . . . . . . . . . . . . . . . . . . . . . . . . . 19
4. Fragmentation Sequence Examples . . . . . . . . . . . . . . . 20 4. Fragmentation Sequence Examples . . . . . . . . . . . . . . . 20
4.1. Uplink No-ACK Examples . . . . . . . . . . . . . . . . . 20 4.1. Uplink No-ACK Examples . . . . . . . . . . . . . . . . . 20
4.2. Uplink ACK-on-Error Examples: Single-byte SCHC Header . . 21 4.2. Uplink ACK-on-Error Examples: Single-byte SCHC Header . . 21
4.3. SCHC Abort Examples . . . . . . . . . . . . . . . . . . . 28 4.3. SCHC Abort Examples . . . . . . . . . . . . . . . . . . . 27
5. Security considerations . . . . . . . . . . . . . . . . . . . 30 5. Security considerations . . . . . . . . . . . . . . . . . . . 28
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 30 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 28
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 31 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 29
7.1. Normative References . . . . . . . . . . . . . . . . . . 31 7.1. Normative References . . . . . . . . . . . . . . . . . . 29
7.2. Informative References . . . . . . . . . . . . . . . . . 31 7.2. Informative References . . . . . . . . . . . . . . . . . 29
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 31 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 29
1. Introduction 1. Introduction
The Generic Framework for Static Context Header Compression and The Generic Framework for Static Context Header Compression and
Fragmentation (SCHC) specification [RFC8724] describes two Fragmentation (SCHC) specification [RFC8724] describes two
mechanisms: i) a frame fragmentation and loss recovery functionality, mechanisms: i) a frame fragmentation and loss recovery functionality,
and ii) an application header compression scheme. Either can be used and ii) an application header compression scheme. Either can be used
on top of all the four LWPAN technologies defined in [RFC8376]. on top of all the four LWPAN technologies defined in [RFC8376].
These LPWANs have similar characteristics such as star-oriented These LPWANs have similar characteristics such as star-oriented
topologies, network architecture, connected devices with built-in topologies, network architecture, connected devices with built-in
skipping to change at page 4, line 22 skipping to change at page 4, line 22
| SCHC C/D & F/R | | | | SCHC C/D & F/R | | |
| | | | | | | |
+-------+--------+ +--------+-----+ +-------+--------+ +--------+-----+
$ . $ .
$ +---------+ +--------------+ +---------+ . $ +---------+ +--------------+ +---------+ .
$ | | | | | Network | . $ | | | | | Network | .
+~~ |Sigfox BS| |Sigfox Network| | SCHC | . +~~ |Sigfox BS| |Sigfox Network| | SCHC | .
| (RG) | === | (NGW) | === |C/D & F/R|..... | (RG) | === | (NGW) | === |C/D & F/R|.....
+---------+ +--------------+ +---------+ +---------+ +--------------+ +---------+
Figure 1: Network Architecture Figure 1: Network Architecture
In the case of the global Sigfox Network, RGs (or Base Stations) are In the case of the global Sigfox Network, RGs (or Base Stations) are
distributed over multiple countries wherever the Sigfox LPWAN service distributed over multiple countries wherever the Sigfox LPWAN service
is provided. The NGW (or cloud-based Sigfox Core Network) is a is provided. The NGW (or cloud-based Sigfox Core Network) is a
single entity that connects to all Sigfox base stations in the world, single entity that connects to all Sigfox base stations in the world,
providing hence a global single star network topology. providing hence a global single star network topology.
The Device sends application flows that are compressed and/or The Device sends application flows that are compressed and/or
fragmented by a SCHC Compressor/Decompressor (SCHC C/D + F/R) to fragmented by a SCHC Compressor/Decompressor (SCHC C/D + F/R) to
reduce headers size and/or fragment the packet. The resulting SCHC reduce headers size and/or fragment the packet. The resulting SCHC
skipping to change at page 5, line 24 skipping to change at page 5, line 24
can be combined at the NGW providing for extra reliability based on can be combined at the NGW providing for extra reliability based on
the triple diversity (i.e., time, space and frequency). the triple diversity (i.e., time, space and frequency).
A detailed description of the Sigfox Radio Protocol can be found in A detailed description of the Sigfox Radio Protocol can be found in
[sigfox-spec]. [sigfox-spec].
Messages sent from the Device to the Network are delivered by the Messages sent from the Device to the Network are delivered by the
Sigfox network (NGW) to the Network SCHC C/D + F/R through a Sigfox network (NGW) to the Network SCHC C/D + F/R through a
callback/API with the following information: callback/API with the following information:
o Device ID * Device ID
o Message Sequence Number * Message Sequence Number
o Message Payload * Message Payload
o Message Timestamp * Message Timestamp
o Device Geolocation (optional) * Device Geolocation (optional)
o RSSI (optional) * RSSI (optional)
o Device Temperature (optional) * Device Temperature (optional)
o Device Battery Voltage (optional) * Device Battery Voltage (optional)
The Device ID is a globally unique identifier assigned to the Device, The Device ID is a globally unique identifier assigned to the Device,
which is included in the Sigfox header of every message. The Message which is included in the Sigfox header of every message. The Message
Sequence Number is a monotonically increasing number identifying the Sequence Number is a monotonically increasing number identifying the
specific transmission of this uplink message, and it is also part of specific transmission of this uplink message, and it is also part of
the Sigfox header. The Message Payload corresponds to the payload the Sigfox header. The Message Payload corresponds to the payload
that the Device has sent in the uplink transmission. that the Device has sent in the uplink transmission.
The Message Timestamp, Device Geolocation, RSSI, Device Temperature The Message Timestamp, Device Geolocation, RSSI, Device Temperature
and Device Battery Voltage are metadata parameters provided by the and Device Battery Voltage are metadata parameters provided by the
skipping to change at page 6, line 15 skipping to change at page 6, line 15
Only messages that have passed the L2 Cyclic Redundancy Check (CRC) Only messages that have passed the L2 Cyclic Redundancy Check (CRC)
at network reception are delivered by the Sigfox Network to the at network reception are delivered by the Sigfox Network to the
Network SCHC C/D + F/R. Network SCHC C/D + F/R.
+---------------+-----------------+ +---------------+-----------------+
| Sigfox Header | Sigfox payload | | Sigfox Header | Sigfox payload |
+---------------+---------------- + +---------------+---------------- +
| SCHC message | | SCHC message |
+-----------------+ +-----------------+
Figure 2: SCHC Message in Sigfox Figure 2: SCHC Message in Sigfox
Figure 2 shows a SCHC Message sent over Sigfox, where the SCHC Figure 2 shows a SCHC Message sent over Sigfox, where the SCHC
Message could be a full SCHC Packet (e.g. compressed) or a SCHC Message could be a full SCHC Packet (e.g. compressed) or a SCHC
Fragment (e.g. a piece of a bigger SCHC Packet). Fragment (e.g. a piece of a bigger SCHC Packet).
3.3. Downlink 3.3. Downlink
Downlink transmissions are Device-driven and can only take place Downlink transmissions are Device-driven and can only take place
following an uplink communication that so indicates. Hence, a Device following an uplink communication that so indicates. Hence, a Device
explicitly indicates its intention to receive a downlink message explicitly indicates its intention to receive a downlink message
skipping to change at page 8, line 11 skipping to change at page 8, line 11
The SCHC fragmentation supports several modes of operation. These The SCHC fragmentation supports several modes of operation. These
modes have different advantages and disadvantages depending on the modes have different advantages and disadvantages depending on the
specifics of the underlying LPWAN technology and application Use specifics of the underlying LPWAN technology and application Use
Case. This section describes how the SCHC fragmentation Case. This section describes how the SCHC fragmentation
functionality should optimally be implemented when used over a Sigfox functionality should optimally be implemented when used over a Sigfox
LPWAN for the most typical Use Case applications. LPWAN for the most typical Use Case applications.
As described in section 8.2.3 of [RFC8724], the integrity of the As described in section 8.2.3 of [RFC8724], the integrity of the
fragmentation-reassembly process of a SCHC Packet MUST be checked at fragmentation-reassembly process of a SCHC Packet MUST be checked at
the receive end. Since only UL messages/fragments that have passed the receive end. Since only UL messages/fragments that have passed
the CRC-check are delivered to the Network SCHC C/D + F/R, and each the Sigfox CRC-check are delivered to the Network SCHC C/D + F/R,
one has an associated Sigfox Message Sequence Number (see integrity can be guaranteed when no consecutive messages are missing
Section 3.2), integrity can be guaranteed when no consecutive from the sequence and all FCN bitmaps are complete. With this
messages are missing from the sequence and all FCN bitmaps are functionality in mind, and in order to save protocol and processing
complete. In order to support multiple flows/RuleIDs (potentially overhead, the use of a Reassembly Check Sequence (RCS) as described
interleaved), the implementation of a central message sequence in Section 3.6.1.5 is RECOMMENDED.
counter at the Network SCHC C/D + F/R is required. With this
functionality and in order to save protocol overhead, the use of a
dedicated Reassembly Check Sequence (RCS) is NOT RECOMMENDED.
The L2 Word Size used by Sigfox is 1 byte (8 bits). The L2 Word Size used by Sigfox is 1 byte (8 bits).
3.6.1. Uplink Fragmentation 3.6.1. Uplink Fragmentation
Sigfox uplink transmissions are completely asynchronous and take Sigfox uplink transmissions are completely asynchronous and take
place in any random frequency of the allowed uplink bandwidth place in any random frequency of the allowed uplink bandwidth
allocation. In addition, devices may go to deep sleep mode, and then allocation. In addition, devices may go to deep sleep mode, and then
wake up and transmit whenever there is a need to send information to wake up and transmit whenever there is a need to send information to
the network. Data packets are self-contained (aka "message in a the network. Data packets are self-contained (aka "message in a
skipping to change at page 9, line 22 skipping to change at page 9, line 20
to be marked with FCN = X-1. Consecutive fragments MUST be marked to be marked with FCN = X-1. Consecutive fragments MUST be marked
with decreasing FCN values, having the last fragment marked with FCN with decreasing FCN values, having the last fragment marked with FCN
= (All-1). Hence, even though the No-ACK mode does not allow = (All-1). Hence, even though the No-ACK mode does not allow
recovering missing fragments, it allows indicating implicitly the recovering missing fragments, it allows indicating implicitly the
size of the expected packet to the Network and hence detect at the size of the expected packet to the Network and hence detect at the
receiver side whether all fragments have been received or not. receiver side whether all fragments have been received or not.
The RECOMMENDED Fragmentation Header size is 8 bits, and it is The RECOMMENDED Fragmentation Header size is 8 bits, and it is
composed as follows: composed as follows:
o RuleID size: 4 bits * RuleID size: 4 bits
o DTag size (T): 0 bits * DTag size (T): 0 bits
o Fragment Compressed Number (FCN) size (N): 4 bits * Fragment Compressed Number (FCN) size (N): 4 bits
o As per [RFC8724], in the No-ACK mode the W (window) field is not * As per [RFC8724], in the No-ACK mode the W (window) field is not
present. present.
o RCS size: 0 bits (Not used) * RCS size: 0 bits (Not used)
3.6.1.2. Uplink ACK-on-Error Mode: Single-byte SCHC Header 3.6.1.2. Uplink ACK-on-Error Mode: Single-byte SCHC Header
ACK-on-Error with single-byte header is RECOMMENDED for medium to ACK-on-Error with single-byte header is RECOMMENDED for medium to
large size packets that need to be sent reliably. ACK-on-Error is large size packets that need to be sent reliably. ACK-on-Error is
optimal for Sigfox transmissions, since it leads to a reduced number optimal for Sigfox transmissions, since it leads to a reduced number
of ACKs in the lower capacity downlink channel. Also, downlink of ACKs in the lower capacity downlink channel. Also, downlink
messages can be sent asynchronously and opportunistically. messages can be sent asynchronously and opportunistically.
Allowing transmission of packets/files up to 300 bytes long, the SCHC Allowing transmission of packets/files up to 300 bytes long, the SCHC
uplink Fragmentation Header size is RECOMMENDED to be 8 bits in size uplink Fragmentation Header size is RECOMMENDED to be 8 bits in size
and is composed as follows: and is composed as follows:
o Rule ID size: 3 bits * Rule ID size: 3 bits
o DTag size (T): 0 bits
o Window index (W) size (M): 2 bits * DTag size (T): 0 bits
o Fragment Compressed Number (FCN) size (N): 3 bits * Window index (W) size (M): 2 bits
o MAX_ACK_REQUESTS: 5
o WINDOW_SIZE: 7 (with a maximum value of FCN=0b110) * Fragment Compressed Number (FCN) size (N): 3 bits
o Tile size: 11 bytes * MAX_ACK_REQUESTS: 5
* WINDOW_SIZE: 7 (with a maximum value of FCN=0b110)
o Retransmission Timer: Application-dependent * Tile size: 11 bytes
o Inactivity Timer: Application-dependent * Retransmission Timer: Application-dependent
o RCS size: 0 bits (Not used) * Inactivity Timer: Application-dependent
The correspondent SCHC ACK in the downlink is 13 bits long, so * RCS size: 3 bits
padding is needed to complete the required 64 bits of Sigfox payload.
3.6.1.3. Uplink ACK-on-Error Mode: Two-byte SCHC Header 3.6.1.3. Uplink ACK-on-Error Mode: Two-byte SCHC Header Option 1
ACK-on-Error with two-byte header is RECOMMENDED for very large size ACK-on-Error with two-byte header is RECOMMENDED for very large size
packets that need to be sent reliably. ACK-on-Error is optimal for packets that need to be sent reliably. ACK-on-Error is optimal for
Sigfox transmissions, since it leads to a reduced number of ACKs in Sigfox transmissions, since it leads to a reduced number of ACKs in
the lower capacity downlink channel. Also, downlink messages can be the lower capacity downlink channel. Also, downlink messages can be
sent asynchronously and opportunistically. sent asynchronously and opportunistically.
In order to allow transmission of large packets/files up to 480 bytes
long, the SCHC uplink Fragmentation Header size is RECOMMENDED to be
16 bits in size and composed as follows:
* Rule ID size is: 6 bits
* DTag size (T) is: 0 bits
* Window index (W) size (M): 2 bits
* Fragment Compressed Number (FCN) size (N): 4 bits.
* MAX_ACK_REQUESTS: 5
* WINDOW_SIZE: 12 (with a maximum value of FCN=0b1011)
* Tile size: 10 bytes
* Retransmission Timer: Application-dependent
* Inactivity Timer: Application-dependent
* RCS size: 4 bits
3.6.1.4. Uplink ACK-on-Error Mode: Two-byte SCHC Header Option 2
In order to allow transmission of very large packets/files up to 2250 In order to allow transmission of very large packets/files up to 2250
bytes long, the SCHC uplink Fragmentation Header size is RECOMMENDED bytes long, the SCHC uplink Fragmentation Header size is RECOMMENDED
to be 16 bits in size and composed as follows: to be 16 bits in size and composed as follows:
o Rule ID size is: 8 bits * Rule ID size is: 8 bits
o DTag size (T) is: 0 bits * DTag size (T) is: 0 bits
o Window index (W) size (M): 3 bits * Window index (W) size (M): 3 bits
o Fragment Compressed Number (FCN) size (N): 5 bits. * Fragment Compressed Number (FCN) size (N): 5 bits.
o MAX_ACK_REQUESTS: 5 * MAX_ACK_REQUESTS: 5
o WINDOW_SIZE: 31 (with a maximum value of FCN=0b11110) * WINDOW_SIZE: 31 (with a maximum value of FCN=0b11110)
o Tile size: 10 bytes * Tile size: 10 bytes
o Retransmission Timer: Application-dependent * Retransmission Timer: Application-dependent
o Inactivity Timer: Application-dependent * Inactivity Timer: Application-dependent
o RCS size: 0 bits (Not used) * RCS size: 5 bits
The correspondent SCHC ACK in the downlink is 43 bits long, so
padding is needed to complete the required 64 bits of Sigfox payload.
3.6.1.4. All-1 behaviour + Sigfox Sequence Number 3.6.1.5. All-1 and RCS behaviour
For ACK-on-Error, as defined in [RFC8724], it is expected that the For ACK-on-Error, as defined in [RFC8724], it is expected that the
last SCHC fragment of the last window will always be delivered with last SCHC fragment of the last window will always be delivered with
an All-1 FCN. Since this last window may not be full (i.e. it may be an All-1 FCN. Since this last window may not be full (i.e. it may be
comprised of less than WINDOW_SIZE fragments), an All-1 fragment may comprised of less than WINDOW_SIZE fragments), an All-1 fragment may
follow a value of FCN higher than 1 (0b01). In this case, the follow a value of FCN higher than 1 (0b01). In this case, the
receiver could not derive from the FCN values alone whether there are receiver could not derive from the FCN values alone whether there are
any missing fragments right before the All-1 fragment or not. any missing fragments right before the All-1 fragment or not.
However, since a Message Sequence Number is provided by the Sigfox For Rules where the number of fragments in the last window is
protocol together with the Sigfox Payload, the receiver can detect if unknown, an RCS field MUST be used, indicating the number of
there are missing fragments before the All-1 and hence construct the fragments in the last window, including the All-1. With this RCS
corresponding SCHC ACK Bitmap accordingly. value, the receiver can detect if there are missing fragments before
the All-1 and hence construct the corresponding SCHC ACK Bitmap
accordingly, and send it in response to the All-1.
3.6.2. Downlink Fragmentation 3.6.2. Downlink Fragmentation
In some LPWAN technologies, as part of energy-saving techniques, In some LPWAN technologies, as part of energy-saving techniques,
downlink transmission is only possible immediately after an uplink downlink transmission is only possible immediately after an uplink
transmission. This allows the device to go in a very deep sleep mode transmission. This allows the device to go in a very deep sleep mode
and preserve battery, without the need to listen to any information and preserve battery, without the need to listen to any information
from the network. This is the case for Sigfox-enabled devices, which from the network. This is the case for Sigfox-enabled devices, which
can only listen to downlink communications after performing an uplink can only listen to downlink communications after performing an uplink
transmission and requesting a downlink. transmission and requesting a downlink.
skipping to change at page 12, line 5 skipping to change at page 12, line 25
[RFC8376] they can carry up to 8 bytes payload. Hence, a single SCHC [RFC8376] they can carry up to 8 bytes payload. Hence, a single SCHC
Tile size per mode can be defined so that every Sigfox message always Tile size per mode can be defined so that every Sigfox message always
carries one SCHC Tile. carries one SCHC Tile.
For reliable downlink fragment transmission, the ACK-Always mode is For reliable downlink fragment transmission, the ACK-Always mode is
RECOMMENDED. RECOMMENDED.
The SCHC downlink Fragmentation Header size is RECOMMENDED to be 8 The SCHC downlink Fragmentation Header size is RECOMMENDED to be 8
bits in size and is composed as follows: bits in size and is composed as follows:
o RuleID size: 3 bits * RuleID size: 3 bits
o DTag size (T): 0 bits * DTag size (T): 0 bits
o Window index (W) size (M) is: 0 bits * Window index (W) size (M) is: 0 bits
o Fragment Compressed Number (FCN) size (N): 5 bits * Fragment Compressed Number (FCN) size (N): 5 bits
o MAX_ACK_REQUESTS: 5 * MAX_ACK_REQUESTS: 5
o WINDOW_SIZE: 31 (with a maximum value of FCN=0b11110) * WINDOW_SIZE: 31 (with a maximum value of FCN=0b11110)
o Tile size: 7 bytes * Tile size: 7 bytes
o Retransmission Timer: Application-dependent * Retransmission Timer: Application-dependent
o Inactivity Timer: Application-dependent * Inactivity Timer: Application-dependent
o RCS size: 0 bits (Not used) * RCS size: 0 bits (Not used)
3.7. SCHC-over-Sigfox F/R Message Formats 3.7. SCHC-over-Sigfox F/R Message Formats
This section depicts the different formats of SCHC Fragment, SCHC ACK This section depicts the different formats of SCHC Fragment, SCHC ACK
(including the SCHC Compound ACK defined in (including the SCHC Compound ACK defined in
[I-D.ietf-lpwan-schc-compound-ack]), and SCHC Abort used in SCHC over [I-D.ietf-lpwan-schc-compound-ack]), and SCHC Abort used in SCHC over
Sigfox. Sigfox.
3.7.1. Uplink ACK-on-Error Mode: Single-byte SCHC Header 3.7.1. Uplink ACK-on-Error Mode: Single-byte SCHC Header
skipping to change at page 12, line 46 skipping to change at page 13, line 19
Figure 3 shows an example of a regular SCHC fragment for all Figure 3 shows an example of a regular SCHC fragment for all
fragments except the last one. As tiles are of 11 bytes, padding fragments except the last one. As tiles are of 11 bytes, padding
MUST NOT be added. MUST NOT be added.
|-- SCHC Fragment Header --| |-- SCHC Fragment Header --|
+ ------------------------ + ------- + + ------------------------ + ------- +
| RuleID | W | FCN | Payload | | RuleID | W | FCN | Payload |
+ ------ + ------ + ------ + ------- + + ------ + ------ + ------ + ------- +
| 3 bits | 2 bits | 3 bits | 88 bits | | 3 bits | 2 bits | 3 bits | 88 bits |
Figure 3: Regular SCHC Fragment format for all fragments except the Figure 3: Regular SCHC Fragment format for all fragments except
last one the last one
The use of SCHC ACK REQ is NOT RECOMMENDED, instead the All-1 SCHC The use of SCHC ACK REQ is NOT RECOMMENDED, instead the All-1 SCHC
Fragment SHOULD be used to request a SCHC ACK from the receiver Fragment SHOULD be used to request a SCHC ACK from the receiver
(Network SCHC). As per [RFC8724], the All-0 message is (Network SCHC). As per [RFC8724], the All-0 message is
distinguishable from the SCHC ACK REQ (All-1 message). The distinguishable from the SCHC ACK REQ (All-1 message). The
penultimate tile of a SCHC Packet is of regular size. penultimate tile of a SCHC Packet is of regular size.
3.7.1.2. All-1 SCHC Fragment 3.7.1.2. All-1 SCHC Fragment
Figure 4 shows an example of the All-1 message. The All-1 message Figure 4 shows an example of the All-1 message. The All-1 message
MUST contain the last tile of the SCHC Packet. The last tile MUST be MUST contain the last tile of the SCHC Packet. The last tile MUST be
of at least 1 byte (one L2 word). Padding MUST NOT be added, as the of at least 1 byte (one L2 word). Padding MUST NOT be added, as the
resulting size is L2-word-multiple. resulting size is L2-word-multiple.
|--- SCHC Fragment Header ---| |--- SCHC Fragment Header ---|
+ --------------------------- + ------------ + + --------------------------- + ------------ +
| RuleID | W | FCN=ALL-1 | Payload | | RuleID | W | FCN=ALL-1 | Payload |
+ ------ + ------ + --------- + ------------ + + ------ + ------ + --------- + ------------ +
| 3 bits | 2 bits | 3 bits | 8 to 88 bits | | 3 bits | 2 bits | 3 bits | 8 to 88 bits |
Figure 4: All-1 SCHC Message format with last tile Figure 4: All-1 SCHC Message format with last tile
As per [RFC8724] the All-1 must be distinguishable from a SCHC As per [RFC8724] the All-1 must be distinguishable from a SCHC
Sender-Abort message (with same Rule ID, M, and N values). The All-1 Sender-Abort message (with same Rule ID, M, and N values). The All-1
MUST have the last tile of the SCHC Packet, which MUST be of at least MUST have the last tile of the SCHC Packet, which MUST be of at least
1 byte. The SCHC Sender-Abort message header size is of 1 byte, with 1 byte. The SCHC Sender-Abort message header size is of 1 byte, with
no padding bits. no padding bits.
For the All-1 message to be distinguishable from the Sender-Abort For the All-1 message to be distinguishable from the Sender-Abort
message, the Sender-Abort message MUST be of 1 byte (only header with message, the Sender-Abort message MUST be of 1 byte (only header with
no padding). This way, the minimum size of the All-1 is 2 bytes, and no padding). This way, the minimum size of the All-1 is 2 bytes, and
skipping to change at page 14, line 23 skipping to change at page 14, line 37
|---- SCHC ACK Header ----|-W = x -|...| --- W = x + i ---| |---- SCHC ACK Header ----|-W = x -|...| --- W = x + i ---|
+ ----------------------- + ------ +...+ ------- + ------ + ------- + + ----------------------- + ------ +...+ ------- + ------ + ------- +
| RuleID | W=b'x | C=b'0 | Bitmap |...| W=b'x+i | Bitmap | b'0-pad | | RuleID | W=b'x | C=b'0 | Bitmap |...| W=b'x+i | Bitmap | b'0-pad |
+ ------ + ------ + ----- + ------ +...+ ------- + ------ + ------- + + ------ + ------ + ----- + ------ +...+ ------- + ------ + ------- +
| 3 bits | 2 bits | 1 bit | 7 bits | | 2 bits | 7 bits | | 3 bits | 2 bits | 1 bit | 7 bits | | 2 bits | 7 bits |
On top are noted the window number of the corresponding bitmap. On top are noted the window number of the corresponding bitmap.
Losses are found in windows x,...,x+i. Losses are found in windows x,...,x+i.
Figure 6: SCHC Compound ACK message format Figure 6: SCHC Compound ACK message format
The following figures show examples of the SCHC Compound ACK message The following figures show examples of the SCHC Compound ACK message
format, when used on SCHC over Sigfox. format, when used on SCHC over Sigfox.
|---- SCHC ACK Header ----|- W=00 -|----- W=01 ------| |---- SCHC ACK Header ----|- W=00 -|----- W=01 ------|
+ ----------------------- + ------ + ------ + ------ + ------- + + ----------------------- + ------ + ------ + ------ + ------- +
| RuleID | W=b'00 | C=b'0 | Bitmap | W=b'01 | Bitmap | b'0-pad | | RuleID | W=b'00 | C=b'0 | Bitmap | W=b'01 | Bitmap | b'0-pad |
+ ------ + ------ + ----- + ------ + ------ + ------ + ------- + + ------ + ------ + ----- + ------ + ------ + ------ + ------- +
| 3 bits | 2 bits | 1 bit | 7 bits | 2 bits | 7 bits | 42 bits | | 3 bits | 2 bits | 1 bit | 7 bits | 2 bits | 7 bits | 42 bits |
skipping to change at page 15, line 34 skipping to change at page 15, line 44
|3 bits|2 bits|1 bit|7 bits|2 bits|7 bits| |3 bits|2 bits|1 bit|7 bits|2 bits|7 bits|
|--- W=b'10 --|--- W=b'11 --| |--- W=b'10 --|--- W=b'11 --|
|------+------+------+------+-------+ |------+------+------+------+-------+
... |W=b'10|Bitmap|W=b'11|Bitmap|b'0-pad| ... |W=b'10|Bitmap|W=b'11|Bitmap|b'0-pad|
|------+------+------+------+-------+ |------+------+------+------+-------+
|2 bits|7 bits|2 bits|7 bits|24 bits| |2 bits|7 bits|2 bits|7 bits|24 bits|
Losses are found in windows 00, 01, 10 and 11. Losses are found in windows 00, 01, 10 and 11.
Figure 10: SCHC Compound ACK example 4 Figure 10: SCHC Compound ACK example 4
|- SCHC ACK Header -|W=b'00|-- W=b'01 ---|--- W=b'10 --| |- SCHC ACK Header -|W=b'00|-- W=b'01 ---|--- W=b'10 --|
+-------------------+------+------+------+------+------+-------+ +-------------------+------+------+------+------+------+-------+
|RuleID|W=b'00|C=b'0|Bitmap|W=b'01|Bitmap|W=b'10|Bitmap|b'0-pad| |RuleID|W=b'00|C=b'0|Bitmap|W=b'01|Bitmap|W=b'10|Bitmap|b'0-pad|
+------+------+-----+------+------+------+------+------+-------+ +------+------+-----+------+------+------+------+------+-------+
|3 bits|2 bits|1 bit|7 bits|2 bits|7 bits|2 bits|7 bits|33 bits| |3 bits|2 bits|1 bit|7 bits|2 bits|7 bits|2 bits|7 bits|33 bits|
Losses are found in windows 00, 01 and 10. Losses are found in windows 00, 01 and 10.
Figure 11: SCHC Compound ACK example 5 Figure 11: SCHC Compound ACK example 5
3.7.1.4. SCHC Sender-Abort Message format 3.7.1.4. SCHC Sender-Abort Message format
|---- Sender-Abort Header ----| |---- Sender-Abort Header ----|
+ --------------------------- + + --------------------------- +
| RuleID | W | FCN=ALL-1 | | RuleID | W | FCN=ALL-1 |
+ ------ + ------ + --------- + + ------ + ------ + --------- +
| 3 bits | 2 bits | 3 bits | | 3 bits | 2 bits | 3 bits |
Figure 12: SCHC Sender-Abort message format Figure 12: SCHC Sender-Abort message format
skipping to change at page 16, line 25 skipping to change at page 16, line 35
3.7.1.5. SCHC Receiver-Abort Message format 3.7.1.5. SCHC Receiver-Abort Message format
|- Receiver-Abort Header -| |- Receiver-Abort Header -|
+ ----------------------- + ------- + + ----------------------- + ------- +
| RuleID | W=b'11 | C=b'1 | b'1-pad | | RuleID | W=b'11 | C=b'1 | b'1-pad |
+ ------ + ------ + ----- + ------- + + ------ + ------ + ----- + ------- +
| 3 bits | 2 bits | 1 bit | 58 bits | | 3 bits | 2 bits | 1 bit | 58 bits |
Figure 13: SCHC Receiver-Abort message format Figure 13: SCHC Receiver-Abort message format
3.7.2. Uplink ACK-on-Error Mode: Two-byte SCHC Header 3.7.2. Uplink ACK-on-Error Mode: Two-byte SCHC Header Option 2
3.7.2.1. Regular SCHC Fragment 3.7.2.1. Regular SCHC Fragment
Figure 14 shows an example of a regular SCHC fragment for all Figure 14 shows an example of a regular SCHC fragment for all
fragments except the last one. The penultimate tile of a SCHC Packet fragments except the last one. The penultimate tile of a SCHC Packet
is of the regular size. is of the regular size.
|-- SCHC Fragment Header --| |-- SCHC Fragment Header --|
+ ------------------------ + ------- + + ------------------------ + ------- +
| RuleID | W | FCN | Payload | | RuleID | W | FCN | Payload |
+ ------ + ------ + ------ + ------- + + ------ + ------ + ------ + ------- +
| 8 bits | 3 bits | 5 bits | 80 bits | | 8 bits | 3 bits | 5 bits | 80 bits |
Figure 14: Regular SCHC Fragment format for all fragments except the Figure 14: Regular SCHC Fragment format for all fragments except
last one the last one
The use of SCHC ACK is NOT RECOMMENDED, instead the All-1 SCHC The use of SCHC ACK is NOT RECOMMENDED, instead the All-1 SCHC
Fragment SHOULD be used to request a SCHC ACK from the receiver Fragment SHOULD be used to request a SCHC ACK from the receiver
(Network SCHC). As per [RFC8724], the All-0 message is (Network SCHC). As per [RFC8724], the All-0 message is
distinguishable from the SCHC ACK REQ (All-1 message). distinguishable from the SCHC ACK REQ (All-1 message).
3.7.2.2. All-1 SCHC Fragment 3.7.2.2. All-1 SCHC Fragment
Figure 15 shows an example of the All-1 message. The All-1 message Figure 15 shows an example of the All-1 message. The All-1 message
MUST contain the last tile of the SCHC Packet. MUST contain the last tile of the SCHC Packet.
skipping to change at page 17, line 41 skipping to change at page 17, line 46
Figure 16 shows the SCHC ACK format when all fragments have been Figure 16 shows the SCHC ACK format when all fragments have been
correctly received (C=1). Padding MUST be added to complete the correctly received (C=1). Padding MUST be added to complete the
64-bit Sigfox downlink frame payload size. 64-bit Sigfox downlink frame payload size.
|----- SCHC ACK Header ----| |----- SCHC ACK Header ----|
+ ------------------------ + ------ + + ------------------------ + ------ +
| RuleID | W | C=b'1 | b'0-pad | | RuleID | W | C=b'1 | b'0-pad |
+ ------ + ------ + ----- + ------- + + ------ + ------ + ----- + ------- +
| 8 bits | 3 bits | 1 bit | 52 bits | | 8 bits | 3 bits | 1 bit | 52 bits |
Figure 16: SCHC Success ACK message format Figure 16: SCHC Success ACK message format
The SCHC Compound ACK message MUST be used in case SCHC fragment The SCHC Compound ACK message MUST be used in case SCHC fragment
losses are found in any window of the SCHC Packet (C=0). The SCHC losses are found in any window of the SCHC Packet (C=0). The SCHC
Compound ACK message format is shown in Figure 17. The SCHC Compound Compound ACK message format is shown in Figure 17. The SCHC Compound
ACK can report up to 3 windows with losses. The window number (W) ACK can report up to 3 windows with losses. The window number (W)
and its corresponding bitmap MUST be ordered from the lowest-numbered and its corresponding bitmap MUST be ordered from the lowest-numbered
window number to the highest-numbered window. If window numbered 000 window number to the highest-numbered window. If window numbered 000
is present in the SCHC Compound ACK, the window number 000 MUST be is present in the SCHC Compound ACK, the window number 000 MUST be
placed between the Rule ID and C bit to avoid confusion with padding placed between the Rule ID and C bit to avoid confusion with padding
bits. The SCHC Compound ACK MUST be 0 padded (Padding bits must be bits.
0).
When sent in the downlink, the SCHC Compound ACK MUST be 0 padded
(Padding bits must be 0) to complement the 64 bits required by the
Sigfox payload.
|- SCHC ACK Header -| W=b'x |...|--- W=b'x+i ---| |- SCHC ACK Header -| W=b'x |...|--- W=b'x+i ---|
+-------------------+-------+...+-------+-------+-------+ +-------------------+-------+...+-------+-------+-------+
|RuleID|W=b'x |C=b'0|Bitmap |...|W=b'x+i|Bitmap |b'0-pad| |RuleID|W=b'x |C=b'0|Bitmap |...|W=b'x+i|Bitmap |b'0-pad|
+------+------+-----+-------+...|-------+-------+-------+ +------+------+-----+-------+...|-------+-------+-------+
|8 bits|3 bits|1 bit|31 bits| | 3 bits|31 bits| |8 bits|3 bits|1 bit|31 bits| | 3 bits|31 bits|
On top are noted the window number On top are noted the window number
of the corresponding bitmap. of the corresponding bitmap.
Losses are found in windows x,...,x+i. Losses are found in windows x,...,x+i.
skipping to change at page 18, line 42 skipping to change at page 19, line 4
|-- Receiver-Abort Header -| |-- Receiver-Abort Header -|
+ ------------------------ + ------- + + ------------------------ + ------- +
| RuleID | W=b'111 | C=b'1 | b'1-pad | | RuleID | W=b'111 | C=b'1 | b'1-pad |
+ ------ + ------- + ----- + ------- + + ------ + ------- + ----- + ------- +
| 8 bits | 3 bits | 1 bit | 52 bits | | 8 bits | 3 bits | 1 bit | 52 bits |
Figure 19: SCHC Receiver-Abort message format Figure 19: SCHC Receiver-Abort message format
3.8. SCHC-Sender Abort 3.8. SCHC-Sender Abort
* As defined in [RFC8724], a SCHC-Sender Abort can be triggered when
o As defined in [RFC8724], a SCHC-Sender Abort can be triggered when
the number of SCHC ACK REQ attempts is greater than or equal to the number of SCHC ACK REQ attempts is greater than or equal to
MAX_ACK_REQUESTS. In the case of SCHC/Sigfox, a SCHC-Sender Abort MAX_ACK_REQUESTS. In the case of SCHC/Sigfox, a SCHC-Sender Abort
MUST be sent if the number of repeated All-1s sent in a row is MUST be sent if the number of repeated All-1s (i.e., with the same
greater than or equal to MAX_ACK_REQUESTS. bitmap) sent in sequence is greater than or equal to
MAX_ACK_REQUESTS.
o The MAX_ACK_REQUEST counter MUST be reset when a SCHC ACK is * The MAX_ACK_REQUEST counter MUST be reset when a SCHC ACK is
successfully received. successfully received.
3.9. SCHC-Receiver Abort 3.9. SCHC-Receiver Abort
o As defined in [RFC8724], a SCHC-Receiver Abort is triggered when * As defined in [RFC8724], a SCHC-Receiver Abort is triggered when
the receiver has no RuleID and DTag pairs available for a new the receiver has no RuleID and DTag pairs available for a new
session. In the case of SCHC/Sigfox a SCHC-Receiver Abort MUST be session. In the case of SCHC/Sigfox a SCHC-Receiver Abort MUST be
sent if, for a single device, all the RuleIDs are being processed sent if, for a single device, all the RuleIDs are being processed
by the receiver (i.e., have an active session) at a certain time, by the receiver (i.e., have an active session) at a certain time
or if the RuleID of the fragment is not valid. and a new one is requested, or if the RuleID of the fragment is
not valid.
o A SCHC-Receiver Abort MUST be triggered when the Inactivity Timer * A SCHC-Receiver Abort MUST be triggered when the Inactivity Timer
expires. expires.
o A SCHC-Receiver Abort can be triggered when the number of ACK * A SCHC-Receiver Abort can be triggered when the number of ACK
attempts is not strictly less than MAX_ACK_REQUESTS. In the case attempts is not strictly less than MAX_ACK_REQUESTS. In the case
of SCHC/Sigfox, a SCHC-Receiver Abort MUST be sent if the number of SCHC/Sigfox, a SCHC-Receiver Abort MUST be sent if the number
of repeated SCHC ACKs sent in a row (i.e., synchronized with the of repeated SCHC ACKs sent in a row (i.e., synchronized with the
ACK REQ case) is greater than or equal to MAX_ACK_REQUESTS. ACK REQ case, and with identical bitmaps) is greater than or equal
to MAX_ACK_REQUESTS.
o For SCHC/Sigfox implementations, the MAX_ACK_REQUESTS counter MUST
be reset when a SCHC ACK is successfully received.
o Although a SCHC-Receiver Abort can be triggered at any point in * Although a SCHC-Receiver Abort can be triggered at any point in
time, a SCHC-Receiver Abort downlink message MUST only be sent time, a SCHC-Receiver Abort downlink message MUST only be sent
when there is a downlink transmission opportunity. when there is a downlink transmission opportunity.
3.10. Padding 3.10. Padding
The Sigfox payload fields have different characteristics in uplink The Sigfox payload fields have different characteristics in uplink
and downlink. and downlink.
Uplink frames can contain a payload size from 0 to 12 bytes. The Uplink frames can contain a payload size from 0 to 12 bytes. The
Sigfox radio protocol allows sending zero bits, one single bit of Sigfox radio protocol allows sending zero bits, one single bit of
skipping to change at page 21, line 15 skipping to change at page 21, line 15
Sender Receiver Sender Receiver
|-------FCN=6, Seq=1-------->| |-------FCN=6, Seq=1-------->|
|-------FCN=5, Seq=2----X--->| |-------FCN=5, Seq=2----X--->|
|-------FCN=4, Seq=3-------->| |-------FCN=4, Seq=3-------->|
|-------FCN=3, Seq=4-------->| |-------FCN=3, Seq=4-------->|
|-------FCN=2, Seq=5-------->| |-------FCN=2, Seq=5-------->|
|-------FCN=1, Seq=6-------->| |-------FCN=1, Seq=6-------->|
|-------FCN=15, Seq=7------->| Missing Fragment - Unable to reassemble |-------FCN=15, Seq=7------->| Missing Fragment - Unable to reassemble
(End) (End)
Figure 21: UL No-ACK Losses (scenario 1) Figure 21: UL No-ACK Losses (scenario 1)
4.2. Uplink ACK-on-Error Examples: Single-byte SCHC Header 4.2. Uplink ACK-on-Error Examples: Single-byte SCHC Header
The single-byte SCHC header ACK-on-Error mode allows sending up to 28 The single-byte SCHC header ACK-on-Error mode allows sending up to 28
fragments and packet sizes up to 300 bytes. The SCHC fragments may fragments and packet sizes up to 300 bytes. The SCHC fragments may
be delivered asynchronously and DL ACK can be sent opportunistically. be delivered asynchronously and DL ACK can be sent opportunistically.
Case No losses Case No losses
The downlink flag must be enabled in the sender UL message to allow a The downlink flag must be enabled in the sender UL message to allow a
skipping to change at page 21, line 45 skipping to change at page 21, line 45
|-----W=0, FCN=1, Seq=6----->| |-----W=0, FCN=1, Seq=6----->|
DL Enable |-----W=0, FCN=0, Seq=7----->| DL Enable |-----W=0, FCN=0, Seq=7----->|
(no ACK) (no ACK)
|-----W=1, FCN=6, Seq=8----->| |-----W=1, FCN=6, Seq=8----->|
|-----W=1, FCN=5, Seq=9----->| |-----W=1, FCN=5, Seq=9----->|
|-----W=1, FCN=4, Seq=10---->| |-----W=1, FCN=4, Seq=10---->|
DL Enable |-----W=1, FCN=7, Seq=11---->| All fragments received DL Enable |-----W=1, FCN=7, Seq=11---->| All fragments received
|<------ ACK, W=1, C=1 ------| C=1 |<------ ACK, W=1, C=1 ------| C=1
(End) (End)
Figure 22: UL ACK-on-Error No-Losses Figure 22: UL ACK-on-Error No-Losses
Case Fragment losses in first window Case Fragment losses in first window
In this case, fragments are lost in the first window (W=0). After In this case, fragments are lost in the first window (W=0). After
the first All-0 message arrives, the Receiver leverages the the first All-0 message arrives, the Receiver leverages the
opportunity and sends a SCHC ACK with the corresponding bitmap and opportunity and sends a SCHC ACK with the corresponding bitmap and
C=0. C=0.
After the loss fragments from the first window (W=0) are resent, the After the loss fragments from the first window (W=0) are resent, the
sender continues transmitting the fragments of the following window sender continues transmitting the fragments of the following window
(W=1) without opening a reception opportunity. Finally, the All-1 (W=1) without opening a reception opportunity. Finally, the All-1
fragment is sent, the downlink is enabled, and the SCHC ACK is fragment is sent, the downlink is enabled, and the SCHC ACK is
received with C=1. received with C=1.
skipping to change at page 22, line 36 skipping to change at page 22, line 33
|<------ ACK, W=0, C=0 ------| Bitmap:1011011 |<------ ACK, W=0, C=0 ------| Bitmap:1011011
|-----W=0, FCN=5, Seq=8----->| |-----W=0, FCN=5, Seq=8----->|
|-----W=0, FCN=2, Seq=9----->| |-----W=0, FCN=2, Seq=9----->|
|-----W=1, FCN=6, Seq=10---->| |-----W=1, FCN=6, Seq=10---->|
|-----W=1, FCN=5, Seq=11---->| |-----W=1, FCN=5, Seq=11---->|
|-----W=1, FCN=4, Seq=12---->| |-----W=1, FCN=4, Seq=12---->|
DL Enable |-----W=1, FCN=7, Seq=13---->| All fragments received DL Enable |-----W=1, FCN=7, Seq=13---->| All fragments received
|<------ ACK, W=1, C=1 ------| C=1 |<------ ACK, W=1, C=1 ------| C=1
(End) (End)
Figure 23: UL ACK-on-Error Losses on First Window Figure 23: UL ACK-on-Error Losses on First Window
Case Fragment All-0 lost in first window (W=0) Case Fragment All-0 lost in first window (W=0)
In this example, the All-0 of the first window (W=0) is lost. In this example, the All-0 of the first window (W=0) is lost.
Therefore, the Receiver waits for the next All-0 message of Therefore, the Receiver waits for the next All-0 message of
intermediate windows, or All-1 message of last window to generate the intermediate windows, or All-1 message of last window to generate the
corresponding SCHC ACK, notifying the absence of the All-0 of window corresponding SCHC ACK, notifying the absence of the All-0 of window
0. 0.
The sender resends the missing All-0 messages (with any other missing The sender resends the missing All-0 messages (with any other missing
skipping to change at page 23, line 24 skipping to change at page 23, line 24
|-----W=1, FCN=6, Seq=8----->| |-----W=1, FCN=6, Seq=8----->|
|-----W=1, FCN=5, Seq=9----->| |-----W=1, FCN=5, Seq=9----->|
|-----W=1, FCN=4, Seq=10---->| |-----W=1, FCN=4, Seq=10---->|
DL Enable |-----W=1, FCN=7, Seq=11---->| Missing Fragment W=0, FCN=0, Seq=7 DL Enable |-----W=1, FCN=7, Seq=11---->| Missing Fragment W=0, FCN=0, Seq=7
|<------ ACK, W=0, C=0 ------| Bitmap:1111110 |<------ ACK, W=0, C=0 ------| Bitmap:1111110
|-----W=0, FCN=0, Seq=13---->| All fragments received |-----W=0, FCN=0, Seq=13---->| All fragments received
DL Enable |-----W=1, FCN=7, Seq=14---->| DL Enable |-----W=1, FCN=7, Seq=14---->|
|<------ ACK, W=1, C=1 ------| C=1 |<------ ACK, W=1, C=1 ------| C=1
(End) (End)
Figure 24: UL ACK-on-Error All-0 Lost on First Window Figure 24: UL ACK-on-Error All-0 Lost on First Window
In the following diagram, besides the All-0 there are other fragment In the following diagram, besides the All-0 there are other fragment
losses in the first window (W=0). losses in the first window (W=0).
Sender Receiver Sender Receiver
|-----W=0, FCN=6, Seq=1----->| |-----W=0, FCN=6, Seq=1----->|
|-----W=0, FCN=5, Seq=2--X-->| |-----W=0, FCN=5, Seq=2--X-->|
|-----W=0, FCN=4, Seq=3----->| |-----W=0, FCN=4, Seq=3----->|
|-----W=0, FCN=3, Seq=4--X-->| |-----W=0, FCN=3, Seq=4--X-->|
|-----W=0, FCN=2, Seq=5----->| |-----W=0, FCN=2, Seq=5----->|
skipping to change at page 24, line 26 skipping to change at page 24, line 5
|-----W=1, FCN=4, Seq=10---->| |-----W=1, FCN=4, Seq=10---->|
DL Enable |-----W=1, FCN=7, Seq=11---->| Missing Fragment W=0 => FCN= 5, 3 and 0 DL Enable |-----W=1, FCN=7, Seq=11---->| Missing Fragment W=0 => FCN= 5, 3 and 0
|<------ ACK, W=0, C=0 ------| Bitmap:1010110 |<------ ACK, W=0, C=0 ------| Bitmap:1010110
|-----W=0, FCN=5, Seq=13---->| |-----W=0, FCN=5, Seq=13---->|
|-----W=0, FCN=3, Seq=14---->| |-----W=0, FCN=3, Seq=14---->|
|-----W=0, FCN=0, Seq=15---->| All fragments received |-----W=0, FCN=0, Seq=15---->| All fragments received
DL Enable |-----W=1, FCN=7, Seq=16---->| DL Enable |-----W=1, FCN=7, Seq=16---->|
|<------ ACK, W=1, C=1 ------| C=1 |<------ ACK, W=1, C=1 ------| C=1
(End) (End)
Figure 25: UL ACK-on-Error All-0 and other Fragments Lost on First Figure 25: UL ACK-on-Error All-0 and other Fragments Lost on
Window First Window
In the next examples, there are fragment losses in both the first In the next examples, there are fragment losses in both the first
(W=0) and second (W=1) windows. The retransmission cycles after the (W=0) and second (W=1) windows. The retransmission cycles after the
All-1 is sent (i.e., not in intermediate windows) should always All-1 is sent (i.e., not in intermediate windows) should always
finish with an with an All-1, as it serves as an ACK Request message finish with an with an All-1, as it serves as an ACK Request message
to confirm the correct reception of the retransmitted fragments. to confirm the correct reception of the retransmitted fragments.
Sender Receiver Sender Receiver
|-----W=0, FCN=6 (110), Seq=1----->| |-----W=0, FCN=6 (110), Seq=1----->|
|-----W=0, FCN=5 (101), Seq=2--X-->| |-----W=0, FCN=5 (101), Seq=2--X-->|
skipping to change at page 25, line 28 skipping to change at page 24, line 37
|<--- Compound ACK, W=0,1, C=0 ----| Bitmap W=0:1010110, Bitmap W=1:0100001 |<--- Compound ACK, W=0,1, C=0 ----| Bitmap W=0:1010110, Bitmap W=1:0100001
|-----W=0, FCN=5 (101), Seq=13---->| |-----W=0, FCN=5 (101), Seq=13---->|
|-----W=0, FCN=3 (011), Seq=14---->| |-----W=0, FCN=3 (011), Seq=14---->|
|-----W=0, FCN=0 (000), Seq=15---->| |-----W=0, FCN=0 (000), Seq=15---->|
|-----W=1, FCN=6 (110), Seq=16---->| |-----W=1, FCN=6 (110), Seq=16---->|
|-----W=1, FCN=4 (011), Seq=17---->| All fragments received |-----W=1, FCN=4 (011), Seq=17---->| All fragments received
DL enable |-----W=1, FCN=7 (111), Seq=18---->| DL enable |-----W=1, FCN=7 (111), Seq=18---->|
|<--------- ACK, W=1, C=1 ---------| C=1 |<--------- ACK, W=1, C=1 ---------| C=1
(End) (End)
Figure 26: UL ACK-on-Error All-0 and other Fragments Lost on First Figure 26: UL ACK-on-Error All-0 and other Fragments Lost on
and Second Windows (1) First and Second Windows (1)
Similar case as above, but with less fragments in the second window Similar case as above, but with less fragments in the second window
(W=1) (W=1)
Sender Receiver Sender Receiver
|-----W=0, FCN=6 (110), Seq=1----->| |-----W=0, FCN=6 (110), Seq=1----->|
|-----W=0, FCN=5 (101), Seq=2--X-->| |-----W=0, FCN=5 (101), Seq=2--X-->|
|-----W=0, FCN=4 (100), Seq=3----->| |-----W=0, FCN=4 (100), Seq=3----->|
|-----W=0, FCN=3 (011), Seq=4--X-->| |-----W=0, FCN=3 (011), Seq=4--X-->|
|-----W=0, FCN=2 (010), Seq=5----->| |-----W=0, FCN=2 (010), Seq=5----->|
|-----W=0, FCN=1 (001), Seq=6----->| |-----W=0, FCN=1 (001), Seq=6----->|
skipping to change at page 26, line 24 skipping to change at page 25, line 24
DL enable |-----W=1, FCN=7 (111), Seq=9----->| Missing Fragment W=0 => FCN= 5, 3 and 0, W=1 => FCN= 6 and 4 DL enable |-----W=1, FCN=7 (111), Seq=9----->| Missing Fragment W=0 => FCN= 5, 3 and 0, W=1 => FCN= 6 and 4
|<--- Compound ACK, W=0,1, C=0 ----| Bitmap W=0:1010110, Bitmap W=1:0000001 |<--- Compound ACK, W=0,1, C=0 ----| Bitmap W=0:1010110, Bitmap W=1:0000001
|-----W=0, FCN=5 (101), Seq=10---->| |-----W=0, FCN=5 (101), Seq=10---->|
|-----W=0, FCN=3 (011), Seq=11---->| |-----W=0, FCN=3 (011), Seq=11---->|
|-----W=0, FCN=0 (000), Seq=12---->| |-----W=0, FCN=0 (000), Seq=12---->|
|-----W=1, FCN=6 (110), Seq=13---->| All fragments received |-----W=1, FCN=6 (110), Seq=13---->| All fragments received
DL enable |-----W=1, FCN=7 (111), Seq=14---->| DL enable |-----W=1, FCN=7 (111), Seq=14---->|
|<--------- ACK, W=1, C=1 ---------| C=1 |<--------- ACK, W=1, C=1 ---------| C=1
(End) (End)
Figure 27: UL ACK-on-Error All-0 and other Fragments Lost on First Figure 27: UL ACK-on-Error All-0 and other Fragments Lost on
and Second Windows (2) First and Second Windows (2)
Case SCHC ACK is lost Case SCHC ACK is lost
SCHC over Sigfox does not implement the SCHC ACK REQ message. SCHC over Sigfox does not implement the SCHC ACK REQ message.
Instead it uses the SCHC All-1 message to request a SCHC ACK, when Instead it uses the SCHC All-1 message to request a SCHC ACK, when
required. required.
Sender Receiver Sender Receiver
|-----W=0, FCN=6, Seq=1----->| |-----W=0, FCN=6, Seq=1----->|
|-----W=0, FCN=5, Seq=2----->| |-----W=0, FCN=5, Seq=2----->|
skipping to change at page 28, line 24 skipping to change at page 27, line 5
|-----W=1, FCN=6 (110), Seq=8--X-->| |-----W=1, FCN=6 (110), Seq=8--X-->|
DL enable |-----W=1, FCN=7 (111), Seq=9----->| Missing Fragment W=0 => FCN= 5, 3 and 0, W=1 => FCN= 6 and 4 DL enable |-----W=1, FCN=7 (111), Seq=9----->| Missing Fragment W=0 => FCN= 5, 3 and 0, W=1 => FCN= 6 and 4
|<--- Compound ACK, W=0,1, C=0 ----| Bitmap W=0:1010110, Bitmap W=1:0000001 |<--- Compound ACK, W=0,1, C=0 ----| Bitmap W=0:1010110, Bitmap W=1:0000001
|-----W=0, FCN=5 (101), Seq=10---->| |-----W=0, FCN=5 (101), Seq=10---->|
|-----W=0, FCN=3 (011), Seq=11---->| |-----W=0, FCN=3 (011), Seq=11---->|
|-----W=1, FCN=6 (110), Seq=12---->| All fragments received |-----W=1, FCN=6 (110), Seq=12---->| All fragments received
DL enable |-----W=1, FCN=7 (111), Seq=13---->| DL enable |-----W=1, FCN=7 (111), Seq=13---->|
|<--------- ACK, W=1, C=1 ---------| C=1 |<--------- ACK, W=1, C=1 ---------| C=1
(End) (End)
Figure 29: UL ACK-on-Error Fragments Lost on First and Second Windows Figure 29: UL ACK-on-Error Fragments Lost on First and Second
with one Compound ACK Windows with one Compound ACK
The number of times the same SCHC ACK message will be retransmitted The number of times the same SCHC ACK message will be retransmitted
is determined by the MAX_ACK_REQUESTS. is determined by the MAX_ACK_REQUESTS.
4.3. SCHC Abort Examples 4.3. SCHC Abort Examples
Case SCHC Sender-Abort Case SCHC Sender-Abort
The sender may need to send a Sender-Abort to stop the current The sender may need to send a Sender-Abort to stop the current
communication. This may happen, for example, if the All-1 has been communication. This may happen, for example, if the All-1 has been
skipping to change at page 31, line 21 skipping to change at page 29, line 18
The authors would like to thank Clement Mannequin, Rafael Vidal, The authors would like to thank Clement Mannequin, Rafael Vidal,
Julien Boite, Renaud Marty, and Antonis Platis for their useful Julien Boite, Renaud Marty, and Antonis Platis for their useful
comments and implementation design considerations. comments and implementation design considerations.
7. References 7. References
7.1. Normative References 7.1. Normative References
[I-D.ietf-lpwan-schc-compound-ack] [I-D.ietf-lpwan-schc-compound-ack]
Zuniga, JC., Gomez, C., Aguilar, S., Toutain, L., Zuniga, JC., Gomez, C., Aguilar, S., Toutain, L.,
Cespedes, S., and D. Wistuba, "SCHC Compound ACK", draft- Cespedes, S., and D. Wistuba, "SCHC Compound ACK", Work in
ietf-lpwan-schc-compound-ack-00 (work in progress), July Progress, Internet-Draft, draft-ietf-lpwan-schc-compound-
2021. ack-00, July 2021, <http://www.ietf.org/internet-drafts/
draft-ietf-lpwan-schc-compound-ack-00.txt>.
[RFC8376] Farrell, S., Ed., "Low-Power Wide Area Network (LPWAN) [RFC8376] Farrell, S., Ed., "Low-Power Wide Area Network (LPWAN)
Overview", RFC 8376, DOI 10.17487/RFC8376, May 2018, Overview", RFC 8376, DOI 10.17487/RFC8376, May 2018,
<https://www.rfc-editor.org/info/rfc8376>. <https://www.rfc-editor.org/info/rfc8376>.
[RFC8724] Minaburo, A., Toutain, L., Gomez, C., Barthel, D., and JC. [RFC8724] Minaburo, A., Toutain, L., Gomez, C., Barthel, D., and JC.
Zuniga, "SCHC: Generic Framework for Static Context Header Zuniga, "SCHC: Generic Framework for Static Context Header
Compression and Fragmentation", RFC 8724, Compression and Fragmentation", RFC 8724,
DOI 10.17487/RFC8724, April 2020, DOI 10.17487/RFC8724, April 2020,
<https://www.rfc-editor.org/info/rfc8724>. <https://www.rfc-editor.org/info/rfc8724>.
skipping to change at page 32, line 4 skipping to change at page 29, line 45
[sigfox-callbacks] [sigfox-callbacks]
Sigfox, "Sigfox Callbacks", Sigfox, "Sigfox Callbacks",
<https://support.sigfox.com/docs/callbacks-documentation>. <https://support.sigfox.com/docs/callbacks-documentation>.
[sigfox-spec] [sigfox-spec]
Sigfox, "Sigfox Radio Specifications", Sigfox, "Sigfox Radio Specifications",
<https://build.sigfox.com/sigfox-device-radio- <https://build.sigfox.com/sigfox-device-radio-
specifications>. specifications>.
Authors' Addresses Authors' Addresses
Juan Carlos Zuniga
SIGFOX Juan Carlos Zúñiga
Montreal QC Montreal QC
Canada Canada
Email: j.c.zuniga@ieee.org
Email: JuanCarlos.Zuniga@sigfox.com
URI: http://www.sigfox.com/
Carles Gomez Carles Gomez
Universitat Politecnica de Catalunya Universitat Politècnica de Catalunya
C/Esteve Terradas, 7 C/Esteve Terradas, 7
08860 Castelldefels 08860 Castelldefels
Spain Spain
Email: carlesgo@entel.upc.edu Email: carlesgo@entel.upc.edu
Sergio Aguilar Sergio Aguilar
Universitat Politecnica de Catalunya Universitat Politècnica de Catalunya
C/Esteve Terradas, 7 C/Esteve Terradas, 7
08860 Castelldefels 08860 Castelldefels
Spain Spain
Email: sergio.aguilar.romero@upc.edu Email: sergio.aguilar.romero@upc.edu
Laurent Toutain Laurent Toutain
IMT-Atlantique IMT-Atlantique
2 rue de la Chataigneraie 2 rue de la Chataigneraie
CS 17607 CS 17607
35576 Cesson-Sevigne Cedex 35576 Cesson-Sevigne Cedex
France France
Email: Laurent.Toutain@imt-atlantique.fr Email: Laurent.Toutain@imt-atlantique.fr
Sandra Cespedes Sandra Cespedes
NIC Labs, Universidad de Chile NIC Labs, Universidad de Chile
Av. Almte. Blanco Encalada 1975 Av. Almte. Blanco Encalada 1975
Santiago Santiago
Chile Chile
Email: scespedes@niclabs.cl Email: scespedes@niclabs.cl
Diego Wistuba Diego Wistuba
NIC Labs, Universidad de Chile NIC Labs, Universidad de Chile
Av. Almte. Blanco Encalada 1975 Av. Almte. Blanco Encalada 1975
Santiago Santiago
Chile Chile
Email: wistuba@niclabs.cl Email: wistuba@niclabs.cl
Julien Boite
SIGFOX
Labege
France
Email: julien.boite@sigfox.com
URI: http://www.sigfox.com/
 End of changes. 97 change blocks. 
145 lines changed or deleted 162 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/