< draft-ietf-lpwan-schc-over-sigfox-07.txt   draft-ietf-lpwan-schc-over-sigfox-08.txt >
lpwan Working Group JC. Zuniga lpwan Working Group JC. Zuniga
Internet-Draft SIGFOX Internet-Draft SIGFOX
Intended status: Standards Track C. Gomez Intended status: Standards Track C. Gomez
Expires: January 10, 2022 S. Aguilar Expires: April 26, 2022 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
July 9, 2021 October 23, 2021
SCHC over Sigfox LPWAN SCHC over Sigfox LPWAN
draft-ietf-lpwan-schc-over-sigfox-07 draft-ietf-lpwan-schc-over-sigfox-08
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 January 10, 2022. This Internet-Draft will expire on April 26, 2022.
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 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 . . 12
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 . . . 16
3.8. Padding . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.8. SCHC-Sender Abort . . . . . . . . . . . . . . . . . . . . 18
4. Fragmentation Sequence Examples . . . . . . . . . . . . . . . 19 3.9. SCHC-Receiver Abort . . . . . . . . . . . . . . . . . . . 19
4.1. Uplink No-ACK Examples . . . . . . . . . . . . . . . . . 19 3.10. Padding . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2. Uplink ACK-on-Error Examples: Single-byte SCHC Header . . 20 4. Fragmentation Sequence Examples . . . . . . . . . . . . . . . 20
4.3. SCHC Abort Examples . . . . . . . . . . . . . . . . . . . 27 4.1. Uplink No-ACK Examples . . . . . . . . . . . . . . . . . 20
5. Security considerations . . . . . . . . . . . . . . . . . . . 29 4.2. Uplink ACK-on-Error Examples: Single-byte SCHC Header . . 21
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 29 4.3. SCHC Abort Examples . . . . . . . . . . . . . . . . . . . 28
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 30 5. Security considerations . . . . . . . . . . . . . . . . . . . 30
7.1. Normative References . . . . . . . . . . . . . . . . . . 30 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 30
7.2. Informative References . . . . . . . . . . . . . . . . . 30 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 31
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 30 7.1. Normative References . . . . . . . . . . . . . . . . . . 31
7.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) 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 3, line 20 skipping to change at page 3, line 26
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" or simply "SCHC/Sigfox."
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 over Sigfox 3. SCHC over Sigfox
The Generic SCHC Framework described in [RFC8724] takes advantage of The Generic SCHC Framework described in [RFC8724] takes advantage of
the predictability of data flows existing in LPWAN applications to the predictability of data flows existing in LPWAN applications to
skipping to change at page 18, line 41 skipping to change at page 18, line 41
3.7.2.5. SCHC Receiver-Abort Message 3.7.2.5. SCHC Receiver-Abort Message
|-- 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. Padding 3.8. SCHC-Sender Abort
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
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
greater than or equal to MAX_ACK_REQUESTS.
o The MAX_ACK_REQUEST counter MUST be reset when a SCHC ACK is
successfully received.
3.9. SCHC-Receiver Abort
o As defined in [RFC8724], a SCHC-Receiver Abort is triggered when
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
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,
or if the RuleID of the fragment is not valid.
o A SCHC-Receiver Abort MUST be triggered when the Inactivity Timer
expires.
o A SCHC-Receiver Abort can be triggered when the number of ACK
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 repeated SCHC ACKs sent in a row (i.e., synchronized with the
ACK REQ case) 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
time, a SCHC-Receiver Abort downlink message MUST only be sent
when there is a downlink transmission opportunity.
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
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
skipping to change at page 21, line 23 skipping to change at page 22, line 5
(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 Fragments lost 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 an ACK with the corresponding bitmap and C=0. opportunity and sends a SCHC ACK with the corresponding bitmap and
C=0.
After the missing fragments from the first window (W=0) are resent, After the loss fragments from the first window (W=0) are resent, the
the sender continues transmitting the fragments of the following sender continues transmitting the fragments of the following window
window (W=1) without opening a reception opportunity. Finally, the (W=1) without opening a reception opportunity. Finally, the All-1
All-1 fragment is sent, the downlink is enabled, and the ACK is fragment is sent, the downlink is enabled, and the SCHC ACK is
received with C=1. 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
skipping to change at page 22, line 25 skipping to change at page 22, line 38
|-----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 Fragments 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-X message to generate Therefore, the Receiver waits for the next All-0 message of
the corresponding ACK, notifying the absence of the All-0 of window intermediate windows, or All-1 message of last window to generate the
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
fragment from window 0). Note that this behaviour can take place in fragment from window 0) without opening a reception opportunity.
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----->| DL Enable |-----W=0, FCN=1, Seq=6----->| DL Enable
|-----W=0, FCN=0, Seq=7--X-->| |-----W=0, FCN=0, Seq=7--X-->|
(no ACK) (no ACK)
skipping to change at page 23, line 26 skipping to change at page 23, line 26
|-----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 lost In the following diagram, besides the All-0 there are other fragment
fragments 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----->|
|-----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)
skipping to change at page 24, line 29 skipping to change at page 24, line 29
|-----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 First
Window Window
In the next examples, there are losses in both the first (W=0) and In the next examples, there are fragment losses in both the first
second (W=1) windows. The retransmission cycles after the All-1 is (W=0) and second (W=1) windows. The retransmission cycles after the
sent (i.e., not in intermediate windows) should always finish with an All-1 is sent (i.e., not in intermediate windows) should always
with an All-1. In case an intermediate All-0 is lost and then finish with an with an All-1, as it serves as an ACK Request message
retransmitted, the All-1 is resent after, as it serves as an ACK to confirm the correct reception of the retransmitted fragments.
Request message 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-->|
|-----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, W=1 => FCN= 6 and 4
|<--------- ACK, W=0, C=0 ---------| Bitmap:1010110 |<--- 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---->|
DL enable |-----W=1, FCN=7 (111), Seq=16---->| Missing Fragment W=1 => FCN= 6 and 4 |-----W=1, FCN=6 (110), Seq=16---->|
|<--------- ACK, W=1, C=0 ---------| Bitmap:0100001 |-----W=1, FCN=4 (011), Seq=17---->| All fragments received
|-----W=1, FCN=6 (110), Seq=18---->| DL enable |-----W=1, FCN=7 (111), Seq=18---->|
|-----W=1, FCN=4 (011), Seq=19---->| All fragments received
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 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 First
and 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, W=1 => FCN= 6 and 4
|<--------- ACK, W=0, C=0 ---------| Bitmap:1010110 |<--- 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---->|
DL enable |-----W=0, FCN=0 (000), Seq=12---->| Missing Fragment W=1 => FCN= 6 and 4 |-----W=0, FCN=0 (000), Seq=12---->|
|<--------- ACK, W=1, C=0 ---------| Bitmap:0000001 |-----W=1, FCN=6 (110), Seq=13---->| All fragments received
|-----W=1, FCN=6 (110), Seq=15---->| All fragments received DL enable |-----W=1, FCN=7 (111), Seq=14---->|
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 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 First
and Second Windows (2) and Second Windows (2)
Case 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 an 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----->|
|-----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----->|
skipping to change at page 27, line 25 skipping to change at page 27, line 25
|-----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 28: 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 Case SCHC Compound ACK at the end
MAX_ACK_REQUESTS.
In this example, SCHC Fragment losses are found in both windows 0 and
1. However, the sender does not send a SCHC ACK after the All-0 of
window 0. Instead, it sends a SCHC Compound ACK notifying losses of
both windows.
Sender Receiver
|-----W=0, FCN=6 (110), Seq=1----->|
|-----W=0, FCN=5 (101), Seq=2--X-->|
|-----W=0, FCN=4 (100), Seq=3----->|
|-----W=0, FCN=3 (011), Seq=4--X-->|
|-----W=0, FCN=2 (010), Seq=5----->|
|-----W=0, FCN=1 (001), Seq=6----->|
DL enable |-----W=0, FCN=0 (000), Seq=7----->| Waits for next DL opportunity
(no ACK)
|-----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
|<--- 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=3 (011), Seq=11---->|
|-----W=1, FCN=6 (110), Seq=12---->| All fragments received
DL enable |-----W=1, FCN=7 (111), Seq=13---->|
|<--------- ACK, W=1, C=1 ---------| C=1
(End)
Figure 29: UL ACK-on-Error Fragments Lost on First and Second Windows
with one Compound ACK
The number of times the same SCHC ACK message will be retransmitted
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
sent MAX_ACK_REQUESTS times. sent MAX_ACK_REQUESTS times.
Sender Receiver Sender Receiver
skipping to change at page 28, 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 29: UL ACK-on-Error Sender-Abort Figure 30: 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 receiver 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 30: UL ACK-on-Error Receiver-Abort Figure 31: UL ACK-on-Error Receiver-Abort
5. Security considerations 5. 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
 End of changes. 26 change blocks. 
58 lines changed or deleted 121 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/