Re: [lp-wan] Benjamin Kaduk's Discuss on draft-ietf-lpwan-coap-static-context-hc-15: (with DISCUSS and COMMENT)

"Eric Vyncke (evyncke)" <evyncke@cisco.com> Mon, 02 November 2020 14:59 UTC

Return-Path: <evyncke@cisco.com>
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 794A53A1153; Mon, 2 Nov 2020 06:59:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.597
X-Spam-Level:
X-Spam-Status: No, score=-9.597 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com header.b=iVBdho3N; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=FkPbz+L/
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 s2OUYKy5N_L5; Mon, 2 Nov 2020 06:58:57 -0800 (PST)
Received: from alln-iport-7.cisco.com (alln-iport-7.cisco.com [173.37.142.94]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3DDA33A0808; Mon, 2 Nov 2020 06:58:57 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=157677; q=dns/txt; s=iport; t=1604329137; x=1605538737; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=+BhWFXnk0Fbl3hzgCQK11CCBBW2HGRyWfdwjmbk+dnU=; b=iVBdho3NOR6ZgPoLxKx2rPRF9LqKUZPqRvzDP+SjMOdCxMDDEFtqMWjR 8nNHgtMeGI2FThH0/1MPAdhAlz7IEHDmqCuIoh8s2T4JvopUgM4L1bpF7 SB3ShvizwiFsBYNVn8GU58EqwCBqlNWHZaZXoMJ9brJwnaqfTqdinwF03 M=;
IronPort-PHdr: 9a23:T51BGRLmoAI0EC4f/NmcpTVXNCE6p7X5OBIU4ZM7irVIN76u5InmIFeGvK0/hVTKWcPa7KEMh+nXtvXmXmoNqdaEvWsZeZNBHxkClY0NngMmDcLEbC+zLPPjYyEgWsgXUlhj8iKyOktRXsf5NBXep3So5msUHRPyfQN+OuXyHNvUiMK6n+C/8pHeeUNGnj24NLhzNx6x6w7Ws5ob
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CzCQBTHqBf/49dJa1iDhABAQsSDIMyLyMGKAdwWS8uhD2DSQONT4EEl3uBQoERA1QLAQEBDQEBJQgCBAEBhEoCF4FxAiU4EwIDAQELAQEFAQEBAgEGBHGFYQyFcgEBAQQSCAEIHQEBNwEPAgEIEQMBAiEBAgQDAgICMBQJCAIEAQkEBSKDBAGBfk0DLgEOpAwCgTuIaHaBMoMEAQEFgUdBgx4YghADBoE4gnKCYU5CgkSEExuBQT+BESccgho1PoJdAgECAYEdCQESAQMEAjgNCYJhM4Isi3aEQwOCaz2HGIwLkA8JgQMKgmyJCIIYg3SFcHOFDwMfgxiKEZRBkllxiniRFoQxAgQCBAUCDgEBBYFrI2dYEQdwFWUBgj5QFwINjh8JGhRuAQIMgj2FFIUEQHQCNgIGAQkBAQMJfIxsYAEB
X-IronPort-AV: E=Sophos;i="5.77,445,1596499200"; d="scan'208,217";a="578681236"
Received: from rcdn-core-7.cisco.com ([173.37.93.143]) by alln-iport-7.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 02 Nov 2020 14:58:55 +0000
Received: from XCH-ALN-004.cisco.com (xch-aln-004.cisco.com [173.36.7.14]) by rcdn-core-7.cisco.com (8.15.2/8.15.2) with ESMTPS id 0A2Ewo9N029584 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Mon, 2 Nov 2020 14:58:54 GMT
Received: from xhs-aln-003.cisco.com (173.37.135.120) by XCH-ALN-004.cisco.com (173.36.7.14) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 2 Nov 2020 08:58:53 -0600
Received: from xhs-rcd-001.cisco.com (173.37.227.246) by xhs-aln-003.cisco.com (173.37.135.120) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 2 Nov 2020 08:58:53 -0600
Received: from NAM11-DM6-obe.outbound.protection.outlook.com (72.163.14.9) by xhs-rcd-001.cisco.com (173.37.227.246) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Mon, 2 Nov 2020 08:58:52 -0600
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hWEkr3LiBUu3zM40gpQR52xP56UT2iS7xcyNBacW7ZUvvrDGti3O3wj49AppdYn0PghyLziKL7NDiVTwMl7bAbw/0DVNlGufqzU1IMf/G13zy+0nekM6XmzlmOm8/kAM8evQ2qLOooKXoPCD4EPkU+ERvmuzQBRhkP3IKB0lm1Pq1xebwKXOVZyJn+emIvjdyQrLyRiD5ehN1mO50tUXmgCrJ0w0oebWWbRI3z/MbDli7jDyK4GszxIlavbB6cTXp2BHd5psF2602SuOhchNVixKe7lofgO7JfzjhEqqwYhl+1iuWXF2QCjf5FAI+caS9N+hV3cVZza0C2V3HlWzYQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+BhWFXnk0Fbl3hzgCQK11CCBBW2HGRyWfdwjmbk+dnU=; b=C4QASC9VR/4OcopysNzHuKBHwLv7ZbT4D3vy1Q6ta+ZzpEiaYz9/dihA5T9mialfDBbd3PTmv7SB1tv4iVHOt96dDqzhbQqhRUdh+Lo/IWkQfMU3gSC5TFd115r8MZKdsXpLm55ofyNw2ukh7HGCGhGA6ekNf3LPoxddkBIzrIweHRWM03iiroiIGfEWD0FNEZfEmmlrAqDZiXUqOPFS4DUxk+GzpzZBeE5J4/1iPWnUiwLn8d9mOEp3obqjkyI33wYHEf6PztT8FVYpKBnuMYC9oFYVJZmnaCyPpqTxg+H9LPXLkAh0F2zH+n54k/yBxW7bbjFpDqzINk+HJyzcKw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cisco.com; dmarc=pass action=none header.from=cisco.com; dkim=pass header.d=cisco.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cisco.onmicrosoft.com; s=selector2-cisco-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+BhWFXnk0Fbl3hzgCQK11CCBBW2HGRyWfdwjmbk+dnU=; b=FkPbz+L/l7aQ9tSTtdhXOfvw8HJZFUiGm88dg/GPGC/kv4CBchQzXjeQzZrEYzBEkg83I4jrOxPAeu8oVaapv04ONL4XtUAm7Z+0+45ZVAV9/TjCp+fQm9kHi6J0v+goVU3ecXHiVf+xhlt9ch7LSLZ8v/nAiXFE1sSt2kORHVE=
Received: from PH0PR11MB4966.namprd11.prod.outlook.com (2603:10b6:510:42::21) by PH0PR11MB4790.namprd11.prod.outlook.com (2603:10b6:510:40::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.28; Mon, 2 Nov 2020 14:58:47 +0000
Received: from PH0PR11MB4966.namprd11.prod.outlook.com ([fe80::453b:b2f5:ec29:410d]) by PH0PR11MB4966.namprd11.prod.outlook.com ([fe80::453b:b2f5:ec29:410d%7]) with mapi id 15.20.3499.030; Mon, 2 Nov 2020 14:58:47 +0000
From: "Eric Vyncke (evyncke)" <evyncke@cisco.com>
To: Ana Minaburo <ana@ackl.io>, Benjamin Kaduk <kaduk@mit.edu>
CC: lp-wan <lp-wan@ietf.org>, "lpwan-chairs@ietf.org" <lpwan-chairs@ietf.org>, "Pascal Thubert (pthubert)" <pthubert@cisco.com>, "draft-ietf-lpwan-coap-static-context-hc@ietf.org" <draft-ietf-lpwan-coap-static-context-hc@ietf.org>, The IESG <iesg@ietf.org>
Thread-Topic: [lp-wan] Benjamin Kaduk's Discuss on draft-ietf-lpwan-coap-static-context-hc-15: (with DISCUSS and COMMENT)
Thread-Index: AQHWWxDFHr82B8ypz0O3KOWrak27AamhDhQAgBSd4QA=
Date: Mon, 02 Nov 2020 14:58:47 +0000
Message-ID: <6290ACFF-178D-485D-BCCD-70E06558B283@cisco.com>
References: <159486305058.5834.14640111505123513516@ietfa.amsl.com> <CAAbr+nQk6RijEUuZKPvrSULPZ+V2-PU14TKmV2DwX38xpo3-Lw@mail.gmail.com>
In-Reply-To: <CAAbr+nQk6RijEUuZKPvrSULPZ+V2-PU14TKmV2DwX38xpo3-Lw@mail.gmail.com>
Accept-Language: fr-BE, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/16.42.20101102
authentication-results: ackl.io; dkim=none (message not signed) header.d=none;ackl.io; dmarc=none action=none header.from=cisco.com;
x-originating-ip: [2001:420:c0c1:36:9ab:221:239d:17c2]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: dcc2000c-0253-4c1a-7489-08d87f3fcd26
x-ms-traffictypediagnostic: PH0PR11MB4790:
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs: <PH0PR11MB4790B6E334506660121983E2A9100@PH0PR11MB4790.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:6108;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 2xjGVBtuxlvpvLJp3LM1CdFncq2x3KatmNNZYMvi9EDPQjkN9n37Hz5w+E3EZ9mtpsWbvz5M9p/Nemse7fvU8Vw2yTkVwpRz+6bwRuYqVZ4h0C+pzWtX8KBH54MNymDasrxcJkKz2esYkiWqzZWuFAJcQZsxDdr1PPcBUlXsKgG2HklXuEN1GRsdVJF66DAaXvVNZQ84JKTZyMDyABwRp6SJ6WfhAuGxDSpHsSrxl97Z3+SCpI0EGmGRcYZ4Kka+H/hH5cH/4EenF6hOwWWGgbaql6S7xKRNCupClu7iiObZ4+2eMOMukOUQOku2jfQlGeQKGl7xcMFdo08UQUrtyNWvZAVTZPetC0pM39BwH+UJ4SkpU6ui1rTbmsR1Zdm5r3OzqaDmLKJqyeOUFzxnoA==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR11MB4966.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(376002)(396003)(346002)(136003)(366004)(39860400002)(71200400001)(30864003)(8676002)(8936002)(36756003)(6486002)(86362001)(4326008)(5660300002)(6506007)(186003)(21615005)(53546011)(110136005)(83380400001)(6512007)(316002)(2906002)(66556008)(66476007)(66446008)(64756008)(966005)(54906003)(166002)(76116006)(66946007)(91956017)(33656002)(2616005)(478600001)(559001)(579004); DIR:OUT; SFP:1101;
x-ms-exchange-antispam-messagedata: 2EguMBz2KLjpcWS+x1XPy3Xjwfm4RivA/GpCh8WLWvdjKzQxwZ4eTevHtG1wvHT3cYU6YJ3fw69vbughGhviXIq4f0yYh514ON70SmKMCutpVilELue4wdGskPS4+N0oV+U+abeaiihgoMEajqGEx7cj/O301UnUAwPi9oKZAujxz/gYrUQsR9U+Zyfh/yS4JBWpVQz2MBbq+akdxBzuyvbZprS4XvFTwElho67zw1pqnGwcjYKmMJ0ZfBes7RbZQyCM1Kx7Ub75TnIhuk9B4kxASj/d0Eta12L7utd8LzsejAq5rfuO8nCrXTYhEFR5lLJoWAtVlda/+lk/Ovek5EbjTkLaBL+n9F/lxqPAM8HLdNIFZOsY8LTY0sEMIQae5JwHGjUHog02uWXQ+FErQswGSkFASE1j6mQleRZK41MQuauTT9btfg1pRaysEXsvnGLkIggfLKN0G6Q+DrP3W0+y3yUasmqadYVznMvc+QDpEbh02G36CC4EnanqoeRKFsiMqTsdme4r+FEUavO3HOypxx7jyTGMZAauI3Zj4cSjDpWVXga40u2pcUZqpO1B73M4O/ImYuT7+BU4YvdvjOw2P++ggKhpBvZoBEokNXPZH6aKfd5ZbD5mVrzE0NogUPQcUYxKVZHBnGewQP8Z0TPFi+wInV9HCKR+IZ3LnrZaamJQe7Ix1A5V9YkxpLeG2Zo65qZPhEeX9roVTvmciQ==
Content-Type: multipart/alternative; boundary="_000_6290ACFF178D485DBCCD70E06558B283ciscocom_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB4966.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dcc2000c-0253-4c1a-7489-08d87f3fcd26
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Nov 2020 14:58:47.3197 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5ae1af62-9505-4097-a69a-c1553ef7840e
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ROfqparL1F3STPMe/HgDkMbVfrVg4srS/NA8iV/XVkmI+XiLbSsxTp1pdqtx0pnVWECmhJ+4tyr6urhzm//utw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB4790
X-OriginatorOrg: cisco.com
X-Outbound-SMTP-Client: 173.36.7.14, xch-aln-004.cisco.com
X-Outbound-Node: rcdn-core-7.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/lp-wan/Fg9i1LpEElQLve9iXlK_-f3Lp2A>
Subject: Re: [lp-wan] Benjamin Kaduk's Discuss on draft-ietf-lpwan-coap-static-context-hc-15: (with DISCUSS and COMMENT)
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: Mon, 02 Nov 2020 14:59:03 -0000

Hello Ben,

Ana and the authors have uploaded -16 with the changes as indicated below.

So, allow me to send a gentle nudge for your review of the changes and the replies below ;-)

Regards

-éric

From: lp-wan <lp-wan-bounces@ietf.org> on behalf of Ana Minaburo <ana@ackl.io>
Date: Tuesday, 20 October 2020 at 15:09
To: Benjamin Kaduk <kaduk@mit.edu>
Cc: lp-wan <lp-wan@ietf.org>, "lpwan-chairs@ietf.org" <lpwan-chairs@ietf.org>, Pascal Thubert <pthubert@cisco.com>, "draft-ietf-lpwan-coap-static-context-hc@ietf.org" <draft-ietf-lpwan-coap-static-context-hc@ietf.org>, The IESG <iesg@ietf.org>
Subject: Re: [lp-wan] Benjamin Kaduk's Discuss on draft-ietf-lpwan-coap-static-context-hc-15: (with DISCUSS and COMMENT)

Thanks again for your comments, here you will find our modifications to your requests.

===========
COMMENTS
===========

Thank you for the updates in response to my comments on the -13; they do
help.  I have a smaller volume of comments this time around :)

Abstract

References are not allowed in the abstract, so you should probably just
write out "RFC 8724".


=>  Changed


Introduction

   CoAP [rfc7252] is designed to easily interop with HTTP (Hypertext

What does "designed to easily interop with" mean?  CoAP and HTTP don't
interoperate directly, given that they are different protocols...

   done.  The context is known by both ends before transmission.  The
   way the context is configured, provisioned or exchanged is out of the
   scope of this document.

Changed to : CoAP [rfc7252] is a command/response protocol, designed for micro-controllers with small amount of RAM and ROM, and is optimized for REST-based (Representational
   state transfer) services.  Although CoAP was designed for Low-Power Wireless Personal Area Networks (6LoWPAN), the size of a CoAP header still is too large for
   LPWAN (Low Power Wide Area Networks) and some compression of the CoAP header is required either to increase performances or allow CoAP other some LPWAN technologies.



(editorial) I'd suggest rephrasing to something more like "The SCHC
compression scheme assumes as a prerequisite that the static context is
known to both endpoints before transmission."


=>  Done

   CoAP is an End-to-End protocol at the application level, so CoAP
   compression requires to install common Rules between two hosts and IP
   Routing may be needed to allow End-to-End communication.  Therefore,
   SCHC compression may apply at two different levels, one to compress
   IP and UDP as described in [rfc8724] in the LPWAN network and another
   at the application level.  These two compressions may be independent.

I think you want to reframe this in terms of the potential for there to
be multiple IP (UDP seems perhaps less likely?) entities processing the
packet between CoAP entities that process the packet, and note that the
IP compression may be removed by an intermediary in situations where
configured to do so.


=>  We changed to : CoAP is an application protocol, so CoAP
   compression requires to install common rules between the two SCHC instances.
   SCHC compression may apply at two different levels: one to compress
   IP and UDP in the LPWAN network and another
   at the application level for CoAP.  These two compressions may be independent.



   The Compression Rules can be set up by two independent entities and
   are out of the scope of this document.  In both cases, SCHC mechanism
   remains the same.

(nit) I don't think "remains the same" is the best wording here; there
are clearly going to be differences of some form between compression at
the UDP layer and compression at the CoAP layer, even though the overall
structure/procedures for compressing/decompressing at those layers are
analogous to each other.


=>  Changed to : SCHC compression may apply at two different levels: one to compress IP and UDP in the LPWAN network and another at the application level for CoAP.  These two compressions may be independent. Both follow the same principle described in RFC 8724. SCHC rules driving the compression/decompression are different and may be managed by different entities. The [rfc8724] describes how the IP and UDP headers may be compressed. This document specifies how the SCHC compression rules can be applied to CoAP traffic.


   A Matching Operator (MO) is associated to each header field
   description.  The Rule is selected if all the MOs fit the TVs for all
   fields of the incoming header.

I strongly suggest reiterating that the presence of a header field that
does not have a corresponding MO in the Rule means that the Rule does
not apply to that packet.


=>  Adding the follows: A Matching Operator (MO) is associated to each header field
   description.  The Rule is selected if all the MOs fit the TVs for all
   fields of the incoming header. A rule cannot be selected if the message contains a field unknown to the SCHC compressor.


   After applying the compression there may be some bits to be sent,
   these values are called Compression Residues.

nit: comma splice.


=>  Done

Section 2

I think that these examples would benefit from a fair bit more
description/discussion text.  For example, if SCHC in Figure 1 is
supposed to be compressing everything from IPv6 to CoAP, why is SCHC
beween LPWAN and IPv6 (vs above IPv6), and why does the full stack still
appear at the 'device'?  If the Sender and Receiver are to be the device
and App, then why is SCHC not apparent at the Receiver (app)?  I can't
find a consistent way to interpret the text and the figure.
(Figures 2 and 3 have both dotted lines and dashed lines.  Why are they
different?  Etc.)


=>  All the section has been reviewed.

Section 3.1

   o  The CoAP protocol is asymmetric, the headers are different for a
      request or a response.  For example, the URI-path option is

nit: comma splice.

=>  Done

   o  Headers in IPv6 and UDP have a fixed size.  The size is not sent
      as part of the Compression Residue, but is defined in the Rule.
      Some CoAP header fields have variable lengths, so the length is
      also specified in the Field Description.  For example, the Token

RFC 8724 uses "Field Descriptor", not "Field Description".


=>  Done

Section 5

   the description of the Option by using in the Field ID the Option
   Number built from D-T; in TV, the Option Value; and the Option Length
   uses section 7.4 of RFC8724.  When the Option Length has a wellknown

(It looks like the subsections of 7.4 are also important, though we
probably don't need to literally say "section 7.4 and subsections".)


=>  We kept section 7.4 of RFC8724

Section 5.2

I'm still confused why Max-Age, Uri-Host, and Uri-Port are in the same
section.  We talk about "the duration", but that seems to only apply to
Max-Age.

   Otherwise these options can be sent as a Compression Residue (fixed
   or variable length).

I'm not sure that there's going to be a practical scenario where a
fixed-length residue is workable for anay of these three CoAP Options.


=>  We changed duration to value which common to all these options

=>  We removed the text in parenthesis



Section 5.4

As far as I can tell, Proxy-URI and Proxy-Scheme are indeed
unidirectional (only sent in requests).  It would perhaps be appropriate
to codify this restirction in the compression rules, though I can
understand if the general desire is to not add an additional layer of
restrictions beyond the core CoAP specificiation.


=>  We keep as it is, because it is an implementation issue.

Section 6.2

   Since an RST message may be sent to inform a server that the client
   does not require Observe response, a Rule MUST allow the transmission
   of this message.

Is this saying that if you have a rule that allows sending Observe, you
MUST also have a rule allowing RST?  It might be worth making that more
explicit.


=>  Changed to : Since an RST message may be sent to inform a server that the client does not require Observe response; a Rule SHOULD exist to allow the compression of the message with the RST type.

Section 6.4

   The first byte specifies the content of the OSCORE options using
   flags.  The three most significant bits of this byte are reserved and

nit: s/options/option/.

=>  Done

   This specification recommends identifying the OSCORE Option and the
   fields it contains Conceptually, it discerns up to 4 distinct pieces
   of information within the OSCORE option: the flag bits, the piv, the

I'm not sure what was intended to happen here.  Either there's a missing
full stop or a wrongly capitalized word, at a start, but perhaps there
was also supposed to be some additional rewording to join the sentences
together more fluidly.

=>  Done

   The OSCORE Option shows superimposed these four fields using the
   format Figure 6, the CoAP OSCORE_kidctxt field includes the size bits
   s.

The rewording went awry here.  I think it's supposed to be more like
"Figure 6 shows the OSCORE Option format with those four fields
superimposed on it.  Note that the CoAP OSCORE_kidctxt field includes
the size octet s".

(Also, I am not sure I've seen the "ctxt" abbreviation anywhere other
than this document.  Just "ctx" seems much more common in my
experience.)


=>  Done

Section 7.1

   immediately acknowledged by the Device.  For this simple scenario,
   the Rules are described Figure 7.

nit: "described in".


=>  Done

Section 9

The need for additional English review is particularly pronounced in the
new text here.  (I am not attempting to note all instances that would
benefit from extra attention.)

   DoS attacks are possible if an intruder can introduce a compressed
   SCHC corrupted packet onto the link and cause a compression

nit: I think this would be "introduce a corrupted SCHC compressed
packet".


=>  Done

   efficiency reduction.  However, an intruder having the ability to add

Usually I think of "compression efficiency" as relating to the ratio of
sizes between compressed and uncompressed form.  What seems to be
described here is instead the resource efficiency of the entity
performing the decompression function, so I'd suggest using a different
phrasing, such as "excessive resource consumption at the decompressor".

   SCHC compression returns variable-length Residues for some CoAP
   fields.  In the compressed header, the length sent is not the
   original header field length but the length of the Residue.  So if a
   corrupted packet comes to the decompressor with a longer or shorter
   length than the one in the original header, SCHC decompression will
   detect an error and drops the packet.

I don't think I understand the mechanism being described here.  It
sounds as if there is supposed to be some error-checking ability between
the recovered (uncompressed) text and the original header, but I don't
see such a mechanism.  The length in the compressed packet is used to
interpret the residue and produce the recovered (uncompressed) value,
but the original packet is not available for comparison at that time.
If the length in the compressed packet is modified, then the
decompressor will get desychronized from the bit stream and start trying
to parse "random" data as the rest of the packet; that would be expected
to usually produce an error eventually, but I'm not convinced that this
is the mechanism referred to by "detect an error and drops [sic] the
packet".


=>  We have simplified to : SCHC compression returns variable-length Residues for some CoAP
   fields. Since this length indicates the number of bytes send, an attacker modifying this value will not be allowed to produce larger packet than initially compressed.


The secdir review of the -15 made some good points and suggestions,
including pointing out in the security considerations that the typical
compression attacks we worry about aren't an issue here (and why).

 => All nits have been changed. thanks for this review too.


On Thu, Jul 16, 2020 at 3:30 AM Benjamin Kaduk via Datatracker <noreply@ietf.org<mailto:noreply@ietf.org>> wrote:
Benjamin Kaduk has entered the following ballot position for
draft-ietf-lpwan-coap-static-context-hc-15: Discuss

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)


Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-lpwan-coap-static-context-hc/



----------------------------------------------------------------------
DISCUSS:
----------------------------------------------------------------------

I don't think we quite managed to catch all the collatoral damage from
my previous discuss points on the -13.  In particular, while Sections
5.x no longer attempt to discuss directionality of CoAP Options, there
are some in-passing references to them in Section 3.1:

- There's a claim that URI-Path (though, spelled as "URI-path") is not
  present in the response, which is incorrect.

- There's a reference to a nonexistent "Content" option as being present
  only in a response, but the "Content-Format" option is allowed in both
  requests and responses.  (See, e.g., the PUT method for use of
  Content-Format in a request.)

- The "Accept" option is referenced as only being present in requests.
  This seems to be accurate as far as I can see in RFC 7252, though in
  light of the near-complete removal of such references from this
  document, perhaps it should also be removed.

While the expanded security considerations do cover several important
points, I think it's important to specifically state that the RFC 8724
procedures assume that SCHC is implemented on top of LPWAN technologies
that implement security mechanisms.  I think we also need to specify
that either (a) this assumption remains for the CoAP usage of SCHC, or
that (b) CoAP has use cases outside of LPWAN, and when SCHC is used in
those non-LPWAN cases, the attacks (such as are now described in the
-15) are more readily performed than in the secure LPWAN environment
when no other integrity protection mechanism is in place for the
compressed packets.

As Francesca noted on the -13, we need to acknowledge that there are and
will be in the future CoAP options that are not included in this
document and provide some indication of how they might be handled.
Whether that's to define new compression rules/guidance for them, always
send them as full residuals, or some other behavior can be decided in
the future on a per-option basis, but we can give some guidance here on
how we plan to support extensibility of options.

---

The -15 introduced some new text in the Introduction:

   CoAP is an End-to-End protocol at the application level, so CoAP
   compression requires to install common Rules between two hosts and IP

It's not entirely clear to me that this is true, given that CoAP proxies
are a first-class protocol feature.  OSCORE is probably fair to describe
as end-to-end, but CoAP itself may not be.

Also, the new examples in Section 2 are sufficiently hard to follow that
I can't be sure the figures and the prose descriptions are internally
consistent.  (See COMMENT for a few more specifics.)


----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

Thank you for the updates in response to my comments on the -13; they do
help.  I have a smaller volume of comments this time around :)

Abstract

References are not allowed in the abstract, so you should probably just
write out "RFC 8724".

Introduction

   CoAP [rfc7252] is designed to easily interop with HTTP (Hypertext

What does "designed to easily interop with" mean?  CoAP and HTTP don't
interoperate directly, given that they are different protocols...

   done.  The context is known by both ends before transmission.  The
   way the context is configured, provisioned or exchanged is out of the
   scope of this document.

(editorial) I'd suggest rephrasing to something more like "The SCHC
compression scheme assumes as a prerequisite that the static context is
known to both endpoints before transmission."

   CoAP is an End-to-End protocol at the application level, so CoAP
   compression requires to install common Rules between two hosts and IP
   Routing may be needed to allow End-to-End communication.  Therefore,
   SCHC compression may apply at two different levels, one to compress
   IP and UDP as described in [rfc8724] in the LPWAN network and another
   at the application level.  These two compressions may be independent.

I think you want to reframe this in terms of the potential for there to
be multiple IP (UDP seems perhaps less likely?) entities processing the
packet between CoAP entities that process the packet, and note that the
IP compression may be removed by an intermediary in situations where
configured to do so.

   The Compression Rules can be set up by two independent entities and
   are out of the scope of this document.  In both cases, SCHC mechanism
   remains the same.

(nit) I don't think "remains the same" is the best wording here; there
are clearly going to be differences of some form between compression at
the UDP layer and compression at the CoAP layer, even though the overall
structure/procedures for compressing/decompressing at those layers are
analogous to each other.

   A Matching Operator (MO) is associated to each header field
   description.  The Rule is selected if all the MOs fit the TVs for all
   fields of the incoming header.

I strongly suggest reiterating that the presence of a header field that
does not have a corresponding MO in the Rule means that the Rule does
not apply to that packet.

   After applying the compression there may be some bits to be sent,
   these values are called Compression Residues.

nit: comma splice.

Section 2

I think that these examples would benefit from a fair bit more
description/discussion text.  For example, if SCHC in Figure 1 is
supposed to be compressing everything from IPv6 to CoAP, why is SCHC
beween LPWAN and IPv6 (vs above IPv6), and why does the full stack still
appear at the 'device'?  If the Sender and Receiver are to be the device
and App, then why is SCHC not apparent at the Receiver (app)?  I can't
find a consistent way to interpret the text and the figure.
(Figures 2 and 3 have both dotted lines and dashed lines.  Why are they
different?  Etc.)

Section 3.1

   o  The CoAP protocol is asymmetric, the headers are different for a
      request or a response.  For example, the URI-path option is

nit: comma splice.

   o  Headers in IPv6 and UDP have a fixed size.  The size is not sent
      as part of the Compression Residue, but is defined in the Rule.
      Some CoAP header fields have variable lengths, so the length is
      also specified in the Field Description.  For example, the Token

RFC 8724 uses "Field Descriptor", not "Field Description".

Section 5

   the description of the Option by using in the Field ID the Option
   Number built from D-T; in TV, the Option Value; and the Option Length
   uses section 7.4 of RFC8724.  When the Option Length has a wellknown

(It looks like the subsections of 7.4 are also important, though we
probably don't need to literally say "section 7.4 and subsections".)

Section 5.2

I'm still confused why Max-Age, Uri-Host, and Uri-Port are in the same
section.  We talk about "the duration", but that seems to only apply to
Max-Age.

   Otherwise these options can be sent as a Compression Residue (fixed
   or variable length).

I'm not sure that there's going to be a practical scenario where a
fixed-length residue is workable for anay of these three CoAP Options.

Section 5.4

As far as I can tell, Proxy-URI and Proxy-Scheme are indeed
unidirectional (only sent in requests).  It would perhaps be appropriate
to codify this restirction in the compression rules, though I can
understand if the general desire is to not add an additional layer of
restrictions beyond the core CoAP specificiation.

Section 6.2

   Since an RST message may be sent to inform a server that the client
   does not require Observe response, a Rule MUST allow the transmission
   of this message.

Is this saying that if you have a rule that allows sending Observe, you
MUST also have a rule allowing RST?  It might be worth making that more
explicit.

Section 6.4

   The first byte specifies the content of the OSCORE options using
   flags.  The three most significant bits of this byte are reserved and

nit: s/options/option/.

   This specification recommends identifying the OSCORE Option and the
   fields it contains Conceptually, it discerns up to 4 distinct pieces
   of information within the OSCORE option: the flag bits, the piv, the

I'm not sure what was intended to happen here.  Either there's a missing
full stop or a wrongly capitalized word, at a start, but perhaps there
was also supposed to be some additional rewording to join the sentences
together more fluidly.

   The OSCORE Option shows superimposed these four fields using the
   format Figure 6, the CoAP OSCORE_kidctxt field includes the size bits
   s.

The rewording went awry here.  I think it's supposed to be more like
"Figure 6 shows the OSCORE Option format with those four fields
superimposed on it.  Note that the CoAP OSCORE_kidctxt field includes
the size octet s".

(Also, I am not sure I've seen the "ctxt" abbreviation anywhere other
than this document.  Just "ctx" seems much more common in my
experience.)

Section 7.1

   immediately acknowledged by the Device.  For this simple scenario,
   the Rules are described Figure 7.

nit: "described in".

Section 9

The need for additional English review is particularly pronounced in the
new text here.  (I am not attempting to note all instances that would
benefit from extra attention.)

   DoS attacks are possible if an intruder can introduce a compressed
   SCHC corrupted packet onto the link and cause a compression

nit: I think this would be "introduce a corrupted SCHC compressed
packet".

   efficiency reduction.  However, an intruder having the ability to add

Usually I think of "compression efficiency" as relating to the ratio of
sizes between compressed and uncompressed form.  What seems to be
described here is instead the resource efficiency of the entity
performing the decompression function, so I'd suggest using a different
phrasing, such as "excessive resource consumption at the decompressor".

   SCHC compression returns variable-length Residues for some CoAP
   fields.  In the compressed header, the length sent is not the
   original header field length but the length of the Residue.  So if a
   corrupted packet comes to the decompressor with a longer or shorter
   length than the one in the original header, SCHC decompression will
   detect an error and drops the packet.

I don't think I understand the mechanism being described here.  It
sounds as if there is supposed to be some error-checking ability between
the recovered (uncompressed) text and the original header, but I don't
see such a mechanism.  The length in the compressed packet is used to
interpret the residue and produce the recovered (uncompressed) value,
but the original packet is not available for comparison at that time.
If the length in the compressed packet is modified, then the
decompressor will get desychronized from the bit stream and start trying
to parse "random" data as the rest of the packet; that would be expected
to usually produce an error eventually, but I'm not convinced that this
is the mechanism referred to by "detect an error and drops [sic] the
packet".

The secdir review of the -15 made some good points and suggestions,
including pointing out in the security considerations that the typical
compression attacks we worry about aren't an issue here (and why).