Re: [core] WG last-call (WGLC) of draft-ietf-core-http-mapping-07

"Dijk, Esko" <esko.dijk@philips.com> Tue, 29 September 2015 15:00 UTC

Return-Path: <esko.dijk@philips.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A9CFF1B4428 for <core@ietfa.amsl.com>; Tue, 29 Sep 2015 08:00:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_PASS=-0.001] autolearn=ham
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 GRsYwMeyYGfM for <core@ietfa.amsl.com>; Tue, 29 Sep 2015 07:59:56 -0700 (PDT)
Received: from emea01-am1-obe.outbound.protection.outlook.com (mail-am1on0771.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe00::771]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 24FA31B4427 for <core@ietf.org>; Tue, 29 Sep 2015 07:59:53 -0700 (PDT)
Received: from AM3PR04CA0061.eurprd04.prod.outlook.com (10.164.94.29) by DBXPR04MB224.eurprd04.prod.outlook.com (10.242.140.150) with Microsoft SMTP Server (TLS) id 15.1.280.20; Tue, 29 Sep 2015 14:59:30 +0000
Received: from AM1FFO11FD011.protection.gbl (2a01:111:f400:7e00::199) by AM3PR04CA0061.outlook.office365.com (2a01:111:e400:52b6::29) with Microsoft SMTP Server (TLS) id 15.1.280.20 via Frontend Transport; Tue, 29 Sep 2015 14:59:30 +0000
Authentication-Results: spf=none (sender IP is 23.103.247.132) smtp.mailfrom=philips.com; tzi.org; dkim=none (message not signed) header.d=none;tzi.org; dmarc=none action=none header.from=philips.com;
Received-SPF: None (protection.outlook.com: philips.com does not designate permitted sender hosts)
Received: from 011-smtp-out.Philips.com (23.103.247.132) by AM1FFO11FD011.mail.protection.outlook.com (10.174.65.100) with Microsoft SMTP Server (TLS) id 15.1.274.4 via Frontend Transport; Tue, 29 Sep 2015 14:59:30 +0000
Received: from HE1PR9001MB0170.MGDPHG.emi.philips.com (141.251.190.18) by HE1PR9001MB0172.MGDPHG.emi.philips.com (141.251.190.20) with Microsoft SMTP Server (TLS) id 15.1.256.15; Tue, 29 Sep 2015 14:59:12 +0000
Received: from HE1PR9001MB0170.MGDPHG.emi.philips.com ([141.251.190.18]) by HE1PR9001MB0170.MGDPHG.emi.philips.com ([141.251.190.18]) with mapi id 15.01.0256.013; Tue, 29 Sep 2015 14:59:12 +0000
From: "Dijk, Esko" <esko.dijk@philips.com>
To: Klaus Hartke <hartke@tzi.org>, "core@ietf.org WG" <core@ietf.org>
Thread-Topic: [core] WG last-call (WGLC) of draft-ietf-core-http-mapping-07
Thread-Index: AQHQ78or45COoHdR1kayt1Ok8KS1GJ5SDsaAgAGf//A=
Date: Tue, 29 Sep 2015 14:59:12 +0000
Message-ID: <d03ae36ffa2248fb9b991b7abdb82787@HE1PR9001MB0170.MGDPHG.emi.philips.com>
References: <55F83752.3090609@tzi.org> <CAAzbHvYdamD3_XdXORB1dpsfLe1KXxZave0jyf4mp9mahnwA7w@mail.gmail.com>
In-Reply-To: <CAAzbHvYdamD3_XdXORB1dpsfLe1KXxZave0jyf4mp9mahnwA7w@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [194.171.252.106]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-EOPAttributedMessage: 0
X-Microsoft-Exchange-Diagnostics: 1; AM1FFO11FD011; 1:FuqW+kITgq6Yfh3uj6cIc0TcPbcLm5+Lz7h/uHthKPe4J4Uy3Og84okQrKQj5rOkVCxfqVIn9GE4Ni+IWCFNtWLetRZo3GMAqJDp9N6Uy9g7TphX9MU0vtDzMNvaLDwiRE5DJosTkgCSweAQEXiTougvIfy7H4BtPCxvvfeMeKVuLD3feke9e423pJ2+6xSkRvEC0cxNG0UnGb3q8AKBSdnMN1zMm6akt1f1fmw+/HEIWjKdZmaazhvnERc1bID9tIFTDjxNpNaM2Hsw9WCCl4NjcAPGTyNtxg5HQhlhDM0Yu0lrYTEOVhqBjDqMl7LWCm9eDBdp558+LQr9esp1cQ==
X-Forefront-Antispam-Report: CIP:23.103.247.132; CTRY:; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(2980300002)(428002)(57704003)(55904004)(199003)(374574003)(85714005)(13464003)(189002)(68736005)(97736004)(10400500002)(4001540100001)(2900100001)(64706001)(66066001)(24736003)(102836002)(15975445007)(23726002)(5001830100001)(92566002)(46406003)(5001770100001)(5001860100001)(47776003)(5008740100001)(62966003)(2950100001)(16796002)(97756001)(33646002)(77156002)(81156007)(50986999)(105586002)(69596002)(106466001)(87936001)(76176999)(6806005)(46102003)(5003600100002)(50466002)(101416001)(19580395003)(106116001)(19580405001)(11100500001)(230783001)(5007970100001)(54356999)(108616004)(107886002)(5004730100002)(189998001)(86362001)(5001960100002)(567094001); DIR:OUT; SFP:1102; SCL:1; SRVR:DBXPR04MB224; H:011-smtp-out.Philips.com; FPR:; SPF:None; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en;
X-Microsoft-Exchange-Diagnostics: 1; DBXPR04MB224; 2:Z4vFrFmCF05wYmGox+AhRBVIgEDMUCLEoMQSdbnlT/eTU8vvHMouen+ZucNxN0p8giVrIE8MCs15XC3zvoLxA573YniHuOwu90Nowz62t41KEWH1wDmhi7EnCnJ/KGGPJhGlS4hS+0fQtgO6lBysTXQD3lVE/pjvexWXKsjNFac=; 3:vVCr03RYnIjtFazJMQwOAqawmsEN2kAyhjTWT+nsmTGjEh9lpHIZLtXS1r02OR6xMnUUxUXQaHtwC9h7BARl2ngUqsNuARM1Buwu0Gac60+AoQ/3f7lLpDoKkJ+I4ykRHhOLpS9q6G9BykmU7n0cx1IQ+LxX6o0pE1shehiWzo/HY/iwqoJzH4lgRc8FnRtwO1eOfBJ2bNzkh3EE3Q4cKSFvHbDKwqY0YLjOAJolUOY=; 25:iWsa82BI/yzlDYpFgc/xPptwmn7eC0seT0CSpTAOEby4tiEaQONzQexrdkt4QsADUZUfziOyRtdXStgYOKJqrGD8zY+U4W6+c1PAICx/KVyp8A++yRQ4OeoaNmYg+OXytWeEoJ+GWo7R1Edsof27jNb3em8+3CkQYitOa6oUkg6eZF1W0ZifPMA1xai0Eqh2GAAaxiGVKY/XRW0oYObIVTUIH0iwByZIiKE1CTf0sjn2/1iaf6iTmtX95AwWVgRnGNMlMb2Nn6noN2gLH/SgSg==
X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DBXPR04MB224;
X-Microsoft-Exchange-Diagnostics: 1; DBXPR04MB224; 20:mXLSLAaWSCFlgDjGcnnbpmKwTGkNtGZX7JBYtKaMNVjNpnwtlx9fZ12wxDkyYE7ymCBS9Pj1ZJ/Ph6slvMG4ntGbfGvZAiNel50BJtpJivzTgjQfNG6CJ1r2eKb5BfKJHvLFyF6Bxp7K5fZ/uXwRWVWTE9G7S1JEvRhELEgPMcmR5vkWcf+N+FxfJ4VVFb83vIxhRalhGCZR0rTFb5OAcfushoppLlPxfbWiJwzIDtYs3D+qmMDGRo1uU+cy+CCu59yj5Z++ieGJsfPjQpH8fg9X2MGtsPgQwoG/67c6Mecv4vPMTzWVb2H5E+5Zhd4BVuPERp0+R3OH8rX8kPh80OT8PoCSxXhAXto+DCRJ4dxWaxoXbRQ8AXYAHqJC0LYxFaxLb7J8oEMQfVFhy5LeWwcgnRXuwypahiJeNxBuqSlU/A7GTO9akQiFUVw+PpYheDra7GtLN0ldECWqA7Pf5D0EYUAF8rROBCT7TdniJHnW4fxsG7zZJaJuI86osrZS; 4:cUV3PGgzAKuN1SBY8A67oy05/O9rVNuK8iIx3kg+t7tDXuqGekaT1Ksmtu+HDiHrH4uZdvRR4CKm8dgddJFJ3Crj9QdvCEQkL29NYDjmkPCT8sxqk/xAfooKrVhhMOvYWXw1BezNVj++UgWvy60dzk+T3dkZlmsJ227YiCU6jo7ea2UL6RLRvns5FH6PCR5c7VLfO/6ooruz0QTPskLu1K3g1GvOyTxko3LhWnGhpsKN386sazVGWJTCR96yeq/8/FsVVCxn8NiKFBUyGApEl4jdlPJWyRi2kReLzbwDySkRRq8ag4xwkNXXLWQqD5JGk7DnaDZb2ANQn6hiGGjYsoHzezpJvp7d1Ch1W7BzTTs=
X-Microsoft-Antispam-PRVS: <DBXPR04MB224D1326F35EEFD457AAF7CF24E0@DBXPR04MB224.eurprd04.prod.outlook.com>
X-Exchange-Antispam-Report-Test: UriScan:;
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(520078)(5005006)(3002001); SRVR:DBXPR04MB224; BCL:0; PCL:0; RULEID:; SRVR:DBXPR04MB224;
X-Forefront-PRVS: 0714841678
X-Microsoft-Exchange-Diagnostics: 1; DBXPR04MB224; 23:nJ7stOu6HPF0rlm+fbRjk5d3quQteLrmmNU4ezEdA+7n2nz+p3bt5TmSMJqzbs+1OTHA+VXfDuQ1B3wjacmtFpMKRycbTSugRzhryTyCDOoynwk6qZKhc9JtQcF3QMI3QIXvTzxrMMEYTsebRRA7bpZE2KG/x85//HGHQsfKSCDQeph0MIoSUpUAL9JN4zEOU6I43zTcqv0UqgEAemoVdrGj7usemSfI3xqQs1cIcOzqMo6Z6egZOO7/ZAMsqSAm5dJbLqesvT/BX5tsVGlkfnz2WVnADJov7eDVh2Qfv0jACUpreG7LKz+wWDc6/IwINWhTyTVsE1MgSqOognlQ9TlYAyMyE0stP1KvHtaLAO6otfybGiD0CtrjX7i++DjgXsDgJQ5+f/yiLoIvTYQNkNKe7lDpoF7rklACmXPZ088/MiaHRFScDkdyJhanPlsmfH1wHOtpajL0WxfvXvnC5r2klnPrMWk7xgj5+dAR3nEvXuRC+AB2jB8EvtBnbAX9LYetW0GxomdatzRY4VNL+zLPh73n9rMVZfjKrDwhh5JzXfZIYofA1GIxT6821XHO17lxOFn78h0+lNcSVvw1yeQsCeKvdClLJCEkcUO/6STHz/nU7evrJQe6YkQlL1PeRbkGO3krbp6Oq6jEGkb1XQAN8jt/JG6ADigMloRMZn5bdWYXKRpTP4G5p/5VX5s8/w1bLXasGXLwptScq2FBXQIvkOsvvSyr/+Ms1YImF+PmhYZW/lLAz0EX9SCudAyPu718muBUTgpnA8j51h4/lOOkN/WikAmer0w0t02kmCCjlWdcGGN0JvpxkWfVprFfdDEfzh7wUIc8it8xDSJPiHh6QT8/UkLQjsHPAYmNyTMBHc1cFFdoBcYBNrj+k0VFtp2Z7bv4+rdhOAzQ3Psr6bdcQ7fZAVf9YiTJmZNvGrHZtNm+SBklssRrYBOsR6c4hAqjQFYiAYCSlQa9CUGG+3TKrSHQETA0l57k3eH5Y7PaaMZEjiwBaHOxMPR2oEMzqEZD/nQ6es0t/9ExyB7OZ9hU3nZ7YGSm6sb7tUPBtyPQJFPJx2haGM69ix0Vg0JYCqNq7xG0H03/ElGyTVuqLTMYOumK9LzLPzhIv8R281djCx5S2LQd44KTmHZs4QqVSPL2VrqJE8LFNGJ4oHSgzYB/qhmzLQ7vPW3ywK6212Q2WAwwoS28uQPxtruTzfu4iS4hbuUirQjpQXd6OM8Oy02GghigvUmYV2g+XFc/q/WZUmOjWkuLURulzJXZO7r7fTIVED1ARuB7IUoxRVWcdzrnp+eBpCkSNWvi4HlpmqBCtAAzuf922QIKBUMgk+HKnwHDXckDMBkBsk3U7I33w+l1vmICmjY1PlF6cbvPP64+xDnOjYbqqsizcj3GaylOsyA0vfAy1B4gzm9YSxSg8QJojan6fvEl18IdV/gfs6MSOp8ScWNDsR+oEifD3/MIAgfaTYA1072Qj71SXkP/OsxNIPunQR3tgDTf4YHwsxhRgc5rmXGHYdfcKw35YjLwvrr5sCOotoqtrNigz5ZZ4bVHvDqCn34jkvdPZsG0R9E=
X-Microsoft-Exchange-Diagnostics: 1; DBXPR04MB224; 5:JUfyvqdrAqL2jCz0XBN0gqO5I0t2zuOUBI8E0NspFI5Z/dbfV19p2GliwO5AbEeH4bYH5I6LzXNgInXqkTDntf8c7PcklZ91OvrZqMoqR2BaU93xT2feZ1k0ZirPZzfE7uCgRWjrm7yGeTKOF6b8KA==; 24:VIscgjrft20J+jsocm+TvC/wIVEM/xdDeBPuEuTqG/9ggVze0o9h2iEx/76IzB/LlJvdQPbfxDi3iuU0QUCQ1/fvHS6DDCqHGrCrxRL3uYM=; 20:wviJpDbvTc4fOBfCv14zrKGfLVCvsUuT5012qn0OmhUN8I9CLdSmJ3uwMvSlk6nZXTlGmSmhCPBhKqjBF3fy3Q==
SpamDiagnosticOutput: 1:23
SpamDiagnosticMetadata: NSPM
X-OriginatorOrg: philips.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Sep 2015 14:59:30.4472 (UTC)
X-MS-Exchange-CrossTenant-Id: 1a407a2d-7675-4d17-8692-b3ac285306e4
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=1a407a2d-7675-4d17-8692-b3ac285306e4; Ip=[23.103.247.132]; Helo=[011-smtp-out.Philips.com]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBXPR04MB224
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/WsLHuPnYJBlr2eTcicRqE6qN-jo>
Subject: Re: [core] WG last-call (WGLC) of draft-ietf-core-http-mapping-07
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 29 Sep 2015 15:00:00 -0000

Thanks Klaus for your review comments! I hope to go through these in the coming days and then discuss with my co-authors how to address the open issues.

Regards
Esko

-----Original Message-----
From: core [mailto:core-bounces@ietf.org] On Behalf Of Klaus Hartke
Sent: Monday, September 28, 2015 16:09
To: core@ietf.org WG <core@ietf.org>
Subject: Re: [core] WG last-call (WGLC) of draft-ietf-core-http-mapping-07

Here's my review of draft-ietf-core-http-mapping-07:

Overall -- the document is 'Informational', but it makes a lot of use of requirement keywords (SHOULD, MUST, etc.). Do these keywords indicate conformance requirements? What happens if a proxy implementation ignores any of the requirements? Where do interoperability problems occur in this case? Please review all occurrences of a requirement keywords in the document and verify that is really necessary for interoperability. Explain what happens when a proxy implementation fails to implement a requirement keyword. IMHO the only requirement is really that the proxy MUST keep up the illusion that it is an HTTP origin server; everything else seems to be OPTIONAL to me.

1. "is to reduce variation between proxy implementations, thereby increasing interoperability" -- where do these interoperability problems occur? A HTTP-CoAP cross-protocol reverse proxy appears as an origin server to the HTTP client, so for the HTTP client any such proxy looks the same.

5. "base URI" -- the term "base URI" has a well-defined meaning in the context of URI reference resolution (RFC 3986, Section 5). You're using it here for something else, which is confusing. Please use a different term.

5.2 "The default URI mapping function is RECOMMENDED to be implemented" -- why? What happens when this requirement is ignored?

5.3 -- I don't understand this section. What is this? Why do we need this? How is this different from the default mapping in Section 5.2?
Who uses these templates, the client or the proxy?

5.3 -- Section 5.2 defines a default mapping, 5.3.1 seems to define three additional mappings, 5.3.2 seems to define yet another mapping.
Section 1 says that one goal of the spec "is to reduce variation between proxy implementations, thereby increasing interoperability".
How does this multitude of mappings reduce variability?

5.4 -- "to discover the proxy function, the HC proxy SHOULD publish information related to the location and syntax of the HC proxy function" -- the proxy is a reverse proxy. It appears as an origin server to any client. Why does the proxy function need to be discovered? Who are the "third parties"?

5.4.1 -- Section 5.4 is about discovering the proxy function, 5.4.1 is about discovering resources, 5.4.2 is about discovering the proxy function again. This is confusing.

5.4.2 "The first example exercises the CoAP interface" -- why does a CoAP client need to discover a HTTP-CoAP proxy?

6.5.2. -- to keep the illusion up that the proxy is an origin server, the proxy MUST rewrite _all_ URIs in _all_ representation formats, not just Link Formats. This includes _all_ URIs generated on-the-fly by JavaScript code! Unless the proxy has a very deep understanding of the application, this is generally not possible. But a reverse proxy with a very deep understanding of the application is unlikely to use any of the URI mapping schemes defined in the document. So basically the whole Section 5 is useless.

6.5.3. "the CoAP diagnostic payload must be used as the HTTP reason-phrase of the HTTP status line" -- a diagnostic payload is similar to the HTTP reason phrase, but it can be much more verbose and, e.g., can include CR-LF line breaks. It's probably best to stick the diagnostic payload into the payload and use the default reason phrase for the status code.

7. "4.02 Bad Option | 400 Bad Request" -- can the HTTP client make a change to its request so that the proxy does not include the bad option in its CoAP request? If not, the bad option is the proxy's fault (5xx status code) and not the HTTP client's fault (4xx status code).

7. "The proxy receiving 2.03 updates the freshness of its cached representation and returns the entire representation to the HTTP client." -- If the proxy receives a response indicating that the etag supplied by the HTTP client is valid, why does the proxy need to send the representation to the client?

7. "If the HC proxy does not implement a proper authentication method that can be used to gain access to the target CoAP resource, it can include a 'dummy' challenge for example "WWW-Authenticate: None"." -- if the proxy cannot gain access to the CoAP resource, it should probably return a 403 (Forbidden) status code to the HTTP client.

7. "In this case the HC Proxy SHOULD also return a HTTP reason-phrase in the HTTP status line that starts with the string "405" in order to facilitate troubleshooting." -- this leads to a status line like
"HTTP/1.1 400 405 Method Not Allowed" which looks wrong and may confuse implementers.

7. "The value of the HTTP "Retry-After" response-header field is taken from the value of the CoAP Max-Age Option, if present." -- if the Max-Age Option is not present, it means that the Max-Age is 60 seconds, not that the representation doesn't have a Max-Age.

8.1 "An HC proxy SHOULD limit the number of requests to CoAP servers by responding, where applicable, with a cached representation of the resource." -- The proxy actually MUST perform congestion control as specified in RFC 7252. Caching is not about congestion control, it is about efficiency. So, as a matter of quality of implementation, it is a good idea for a proxy to implement caching. But responding with a cached representation of the resource is not a tool to enforce congestion control.

8.1 "Duplicate idempotent pending requests by an HC proxy to the same CoAP resource SHOULD in general be avoided, by using the same response for multiple requesting HTTP clients without duplicating the CoAP request." -- this is not how caching in CoAP works. Please read RFC 7252.

8.1 "According to [RFC7252], a proxy MUST limit the number of outstanding interactions to a given CoAP server to NSTART." -- this has already been specified in RFC 7252. There is no need to repeat that here.

9.2 -- have you submitted the registration to the media-types@ietf.org mailing list for review? It's probably a good idea to do this before sending the document to the IESG.

Are there any implementations of this document?

Klaus

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

________________________________
The information contained in this message may be confidential and legally protected under applicable law. The message is intended solely for the addressee(s). If you are not the intended recipient, you are hereby notified that any use, forwarding, dissemination, or reproduction of this message is strictly prohibited and may be unlawful. If you are not the intended recipient, please contact the sender by return e-mail and destroy all copies of the original message.