From 78ee6f83dd646bc19d4224494d92e500254ae21e Mon Sep 17 00:00:00 2001 From: Oliv4945 Date: Wed, 28 Oct 2020 15:03:52 +0100 Subject: [PATCH 01/11] Detail figure 5 - SCHC packet in LoRaWAN --- draft-ietf-lpwan-schc-over-lorawan.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/draft-ietf-lpwan-schc-over-lorawan.md b/draft-ietf-lpwan-schc-over-lorawan.md index d388670..d0363e0 100644 --- a/draft-ietf-lpwan-schc-over-lorawan.md +++ b/draft-ietf-lpwan-schc-over-lorawan.md @@ -359,9 +359,11 @@ reception window. ## LoRaWAN FPort and RuleID {#lorawan-schc-payload} -The FPort field is part of the SCHC Message, as shown in +The FPort field is part of the SCHC Packet, as shown in {{Fig-lorawan-schc-payload}}. The SCHC C/D and the SCHC F/R SHALL concatenate -the FPort field with the LoRaWAN payload to recompose the SCHC Message. +the FPort field with the LoRaWAN payload to recompose the SCHC Packet. +LoRaWAN payload is composed of the potential compression residue and +the payload from the original packet. ~~~~ @@ -370,7 +372,7 @@ the FPort field with the LoRaWAN payload to recompose the SCHC Message. | SCHC packet | ~~~~ -{: #Fig-lorawan-schc-payload title='SCHC Message in LoRaWAN'} +{: #Fig-lorawan-schc-payload title='SCHC Packet in LoRaWAN'} A fragmented datagram with application payload transferred from device to Network Gateway, is called uplink fragmented datagram. It uses an FPort for data uplink From eadd014d96c476d1842954e3d75243c797bd8258 Mon Sep 17 00:00:00 2001 From: Oliv4945 Date: Wed, 28 Oct 2020 15:12:36 +0100 Subject: [PATCH 02/11] Add terminology MSB, RX, RX1/RX2 --- draft-ietf-lpwan-schc-over-lorawan.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/draft-ietf-lpwan-schc-over-lorawan.md b/draft-ietf-lpwan-schc-over-lorawan.md index d0363e0..8c1c109 100644 --- a/draft-ietf-lpwan-schc-over-lorawan.md +++ b/draft-ietf-lpwan-schc-over-lorawan.md @@ -107,9 +107,13 @@ all other definitions, please look up the SCHC specification - Downlink: LoRaWAN term for a frame transmitted by the network and received by the device. - FRMPayload: Application data in a LoRaWAN frame. +- MSB: Most Significant Byte - OUI: Organisation Unique Identifier. IEEE assigned prefix for EUI. - RCS: Reassembly Check Sequence. Used to verify the integrity of the fragmentation-reassembly process. +- RX: Device's reception window following an uplink. +- RX1/RX2: LoRaWAN devices must open two RX windows following an uplink, + called RX1 and RX2. - SCHC gateway: It corresponds to the LoRaWAN Application Server. It manages translation between IPv6 network and the Network Gateway (LoRaWAN Network Server). From bfe0c82ea2be008076bb1ed126412784714bdbe7 Mon Sep 17 00:00:00 2001 From: Oliv4945 Date: Wed, 28 Oct 2020 15:22:59 +0100 Subject: [PATCH 03/11] Explain ACK recommendation for battery powered devices --- draft-ietf-lpwan-schc-over-lorawan.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/draft-ietf-lpwan-schc-over-lorawan.md b/draft-ietf-lpwan-schc-over-lorawan.md index 8c1c109..8cef506 100644 --- a/draft-ietf-lpwan-schc-over-lorawan.md +++ b/draft-ietf-lpwan-schc-over-lorawan.md @@ -544,6 +544,8 @@ end of each window instead of waiting until the end of all windows: tiles from the next window. If the SCHC ACK is not received, it SHOULD send a SCHC ACK REQ up to MAX_ACK_REQUESTS times, as described previously. +This will avoid useless uplinks if the device has lost network coverage. + For non-battery powered devices, the SCHC receiver MAY also choose to send a SCHC ACK only at the end of all windows. This will reduce downlink load on the LoRaWAN network, by reducing the number of downlinks. From 81a9b24888b7d94c848aef88d030ea9e6d0b4fb6 Mon Sep 17 00:00:00 2001 From: Oliv4945 Date: Wed, 28 Oct 2020 15:27:57 +0100 Subject: [PATCH 04/11] Detail SCHC All-0 --- draft-ietf-lpwan-schc-over-lorawan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-lpwan-schc-over-lorawan.md b/draft-ietf-lpwan-schc-over-lorawan.md index 8cef506..0c71255 100644 --- a/draft-ietf-lpwan-schc-over-lorawan.md +++ b/draft-ietf-lpwan-schc-over-lorawan.md @@ -756,7 +756,7 @@ INACTIVITY_TIMER/(MAX_ACK_REQUESTS + 1). **SCHC All-0 (FCN=0)** All fragments but the last have an FCN=0 (because window size is 1). Following -it, the device MUST transmit the SCHC ACK message. It MUST transmit up to +an All-0 SCHC Fragment, the device MUST transmit the SCHC ACK message. It MUST transmit up to MAX_ACK_REQUESTS SCHC ACK messages before aborting. In order to progress the fragmented datagram, the SCHC layer should immediately queue for transmission those SCHC ACK if no SCHC downlink have been received during RX1 and RX2 window. From a8faa9a150e2413400e0abbff88165d47f1ce701 Mon Sep 17 00:00:00 2001 From: Oliv4945 Date: Wed, 28 Oct 2020 15:41:41 +0100 Subject: [PATCH 05/11] Add uplink SCHC ACK with correct RCS --- draft-ietf-lpwan-schc-over-lorawan.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/draft-ietf-lpwan-schc-over-lorawan.md b/draft-ietf-lpwan-schc-over-lorawan.md index 0c71255..e9bf67d 100644 --- a/draft-ietf-lpwan-schc-over-lorawan.md +++ b/draft-ietf-lpwan-schc-over-lorawan.md @@ -596,15 +596,26 @@ part of the rule context. ~~~~ +| FPort | LoRaWAN payload | ++ ------ + --------------------------+ +| RuleID | W | C = 1 | padding | +| | | | (b'00000) | ++ ------ + ----- + ----- + --------- + +| 8 bits | 2 bit | 1 bit | 5 bits | + +~~~~ +{: #Fig-frag-header-long-schc-ack-rcs-ok title='SCHC ACK format, correct RCS check.'} + +~~~~ | FPort | LoRaWAN payload | + ------ + --------------------------------- + ---------------- + -| RuleID | W | C | Compressed bitmap | Optional padding | +| RuleID | W | C = 0 | Compressed bitmap | Optional padding | | | | | (C = 0) | (b'0...0) | + ------ + ----- + ----- + ----------------- + ---------------- + | 8 bits | 2 bit | 1 bit | 5 to 63 bits | 0, 6 or 7 bits | ~~~~ -{: #Fig-fragmentation-header-long-schc-ack title='SCHC ACK format, failed RCS check.'} +{: #Fig-frag-header-long-schc-ack-rcs-fail title='SCHC ACK format, failed RCS check.'} Note: Because of the bitmap compression mechanism and L2 byte alignment, only From cf8c9ae613566d70ce4be027bb3b7653654b009a Mon Sep 17 00:00:00 2001 From: Oliv4945 Date: Wed, 28 Oct 2020 15:54:07 +0100 Subject: [PATCH 06/11] Add downlink SCHC ACK with incorrect RCS --- draft-ietf-lpwan-schc-over-lorawan.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/draft-ietf-lpwan-schc-over-lorawan.md b/draft-ietf-lpwan-schc-over-lorawan.md index e9bf67d..7cafb59 100644 --- a/draft-ietf-lpwan-schc-over-lorawan.md +++ b/draft-ietf-lpwan-schc-over-lorawan.md @@ -729,9 +729,20 @@ purposes but not SCHC needs. | 8 bits | 1 bit | 1 bit | 6 bits | ~~~~ -{: #Fig-fragmentation-downlink-header-schc-ack title='SCHC ACK format, RCS is correct.'} +{: #Fig-frag-downlink-header-schc-ack-rcs-ok title='SCHC ACK format, RCS is correct.'} +~~~~ + +| FPort | LoRaWAN payload | ++ ------ + ------------------------------------------------- + +| RuleID | W | C = b'0 | Bitmap = b'1 | Padding b'000000 | ++ ------ + ----- + ------- + ------------ + ---------------- + +| 8 bits | 1 bit | 1 bit | 1 bit | 5 bits | + +~~~~ +{: #Fig-frag-downlink-header-schc-ack-rcs-fail title='SCHC ACK format, RCS is incorrect.'} + #### Receiver-Abort ~~~~ From f8c18cc8758b9067118389e7a6d375a67c33b685 Mon Sep 17 00:00:00 2001 From: Oliv4945 Date: Wed, 28 Oct 2020 15:59:03 +0100 Subject: [PATCH 07/11] Add opt. padding to uplink all-1 --- draft-ietf-lpwan-schc-over-lorawan.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/draft-ietf-lpwan-schc-over-lorawan.md b/draft-ietf-lpwan-schc-over-lorawan.md index 7cafb59..047b1f6 100644 --- a/draft-ietf-lpwan-schc-over-lorawan.md +++ b/draft-ietf-lpwan-schc-over-lorawan.md @@ -583,11 +583,11 @@ part of the rule context. ~~~~ -| FPort | LoRaWAN payload | -+ ------ + ------------------------------------------- + -| RuleID | W | FCN=All-1 | RCS | Last tile | -+ ------ + ------ + --------- + ------- + ------------ + -| 8 bits | 2 bits | 6 bits | 32 bits | 1 to 80 bits | +| FPort | LoRaWAN payload | ++ ------ + ---------------------------------------------------------- + +| RuleID | W | FCN=All-1 | RCS | Last tile | Opt. padding | ++ ------ + ------ + --------- + ------- + ------------ + ------------ + +| 8 bits | 2 bits | 6 bits | 32 bits | 1 to 80 bits | 0 to 7 bits | ~~~~ {: #Fig-fragmentation-header-all1-last-tile title='All-1 SCHC Message: the last fragment with last tile.'} From 4d2ba7422c3185e6365997c002183280259490ba Mon Sep 17 00:00:00 2001 From: Oliv4945 Date: Wed, 28 Oct 2020 16:02:09 +0100 Subject: [PATCH 08/11] Fix fig. All-1 SCHC Message: the last fragment --- draft-ietf-lpwan-schc-over-lorawan.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/draft-ietf-lpwan-schc-over-lorawan.md b/draft-ietf-lpwan-schc-over-lorawan.md index 047b1f6..5c52e53 100644 --- a/draft-ietf-lpwan-schc-over-lorawan.md +++ b/draft-ietf-lpwan-schc-over-lorawan.md @@ -709,11 +709,11 @@ purposes but not SCHC needs. ~~~~ -| FPort | LoRaWAN payload | -+ ------ + --------------------------- + ----------------- + -| RuleID | W | FCN = b'1 | RCS | Payload | -+ ------ + ----- + --------- + ------- + ----------------- + -| 8 bits | 1 bit | 1 bit | 32 bits | 6 bits to X bytes | +| FPort | LoRaWAN payload | ++ ------ + --------------------------- + ------------------------- + +| RuleID | W | FCN = b'1 | RCS | Payload | Opt padding | ++ ------ + ----- + --------- + ------- + ----------- + ----------- + +| 8 bits | 1 bit | 1 bit | 32 bits | 6 to X bits | 0 to 7 bits | ~~~~ {: #Fig-fragmentation-downlink-header-all1 title='All-1 SCHC Message: the last fragment.'} From ddaeb89bcf77050b5fe2fb512d61c3db227e455a Mon Sep 17 00:00:00 2001 From: Oliv4945 Date: Thu, 29 Oct 2020 17:02:42 +0100 Subject: [PATCH 09/11] Fix fig 5 after Domonique review --- draft-ietf-lpwan-schc-over-lorawan.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/draft-ietf-lpwan-schc-over-lorawan.md b/draft-ietf-lpwan-schc-over-lorawan.md index 5c52e53..fa4dfb4 100644 --- a/draft-ietf-lpwan-schc-over-lorawan.md +++ b/draft-ietf-lpwan-schc-over-lorawan.md @@ -363,20 +363,20 @@ reception window. ## LoRaWAN FPort and RuleID {#lorawan-schc-payload} -The FPort field is part of the SCHC Packet, as shown in +The FPort field is part of the SCHC Message, as shown in {{Fig-lorawan-schc-payload}}. The SCHC C/D and the SCHC F/R SHALL concatenate -the FPort field with the LoRaWAN payload to recompose the SCHC Packet. -LoRaWAN payload is composed of the potential compression residue and -the payload from the original packet. +the FPort field with the LoRaWAN payload to recompose the SCHC Message. ~~~~ | FPort | LoRaWAN payload | + ------------------------ + -| SCHC packet | +| SCHC Message | ~~~~ -{: #Fig-lorawan-schc-payload title='SCHC Packet in LoRaWAN'} +{: #Fig-lorawan-schc-payload title='SCHC Message in LoRaWAN'} + +Note: SCHC Message is any datagram send by SCHC C/D or F/R layers. A fragmented datagram with application payload transferred from device to Network Gateway, is called uplink fragmented datagram. It uses an FPort for data uplink From c65d648e2e8310892d7dbef7598d785a652cadef Mon Sep 17 00:00:00 2001 From: Oliv4945 Date: Thu, 29 Oct 2020 17:11:27 +0100 Subject: [PATCH 10/11] Fix typo --- draft-ietf-lpwan-schc-over-lorawan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-ietf-lpwan-schc-over-lorawan.md b/draft-ietf-lpwan-schc-over-lorawan.md index fa4dfb4..6f74605 100644 --- a/draft-ietf-lpwan-schc-over-lorawan.md +++ b/draft-ietf-lpwan-schc-over-lorawan.md @@ -376,7 +376,7 @@ the FPort field with the LoRaWAN payload to recompose the SCHC Message. ~~~~ {: #Fig-lorawan-schc-payload title='SCHC Message in LoRaWAN'} -Note: SCHC Message is any datagram send by SCHC C/D or F/R layers. +Note: SCHC Message is any datagram sent by SCHC C/D or F/R layers. A fragmented datagram with application payload transferred from device to Network Gateway, is called uplink fragmented datagram. It uses an FPort for data uplink From 37a9570a173d1f2c83bff8dd8269d43a347b81cd Mon Sep 17 00:00:00 2001 From: Oliv4945 Date: Fri, 30 Oct 2020 18:16:59 +0100 Subject: [PATCH 11/11] Clarified RX and RX1/RX2 --- draft-ietf-lpwan-schc-over-lorawan.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/draft-ietf-lpwan-schc-over-lorawan.md b/draft-ietf-lpwan-schc-over-lorawan.md index 6f74605..c5097ba 100644 --- a/draft-ietf-lpwan-schc-over-lorawan.md +++ b/draft-ietf-lpwan-schc-over-lorawan.md @@ -111,9 +111,9 @@ all other definitions, please look up the SCHC specification - OUI: Organisation Unique Identifier. IEEE assigned prefix for EUI. - RCS: Reassembly Check Sequence. Used to verify the integrity of the fragmentation-reassembly process. -- RX: Device's reception window following an uplink. -- RX1/RX2: LoRaWAN devices must open two RX windows following an uplink, - called RX1 and RX2. +- RX: Device's reception window. +- RX1/RX2: LoRaWAN class A devices open two RX windows following an + uplink, called RX1 and RX2. - SCHC gateway: It corresponds to the LoRaWAN Application Server. It manages translation between IPv6 network and the Network Gateway (LoRaWAN Network Server).