[lp-wan] SCHC-over-LoRaWAN clarifications and enhancements

Julien Catalano <j.catalano@kerlink.fr> Sat, 27 July 2019 07:13 UTC

Return-Path: <j.catalano@kerlink.fr>
X-Original-To: lp-wan@ietfa.amsl.com
Delivered-To: lp-wan@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C4024120121; Sat, 27 Jul 2019 00:13:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.234
X-Spam-Level:
X-Spam-Status: No, score=-1.234 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_SOFTFAIL=0.665] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OupoepBkZEXO; Sat, 27 Jul 2019 00:13:32 -0700 (PDT)
Received: from ot-mail-smtp-2.pulsation.fr (ot-mail-smtp-4.pulsation.fr [80.74.64.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D06C3120106; Sat, 27 Jul 2019 00:13:31 -0700 (PDT)
Received: from [172.20.10.2] (unknown [92.184.97.138]) (Authenticated sender: j.catalano@kerlink.fr) by smtp.oceamail.com (Postfix) with ESMTPSA id BE55D1000283; Sat, 27 Jul 2019 09:13:28 +0200 (CEST)
To: "draft-ietf-lpwan-schc-over-lorawan@ietf.org" <draft-ietf-lpwan-schc-over-lorawan@ietf.org>, lp-wan@ietf.org
From: Julien Catalano <j.catalano@kerlink.fr>
Openpgp: preference=signencrypt
Autocrypt: addr=j.catalano@kerlink.fr; prefer-encrypt=mutual; keydata= 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 2KOZtj2du6L8oL7KRZ5K
Message-ID: <db29cee1-3f93-8625-19d4-90e7d44f4036@kerlink.fr>
Date: Sat, 27 Jul 2019 09:13:02 +0200
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0
MIME-Version: 1.0
Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="7RFcNoxGwcngYiaoB0R1oZE0hxIucChFX"
Archived-At: <https://mailarchive.ietf.org/arch/msg/lp-wan/vDjMnizrvkLrXwUMOLqsCeyxxiQ>
Subject: [lp-wan] SCHC-over-LoRaWAN clarifications and enhancements
X-BeenThere: lp-wan@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Low-Power Wide Area Networking \(LP-WAN\), also known as LPWA or Low-Rate WAN \(LR-WAN\)" <lp-wan.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/lp-wan>, <mailto:lp-wan-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/lp-wan/>
List-Post: <mailto:lp-wan@ietf.org>
List-Help: <mailto:lp-wan-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/lp-wan>, <mailto:lp-wan-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 27 Jul 2019 07:13:34 -0000

Dear lpwan-ers, dear SCHC-over-LoRaWAN contributors,

Following our discussions in IETF 105 in Montreal, please find below my
proposals to clarify and enhance SCHC-over-LoRaWAN draft.

Proposals:
### 1 - Better usage of FPorts / distinct use for compression and
fragmentation

## 1.1 - Compression

| FPort | ext-RuleID | Compression residue | Payload |
+-------+------------+---------------------+---------+
| 8bits |    8bits   |      X bits         | N bytes |

When not using fragmentation, FPort 31 (0x1F) is the RECOMMENDED FPort
used to transport SCHC packets.
The ext-ruleID field size is left to the implementation, RECOMMENDED 1
byte (8 bits).

The actual ruleID value is the concatenation of FPort + ext-RuleID fields.
For example, if ext-RuleID field is 8 bits, value is 0x42, using
recommended FPort 31 (0x1F), gives RuleID number 0x1F42 (8002).

Note that usable FPort range is [1;223] according to LoRaWAN specification.

## 1.2 - Fragmentation

|   FPort (8 bits)  | SCHC header (8 bits) | Fragment payload (tiles) |
+-------------------+----------------------+--------------------------|
| Prefix | DTag | W | W |        FCN       |     X Tiles              |
| 6 bits | 1b   |   2b  |      7 bits      |     N Bytes              |


When SCHC fragmentation is used, SCHC fragments are transported on a
range of FPorts.
FPort field is divided in a Prefix (6bits) and the start of the SCHC
fragmentation header.
FPort Prefix represents the RuleID for fragmentation.
To conform with LoRaWAN specification, FPort Prefix field usable values
are from 0x01 to 0x37, which gives FPorts 4 to 220.
The RECOMMENDED FPort Prefix is 0x08, using FPorts [32;35] range.

Note that Prefix value is the ruleID value.
To avoid conflict with compression FPort, the FPorts allocation SHALL be
shared between the device and the SCHC gateway. Mechanism to share those
FPorts values is out-of-scope of this draft.

## 1.3 - Discussions
 - I kept all the SCHC fragmentation header fields to the same sizes are
currently defined
 - Now that the header is reduced to a single byte for all
fragmentation, is tile size = 3B still the best choice?
 - If DTag is not useful, only 2 FPorts for fragmentation are needed
(instead of 4)
 - Compression residue padding: As LoRaWAN SCHC fragmentation is aligned
to L2 words, I wonder if we could specify that compression residue can
be padded *before* payload, to ease implementation.


### 2- Reassembly Check Sequence (RCS) for LoRaWAN fragmentation

The proposal is to use AES-CMAC to compute SCHC fragmentation RCS.
AES-CMAC is already used in LoRaWAN L2 to compute MIC fields.
AES-CMAC is defined in RFC4493.
We compute AES-CMAC with a dummy key, set to 0.
RCS is computed as follows:
    RCSKey = 0x00000000000000000000000000000000 (128bits)
    cmac = aes128_cmac(RCSKey, SCHC Packet (padded) | Pad16)
    RCS = cmac[0..3]
    Pad16 is adding zero-padding to the padded-SCHC Packet to fit the
AES-CMAC algorithm.


## 2.1 - Discussions
 - Note that I propose using RCSkey = 0 as AES-CMAC is not used for
authenticity but only for integrity of the SCHC fragments. It does not
harm the "randomness" of the RCS algorithm.
 - Having a specific RCS algorithm for LoRaWAN creates an
interoperability issue with other SCHC fragmentation drafts? I don't
think so, as this draft is specific to LoRaWAN anyway.

Let me know what you think.
Thank you for the productive meeting.
Julien