< draft-ietf-lpwan-schc-over-sigfox-05.txt   draft-ietf-lpwan-schc-over-sigfox-06.txt >
lpwan Working Group JC. Zuniga lpwan Working Group JC. Zuniga
Internet-Draft SIGFOX Internet-Draft SIGFOX
Intended status: Informational C. Gomez Intended status: Standards Track C. Gomez
Expires: August 26, 2021 S. Aguilar Expires: December 13, 2021 S. Aguilar
Universitat Politecnica de Catalunya Universitat Politecnica 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
February 22, 2021 June 11, 2021
SCHC over Sigfox LPWAN SCHC over Sigfox LPWAN
draft-ietf-lpwan-schc-over-sigfox-05 draft-ietf-lpwan-schc-over-sigfox-06
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 46
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 August 26, 2021. This Internet-Draft will expire on December 13, 2021.
Copyright Notice Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the Copyright (c) 2021 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/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. SCHC: Generic Framework for Static Context Header Compression 3. SCHC: Generic Framework for Static Context Header Compression
and Fragmentation . . . . . . . . . . . . . . . . . . . . . . 3 and Fragmentation . . . . . . . . . . . . . . . . . . . . . . 3
4. SCHC over Sigfox . . . . . . . . . . . . . . . . . . . . . . 3 4. SCHC over Sigfox . . . . . . . . . . . . . . . . . . . . . . 3
4.1. Network Architecture . . . . . . . . . . . . . . . . . . 3 4.1. Network Architecture . . . . . . . . . . . . . . . . . . 4
4.2. Uplink . . . . . . . . . . . . . . . . . . . . . . . . . 5 4.2. Uplink . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.3. Downlink . . . . . . . . . . . . . . . . . . . . . . . . 6 4.3. Downlink . . . . . . . . . . . . . . . . . . . . . . . . 6
4.4. SCHC-ACK on Downlink . . . . . . . . . . . . . . . . . . 7 4.4. SCHC-ACK on Downlink . . . . . . . . . . . . . . . . . . 7
4.5. SCHC Rules . . . . . . . . . . . . . . . . . . . . . . . 7 4.5. SCHC Rules . . . . . . . . . . . . . . . . . . . . . . . 7
4.6. Fragmentation . . . . . . . . . . . . . . . . . . . . . . 7 4.6. Fragmentation . . . . . . . . . . . . . . . . . . . . . . 8
4.6.1. Uplink Fragmentation . . . . . . . . . . . . . . . . 8 4.6.1. SCHC Compound ACK . . . . . . . . . . . . . . . . . . 8
4.6.2. Downlink Fragmentation . . . . . . . . . . . . . . . 11 4.6.2. Uplink Fragmentation . . . . . . . . . . . . . . . . 9
4.7. Padding . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.6.3. Downlink Fragmentation . . . . . . . . . . . . . . . 12
5. Fragmentation Sequence Examples . . . . . . . . . . . . . . . 12 4.7. SCHC-over-Sigfox F/R Message Formats . . . . . . . . . . 13
5.1. Uplink No-ACK Examples . . . . . . . . . . . . . . . . . 12 4.7.1. Uplink ACK-on-Error Mode: Single-byte SCHC Header . . 13
5.2. Uplink ACK-on-Error Examples: Single-byte SCHC Header . . 13 4.7.2. Uplink ACK-on-Error Mode: Two-byte SCHC Header . . . 17
5.3. SCHC Abort Examples . . . . . . . . . . . . . . . . . . . 19 4.8. Padding . . . . . . . . . . . . . . . . . . . . . . . . . 19
6. Security considerations . . . . . . . . . . . . . . . . . . . 21 5. Fragmentation Sequence Examples . . . . . . . . . . . . . . . 20
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 21 5.1. Uplink No-ACK Examples . . . . . . . . . . . . . . . . . 20
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 21 5.2. Uplink ACK-on-Error Examples: Single-byte SCHC Header . . 21
8.1. Normative References . . . . . . . . . . . . . . . . . . 21 5.3. SCHC Abort Examples . . . . . . . . . . . . . . . . . . . 28
8.2. Informative References . . . . . . . . . . . . . . . . . 22 6. Security considerations . . . . . . . . . . . . . . . . . . . 30
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 30
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 31
8.1. Normative References . . . . . . . . . . . . . . . . . . 31
8.2. Informative References . . . . . . . . . . . . . . . . . 31
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 31
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) an application header compression scheme, and ii) a mechanisms: i) an application header compression scheme, and ii) a
frame fragmentation and loss recovery functionality. Both can be frame fragmentation and loss recovery functionality. Either can be
used on top of all the four LWPAN technologies defined in [RFC8376] . used 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
applications, etc. applications, etc.
SCHC offers a great level of flexibility to accommodate all these SCHC offers a great level of flexibility to accommodate all these
LPWAN technologies. Even though there are a great number of LPWAN technologies. Even though there are a great number of
similarities between them, some differences exist with respect to the similarities between them, some differences exist with respect to the
transmission characteristics, payload sizes, etc. Hence, there are transmission characteristics, payload sizes, etc. Hence, there are
optimal parameters and modes of operation that can be used when SCHC optimal parameters and modes of operation that can be used when SCHC
is used on top of a specific LPWAN technology. is used on top of a specific LPWAN technology.
This document describes the recommended parameters, settings and This document describes the recommended parameters, settings, and
modes of operation to be used when SCHC is implemented over a Sigfox modes of operation to be used when SCHC is implemented over a Sigfox
LPWAN. This set of parameters are also known as a "SCHC over Sigfox LPWAN. This set of parameters are also known as a "SCHC over Sigfox
profile." profile."
2. Terminology 2. Terminology
It is assumed that the reader is familiar with the terms and It is assumed that the reader is familiar with the terms and
mechanisms defined in [RFC8376] and in [RFC8724]. mechanisms defined in [RFC8376] and in [RFC8724].
3. SCHC: Generic Framework for Static Context Header Compression and 3. SCHC: Generic Framework for Static Context Header Compression and
skipping to change at page 3, line 41 skipping to change at page 4, line 4
predictability of data flows existing in LPWAN applications to avoid predictability of data flows existing in LPWAN applications to avoid
context synchronization. context synchronization.
Contexts must be stored and pre-configured on both ends. This can be Contexts must be stored and pre-configured on both ends. This can be
done either by using a provisioning protocol, by out of band means, done either by using a provisioning protocol, by out of band means,
or by pre-provisioning them (e.g. at manufacturing time). The way or by pre-provisioning them (e.g. at manufacturing time). The way
contexts are configured and stored on both ends is out of the scope contexts are configured and stored on both ends is out of the scope
of this document. of this document.
4. SCHC over Sigfox 4. SCHC over Sigfox
4.1. Network Architecture 4.1. Network Architecture
Figure 1 represents the architecture for compression/decompression Figure 1 represents the architecture for compression/decompression
(C/D) and fragmentation/reassembly (F/R) based on the terminology (C/D) and fragmentation/reassembly (F/R) based on the terminology
defined in [RFC8376], where the Radio Gateway (RG) is a Sigfox Base defined in [RFC8376], where the Radio Gateway (RG) is a Sigfox Base
Station and the Network Gateway (NGW) is the Sigfox cloud-based Station and the Network Gateway (NGW) is the Sigfox cloud-based
Network. Network.
Device Application Sigfox Device Application
+----------------+ +--------------+ +----------------+ +--------------+
| APP1 APP2 APP3 | |APP1 APP2 APP3| | APP1 APP2 APP3 | |APP1 APP2 APP3|
+----------------+ +--------------+ +----------------+ +--------------+
| UDP | | | | UDP | | UDP | | | | UDP |
| IPv6 | | | | IPv6 | | IPv6 | | | | IPv6 |
+--------+ | | +--------+ +--------+ | | +--------+
| SCHC C/D & F/R | | | | SCHC C/D & F/R | | |
| | | | | | | |
+-------+--------+ +--------+-----+ +-------+--------+ +--------+-----+
$ . $ .
$ +---------+ +--------------+ +---------+ . $ +---------+ +--------------+ +---------+ .
$ | | | | | Network | . $ | | | | | Network | .
+~~ |Sigfox BS| |Sigfox Network| | SCHC | . +~~ |Sigfox BS| |Sigfox Network| | SCHC | .
| (RG) | === | (NGW) | === |F/R & C/D|..... | (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
Message is sent over a layer two (L2) Sigfox frame to the Sigfox Base Message is sent over a layer two (L2) Sigfox frame to the Sigfox Base
Stations, which then forward the SCHC Message to the Network Gateway Stations, which then forward the SCHC Message to the Network Gateway
(NGW). The NGW then delivers the SCHC Message and associated (NGW). The NGW then delivers the SCHC Message and associated
gathered metadata to the Network SCHC C/D + F/R. gathered metadata to the Network SCHC C/D + F/R.
The Sigfox Network (NGW) communicates with the Network SCHC C/D + F/R The Sigfox Network (NGW) communicates with the Network SCHC C/D + F/R
for compression/decompression and/or for fragmentation/reassembly. for compression/decompression and/or for fragmentation/reassembly.
The Network SCHC C/D + F/R share the same set of rules as the Dev The Network SCHC C/D + F/R shares the same set of rules as the Dev
SCHC C/D + F/R. The Network SCHC C/D + F/R can be collocated with SCHC C/D + F/R. The Network SCHC C/D + F/R can be collocated with
the NGW or it could be located in a different place, as long as a the NGW or it could be located in a different place, as long as a
tunnel or secured communication is established between the NGW and tunnel or secured communication is established between the NGW and
the SCHC C/D + F/R functions. After decompression and/or reassembly, the SCHC C/D + F/R functions. After decompression and/or reassembly,
the packet can be forwarded over the Internet to one (or several) the packet can be forwarded over the Internet to one (or several)
LPWAN Application Server(s) (App). LPWAN Application Server(s) (App).
The SCHC C/D + F/R processes are bidirectional, so the same The SCHC C/D + F/R processes are bidirectional, so the same
principles are applicable on both uplink (UL) and downlink (DL). principles are applicable on both uplink (UL) and downlink (DL).
4.2. Uplink 4.2. Uplink
Uplink Sigfox transmissions occur in repetitions over different times Uplink Sigfox transmissions occur in repetitions over different times
and frequencies. Besides these time and frequency diversities, the and frequencies. Besides time and frequency diversities, the Sigfox
Sigfox network also provides space diversity, as potentially an network also provides space diversity, as potentially an uplink
uplink message will be received by several base stations. message will be received by several base stations.
Since all messages are self-contained and base stations forward all Since all messages are self-contained and base stations forward all
these messages back to the same Core Network, multiple input copies these messages back to the same Sigfox Network, multiple input copies
can be combined at the NGW and hence provide for extra reliability can be combined at the NGW providing for extra reliability based on
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 o Device ID
skipping to change at page 6, line 25 skipping to change at page 6, line 34
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).
4.3. Downlink 4.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
willing to receive a downlink message indicates explicitly its explicitly indicates its intention to receive a downlink message
intention to the network in the preceding uplink message with a using a donwlink request flag when sending the preceding uplink
downlink request flag, and then it opens a fixed window for downlink message to the network. After completing the uplink transmission,
reception after completing the uplink transmission. The delay and the Device opens a fixed window for downlink reception. The delay
duration of the reception opportunity window have fixed values. If and duration of the reception opportunity window have fixed values.
there is a downlink message to be sent for this given Device (e.g. If there is a downlink message to be sent for this given Device (e.g.
either a response to the uplink message or queued information waiting either a response to the uplink message or queued information waiting
to be transmitted), the network transmits it to the Device during the to be transmitted), the network transmits this message to the Device
reception window. If no message is received by the Device after the during the reception window. If no message is received by the Device
reception opportunity window has elapsed, the Device closes the after the reception opportunity window has elapsed, the Device closes
receiving opportunity and gets back to the normal mode (e.g. continue the reception window opportunity and gets back to the normal mode
UL transmissions, sleep, stand-by, etc.) (e.g., continue UL transmissions, sleep, stand-by, etc.)
When a downlink message is sent to a Device, a reception When a downlink message is sent to a Device, a reception
acknowledgement is generated by the Device back to the Network acknowledgement is generated by the Device and sent back to the
through the Sigfox protocol and reported by the Sigfox Network. This Network through the Sigfox radio protocol and reported in the Sigfox
acknowledgement can be retrieved through callbacks by the customer. Network backend.
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] and a detailed description of the Sigfox callbacks/APIs [sigfox-spec] and a detailed description of the Sigfox callbacks/APIs
can be found in [sigfox-callbacks]. can be found in [sigfox-callbacks].
4.4. SCHC-ACK on Downlink 4.4. SCHC-ACK on Downlink
As explained previously, downlink transmissions are Device-driven and As explained previously, downlink transmissions are Device-driven and
can only take place following a specific uplink transmission that can only take place following a specific uplink transmission that
indicates and allows a following downlink opportunity. For this indicates and allows a following downlink opportunity. For this
skipping to change at page 7, line 46 skipping to change at page 8, line 9
RuleIDs can be used to differentiate data traffic classes (e.g. QoS, RuleIDs can be used to differentiate data traffic classes (e.g. QoS,
control vs. data, etc.), and data sessions. They can also be used to control vs. data, etc.), and data sessions. They can also be used to
interleave simultaneous fragmentation sessions between a Device and interleave simultaneous fragmentation sessions between a Device and
the Network. the Network.
4.6. Fragmentation 4.6. Fragmentation
The SCHC specification [RFC8724] defines a generic fragmentation The SCHC specification [RFC8724] defines a generic fragmentation
functionality that allows sending data packets or files larger than functionality that allows sending data packets or files larger than
the maximum size of a Sigfox data frame. The functionality also the maximum size of a Sigfox payload. The functionality also defines
defines a mechanism to send reliably multiple messages, by allowing a mechanism to send reliably multiple messages, by allowing to resend
to resend selectively any lost fragments. selectively any lost fragments.
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
skipping to change at page 8, line 23 skipping to change at page 8, line 35
Section 4.2), integrity can be guaranteed when no consecutive Section 4.2), integrity can be guaranteed when no consecutive
messages are missing from the sequence and all FCN bitmaps are messages are missing from the sequence and all FCN bitmaps are
complete. In order to support multiple flows/RuleIDs (potentially complete. In order to support multiple flows/RuleIDs (potentially
interleaved), the implementation of a central message sequence interleaved), the implementation of a central message sequence
counter at the Network SCHC C/D + F/R is required. With this 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 functionality and in order to save protocol overhead, the use of a
dedicated Reassembly Check Sequence (RCS) is NOT RECOMMENDED. 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).
4.6.1. Uplink Fragmentation 4.6.1. SCHC Compound ACK
Sigfox uplink transmissions are completely asynchronous and can take The present SCHC over Sigfox specification extends SCHC ACK format
defined in [RFC8724] with the SCHC Compound ACK concept.
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 concept is meant to reduce the number
of downlink transmissions (i.e., SCHC ACKs) by including bitmaps of
several windows in a single SCHC message (i.e., the SCHC Compound
ACK), and hence making an efficient use of downlink channel
transmissions.
When the ACK-on-Error mode is used for uplink fragmentation, SCHC
Compound ACKs MUST be used in the downlink responses.
The SCHC Compound ACK:
o provides feedback only for windows with fragment losses,
o has a variable size that depends on the number of windows with
fragment losses being reported in the single Compound SCHC ACK,
o includes the window number (i.e., W) for each bitmap,
o has a format coincident with that of a SCHC ACK (RFC 8724) when
only one window with losses is reported,
o might not cover all windows with fragment losses of a SCHC Packet,
o is distinguishable from the SCHC Receiver-Abort.
The SCHC Compound ACK groups the window number (W) with its
corresponding bitmap. The included window numbers and corresponding
bitmap MUST be ordered from the lowest-numbered to the highest-
numbered window.
4.6.2. Uplink Fragmentation
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. Hence, devices can go to deep sleep mode, and then wake allocation. In addition, devices may go to deep sleep mode, and then
up and transmit whenever there is a need to send any information to wake up and transmit whenever there is a need to send information to
the network. In that way, there is no need to perform any network the network. Data packets are self-contained (aka "message in a
attachment, synchronization, or other procedure before transmitting a
data packet. All data packets are self-contained (aka "message in a
bottle") with all the required information for the network to process bottle") with all the required information for the network to process
them accordingly. them accordingly. Hence, there is no need to perform any network
attachment, synchronization, or other procedure before transmitting a
data packet.
Since uplink transmissions occur asynchronously, an SCHC fragment can Since uplink transmissions are asynchronous, a SCHC fragment can be
be transmitted at any given time by the Device. Sigfox uplink transmitted at any given time by the Device. Sigfox uplink messages
messages are fixed in size, and as described in [RFC8376] they can are fixed in size, and as described in [RFC8376] they can carry 0-12
carry 0-12 bytes payload. Hence, a single SCHC Tile size per bytes payload. Hence, a single SCHC Tile size per fragmentation mode
fragmentation mode can be defined so that every Sigfox message always can be defined so that every Sigfox message always carries one SCHC
carries one SCHC Tile. Tile.
4.6.1.1. Uplink No-ACK Mode 4.6.2.1. Uplink No-ACK Mode
No-ACK is RECOMMENDED to be used for transmitting short, non-critical No-ACK is RECOMMENDED to be used for transmitting short, non-critical
packets that require fragmentation and do not require full packets that require fragmentation and do not require full
reliability. This mode can be used by uplink-only devices that do reliability. This mode can be used by uplink-only devices that do
not support downlink communications, or by bidirectional devices when not support downlink communications, or by bidirectional devices when
they send non-critical data. they send non-critical data.
Since there are no multiple windows in the No-ACK mode, the W bit is Since there are no multiple windows in the No-ACK mode, the W bit is
not present. However it is RECOMMENDED to use the FCN field to not present. However it is RECOMMENDED to use the FCN field to
indicate the size of the data packet. In this sense, the data packet indicate the size of the data packet. In this sense, the data packet
skipping to change at page 9, line 28 skipping to change at page 10, line 28
o DTag size (T): 0 bits o DTag size (T): 0 bits
o Fragment Compressed Number (FCN) size (N): 4 bits o Fragment Compressed Number (FCN) size (N): 4 bits
o As per [RFC8724], in the No-ACK mode the W (window) field is not o As per [RFC8724], in the No-ACK mode the W (window) field is not
present. present.
o RCS size: 0 bits (Not used) o RCS size: 0 bits (Not used)
4.6.1.2. Uplink ACK-on-Error Mode: Single-byte SCHC Header 4.6.2.2. Uplink ACK-on-Error Mode: Single-byte SCHC Header
ACK-on-Error with single-byte header is RECOMMENDED for medium-large ACK-on-Error with single-byte header is RECOMMENDED for medium to
size packets that need to be sent reliably. ACK-on-Error is optimal large size packets that need to be sent reliably. ACK-on-Error is
for Sigfox transmissions, since it leads to a reduced number of ACKs optimal for Sigfox transmissions, since it leads to a reduced number
in the lower capacity downlink channel. Also, downlink messages can of ACKs in the lower capacity downlink channel. Also, downlink
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 o Rule ID size: 3 bits
o DTag size (T): 0 bits o DTag size (T): 0 bits
o Window index (W) size (M): 2 bits o Window index (W) size (M): 2 bits
skipping to change at page 10, line 15 skipping to change at page 11, line 15
o Retransmission Timer: Application-dependent o Retransmission Timer: Application-dependent
o Inactivity Timer: Application-dependent o Inactivity Timer: Application-dependent
o RCS size: 0 bits (Not used) o RCS size: 0 bits (Not used)
The correspondent SCHC ACK in the downlink is 13 bits long, so The correspondent SCHC ACK in the downlink is 13 bits long, so
padding is needed to complete the required 64 bits of Sigfox payload. padding is needed to complete the required 64 bits of Sigfox payload.
4.6.1.3. Uplink ACK-on-Error Mode: Two-byte SCHC Header 4.6.2.3. Uplink ACK-on-Error Mode: Two-byte SCHC Header
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 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:
skipping to change at page 11, line 5 skipping to change at page 12, line 5
o Retransmission Timer: Application-dependent o Retransmission Timer: Application-dependent
o Inactivity Timer: Application-dependent o Inactivity Timer: Application-dependent
o RCS size: 0 bits (Not used) o RCS size: 0 bits (Not used)
The correspondent SCHC ACK in the downlink is 43 bits long, so The correspondent SCHC ACK in the downlink is 43 bits long, so
padding is needed to complete the required 64 bits of Sigfox payload. padding is needed to complete the required 64 bits of Sigfox payload.
4.6.1.4. All-1 behaviour + Sigfox Sequence Number 4.6.2.4. All-1 behaviour + Sigfox Sequence Number
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 However, since a Message Sequence Number is provided by the Sigfox
protocol together with the Sigfox Payload, the receiver can detect if protocol together with the Sigfox Payload, the receiver can detect if
there are missing fragments before the All-1 and hence construct the there are missing fragments before the All-1 and hence construct the
corresponding SCHC ACK Bitmap accordingly. corresponding SCHC ACK Bitmap accordingly.
4.6.2. Downlink Fragmentation 4.6.3. 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.
When there are fragments to be transmitted in the downlink, an uplink When there are fragments to be transmitted in the downlink, an uplink
skipping to change at page 12, line 20 skipping to change at page 13, line 20
o WINDOW_SIZE: 31 (with a maximum value of FCN=0b11110) o WINDOW_SIZE: 31 (with a maximum value of FCN=0b11110)
o Tile size: 7 bytes o Tile size: 7 bytes
o Retransmission Timer: Application-dependent o Retransmission Timer: Application-dependent
o Inactivity Timer: Application-dependent o Inactivity Timer: Application-dependent
o RCS size: 0 bits (Not used) o RCS size: 0 bits (Not used)
4.7. Padding 4.7. SCHC-over-Sigfox F/R Message Formats
This section depicts the different formats of SCHC Fragment, SCHC ACK
(including the SCHC Compound ACK defined in Section 4.6.1), and SCHC
Abort used in SCHC over Sigfox.
4.7.1. Uplink ACK-on-Error Mode: Single-byte SCHC Header
4.7.1.1. Regular SCHC Fragment
Figure 3 shows an example of a regular SCHC fragment for all
fragments except the last one. As tiles are of 11 bytes, padding
MUST NOT be added.
|-- SCHC Fragment Header --|
+ ------------------------ + ------- +
| RuleID | W | FCN | Payload |
+ ------ + ------ + ------ + ------- +
| 3 bits | 2 bits | 3 bits | 88 bits |
Figure 3: Regular SCHC Fragment format for all fragments except the
last one
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
(Network SCHC). As per [RFC8724], the All-0 message is
distinguishable from the SCHC ACK REQ (All-1 message). The
penultimate tile of a SCHC Packet is of regular size.
4.7.1.2. All-1 SCHC Fragment
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
of at least 1 byte (one L2 word). Padding MUST NOT be added, as the
resulting size is L2-word-multiple.
|--- SCHC Fragment Header ---|
+ --------------------------- + ------------ +
| RuleID | W | FCN=ALL-1 | Payload |
+ ------ + ------ + --------- + ------------ +
| 3 bits | 2 bits | 3 bits | 8 to 88 bits |
Figure 4: All-1 SCHC Message format with last tile
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
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
no padding bits.
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
no padding). This way, the minimum size of the All-1 is 2 bytes, and
the Sender-Abort message is 1 byte.
4.7.1.3. SCHC ACK Format
Figure 5 shows the SCHC ACK format when all fragments have been
correctly received (C=1). Padding MUST be added to complete the
64-bit Sigfox downlink frame payload size.
|---- SCHC ACK Header ----|
+ ----------------------- + ------- +
| RuleID | W | C=b'1 | b'0-pad |
+ ------ + ------ + ----- + ------- +
| 3 bits | 2 bits | 1 bit | 58 bits |
Figure 5: SCHC Success ACK message format
In case SCHC fragment losses are found in any of the windows of the
SCHC Packet (C=0), the SCHC Compound ACK MUST be used. The SCHC
Compound ACK message format is shown in Figure 6. The window
numbered 00, if present in the SCHC Compound ACK, MUST be placed
between the Rule ID and the C bit to avoid confusion with padding
bits. If padding is needed for the SCHC Compound ACK, padding bits
MUST be 0 to make subsequent window numbers and bitmaps
distinguishable.
|---- SCHC ACK Header ----|-W = x -|...| --- W = x + i ---|
+ ----------------------- + ------ +...+ ------- + ------ + ------- +
| 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 |
On top are noted the window number of the corresponding bitmap.
Losses are found in windows x,...,x+i.
Figure 6: SCHC Compound ACK message format
The following figures show examples of the Compound ACK message
format.
|---- SCHC ACK Header ----|- W=00 -|----- W=01 ------|
+ ----------------------- + ------ + ------ + ------ + ------- +
| 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 |
Losses are found in windows 00 and 01.
Figure 7: SCHC Compound ACK example 1
|---- SCHC ACK Header ----|- W=01 -|----- W=11 ------|
+ ----------------------- + ------ + ------ + ------ + ------- +
| RuleID | W=b'01 | C=b'0 | Bitmap | W=b'11 | Bitmap | b'0-pad |
+ ------ + ------ + ----- + ------ + ------ + ------ + ------- +
| 3 bits | 2 bits | 1 bit | 7 bits | 2 bits | 7 bits | 42 bits |
Losses are found in windows 01 and 11.
Figure 8: SCHC Compound ACK example 2
|---- SCHC ACK Header ----|- W=00 -|----- W=10 ------|
+ ----------------------- + ------ + ------ + ------ + ------- +
| RuleID | W=b'00 | C=b'0 | Bitmap | W=b'10 | Bitmap | b'0-pad |
+ ------ + ------ + ----- + ------ + ------ + ------ + ------- +
| 3 bits | 2 bits | 1 bit | 7 bits | 2 bits | 7 bits | 42 bits |
Losses are found in windows 00 and 10.
Figure 9: SCHC Compound ACK example 3
Figure 10 shows the Compound ACK message format when losses are found
in all windows. The window numbers and its corresponding bitmaps are
ordered from window numbered 00 to 11, notifying all four possible
windows.
|- SCHC ACK Header -|W=b'00|-- W=b'01 ---|
+-------------------+------+ ---- +------+
|RuleID|W=b'00|C=b'0|Bitmap|W=b'01|Bitmap| ...
+------+------+-----+------+------+------+
|3 bits|2 bits|1 bit|7 bits|2 bits|7 bits|
|--- W=b'10 --|--- W=b'11 --|
|------+------+------+------+-------+
... |W=b'10|Bitmap|W=b'11|Bitmap|b'0-pad|
|------+------+------+------+-------+
|2 bits|7 bits|2 bits|7 bits|24 bits|
Losses are found in windows 00, 01, 10 and 11.
Figure 10: SCHC Compound ACK example 4
|- 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|
+------+------+-----+------+------+------+------+------+-------+
|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.
Figure 11: SCHC Compound ACK example 5
4.7.1.4. SCHC Sender-Abort Message format
|---- Sender-Abort Header ----|
+ --------------------------- +
| RuleID | W | FCN=ALL-1 |
+ ------ + ------ + --------- +
| 3 bits | 2 bits | 3 bits |
Figure 12: SCHC Sender-Abort message format
4.7.1.5. SCHC Receiver-Abort Message format
|- Receiver-Abort Header -|
+ ----------------------- + ------- +
| RuleID | W=b'11 | C=b'1 | b'1-pad |
+ ------ + ------ + ----- + ------- +
| 3 bits | 2 bits | 1 bit | 58 bits |
Figure 13: SCHC Receiver-Abort message format
4.7.2. Uplink ACK-on-Error Mode: Two-byte SCHC Header
4.7.2.1. Regular SCHC Fragment
Figure 14 shows an example of a regular SCHC fragment for all
fragments except the last one. The penultimate tile of a SCHC Packet
is of the regular size.
|-- SCHC Fragment Header --|
+ ------------------------ + ------- +
| RuleID | W | FCN | Payload |
+ ------ + ------ + ------ + ------- +
| 8 bits | 3 bits | 5 bits | 80 bits |
Figure 14: Regular SCHC Fragment format for all fragments except the
last one
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
(Network SCHC). As per [RFC8724], the All-0 message is
distinguishable from the SCHC ACK REQ (All-1 message).
4.7.2.2. All-1 SCHC Fragment
Figure 15 shows an example of the All-1 message. The All-1 message
MUST contain the last tile of the SCHC Packet.
|--- SCHC Fragment Header ---|
+ --------------------------- + ------------ +
| RuleID | W | FCN=ALL-1 | Payload |
+ ------ + ------ + --------- + ------------ +
| 8 bits | 3 bits | 5 bits | 8 to 80 bits |
Figure 15: All-1 SCHC message format with last tile
As per [RFC8724] the All-1 must be distinguishable from the a SCHC
Sender-Abort message (with same Rule ID, M and N values). The All-1
MUST have the last tile of the SCHC Packet, that MUST be of at least
1 byte. The SCHC Sender-Abort message header size is of 2 byte, with
no padding bits.
For the All-1 message to be distinguishable from the Sender-Abort
message, the Sender-Abort message MUST be of 2 byte (only header with
no padding). This way, the minimum size of the All-1 is 3 bytes, and
the Sender-Abort message is 2 bytes.
4.7.2.3. SCHC ACK Format
Figure 16 shows the SCHC ACK format when all fragments have been
correctly received (C=1). Padding MUST be added to complete the
64-bit Sigfox downlink frame payload size.
|----- SCHC ACK Header ----|
+ ------------------------ + ------ +
| RuleID | W | C=b'1 | b'0-pad |
+ ------ + ------ + ----- + ------- +
| 8 bits | 3 bits | 1 bit | 52 bits |
Figure 16: SCHC Success ACK message format
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
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)
and its corresponding bitmap MUST be ordered from the lowest-numbered
window number to the highest-numbered window. If window numbered 000
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
bits. The SCHC Compound ACK MUST be 0 padded (Padding bits must be
0).
|- 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|
+------+------+-----+-------+...|-------+-------+-------+
|8 bits|3 bits|1 bit|15 bits| | 3 bits|15 bits|
On top are noted the window number
of the corresponding bitmap.
Losses are found in windows x,...,x+i.
Figure 17: SCHC Compound ACK message format
4.7.2.4. SCHC Sender-Abort Messages
|---- Sender-Abort Header ----|
+ --------------------------- +
| RuleID | W | FCN=ALL-1 |
+ ------ + ------ + --------- +
| 8 bits | 3 bits | 5 bits |
Figure 18: SCHC Sender-Abort message format
4.7.2.5. SCHC Receiver-Abort Message
|-- Receiver-Abort Header -|
+ ------------------------ + ------- +
| RuleID | W=b'111 | C=b'1 | b'1-pad |
+ ------ + ------- + ----- + ------- +
| 8 bits | 3 bits | 1 bit | 52 bits |
Figure 19: SCHC Receiver-Abort message format
4.8. 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
radio protocol allows sending zero bits, one single bit of Sigfox radio protocol allows sending zero bits, one single bit of
information for binary applications (e.g. status), or an integer information for binary applications (e.g. status), or an integer
number of bytes. Therefore, for 2 or more bits of payload it is number of bytes. Therefore, for 2 or more bits of payload it is
required to add padding to the next integer number of bytes. The required to add padding to the next integer number of bytes. The
reason for this flexibility is to optimize transmission time and reason for this flexibility is to optimize transmission time and
hence save battery consumption at the device. hence save battery consumption at the device.
Downlink frames on the other hand have a fixed length. The payload Downlink frames on the other hand have a fixed length. The payload
length must be 64 bits (i.e. 8 bytes). Hence, if less information length MUST be 64 bits (i.e. 8 bytes). Hence, if less information
bits are to be transmitted, padding would be necessary. bits are to be transmitted, padding MUST be used with bits equal to
0.
5. Fragmentation Sequence Examples 5. Fragmentation Sequence Examples
In this section, some sequence diagrams depicting messages exchanges In this section, some sequence diagrams depicting messages exchanges
for different fragmentation modes and use cases are shown. In the for different fragmentation modes and use cases are shown. In the
examples, 'Seq' indicates the Sigfox Sequence Number of the frame examples, 'Seq' indicates the Sigfox Sequence Number of the frame
carrying a fragment. carrying a fragment.
5.1. Uplink No-ACK Examples 5.1. Uplink No-ACK Examples
skipping to change at page 13, line 17 skipping to change at page 20, line 45
Sender Receiver Sender Receiver
|-------FCN=6 (0110), Seq=1-------->| |-------FCN=6 (0110), Seq=1-------->|
|-------FCN=5 (0101), Seq=2-------->| |-------FCN=5 (0101), Seq=2-------->|
|-------FCN=4 (0100), Seq=3-------->| |-------FCN=4 (0100), Seq=3-------->|
|-------FCN=3 (0011), Seq=4-------->| |-------FCN=3 (0011), Seq=4-------->|
|-------FCN=2 (0010), Seq=5-------->| |-------FCN=2 (0010), Seq=5-------->|
|-------FCN=1 (0001), Seq=6-------->| |-------FCN=1 (0001), Seq=6-------->|
|-------FCN=15 (1111), Seq=7------->| All fragments received |-------FCN=15 (1111), Seq=7------->| All fragments received
(End) (End)
Figure 3: UL No-ACK No-Losses Figure 20: UL No-ACK No-Losses
When the first SCHC fragment is received, the Receiver can calculate When the first SCHC fragment is received, the Receiver can calculate
the total number of SCHC fragments that the SCHC Packet is composed the total number of SCHC fragments that the SCHC Packet is composed
of. For example, if the first fragment is numbered with FCN=6, the of. For example, if the first fragment is numbered with FCN=6, the
receiver can expect more 6 messages (with FCN going from 5 downward, receiver can expect six more messages/fragments (i.e., with FCN going
and the last with a FCN equal to 15). from 5 downwards, and the last fragment with a FCN equal to 15).
Case losses on any fragment except the first. Case losses on any fragment except the first.
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 4: UL No-ACK Losses (scenario 1) Figure 21: UL No-ACK Losses (scenario 1)
5.2. Uplink ACK-on-Error Examples: Single-byte SCHC Header 5.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 14, line 21 skipping to change at page 22, line 21
|-----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 5: UL ACK-on-Error No-Losses Figure 22: UL ACK-on-Error No-Losses
Case Fragments lost in first window Case Fragments lost 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 an ACK with the corresponding bitmap and C=0. opportunity and sends an ACK with the corresponding bitmap and C=0.
After the missing fragments from the first window (W=0) are resent, After the missing fragments from the first window (W=0) are resent,
the sender without opening a reception window, continues transmitting the sender continues transmitting the fragments of the following
the following window. Finally, the All-1 fragment is sent, the window (W=1) without opening a reception opportunity. Finally, the
downlink is enabled and the ACK received with a C=1. All-1 fragment is sent, the downlink is enabled, and the ACK is
received with C=1.
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----->| |-----W=0, FCN=3, Seq=4----->|
|-----W=0, FCN=2, Seq=5--X-->| |-----W=0, FCN=2, Seq=5--X-->|
|-----W=0, FCN=1, Seq=6----->| |-----W=0, FCN=1, Seq=6----->|
DL Enable |-----W=0, FCN=0, Seq=7----->| Missing Fragments W=0 => FCN=5, Seq=2 and FCN=2, Seq=5 DL Enable |-----W=0, FCN=0, Seq=7----->| Missing Fragments W=0 => FCN=5, Seq=2 and FCN=2, Seq=5
|<------ 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----->|
(no ACK)
|-----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 6: UL ACK-on-Error Losses on First Window Figure 23: UL ACK-on-Error Losses on First Window
Case Fragments All-0 lost in first window (W=0) Case Fragments 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-X message to generate Therefore, the Receiver waits for the next All-X message to generate
the corresponding ACK, notifying the absence of the All-0 of window the corresponding 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
fragment from window 0). Note that this behaviour can take place in fragment from window 0). Note that this behaviour can take place in
any intermediate window if the All-0 message is lost. any intermediate window if the All-0 message is lost.
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----->|
|-----W=0, FCN=4, Seq=3----->| |-----W=0, FCN=4, Seq=3----->|
|-----W=0, FCN=3, Seq=4----->| |-----W=0, FCN=3, Seq=4----->|
|-----W=0, FCN=2, Seq=5----->| |-----W=0, FCN=2, Seq=5----->|
|-----W=0, FCN=1, Seq=6----->| |-----W=0, FCN=1, Seq=6----->| DL Enable
DL Enable |-----W=0, FCN=0, Seq=7--X-->| |-----W=0, FCN=0, Seq=7--X-->|
(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---->| 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
DL Enable |-----W=0, FCN=0, Seq=12---->| All fragments received |-----W=0, FCN=0, Seq=13---->| All fragments received
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 7: 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 lost In the following diagram, besides the All-0 there are other lost
fragments in the first window (W=0). fragments 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----->|
|-----W=0, FCN=1, Seq=6----->| |-----W=0, FCN=1, Seq=6----->|
DL Enable |-----W=0, FCN=0, Seq=7--X-->| DL Enable |-----W=0, FCN=0, Seq=7--X-->|
(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---->| 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=12---->| |-----W=0, FCN=5, Seq=13---->|
|-----W=0, FCN=3, Seq=13---->| |-----W=0, FCN=3, Seq=14---->|
DL Enable |-----W=0, FCN=0, Seq=14---->| All fragments received |-----W=0, FCN=0, Seq=15---->| All fragments received
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 8: 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 First
Window Window
In the following case, there are losses in both the first (W=0) and In the next examples, there are losses in both the first (W=0) and
second (W=1) window. The retransmission cycles (after the All-1 is second (W=1) windows. The retransmission cycles after the All-1 is
sent, not in intermediate windows) should always finish with an All-0 sent (i.e., not in intermediate windows) should always finish with an
(if this message was lost) or with an All-1. This is required for with an All-1. In case an intermediate All-0 is lost and then
the sender to open a reception window so the receiver can send an retransmitted, the All-1 is resent after, as it serves as an ACK
ACK. Else, there is no way for the Receiver to send an ACK, if All-1 Request message to confirm the correct reception of the retransmitted
message is lost, then an ACK timeout happen and an ACK is resent. 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-->|
|-----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----->|
DL enable |-----W=0, FCN=0 (000), Seq=7--X-->| DL enable |-----W=0, FCN=0 (000), Seq=7--X-->|
(no ACK) (no ACK)
|-----W=1, FCN=6 (110), Seq=8--X-->| |-----W=1, FCN=6 (110), Seq=8--X-->|
|-----W=1, FCN=5 (101), Seq=9----->| |-----W=1, FCN=5 (101), Seq=9----->|
|-----W=1, FCN=4 (011), Seq=10-X-->| |-----W=1, FCN=4 (011), Seq=10-X-->|
DL enable |-----W=1, FCN=7 (111), Seq=11---->| Missing Fragment W=0 => FCN= 5, 3 and 0 DL enable |-----W=1, FCN=7 (111), 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 (101), Seq=12---->| |-----W=0, FCN=5 (101), Seq=13---->|
|-----W=0, FCN=3 (011), Seq=13---->| |-----W=0, FCN=3 (011), Seq=14---->|
DL enable |-----W=0, FCN=0 (000), Seq=14---->| Missing Fragment W=1 => FCN= 6 and 4 |-----W=0, FCN=0 (000), Seq=15---->|
DL enable |-----W=1, FCN=7 (111), Seq=16---->| Missing Fragment W=1 => FCN= 6 and 4
|<--------- ACK, W=1, C=0 ---------| Bitmap:0100001 |<--------- ACK, W=1, C=0 ---------| Bitmap:0100001
|-----W=1, FCN=6 (110), Seq=15---->| |-----W=1, FCN=6 (110), Seq=18---->|
|-----W=1, FCN=4 (011), Seq=16---->| All fragments received |-----W=1, FCN=4 (011), Seq=19---->| All fragments received
DL enable |-----W=1, FCN=7 (111), Seq=17---->| DL enable |-----W=1, FCN=7 (111), Seq=20---->|
|<--------- ACK, W=1, C=1 ---------| C=1 |<--------- ACK, W=1, C=1 ---------| C=1
(End) (End)
Figure 9: UL ACK-on-Error All-0 and other Fragments Lost on First and Figure 26: UL ACK-on-Error All-0 and other Fragments Lost on First
Second Windows (1) 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----->|
DL enable |-----W=0, FCN=0 (000), Seq=7--X-->| DL enable |-----W=0, FCN=0 (000), Seq=7--X-->|
(no ACK) (no ACK)
|-----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 DL enable |-----W=1, FCN=7 (111), Seq=9----->| 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 (101), Seq=10---->| |-----W=0, FCN=5 (101), Seq=10---->|
|-----W=0, FCN=3 (011), Seq=11---->| |-----W=0, FCN=3 (011), Seq=11---->|
DL enable |-----W=0, FCN=0 (000), Seq=12---->| Missing Fragment W=1 => FCN= 6 and 4 DL enable |-----W=0, FCN=0 (000), Seq=12---->| Missing Fragment W=1 => FCN= 6 and 4
|<--------- ACK, W=1, C=0 ---------| Bitmap:0000001 |<--------- ACK, W=1, C=0 ---------| Bitmap:0000001
|-----W=1, FCN=6 (110), Seq=15---->| All fragments received |-----W=1, FCN=6 (110), Seq=15---->| All fragments received
DL enable |-----W=1, FCN=7 (111), Seq=17---->| DL enable |-----W=1, FCN=7 (111), Seq=17---->|
|<--------- ACK, W=1, C=1 ---------| C=1 |<--------- ACK, W=1, C=1 ---------| C=1
(End) (End)
Figure 10: 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 First
and Second Windows (2) and Second Windows (2)
Case ACK is lost Case 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 an ACK, when Instead it uses the SCHC All-1 message to request an 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----->|
|-----W=0, FCN=4, Seq=3----->| |-----W=0, FCN=4, Seq=3----->|
|-----W=0, FCN=3, Seq=4----->| |-----W=0, FCN=3, Seq=4----->|
|-----W=0, FCN=2, Seq=5----->| |-----W=0, FCN=2, Seq=5----->|
|-----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 ---X--| C=1 |<------ ACK, W=1, C=1 ---X--| C=1
DL Enable |-----W=1, FCN=7, Seq=13---->| RESEND ACK DL Enable |-----W=1, FCN=7, Seq=13---->| RESEND ACK
|<------ ACK, W=1, C=1 ------| C=1 |<------ ACK, W=1, C=1 ------| C=1
(End) (End)
Figure 11: UL ACK-on-Error ACK Lost Figure 28: UL ACK-on-Error ACK Lost
The number of times an ACK will be requested is determined by the The number of times an ACK will be requested is determined by the
MAX_ACK_REQUESTS. MAX_ACK_REQUESTS.
5.3. SCHC Abort Examples 5.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 20, line 32 skipping to change at page 29, line 32
|<------ ACK, W=1, C=1 ---X--| C=1 |<------ ACK, W=1, C=1 ---X--| C=1
DL Enable |-----W=1, FCN=7, Seq=16---->| RESEND ACK (3) DL Enable |-----W=1, FCN=7, Seq=16---->| RESEND ACK (3)
|<------ ACK, W=1, C=1 ---X--| C=1 |<------ ACK, W=1, C=1 ---X--| C=1
DL Enable |-----W=1, FCN=7, Seq=17---->| RESEND ACK (4) DL Enable |-----W=1, FCN=7, Seq=17---->| RESEND ACK (4)
|<------ ACK, W=1, C=1 ---X--| C=1 |<------ ACK, W=1, C=1 ---X--| C=1
DL Enable |-----W=1, FCN=7, Seq=18---->| RESEND ACK (5) DL Enable |-----W=1, FCN=7, Seq=18---->| RESEND ACK (5)
|<------ ACK, W=1, C=1 ---X--| C=1 |<------ ACK, W=1, C=1 ---X--| C=1
DL Enable |----Sender-Abort, Seq=19--->| exit with error condition DL Enable |----Sender-Abort, Seq=19--->| exit with error condition
(End) (End)
Figure 12: UL ACK-on-Error Sender-Abort Figure 29: UL ACK-on-Error Sender-Abort
Case Receiver-Abort Case Receiver-Abort
The reciever may need to send a Receiver-Abort to stop the current The reciever may need to send a Receiver-Abort to stop the current
communication. This message can only be sent after a DL enable. communication. This message can only be sent after a DL enable.
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----->|
|-----W=0, FCN=4, Seq=3----->| |-----W=0, FCN=4, Seq=3----->|
|-----W=0, FCN=3, Seq=4----->| |-----W=0, FCN=3, Seq=4----->|
|-----W=0, FCN=2, Seq=5----->| |-----W=0, FCN=2, Seq=5----->|
|-----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----->|
|<------- RECV ABORT -------| under-resourced |<------- RECV ABORT -------| under-resourced
(Error) (Error)
Figure 13: UL ACK-on-Error Receiver-Abort Figure 30: UL ACK-on-Error Receiver-Abort
6. Security considerations 6. Security considerations
The radio protocol authenticates and ensures the integrity of each The radio protocol authenticates and ensures the integrity of each
message. This is achieved by using a unique device ID and an AES-128 message. This is achieved by using a unique device ID and an AES-128
based message authentication code, ensuring that the message has been based message authentication code, ensuring that the message has been
generated and sent by the device with the ID claimed in the message. generated and sent by the device with the ID claimed in the message.
Application data can be encrypted at the application level or not, Application data can be encrypted at the application level or not,
depending on the criticality of the use case. This flexibility depending on the criticality of the use case. This flexibility
skipping to change at page 21, line 37 skipping to change at page 31, line 5
Carles Gomez has been funded in part by the Spanish Government Carles Gomez has been funded in part by the Spanish Government
through the Jose Castillejo CAS15/00336 grant, the TEC2016-79988-P through the Jose Castillejo CAS15/00336 grant, the TEC2016-79988-P
grant, and the PID2019-106808RA-I00 grant, and by Secretaria grant, and the PID2019-106808RA-I00 grant, and by Secretaria
d'Universitats i Recerca del Departament d'Empresa i Coneixement de d'Universitats i Recerca del Departament d'Empresa i Coneixement de
la Generalitat de Catalunya 2017 through grant SGR 376. la Generalitat de Catalunya 2017 through grant SGR 376.
Sergio Aguilar has been funded by the ERDF and the Spanish Government Sergio Aguilar has been funded by the ERDF and the Spanish Government
through project TEC2016-79988-P and project PID2019-106808RA-I00, through project TEC2016-79988-P and project PID2019-106808RA-I00,
AEI/FEDER, EU. AEI/FEDER, EU.
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 Clement Mannequin, Rafael Vidal and The authors would like to thank Clement Mannequin, Rafael Vidal and
Antonis Platis for their useful comments and implementation design Antonis Platis for their useful comments and implementation design
considerations. considerations.
8. References 8. References
8.1. Normative References 8.1. Normative References
[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,
 End of changes. 58 change blocks. 
120 lines changed or deleted 446 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/