Re: [Tsv-art] [Last-Call] [lp-wan] Tsvart last call review of draft-ietf-lpwan-coap-static-context-hc-12 Tue, 17 March 2020 22:53 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 59AF13A08A9; Tue, 17 Mar 2020 15:53:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Status: No, score=-2.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id z5Qhxm0qlPNr; Tue, 17 Mar 2020 15:53:09 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id AA7173A07F4; Tue, 17 Mar 2020 15:53:08 -0700 (PDT)
Received: from (unknown [xx.xx.xx.67]) by (ESMTP service) with ESMTP id 48hpNg19Cmz1yLR; Tue, 17 Mar 2020 23:53:07 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=ORANGE001; t=1584485587; bh=3H7iVs6TYDf2MmjJ/REppgH8BqfcVsuZSqHqjyVbT/I=; h=From:To:Subject:Date:Message-ID:Content-Type:MIME-Version; b=khJKZCwzGocTSnALIMt1ljJrFN0LQWIpy4Dz+aILiewk7MpNLXKok0zqEzsN7DzqH 13SwidadFe4SJ6DKHEnuJbX3Lbw//8Kpxj7tfdMEr3HUVPnfVwWXs6KnxpjXYP70tQ PfpKs4fsCj27nt8GWAmRTLk1JmuCUy7HJXW8DVuiyz/JLOqjKc5Xw7JutHaSZ2inh1 LPQ8u5arwHikGmkHaFnfs3bP9X7f6L00W2LVakw8zeo7IVUhmM+I+iKphGNS5eTttc z6ScWt6eIxw5icNrmaZWxPlQ/8A4g1qQRcfM/zLB7vb6aUZ21i8SPRjONNzrCWH6qY 5u6KszJC/dmCg==
Received: from Exchangemail-eme6.itn.ftgroup (unknown [xx.xx.13.51]) by (ESMTP service) with ESMTP id 48hpNf6SmHzDq7J; Tue, 17 Mar 2020 23:53:06 +0100 (CET)
From: <>
To: Joseph Touch <>, Benjamin Kaduk <>
CC: "" <>, The IESG <>, "" <>, "" <>, "" <>, "" <>
Thread-Topic: [Last-Call] [lp-wan] Tsvart last call review of draft-ietf-lpwan-coap-static-context-hc-12
Thread-Index: AQHV/KDw1QEUeVsXFU2yqGR6EuYvh6hNRn0AgAAd4wA=
Date: Tue, 17 Mar 2020 22:53:06 +0000
Message-ID: =?utf-8?q?=3C676=5F1584485586=5F5E7154D2=5F676=5F15=5F1=5FDA9712?= =?utf-8?q?42=2E720E6=25dominique=2Ebarthel=40orange=2Ecom=3E?=
References: <> =?utf-8?q?=3C340=5F1584143298=5F5E6C1BC2=5F340=5F169=5F1=5FDA91D669=2E71EAC?= =?utf-8?q?=25dominique=2Ebarthel=40orange=2Ecom=3E?= <> <>
In-Reply-To: <>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
user-agent: Microsoft-MacOutlook/
x-originating-ip: []
Content-Type: multipart/alternative; boundary="_000_DA971242720E6dominiquebarthelorangecom_"
MIME-Version: 1.0
Archived-At: <>
Subject: Re: [Tsv-art] [Last-Call] [lp-wan] Tsvart last call review of draft-ietf-lpwan-coap-static-context-hc-12
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Transport Area Review Team <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 17 Mar 2020 22:53:13 -0000

Hello Joe,

Our mails have crossed.
Content of my previous mail copied here, keeping the original destination list, which I had trimmed down in said mail.


Here are some examples to illustrate my answer in the mail below.

We have the following processing chain:
- protocol parser: breaks the headers of incoming packet into itemised fields, each with an identifier that tells what they are. Hands this set of fields to the SCHC compressor.
- SCHC compressor: browses the Rule set to find a Rule that matches the set of fields. Compresses each field per the Rule, sends RuleID + compression residues + payload.
- SCHC decompressor: based on the received RuleID and residues, rebuilds the itemised fields, hands the set of fields to the protocol reconstructor.
- protocol reconstructor: concatenates the itemised fields into protocol headers, concatenates the payload. Hands to the upper layer.

Here, let's assume we intend to compress the UDP/IPv6 headers. The upper layers headers are considered "payload" in our discussion.
For this discussion, I will only consider the Length field of IPv6, ignoring all other IPv6 fields.
Therefore, I will say an old-style UDP/IPv6 packet only has 5 fields:
- IPv6.Length
- UDP.Length
- UDP.Checksum
- UDP.SourcePort
- UDP.DestPort
While a post draft-tsvwg-udp-options UDP/IPv6 packet may have more fields
- UDP.Option1
- UDP.Option2
- etc.

Let's assume ProtocolParserA does not understand draft-tsvwg-udp-options.
Let's assume ProtocolParserB does understand draft-tsvwg-udp-options.
Let's assume PacketU is a well formed old-style UPD/IPv6 packet.
Let's assume PacketV is a post draft-tsvwg-udp-options UPD/IPv6 packet, that includes UDP.Option1 and UDP.Option2.
Let's assume Rule1 only has the old-style 5 field descriptors. In its CDAs, the UDP length is elided at the compressor and reconstructed out of IPv6.Length at the decompressor.
Let's assume Rule2 has the 5 old-style field descriptors plus UDP.Option1 and UDP.Option2. In its CDAs, the UDP length is sent in extenso as a compression residue.

When PacketU or PacketV is submitted to SystemA, which includes ProtocolParserA, or to SystemB, which includes ProtocolParserB, the outcome is described in the following table.

                      PacketU                      PacketV
     | PPA parser   | 5 itemised fields          | incorrect UDP length, nothing handed to SCHC
     | SCHC comp    | Matches Rule1              |
SystA|              | UDP.Length elided          |
     | SCHC decomp  | UDP.Length recomputed      |
     | PPA reconstr | correct UDP header         |
     | PPB parser   | 5 itemised fields          | 7 itemised fields
     | SCHC comp    | Matches Rule1              | Matches Rule2
SystB|              | UDP.Length elided          | UDP.Length sent as a compression residue
     | SCHC decomp  | UDP.Length recomputed      | UDP.Length retrieved from residue
     | PPB reconstr | correct UDP header         | correct UDP header


Further variations:

If a PacketW has 3 options, yielding 8 fields, it does not match Rule2. With SystB, it will be sent uncompressed.
If case SystB does not have a Rule1 in the Rule set, PacketU will be sent uncompressed.
If case SystB does not have a Rule2 in the Rule set, PacketV will be sent uncompressed.
There is no way PacketV will be matched by Rule1, which is the case that was envisaged as problematic by TSV-ART, if I understood correctly.
Now, if ProtocolParserA does not check for consistency between UDP.Length and IPv6.Length, then we have a problem.
But the problem is with the protocol parser, not with SCHC.

Best regards


De : Joseph Touch <<>>
Date : Tuesday 17 March 2020 23:06
À : Benjamin Kaduk <<>>
Cc : Dominique Barthel <<>>, "<>" <<>>, The IESG <<>>, "<>" <<>>, "<>" <<>>, "<>" <<>>, "<>" <<>>
Objet : Re: [Last-Call] [lp-wan] Tsvart last call review of draft-ietf-lpwan-coap-static-context-hc-12

My concern is Section 7.5.8.  How can both the IP and UDP lengths both be computed unless both depend directly on the link packet size?

AFAICT, With UDP options, the UDP length cannot be computed that way. The default rules need to take that into account.

I.e., you don’t need the UDP option TLVs if you don’t compress that area, but compression definitely needs to restore the UDP length as distinct from and unrelated to the IP length.


On Mar 17, 2020, at 2:13 PM, Benjamin Kaduk <<>> wrote:

In conclusion, the SCHC compression mechanism, if properly implemented, is
fully compatible with draft-tsvwg-udp-options.

This "if properly implemented" seems pretty critical.  Do we need to leave
a reminder that implementations have to know about UDP TLVs in order to
properly identify all fields in the headers to be compressed?



Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.

This message and its attachments may contain confidential or privileged information that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and delete this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
Thank you.