Re: [core] Fwd: New Version Notification for draft-silverajan-core-coap-protocol-negotiation-04.txt

Bill Silverajan <bilhanan.silverajan@tut.fi> Tue, 15 November 2016 16:28 UTC

Return-Path: <bilhanan.silverajan@tut.fi>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7032A12947D for <core@ietfa.amsl.com>; Tue, 15 Nov 2016 08:28:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.697
X-Spam-Level:
X-Spam-Status: No, score=-5.697 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-1.497] autolearn=ham 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 qC7bCrKgZNQl for <core@ietfa.amsl.com>; Tue, 15 Nov 2016 08:28:06 -0800 (PST)
Received: from mail-gw-out1.cc.tut.fi (mail-gw-out1.cc.tut.fi [130.230.160.32]) (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 130B6128B37 for <core@ietf.org>; Tue, 15 Nov 2016 08:28:05 -0800 (PST)
X-AuditID: 82e6a020-0c3ff70000000917-d5-582b374f1f09
Received: from mail1.tut.fi (mail1.tut.fi [130.230.162.19]) by mail-gw-out1.cc.tut.fi (Symantec Messaging Gateway) with SMTP id 86.A7.02327.F473B285; Tue, 15 Nov 2016 18:26:56 +0200 (EET)
Received: from Bilhanans-MBP.P-661HNU-F1 (a88-114-40-90.elisa-laajakaista.fi [88.114.40.90]) by mail1.tut.fi (Postfix) with ESMTPSA id 2F08340336; Tue, 15 Nov 2016 18:26:55 +0200 (EET)
To: Christian Amsüss <c.amsuess@energyharvesting.at>
References: <147794779162.23193.6769793631552741634.idtracker@ietfa.amsl.com> <7c2d4c7c-526a-7fd3-b1c4-c58f141a5720@tut.fi> <20161114155034.stnigqulniww7nji@hephaistos.amsuess.com>
From: Bill Silverajan <bilhanan.silverajan@tut.fi>
Message-ID: <d6d672aa-a972-9a8c-6f0e-dcd4ca24b758@tut.fi>
Date: Tue, 15 Nov 2016 18:26:54 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.4.0
MIME-Version: 1.0
In-Reply-To: <20161114155034.stnigqulniww7nji@hephaistos.amsuess.com>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 8bit
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrJIsWRmVeSWpSXmKPExsXS9GyRsG6guXaEweK17BbLLzxnsdj3dj2z A5PH1v13mTyWLPnJFMAUxWWTkpqTWZZapG+XwJVx/eNktoKv2hUfmjeyNDCeV+pi5OSQEDCR +DJrJ2MXIxeHkMBeRom7OxqhnD2MEq3r5zOBVAkL5Elc6O5gAbFFBFwlPl/8wg5RtINR4tfb ZlaQBLOAoMSRm3uZQWw2ASOJA982gTXwClhKvLw4GcxmEVCV6LzxkBHEFhVIk1j56BcTRI2g xMmZT4BqODg4gRZc2VQOMdJW4s7c3cwQtrxE89bZzBMY+Wch6ZiFpGwWkrIFjMyrGMVyEzNz dNPLdfNLSwz1kpP1SkpL9NIyNzGCQ3CBwg7Gl9P0DzEKcDAq8fAuUNeOEGJNLCuuzD3EKMnB pCTKO1cHKMSXlJ9SmZFYnBFfVJqTWnyIUYKDWUmEd5E+UI43JbGyKrUoHyYlzcGiJM5b6q8Z IiSQnliSmp2aWpBaBJOV4eBQkuBlMwBqFCxKTU+tSMvMKUFIM3FwggznARr+B2x4cUFibnFm OkT+FKOilDgvqwZQQgAkkVGaB9cLShERRRpRrxjFgV4R5n0O0s4DTC9w3a+ABjMBDd5lrgEy uCQRISXVwDhzdmf51v+ht6b4spTH+x/Z7zD10YFpb/fyezTc/rZf0Vdrl0/UMlkdGwkrFpu3 kSrB803zJvHVixtqngnesMv0oYPmru2KAjYiU4TPTA82yma2Pt54LnyCqe+UyfeSZpxS9lxZ PEP89pfoCY9DzueuW1CflyFjyhZyZ0a/dt6LBLfdT5/PZVJiKc5INNRiLipOBACZSrFP7AIA AA==
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/K41POA2T1ZxaUz6O1HYmgLUsfeQ>
Cc: core@ietf.org
Subject: Re: [core] Fwd: New Version Notification for draft-silverajan-core-coap-protocol-negotiation-04.txt
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.17
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, 15 Nov 2016 16:28:08 -0000

Hi Christian,

Thanks for the interesting comments and suggestions. I'll reply inline 
to them:

Christian Amsüss wrote:

> My notes / questions to -04:
>
> * at parameter / con parameter: It seems that the at= list arguments are
>   roughly equivalent to the con= context parameter that defaults to the
>   protocol and address of the originating submission.
>

After looking at "con", we took an active decision to introduce "at", 
for a couple of reasons. The first is to avoid overloading the semantics 
of "con" when the EP registers with the RD:

When using "con": This is my *one and only* context URI to describe the 
endpoint location. *Always* use it instead of the endpoint address (and 
protocol configurations) I'm registering my links with.

When using "at": You can reach me at the endpoint address (and protocol 
configuration) I registered my link with. Optionally, I'm also available 
to serve my CoAP resources at these other locations over alternative 
transports.

The second reason is that you may need to use "con" together with "at" 
for a reason you mention below (if you do a goto alt+con a little way down)


>   Does that mean that the endpoint registers using TCP instead of UDP,
>   the equivalent to the 4.1 example would be
>
>   POST coap+tcp://rd.example.com/rd?ep=node1&1&at=\
>           coap://server.example.com,\
>           coap+ws://server.example.com:5683/ws/
>

To me this makes complete sense, if the primary endpoint transport is 
seen to be TCP, and the server also wishes to indicate it's available 
over UDP and WebSockets. But, to see my next point on using alt and con,

>   ? This means that registration is only possible using a protocol where
>   no path component is used in the at parameter, but that's probably
>   fine because those protocols are rather not used to start a
>   connection. (Aren't the? It'd be something like a server accessed via
>   websockets registering itself as an endpoint at an RD runnign inside
>   the browser. If you don't want to rule out registration over those,
>   updating allowing a path into con= might be an option.)
>

alt+con:

I think this is a very interesting point when it comes to using CoAP 
over reliable transports such as TCP and WebSockets with the RD. While 
UDP sockets allow reuse and peer-to-peer communication, the same cannot 
be said for the others. i.e. if you're registering with a reliable 
transport protocol, I assume you must use "con", since the endpoint 
would use a different location (or a system generated client random port 
number in userspace) than the CoAP server endpoint.

I'm not sure whether our draft, coap-tcp-tls or core-resource-directory 
is a better place to highlight this, but we'll capture this into our 
draft if it isn't mentioned in the others.


>   If at is intended to be a list of more con= parameters, I suggest this
>   be made more explicit (eg. "The list does not need to contain the
>   location that is implied by the source address of the registering
>   connection or explicitly set in the con= parameter." after 4.1 par1).

Thanks for the suggestion. It's good to explicitly clarify the 
relationship to "con" as well as the endpoint location during the 
registration, so we'll add that text in.

>
> * at= parameter list: The comma-separation precludes all URIs that
>   contain the comma character. This is unlikely to occur (maybe
>   `coap+ws://.../ws,v=1.1/` like in RFC3986) but legal in a URI.
>

The comma is a valid (default) separator for query expansion (see 
section 3.2 in RFC 6570) but as you say, it's also legal in a URI. 
However, section 2.2 of RFCC 3986 describes the comma as a reserved 
character and has this to say about its use:

"If data for a URI component would conflict with a reserved character's 
purpose as a delimiter, then the conflicting data must be 
percent-encoded before the URI is formed."

We could mention this in the draft text too.

One thing: The CoAP URI for (secure) WebSockets as defined in 
core-tcp-tls does not specify a path component for the Websocket 
endpoint. It was too tricky to do location/identification by separating 
the path components for the websoocket endpoint away from the CoAP 
resource. However, this problem is addressed in this draft.

> * tt= parameter: To which of the four defined lookup types is this
>   applicable? (My assumption would be ep and res, where the res would
>   return the composed ).

"tt" extends the URI Template in the RD Lookup Function Set as follows:

URI Template:  /{+rd-lookup-base}/{lookup-
       type}{?d,ep,gp,et,rt,page,count,resource-param,tt}

So technically all four lookup types (including d and gp)

>Can the parameter
>   repeated to indicate a set of supported transports? Does it have a
>   default value? (I'd assume '*').
>

"tt" can be used to look up a specific transport type (or * for all). 
I'm not sure if it needs a default value? The use cases we had here were 
a client querying the RD for endpoints supporting a specific tranport, 
or a client querying the RD for an endpoint's currently available and 
active transports. This would also return the secure URIs if registered.

There's a tradeoff between making several queries to check for specific 
kinds of transports (so you get success or notfound responses), or 
extending "tt" to support a query list that can be returned in one 
operation (but may or may not contain all the transports you asked for).

Regards,
Bill



> Best regards
> Christian
>