
From nobody Mon Jul 10 13:34:04 2017
Return-Path: <adam@nostrum.com>
X-Original-To: clue@ietfa.amsl.com
Delivered-To: clue@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2CF9212F26D; Mon, 10 Jul 2017 13:34:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.881
X-Spam-Level: 
X-Spam-Status: No, score=-1.881 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.001, T_SPF_HELO_PERMERROR=0.01, T_SPF_PERMERROR=0.01] 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 Z4b92a0XZMfz; Mon, 10 Jul 2017 13:34:00 -0700 (PDT)
Received: from nostrum.com (raven-v6.nostrum.com [IPv6:2001:470:d:1130::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D345412F287; Mon, 10 Jul 2017 13:33:59 -0700 (PDT)
Received: from Orochi.local (99-152-146-228.lightspeed.dllstx.sbcglobal.net [99.152.146.228]) (authenticated bits=0) by nostrum.com (8.15.2/8.15.2) with ESMTPSA id v6AKXnmD091417 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Mon, 10 Jul 2017 15:33:52 -0500 (CDT) (envelope-from adam@nostrum.com)
X-Authentication-Warning: raven.nostrum.com: Host 99-152-146-228.lightspeed.dllstx.sbcglobal.net [99.152.146.228] claimed to be Orochi.local
To: Robert Hansen <rohanse2@cisco.com>, clue@ietf.org
Cc: clue-chairs@ietf.org, draft-ietf-clue-signaling@tools.ietf.org
References: <0b69d2f1-11e1-8fd1-d4a1-2faacc0a8528@nostrum.com> <5168f94a-811e-897a-3c83-f44b17a11568@cisco.com>
From: Adam Roach <adam@nostrum.com>
Message-ID: <f42b90de-824c-a742-a8c7-2f14841279d1@nostrum.com>
Date: Mon, 10 Jul 2017 15:33:44 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:52.0) Gecko/20100101 Thunderbird/52.2.1
MIME-Version: 1.0
In-Reply-To: <5168f94a-811e-897a-3c83-f44b17a11568@cisco.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/clue/Xyq7BeLLW3mF_nz1n2bJ_OLW42g>
Subject: Re: [clue] AD Review: draft-ietf-clue-signaling-11
X-BeenThere: clue@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: CLUE - ControLling mUltiple streams for TElepresence <clue.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/clue>, <mailto:clue-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/clue/>
List-Post: <mailto:clue@ietf.org>
List-Help: <mailto:clue-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/clue>, <mailto:clue-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 10 Jul 2017 20:34:03 -0000

For my own planning purposes, when might we expect to see a revised version?

Thanks!

/a

On 6/7/17 12:22, Robert Hansen wrote:
> Hi Adam,
>
> Thank you for the very detailed review - I'll find the time to review 
> it, respond and post a revised draft ASAP.
>
> Rob
>
> On 03/06/17 01:14, Adam Roach wrote:
>> CLUE working group --
>>
>> I have completed my AD review for the CLUE signaling document. The 
>> document is generally in good shape, but I think we'll need another 
>> revision before putting it in front of the IETF for last call 
>> (especially due to the apparent incomplete removal of support for 
>> specifying multiple CLUE groups per session).
>>
>> Most of my comments below are feedback that the document authors 
>> should treat as normal last call comments. The feedback that I 
>> consider to block progressing the document, in my role as AD, is 
>> explicitly marked with the prefix "BLOCKER", and these will need to 
>> be resolved in a new version of the document before progressing it 
>> further. Note that it is entirely possible that something I have 
>> marked "BLOCKER" may stem from an error on my part; so recognize that 
>> these are not demands for change, as much as a need to have things 
>> either fixed in the document or explained to me.
>>
>> Title: The rule of thumb is that all but a small handful of 
>> well-known acronyms need to be expanded in titles and abstracts. I 
>> recognize that "CLUE" is a bit tortured, as acronyms go, but the 
>> title of this document is, broadly speaking, opaque. Please change it 
>> to something meaningful, such as "Session Signaling for Controlling 
>> Multiple Streams for Telepresence (CLUE)"
>>
>> BLOCKER: General: It is clear from reading this version of the 
>> document that earlier versions contained the notion of multiple 
>> "a=group:CLUE" lines in a single SDP description. This version 
>> appears to have tried to remove all related text, but there are still 
>> enough mentions that talk about CLUE groups in a way that implies 
>> that there can be multiples so as to cause confusion. These need to 
>> be cleaned up. I call the specific instances out on a 
>> section-by-section basis below. I'm mentioning it up here since it's 
>> really only one blocker issue with a bunch of instances.
>>
>> General: The _protocol_ document has a host of different terms for 
>> each kind of CLUE message (e.g., "ADVERTISEMENT," "ADV," and 
>> "advertisement" for the same operation). This document exacerbates 
>> the situation by introducing yet more variations, such as 
>> "Advertisement" and "Configure". Please coordinate with 
>> draft-ietf-clue-protocol to use a consistent set of names for these 
>> operations between the two documents.
>>
>> Introduction: The convention I see in this document is to write 
>> defined terms with initial caps; please replace "encoding group" with 
>> "Encoding Group."
>>
>> Section 3: Please add a reference to RFC3840 (e.g.: 'The "sip.clue" 
>> media feature tag [RFC3840] indicates...")
>>
>> Section 4.2: "Presence of the data channel in a CLUE group..." 
>> implies there can be more than one group. Replace "a" with "the."
>>
>> Section 4.3: ...its "mid" value MUST be included in a CLUE group' 
>> implies there can be more than one group. Replace "a" with "the."
>>
>> Section 4.4.1: "...in a CLUE group as defined above." implies there 
>> can be more than one group. Replace "a" with "the."
>>
>> Section 4.4.1: '..."m=" lines in the same CLUE group in the SDP 
>> message...' very strongly implies there can be more than one group. 
>> Rephrase, perhaps along the lines of "...CLUE-controlled "m=" lines 
>> in the SDP message..."
>>
>> 4.4.2: 'These "m=" lines are CLUE-controlled and hence MUST include 
>> their "mid" in the CLUE group corresponding to the CLUE group of the 
>> Encoding they wish to receive.' is getting pretty explicit about the 
>> presence of multiple CLUE groups. Fix.
>>
>> 4.5.2.1, first sentence: Replace "If the recipient is a 
>> CLUE-capable..." with "If the recipient of an offer is a 
>> CLUE-capable..."
>>
>> BLOCKER: Section 4.5.2.2: For avoidance of doubt, this section should 
>> clearly indicate what the answer should do with CLUE-controlled lines 
>> that it has no intention of receiving (for sendonly) or sending (for 
>> recvonly). I believe the expectation here is to set the port to zero 
>> (rather than, e.g., setting the direction to inactive). The document 
>> should explicitly state this behavior: if implementations make 
>> different choices between port-zero and inactive and don't expect the 
>> other behavior, you can end up with incompatibilities.
>>
>> Section 4.5.3.1, paragraph 2: My recollection is that telling 
>> implementors not to send media is frequently misinterpreted to mean 
>> that they don't have to send/receive RTCP either. This causes all 
>> kinds of grief. It will probably head off issues if this section is 
>> phrased more like "...MAY choose not to send RTP on the 
>> non-CLUE-controlled channels (although RTCP is still sent and 
>> received as normal) during the period..."
>>
>> Section 4.5.4.1: 'Subsequent offer/answer exchanges MAY add 
>> additional "m=" lines...' -- this should probably also mention "and 
>> activate inactive ones."
>>
>> Section 4.5.4.1: 'Subsequent offer/answer exchanges MAY also 
>> deactivate "m=" lines for CLUE-controlled media.' -- again, the 
>> interpretation of "deactivate" may be different between implementors. 
>> Please be clear about whether this means "a=inactive", port=0, or both.
>>
>> Section 4.5.4.1: The final paragraph talks about "deactivating" 
>> non-CLUE media. Again, this should be explicit about what is meant.
>>
>> Section 4.5.4.2: 'If, in an ongoing non-CLUE call, an SDP 
>> offer/answer exchange completes with both sides having included a 
>> data channel "m=" line in their SDP and with the "mid" for that 
>> channel in corresponding CLUE groups..." implies that there can be 
>> more than one CLUE group. Fix.
>>
>> Section 4.5.4.3: "...include the data channel in a matching CLUE 
>> group..." implies there can be more than one group. Replace "a 
>> matching" with "the."
>>
>> Section 4.5.4.3: "Any active "m=" lines still included in a CLUE 
>> group..." implies there can be more than one group. Replace "a" with 
>> "the."
>>
>> Section 4.5.4.3: "Note that this is distinct from cases where the 
>> CLUE protocol negotiation fails, or an error occurs in the CLUE 
>> protocol; see [I-D.ietf-clue-protocol] for details of media and state 
>> preservation in this circumstance." -- I carefully scrubbed the CLUE 
>> protocol document to try to determine what this is referring to. 
>> Please change it to "see [I-D.ietf-clue-protocol] section X.Y.Z", but 
>> replacing "X.Y.Z" with the section that provides the details you 
>> allude to.
>>
>>
>> BLOCKER: Compare the normative statements in paragraph 2 of Section 5.3:
>>
>>    Generally, implementations that receive messages for which they have
>>    incomplete information SHOULD wait until they have the corresponding
>>    information they lack before sending messages to make changes related
>>    to that information.  For example, an answerer that receives a new
>>    SDP offer with three new "a=sendonly" CLUE "m=" lines for which it
>>    has received no CLUE Advertisement providing the corresponding
>>    capture information SHOULD include corresponding "a=inactive" lines
>>    in its answer, and SHOULD make a new SDP offer with "a=recvonly" when
>>    and if a new Advertisement arrives with Captures relevant to those
>>    Encodings.
>>
>> With the normative statements in section 4.5.2.2:
>>
>>    If the initial offer contained "a=recvonly" CLUE-controlled media
>>    lines the recipient SHOULD include corresponding "a=sendonly" CLUE-
>>    controlled media lines for accepted Encodings
>>    ...
>>    If the initial offer contained "a=sendonly" CLUE-controlled media
>>    lines the recipient MAY include corresponding "a=recvonly" CLUE-
>>    controlled media lines
>>
>> 5.3 says "SHOULD set a=inactive" in the exact same circumstances 
>> 4.5.2.2 says "SHOULD set a=sendonly". Please pick one expected 
>> behavior and make sure both sections agree. Ideally, you would 
>> refactor this so that the normative statement is made in only one 
>> location.
>>
>>
>> Section 7 appears to be oddly silent on the use of RTCP MUX. I 
>> suspect that the intention is that CLUE will generally multiplex RTCP 
>> when using BUNDLE? I would expect this to be called out.
>>
>> Section 7 offers that the use of BUNDLE has the advantage of reducing 
>> the number of ICE candidates that need to be collected. This is true 
>> only in the case that some m= section are marked as bundle-only; 
>> this, in turn, implies that a bundled offer is going to contain one 
>> or more m= sections that will fail if the remote endpoint does not 
>> implement BUNDLE. This interacts particularly badly with the text in 
>> section 4.5.1 that allows, under certain circumstances, that 'the 
>> initial offer MAY contain "m=" lines for CLUE-controlled media.', 
>> since you can end up with the whole CLUE session falling apart if the 
>> bundle-only lines are not chosen carefully. This is a relatively 
>> complicated issue that I wouldn't expect impementors to get correct 
>> without some guidance on the use of bundle-only, and in particular 
>> its interaction with CLUE-controlled lines. Please add text to 
>> Section 7 that discusses these issues.
>>
>> Section 8: Please insert a page break before the ladder diagram so 
>> that the entity names don't appear on a page by themselves.
>>
>> Section 8: "In this case Bob is the Channel Initiator..." this isn't 
>> clear (and, in fact, it's counterintuitive to me) -- perhaps there 
>> should be some text indicating *why* Bob is the Channel Initiator.
>>
>> General, but surfaced in section 8: The procedures described in this 
>> document virtually guarantee that every CLUE call that is established 
>> will result in glare (response code 491) behavior. This might cause 
>> the operations folks some heartburn, as it means that their error 
>> counts will spike once CLUE is deployed. Further, without fairly 
>> advanced analysis of the callflow, this will make it impossible to 
>> distinguish "expected" CLUE-induced 491s from the oddball actual 
>> glare conditions usually signaled by 491. Has any consideration been 
>> given to avoiding this situation (e.g., by having the called party 
>> wait on the order of one second before attempting to negotiate its 
>> encodings)?
>>
>>
>> Section 8 contains the following text:
>>
>>    Bob also sends his SDP answer as part of SIP 200 OK 2. Alongside his
>>    original audio, video and CLUE "m=" lines he includes two active
>>    recvonly "m= "lines and a zeroed "m=" line for the third.
>>
>> This should probably be qualified to indicate that these are the same 
>> m-sections as were present in the offer (as opposed to creating new 
>> sections).
>>
>>
>> Section 8: Replace "Having received this Alice..." with "Having 
>> received this offer, Alice..."
>>
>> Section 9: "From the lack of the data channel and grouping 
>> framework..." -- it should be noted that implementations that end up 
>> in communication with normal non-CLUE WebRTC implementations might 
>> get a datachannel but no CLUE group. The quoted text implies that the 
>> presence or absence of a datachannel can be used to determine CLUE 
>> support, which might cause implementors to rely on that exclusively. 
>> Please change the text to indicate that the CLUE group should be used 
>> as the sole determinant of CLUE support (at least, as far as SDP 
>> signaling is concerned).
>>
>> Section 10: It is rather unusual to include authors in the 
>> acknowledgements section. For each of Rob Hansen, Paul Kyzivat, and 
>> Christian Groves, I suggest removing the individual's name from 
>> either the Acknowledgements section or from the authors list.
>>
>> Section 11.2: "This specification registers a new media feature tag 
>> in the SIP [RFC3264] tree..." This should cite RFC3261 for SIP rather 
>> than RFC3264.
>>
>> Section 11.2: Please indicate "iesg@ietf.org" as the contact for this 
>> registration.
>>
>>
>> BLOCKING: Section 12 indicates that no security mechanisms are 
>> mandatory to use "due to the issues addressed in [RFC7202]." This 
>> vastly misconstrues the intent and text of RFC7202, which (roughly 
>> speaking) says "we don't mandate security for RTP in general because 
>> it is used in a vast and varied array of applications." CLUE is a 
>> very specific, very narrow application of RTP that does not suffer 
>> from the generality that makes a one-size-fits-all solution for RTP 
>> infeasible. In fact, RFC7202 is quite clear that its guidance applies 
>> exclusively to RTP, and not to protocols that *use* RTP: "Documents 
>> that define an interoperable class of applications using RTP are 
>> subject to [RFC3365], and thus need to specify MTI security 
>> mechanisms." If there are specific arguments put forth in RFC7202 
>> that the working group believes also apply to this document, please 
>> reiterate them here. The current citation to RFC7202 is problematic, 
>> though, since it says the opposite of what this security section 
>> implies.
>>
>> If I understand it correctly, though, the argument to put forth here 
>> is that implementations MAY choose not to secure legacy 
>> (non-CLUE-controlled) media lines because SIP was specified prior to 
>> RFC3365, and was therefore not bound by its requirements; and, as a 
>> consequence, many existing SIP endpoints are incapable of using 
>> DTLS-SRTP. This rationale is orthogonal to the guidance in RFC7202, 
>> and should not cite it.
>>
>> The use of "DTLS" to refer to "DTLS-SRTP" is also confusing, as they 
>> are different things.
>>
>> I propose changing the paragraph as follows:
>>
>>    This attack can be prevented by ensuring that the media recipient 
>> intends
>>    to receive the media packets.  As such, all CLUE-capable devices MUST
>>    support key negotiation and receiver intent assurance via DTLS-SRTP
>>    [RFC5763] on CLUE-controlled RTP "m=" lines.  As specified in
>>    [I-D.ietf-clue-framework], all CLUE-controlled RTP streams must be
>>    secured and implemented using mechanisms such as SRTP [RFC3711].  
>> CLUE
>>    implementations MAY choose not to require the use of SRTP to 
>> secure legacy
>>    (non-CLUE-controlled) media for backwards compatibility with older
>>    SIP clients that are incapable of supporting SRTP.
>>
>> Section 12: "To prevent this, SIP signaling SHOULD always be 
>> encrypted using TLS..." While I agree with the statement, I think 
>> it's a bit outside the purview of this document to specify this. 
>> Suggest: "...SIP signaling used to set up CLUE sessions SHOULD..."
>>
>> /a
>>
>


From nobody Mon Jul 10 13:35:17 2017
Return-Path: <adam@nostrum.com>
X-Original-To: clue@ietfa.amsl.com
Delivered-To: clue@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8583C1318A9; Mon, 10 Jul 2017 13:35:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.88
X-Spam-Level: 
X-Spam-Status: No, score=-1.88 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RP_MATCHES_RCVD=-0.001, T_SPF_HELO_PERMERROR=0.01, T_SPF_PERMERROR=0.01] 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 sov4wXsCZzBq; Mon, 10 Jul 2017 13:35:11 -0700 (PDT)
Received: from nostrum.com (raven-v6.nostrum.com [IPv6:2001:470:d:1130::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2F6F712F24E; Mon, 10 Jul 2017 13:35:11 -0700 (PDT)
Received: from Orochi.local (99-152-146-228.lightspeed.dllstx.sbcglobal.net [99.152.146.228]) (authenticated bits=0) by nostrum.com (8.15.2/8.15.2) with ESMTPSA id v6AKZ7pQ091562 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Mon, 10 Jul 2017 15:35:08 -0500 (CDT) (envelope-from adam@nostrum.com)
X-Authentication-Warning: raven.nostrum.com: Host 99-152-146-228.lightspeed.dllstx.sbcglobal.net [99.152.146.228] claimed to be Orochi.local
To: Simon Pietro Romano <spromano@unina.it>
Cc: clue@ietf.org, clue-chairs@ietf.org, draft-ietf-clue-protocol@tools.ietf.org
References: <a30828ea-1db8-fccd-9c2b-ddc0a1dcb08d@nostrum.com> <4523923C-254E-45B1-AC8E-B301834E0876@unina.it>
From: Adam Roach <adam@nostrum.com>
Message-ID: <df86d7b3-f45b-4e71-7e5b-8c3c1c7fe496@nostrum.com>
Date: Mon, 10 Jul 2017 15:35:02 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:52.0) Gecko/20100101 Thunderbird/52.2.1
MIME-Version: 1.0
In-Reply-To: <4523923C-254E-45B1-AC8E-B301834E0876@unina.it>
Content-Type: multipart/alternative; boundary="------------E08E3FEB9875DF153AC78B95"
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/clue/4Ifv3qlSklqeFz1TWnfUuxIWvBM>
Subject: Re: [clue] AD Review: draft-ietf-clue-protocol-13
X-BeenThere: clue@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: CLUE - ControLling mUltiple streams for TElepresence <clue.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/clue>, <mailto:clue-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/clue/>
List-Post: <mailto:clue@ietf.org>
List-Help: <mailto:clue-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/clue>, <mailto:clue-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 10 Jul 2017 20:35:16 -0000

This is a multi-part message in MIME format.
--------------E08E3FEB9875DF153AC78B95
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

For my own planning, when might I expect to see a revised edition of 
this document?

Thanks!

/a

On 6/12/17 08:14, Simon Pietro Romano wrote:
> Hello Adam,
>
> thanks a lot for your thorough review and sorry for answering that 
> late. I am currently abroad for a conference. Together with Roberta, 
> we’ll work on your comments and send back our answers in the next few 
> days.
>
> Cheers,
>
> Simon
>   _\\|//_
> ( O-O )
>       ~~~~~~~~~~~~~~~~~~~~~~o00~~(_)~~00o~~~~~~~~~~~~~~~~~~~~~~~~
> Simon Pietro Romano
>  Universita' di Napoli Federico II
>    Computer Engineering Department
>            Phone: +39 081 7683823 -- Fax: +39 081 7683816
>  e-mail: spromano@unina.it <mailto:spromano@unina.it>
>
>   <<Molti mi dicono che lo scoraggiamento è l'alibi degli
>  idioti. Ci rifletto un istante; e mi scoraggio>>. Magritte.
>                    oooO
>        ~~~~~~~~~~~~~~~~~~~~~~~( )~~~ Oooo~~~~~~~~~~~~~~~~~~~~~~~~~
>                \ (            (   )
>                                 \_)          ) /
>                          (_/
>
>
>
>> On 02 Jun 2017, at 02:48, Adam Roach <adam@nostrum.com 
>> <mailto:adam@nostrum.com>> wrote:
>>
>> CLUE working group --
>>
>> I have completed my AD review for the CLUE protocol document. Based 
>> on my reading, I do not think it is yet ready for IETF last call.
>>
>> Most of my comments below are feedback that the document authors 
>> should treat as normal last call comments. The feedback that I 
>> consider to block progressing the document, in my role as AD, is 
>> explicitly marked with the prefix "BLOCKER", and these will need to 
>> be resolved in a new version of the document before progressing it 
>> further. Note that it is entirely possible that something I have 
>> marked "BLOCKER" may stem from an error on my part; so recognize that 
>> these are not demands for change, as much as a need to have things 
>> either fixed in the document or explained to me.
>>
>> Title: The rule of thumb is that all but a small handful of 
>> well-known acronyms need to be expanded in titles and abstracts. I 
>> recognize that "CLUE" is a bit tortured, as acronyms go, but the 
>> title of this document is, broadly speaking, opaque. Please change it 
>> to something meaningful, such as "Protocol for Controlling Multiple 
>> Streams for Telepresence (CLUE)"
>>
>> General: There are three instances of excessively long lines in the 
>> document.
>>
>> General: Please number and caption the figures in this document. 
>> Also, please refer to the figure numbers when pointing to them (e.g., 
>> the first paragraph of section 6.1 should read something like: "As 
>> soon as the sub-state machine of the MP (Figure 1) is activated..."."
>>
>> BLOCKER: General: There are several mentions of timeouts and retry 
>> thresholds in the text and its corresponding state machines; however, 
>> the document neither defines nor cites a document as defining what 
>> these timeout and retry values are. These need to be defined and 
>> described. If the timer and retry scheme allows the two ends of the 
>> connection to have different values for timeouts and number of 
>> retries, then there need to be additional error procedures that allow 
>> the MC and MP state machines to stay in sync (if the timer/retry 
>> values can be different, it's possible for one state machine to 
>> transition to "terminated," while the other is still active, and you 
>> need messaging to clean this up). The remainder of this comment is 
>> non-blocking: Related to this, the document frequently refers to 
>> retries as "expiring" (e.g., "retry expired" on the state diagrams). 
>> That doesn't really make sense unless "retry" is the name of a timer 
>> rather than a counter; I think you mean to say "exhausted" or 
>> something similar.
>>
>> General: This document defines six message types, all of which have 
>> at least two names, many of which have more. It would be a lot easier 
>> to keep track of what is being described if these were kept 
>> consistent. I suggest choosing one term for each concept and sticking 
>> with it. In other words, please pick only one name from each of the 
>> following lines, and do not use any of the others:
>>
>>  1. OPTIONS, options
>>  2. OPTIONS RESPONSE, optionsResponse
>>  3. ADVERTISEMENT, ADV, advertisement
>>  4. ADVERTISEMENT ACKNOWLEDGEMENT, ADV ACK, ACK, NACK, ack
>>  5. CONFIGURE, CONF, CONF+ACK, configure
>>  6. CONFIGURE RESPONSE, CONF RESPONSE, configureResponse
>>
>> The terminology section appears to be in alphabetical order, except 
>> for "Capture Encoding" (which was presumably "Media Capture Encoding" 
>> in some earlier version). Please fix.
>>
>> The definitions for "Endpoint", "MCU", and "Media Stream/Stream" vary 
>> from the definition given in draft-ietf-clue-framework. Is this 
>> intentional?
>>
>> The first paragraph of section 4 mentions the framework and data 
>> model documents without citations. There should probably be citations 
>> to the corresponding documents.
>>
>> Section 4 contains the following text:
>>
>>     The CLUE protocol represents the mechanism
>>     for the exchange of CLUE information between CLUE Participants
>>
>> This is sufficiently circular as to be basically meaningless. 
>> Suggest: "...for the exchange of telepresence information between..."
>>
>> Section 5: The versioning scheme in here is rather perplexing. Is 
>> there some technical reason the protocol restricts major version 
>> numbers to a single digit and minor versions to a single digit? 
>> Strongly suggest that this should be expanded to allow multiple 
>> digits for both the major and minor versions.
>>
>> Section 5: It should be made clear that the XML Schema excerpts in 
>> section 5 are non-normative. In particular, I recommend adding the 
>> following text to the end of the first paragraph of section 5: "This 
>> section includes non-normative excerpts of the schema to aid in 
>> describing it."
>>
>> Section 5: If the single-digit version numbers are maintained (and, 
>> again, I strongly recommend against this), the definition of 
>> versionType appears to be wrong: it allows a major version digit of 
>> "0", which would seem to be precluded by the way versions are 
>> currently defined.
>>
>> Section 5: The XML definition allows zero or more <clueId> elements 
>> to appear in a message. If more than one is allowed, the document 
>> should explain how multiple IDs are handled. If they are not, then 
>> the schema and/or text needs to prohibit having more than one.
>>
>> Section 5: The description for <sequenceNr> says that a 402 will be 
>> sent in the case of an "unexpected" sequence number. This needs 
>> clarification: is this for case where a sequence number gap is 
>> detected? A repeated sequence number? A number that is too small? All 
>> of the above? At least describe this with the 402 error code, and 
>> point to that description from here.
>>
>> Section 5: The description for <v> would benefit from the addition of 
>> "This document describes version 1.0".
>>
>> Section 5.1: "The OPTIONS message is sent by the CP which is the CI 
>> to the CP which is the CR as soon as the CLUE data channel is ready." 
>> Although it's a problem in other parts of the document too, the dense 
>> use of nearly identical two-letter acronyms in here makes it quite 
>> hard to read. I had to keep consulting the definitions of those 
>> acronyms to decode this sentence (as well as several similar ones). 
>> Consider just expanding these terms (as well as "MP" and "MC") 
>> instead of using them in prose.
>>
>> Section 5.1 starts to wobble back and forth between referring to 
>> elements with and without angle brackets (e.g., it uses both 
>> "supportedVersions" and "<supportedVersions>"). Please pick one and 
>> stick with it.
>>
>> BLOCKER: Section 5.1: The description of <supportedVersions> 
>> describes a scheme in which multiple supported versions can be 
>> listed; and, if the list is omitted, it implies that only the version 
>> described in <v> is supported. This text does not define (nor does 
>> any other text that I can find) what <v> should be set to when 
>> <supportedVersions> is used. Intuitively, it seems that <v> should be 
>> set to the largest minor version of the smallest major version 
>> advertised in <supportedVersions>, but that (or whatever the correct 
>> answer is) needs to be clearly spelled out.
>>
>> BLOCKER: Section 5.2: "If the responseCode is of the type 2xx the 
>> response MUST also include..." -- you can't use "2xx" in a normative 
>> statement without first defining what it means. As you don't use the 
>> "#xx" format anywhere else, I suggest rephrasing: "If the 
>> <responseCode> is between 200 and 299 inclusive, the response MUST 
>> also include..."
>>
>> Sections 5.2, 5.4, 5.6: It seems really odd that the document defines 
>> a base clueMessageType that all messages derive from, but then leaves 
>> all the response types (optionsResponse, ack, configureResponse) to 
>> repeatedly and independently add <responseCode>,<responseString>, and 
>> the sequence number of the corresponding message over and over again. 
>> I would strongly suggest adding something like:
>>
>>     <!-- CLUE RESPONSE TYPE -->
>>     <xs:complexType name="clueResponseType">
>>     <xs:complexContent>
>>     <xs:extension base="clueMessageType">
>>     <xs:sequence>
>>     <xs:element name="responseCode" type="responseCodeType"/>
>>     <xs:element name="reasonString" type="xs:string" minOccurs="0"/>
>>     <xs:element name="requestSequenceNr" type="xs:positiveInteger"/>
>>     <xs:any namespace="##other" processContents="lax" minOccurs="0"/>
>>     </xs:sequence>
>>     </xs:extension>
>>     </xs:complexContent>
>>     </xs:complexType>
>>
>> ...and then defining those three response types as being extensions 
>> of "clueResponse" instead of "clueMessage", like this:
>>
>>     <!-- ADV ACK MESSAGE TYPE -->
>>     <xs:complexType name="advAcknowledgementMessageType">
>>     <xs:complexContent>
>>     <xs:extension base="clueResponseType">
>>     <xs:anyAttribute namespace="##other" processContents="lax"/>
>>     </xs:extension>
>>     </xs:complexContent>
>>     </xs:complexType>
>>
>> Regardless of how you do this, any section that adds "responseCode" 
>> and "reasonString" needs to point to section 5.7 in its description 
>> to explain how those fields are populated and interpreted.
>>
>> Section 5.5: This section allows a boolean flag in a <configure> 
>> message to acknowledge an <advertisement>. Is this intended to always 
>> be handled like a 200? Consider: if you define a 201 response code in 
>> the future, will implementations be unable to convey its meaning in a 
>> CONF + ACK? Given that the document defines a class of codes for 
>> success rather than a simple success flag in general, it seems that 
>> this <ack> element should carry a success response code rather than 
>> just a boolean. If you decide to keep the boolean, be very clear that 
>> it is to be treated as a 200 rather than any other potential success 
>> code; and that conveying any other kind of success requires a 
>> separate <ack> message.
>>
>> Section 5.5: the final paragraph mentions the <captureEncodings> 
>> element -- it would be helpful to add something like "see 
>> [I-D.ietf-clue-datamodel] for the definition of <captureEncodings>."
>>
>> BLOCKER: Section 5.7 indicates that there is a class of response 
>> codes, starting with "1", which are used to indicate "delayed or 
>> incomplete" responses. The document does not describe any protocol 
>> behavior for this class of response. The description of the meaning 
>> of this class (and the obvious parallels to HTTP and SIP) imply that 
>> some subsequent response associated with the same request will be 
>> arriving at some point in the future. If that's the intention, this 
>> document needs a *lot* more text (and corresponding adjustments to 
>> the state machines) to explain how these 100-class codes are handled. 
>> In practice, since the current version of the document does not 
>> define nor make use of 100-class codes, I suggest that the most 
>> reasonable path forward is to remove discussion of codes starting 
>> with "1" from the first paragraph of section 5.7, instead adding a 
>> paragraph immediately following it that says something like:
>>
>>   This document does not define response codes starting with "1", and 
>> such
>>   response codes are not allowed to appear in major version 1 of the CLUE
>>   protocol. The range from 100 to 199 inclusive is reserved for 
>> future major
>>   versions of the protocol to define response codes for delayed or 
>> incomplete
>>   operations if necessary. Response codes starting with "5" through 
>> "9" are
>>   reserved for future major versions of the protocol to define new 
>> classes of
>>   response, and are not allowed in major version 1 of the CLUE protocol.
>>   Response codes starting with "0" are not allowed.
>>
>> Section 5.7: "The response codes and strings defined for use with 
>> CLUE are as follows" - this strongly implies that the descriptions 
>> given in this table are the only ones that are allowed in CLUE 
>> <reasonString> element, and that any other messages should presumably 
>> be treated as an error. Surely that's not what you mean. Suggest 
>> rephrasing to indicate that the "Description" text can be sent in the 
>> <reasonString>, but that implementations can (and are encouraged to) 
>> include more specific descriptions of the error condition, if possible.
>>
>> Section 5.7: I can't figure out how an implementation could ever send 
>> a "300" response code. If the XML syntax is incorrect, that's a 301. 
>> If the message contains an invalid value, that's a 302. And those are 
>> the only two conditions that are described for 300. I think you need 
>> to give "300" a bit more thought -- if you can't come up with a more 
>> generic description (e.g., "low-level request error"), you probably 
>> want to remove it.
>>
>> Section 5.7: for 403, be clear which identifier is meant. Do you mean 
>> "The <clueId> used in the message is not valid..."?
>>
>> Section 5.7: for 404, please be clear that you're talking about the 
>> sequence number rather than just using "number" without qualification.
>>
>> Section 5.7: The description for 405 uses the acronym "MCC" without 
>> expanding it. Please expand it.
>>
>> BLOCKING: The state machines in section 6 and its subsections don't 
>> have transitions for all possible messages that could arrive in a 
>> state. This can cause interop issues. Please add text that clearly 
>> indicates whether such messages do or do not cause a transition. 
>> (This might be as simple as "messages not shown for a state do not 
>> cause the state to change," but only if you carefully check that this 
>> is true -- for example, what should an MP state machine do do if it 
>> gets a "CONF + ACK" in the state "WAIT FOR CONF"?)
>>
>> Section 6: The fifth paragraph says "CLUE channel" where it means 
>> "CLUE data channel."
>>
>> Section 6: The eighth paragraph says:
>>
>>     The CP moves from the ACTIVE state to the IDLE one when the sub-state
>>     machines that have been activated are (both) in the relative
>>     TERMINATED state (see sections Section 6.1 and Section 6.2).
>>
>> The "both" in this paragraph is confusing, since it's possible to 
>> have only one or the other machine running. Please rephrase.
>>
>> Section 6.2 describes a state machine that starts in a state called 
>> "WAIT FOR ADV." This state does not appear to be timer-supervised, 
>> meaning that implementations of this state machine can stay in this 
>> state literally forever. Is that the intention?
>>
>> Section 6.2 also describes the possibility of sending a <ack> and 
>> <configure> separately or as a combined message. I would have 
>> expected to see some discussion here about why implementations might 
>> choose one behavior over the other.
>>
>> Section 7: The second sentence of the second paragraph needs a verb.
>>
>> Section 7, paragraph 3: this claims that versions are a non-negative 
>> *integer* rather than a *digit*. As I mention above, this seems to be 
>> the right way to handle versions, but it is decidedly at odds with 
>> text elsewhere in the document and in the schema. Regardless of how 
>> you choose to treat versions, the text needs to be consistent.
>>
>> Section 7, final paragraph: replace "Clue" with "CLUE."
>>
>> Section 8 contains a paragraph starting with "In that case, the new 
>> information..." but it's not clear which case it's referring to. 
>> Please replace "In that case" with a description of the case under 
>> consideration.
>>
>> Section 8 contains the phrase "Similarly to what said before..." -- 
>> this is ungrammatical and needs to be rephrased.
>>
>> Section 8 indicates that extensions need to indicate "the standard 
>> version of the protocol the extension refers to." Given that there is 
>> compatibility within a major version of a protocol, I think this 
>> means to say "the major standard version of the protocol that the 
>> extension refers to."
>>
>> Section 8 has a paragraph starting "For that reason..." -- it's not 
>> clear what reason is being referred to here. Please clarify.
>>
>> Section 8 contains schema that contains a <version> element. It 
>> should be clarified that this is the *protocol* version, not the 
>> *extension* version (or, if it's the extension version, that needs to 
>> be spelled out too, but I think you'll need a new namespace for that...?)
>>
>> BLOCKING: Section 8.1 is an example section, which are non-normative 
>> in IETF documents. It contains 2119-style normative language, 
>> however. These normative statements need to be moved out of the 
>> example section (and probably into section 8). The remainder of this 
>> comment is non-blocking: I also find the "SHOULD" in this section to 
>> be highly perplexing. Can you explain the rationale behind requiring 
>> schema, but not requiring any description of what the schema *means?)
>>
>> BLOCKING: The example in section 8.1 includes the following:
>>
>>     xmlns="clue-info-extension-myVideoExtensions"
>>
>> I'm pretty certain that namespaces are required to be identified by 
>> URIs rather than arbitrary strings.
>>
>> Section 8.1: The final paragraph also has normative language in it, 
>> although it appears to be reiterating requirements from elsewhere in 
>> the document. I suggest lowercasing "MUST" in this paragraph.
>>
>> Section 8.1: The final paragraph mentions the use of <options> and 
>> <optionsResponse> to negotiate the extension. An example 
>> demonstrating this negotiation would be extremely useful.
>>
>> The schema in section 9 contains:
>>
>> <xs:import namespace="urn:ietf:params:xml:ns:clue-info"
>> schemaLocation="data-model-schema-17.xsd"/>
>>
>> If you do not intend to bake this "-17" into the document (and I 
>> can't imagine you do), please add an RFC editor note to change it to 
>> something else upon publication.
>>
>> Also, the schema in section 9 is (with rare exception) unindented. 
>> This makes it *very* hard to read. Please consider formatting it with 
>> conventional XML indentation. (This also applies to the schema 
>> excerpts earlier in the document.)
>>
>> Has there been any automated tool-based checking that the examples in 
>> section 10 to verify that they conform to the schema in section 9 
>> (and the schemata it imports)?
>>
>> Section 10.2: Please expand the acronym "MCCs" in the section title 
>> (keep in mind that this appears in the table of contents, where it 
>> needs to makes sense).
>>
>> Section 10 in general: While it does consume a lot of space, I don't 
>> think that defining six rather different message types and then 
>> showing only *one* type in the examples is very illustrative of the 
>> protocol. I would *STRONGLY* suggest adding at least a response 
>> message, and ideally the example section should contain at least one 
>> example for each of the six message types.
>>
>> Section 11, paragraph 4: Replace "Clue" with "CLUE."
>>
>> Section 12.1 has a strange double-double quote around the URN name, 
>> and section 12.3 repeats this for the MIME type.
>>
>> All subsections of section 12: please update all registrant contact 
>> information to point to the IESG (iesg@ietf.org) rather than the CLUE 
>> working group and one of the authors.
>>
>> Section 12.4.1: These descriptions will appear in an IANA registry, 
>> where the phrase "in this document" will have no context and be 
>> rather nonsensical. Please rephrase.
>>
>> Sections 13 through 23 should include an RFC editor note asking for 
>> removal before publication.
>>
>> /a
>>
>


--------------E08E3FEB9875DF153AC78B95
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">For my own planning, when might I
      expect to see a revised edition of this document?<br>
      <br>
      Thanks!<br>
      <br>
      /a<br>
      <br>
      On 6/12/17 08:14, Simon Pietro Romano wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:4523923C-254E-45B1-AC8E-B301834E0876@unina.it">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      Hello Adam,
      <div class=""><br class="">
      </div>
      <div class="">thanks a lot for your thorough review and sorry for
        answering that late. I am currently abroad for a conference.
        Together with Roberta, we’ll work on your comments and send back
        our answers in the next few days.</div>
      <div class=""><br class="">
      </div>
      <div class="">Cheers,</div>
      <div class=""><br class="">
      </div>
      <div class="">Simon<br class="">
        <div class="">
          <div class="">
            <div class="">                     <span style="white-space: pre-wrap;" class="">				          </span>  _\\|//_</div>
            <div class="">                           <span style="white-space: pre-wrap;" class="">				   </span>(
              O-O )</div>
            <div class="">      ~~~~~~~~~~~~~~~~~~~~~~o00~~(_<wbr
                class="">)~~00o~~~~~~~~~~~~~~~~~~~~~~~~</div>
            <div class="">                    <span style="white-space: pre-wrap;" class="">				</span>Simon
              Pietro Romano</div>
            <div class="">             <span style="white-space: pre-wrap;" class="">				</span> Universita'
              di Napoli Federico II</div>
            <div class="">                <span style="white-space: pre-wrap;" class="">		</span> 
                 Computer Engineering Department </div>
            <div class=""><span style="white-space: pre-wrap;" class="">	</span> 
                         Phone: +39 081 7683823 -- Fax: +39 081 7683816</div>
            <div class="">                                         
               e-mail: <a href="mailto:spromano@unina.it"
                target="_blank" style="word-wrap: normal; word-break:
                break-word;" class="" moz-do-not-send="true">spromano@unina.it</a></div>
            <div class=""><br class="">
            </div>
            <div class=""><span style="white-space: pre-wrap;" class="">		</span> 
                &lt;&lt;Molti mi dicono che lo scoraggiamento è l'alibi
              degli </div>
            <div class=""><span style="white-space: pre-wrap;" class="">		</span>  
               idioti. Ci rifletto un istante; e mi scoraggio&gt;&gt;.
              Magritte.</div>
            <div class="">               <span style="white-space: pre-wrap;" class="">			</span> 
                                 oooO</div>
            <div class="">       ~~~~~~~~~~~~~~~~~~~~~~~(  
              )~~~ Oooo~~~~~~~~~~~~~~~~~~~~~<wbr class="">~~~~</div>
            <div class=""><span style="white-space: pre-wrap;" class="">					</span> 
                             \ (            (   )</div>
            <div class=""><span style="white-space: pre-wrap;" class="">			</span> 
                                              \_)          ) /</div>
            <div class="">                                             
                                       (_/</div>
          </div>
          <div class=""><br class="">
          </div>
          <br class="Apple-interchange-newline">
        </div>
        <br class="">
        <div>
          <blockquote type="cite" class="">
            <div class="">On 02 Jun 2017, at 02:48, Adam Roach &lt;<a
                href="mailto:adam@nostrum.com" class=""
                moz-do-not-send="true">adam@nostrum.com</a>&gt; wrote:</div>
            <br class="Apple-interchange-newline">
            <div class="">
              <meta http-equiv="content-type" content="text/html;
                charset=utf-8" class="">
              <div text="#000000" bgcolor="#FFFFFF" class="">
                <p class=""> CLUE working group --<br class="">
                  <br class="">
                  I have completed my AD review for the CLUE protocol
                  document. Based on my reading, I do not think it is
                  yet ready for IETF last call.<br class="">
                </p>
                <p class="">Most of my comments below are feedback that
                  the document authors should treat as normal last call
                  comments. The feedback that I consider to block
                  progressing the document, in my role as AD, is
                  explicitly marked with the prefix "BLOCKER", and these
                  will need to be resolved in a new version of the
                  document before progressing it further. Note that it
                  is entirely possible that something I have marked
                  "BLOCKER" may stem from an error on my part; so
                  recognize that these are not demands for change, as
                  much as a need to have things either fixed in the
                  document or explained to me.</p>
                <p class="">Title: The rule of thumb is that all but a
                  small handful of well-known acronyms need to be
                  expanded in titles and abstracts. I recognize that
                  "CLUE" is a bit tortured, as acronyms go, but the
                  title of this document is, broadly speaking, opaque.
                  Please change it to something meaningful, such as
                  "Protocol for Controlling Multiple Streams for
                  Telepresence (CLUE)"</p>
                <p class="">General: There are three instances of
                  excessively long lines in the document.</p>
                <p class="">General: Please number and caption the
                  figures in this document. Also, please refer to the
                  figure numbers when pointing to them (e.g., the first
                  paragraph of section 6.1 should read something like:
                  "As soon as the sub-state machine of the MP (Figure 1)
                  is activated..."."<br class="">
                </p>
                <p class="">BLOCKER: General: There are several mentions
                  of timeouts and retry thresholds in the text and its
                  corresponding state machines; however, the document
                  neither defines nor cites a document as defining what
                  these timeout and retry values are. These need to be
                  defined and described. If the timer and retry scheme
                  allows the two ends of the connection to have
                  different values for timeouts and number of retries,
                  then there need to be additional error procedures that
                  allow the MC and MP state machines to stay in sync (if
                  the timer/retry values can be different, it's possible
                  for one state machine to transition to "terminated,"
                  while the other is still active, and you need
                  messaging to clean this up). The remainder of this
                  comment is non-blocking: Related to this, the document
                  frequently refers to retries as "expiring" (e.g.,
                  "retry expired" on the state diagrams). That doesn't
                  really make sense unless "retry" is the name of a
                  timer rather than a counter; I think you mean to say
                  "exhausted" or something similar.<br class="">
                </p>
                <p class="">General: This document defines six message
                  types, all of which have at least two names, many of
                  which have more. It would be a lot easier to keep
                  track of what is being described if these were kept
                  consistent. I suggest choosing one term for each
                  concept and sticking with it. In other words, please
                  pick only one name from each of the following lines,
                  and do not use any of the others:<br class="">
                </p>
                <ol class="">
                  <li class="">OPTIONS, options</li>
                  <li class="">OPTIONS RESPONSE, optionsResponse</li>
                  <li class="">ADVERTISEMENT, ADV, advertisement</li>
                  <li class="">ADVERTISEMENT ACKNOWLEDGEMENT, ADV ACK,
                    ACK, NACK, ack</li>
                  <li class="">CONFIGURE, CONF, CONF+ACK, configure</li>
                  <li class="">CONFIGURE RESPONSE, CONF RESPONSE,
                    configureResponse</li>
                </ol>
                <p class="">The terminology section appears to be in
                  alphabetical order, except for "Capture Encoding"
                  (which was presumably "Media Capture Encoding" in some
                  earlier version). Please fix.</p>
                <p class="">The definitions for "Endpoint", "MCU", and
                  "Media Stream/Stream" vary from the definition given
                  in draft-ietf-clue-framework. Is this intentional?</p>
                <p class="">The first paragraph of section 4 mentions
                  the framework and data model documents without
                  citations. There should probably be citations to the
                  corresponding documents.</p>
                <p class="">Section 4 contains the following text:</p>
                <pre class="">   The CLUE protocol represents the mechanism
   for the exchange of CLUE information between CLUE Participants</pre>
                <p class="">This is sufficiently circular as to be
                  basically meaningless. Suggest: "...for the exchange
                  of telepresence information between..."</p>
                <p class="">Section 5: The versioning scheme in here is
                  rather perplexing. Is there some technical reason the
                  protocol restricts major version numbers to a single
                  digit and minor versions to a single digit? Strongly
                  suggest that this should be expanded to allow multiple
                  digits for both the major and minor versions.</p>
                <p class="">Section 5: It should be made clear that the
                  XML Schema excerpts in section 5 are non-normative. In
                  particular, I recommend adding the following text to
                  the end of the first paragraph of section 5: "This
                  section includes non-normative excerpts of the schema
                  to aid in describing it."</p>
                <p class="">Section 5: If the single-digit version
                  numbers are maintained (and, again, I strongly
                  recommend against this), the definition of versionType
                  appears to be wrong: it allows a major version digit
                  of "0", which would seem to be precluded by the way
                  versions are currently defined.</p>
                <p class="">Section 5: The XML definition allows zero or
                  more &lt;clueId&gt; elements to appear in a message.
                  If more than one is allowed, the document should
                  explain how multiple IDs are handled. If they are not,
                  then the schema and/or text needs to prohibit having
                  more than one.</p>
                <p class="">Section 5: The description for
                  &lt;sequenceNr&gt; says that a 402 will be sent in the
                  case of an "unexpected" sequence number. This needs
                  clarification: is this for case where a sequence
                  number gap is detected? A repeated sequence number? A
                  number that is too small? All of the above? At least
                  describe this with the 402 error code, and point to
                  that description from here.</p>
                <p class="">Section 5: The description for &lt;v&gt;
                  would benefit from the addition of "This document
                  describes version 1.0".</p>
                <p class="">Section 5.1: "The OPTIONS message is sent by
                  the CP which is the CI to the CP which is the CR as
                  soon as the CLUE data channel is ready." Although it's
                  a problem in other parts of the document too, the
                  dense use of nearly identical two-letter acronyms in
                  here makes it quite hard to read. I had to keep
                  consulting the definitions of those acronyms to decode
                  this sentence (as well as several similar ones).
                  Consider just expanding these terms (as well as "MP"
                  and "MC") instead of using them in prose.<br class="">
                </p>
                <p class="">Section 5.1 starts to wobble back and forth
                  between referring to elements with and without angle
                  brackets (e.g., it uses both "supportedVersions" and
                  "&lt;supportedVersions&gt;"). Please pick one and
                  stick with it.</p>
                <p class="">BLOCKER: Section 5.1: The description of
                  &lt;supportedVersions&gt; describes a scheme in which
                  multiple supported versions can be listed; and, if the
                  list is omitted, it implies that only the version
                  described in &lt;v&gt; is supported. This text does
                  not define (nor does any other text that I can find)
                  what &lt;v&gt; should be set to when
                  &lt;supportedVersions&gt; is used. Intuitively, it
                  seems that &lt;v&gt; should be set to the largest
                  minor version of the smallest major version advertised
                  in &lt;supportedVersions&gt;, but that (or whatever
                  the correct answer is) needs to be clearly spelled
                  out.</p>
                <p class="">BLOCKER: Section 5.2: "If the responseCode
                  is of the type 2xx the response MUST also include..."
                  -- you can't use "2xx" in a normative statement
                  without first defining what it means. As you don't use
                  the "#xx" format anywhere else, I suggest rephrasing:
                  "If the &lt;responseCode&gt; is between 200 and 299
                  inclusive, the response MUST also include..."</p>
                <p class="">Sections 5.2, 5.4, 5.6: It seems really odd
                  that the document defines a base clueMessageType that
                  all messages derive from, but then leaves all the
                  response types (optionsResponse, ack,
                  configureResponse) to repeatedly and independently add
                  &lt;responseCode&gt;,&lt;responseString&gt;, and the
                  sequence number of the corresponding message over and
                  over again. I would strongly suggest adding something
                  like:</p>
                <pre class="">   &lt;!-- CLUE RESPONSE TYPE --&gt;
   &lt;xs:complexType name="clueResponseType"&gt;
   &lt;xs:complexContent&gt;
   &lt;xs:extension base="clueMessageType"&gt;
   &lt;xs:sequence&gt;
   &lt;xs:element name="responseCode" type="responseCodeType"/&gt;
   &lt;xs:element name="reasonString" type="xs:string" minOccurs="0"/&gt;
   &lt;xs:element name="requestSequenceNr" type="xs:positiveInteger"/&gt;
   &lt;xs:any namespace="##other" processContents="lax" minOccurs="0"/&gt;
   &lt;/xs:sequence&gt;
   &lt;/xs:extension&gt;
   &lt;/xs:complexContent&gt;
   &lt;/xs:complexType&gt;</pre>
                <p class="">...and then defining those three response
                  types as being extensions of "clueResponse" instead of
                  "clueMessage", like this:<br class="">
                </p>
                <pre class="">   &lt;!-- ADV ACK MESSAGE TYPE --&gt;
   &lt;xs:complexType name="advAcknowledgementMessageType"&gt;
   &lt;xs:complexContent&gt;
   &lt;xs:extension base="clueResponseType"&gt;
   &lt;xs:anyAttribute namespace="##other" processContents="lax"/&gt;
   &lt;/xs:extension&gt;
   &lt;/xs:complexContent&gt;
   &lt;/xs:complexType&gt;

</pre>
                <p class="">Regardless of how you do this, any section
                  that adds "responseCode" and "reasonString" needs to
                  point to section 5.7 in its description to explain how
                  those fields are populated and interpreted.</p>
                <p class="">Section 5.5: This section allows a boolean
                  flag in a &lt;configure&gt; message to acknowledge an
                  &lt;advertisement&gt;. Is this intended to always be
                  handled like a 200? Consider: if you define a 201
                  response code in the future, will implementations be
                  unable to convey its meaning in a CONF + ACK? Given
                  that the document defines a class of codes for success
                  rather than a simple success flag in general, it seems
                  that this &lt;ack&gt; element should carry a success
                  response code rather than just a boolean. If you
                  decide to keep the boolean, be very clear that it is
                  to be treated as a 200 rather than any other potential
                  success code; and that conveying any other kind of
                  success requires a separate &lt;ack&gt; message.</p>
                <p class="">Section 5.5: the final paragraph mentions
                  the &lt;captureEncodings&gt; element -- it would be
                  helpful to add something like "see
                  [I-D.ietf-clue-datamodel] for the definition of
                  &lt;captureEncodings&gt;."</p>
                <p class="">BLOCKER: Section 5.7 indicates that there is
                  a class of response codes, starting with "1", which
                  are used to indicate "delayed or incomplete"
                  responses. The document does not describe any protocol
                  behavior for this class of response. The description
                  of the meaning of this class (and the obvious
                  parallels to HTTP and SIP) imply that some subsequent
                  response associated with the same request will be
                  arriving at some point in the future. If that's the
                  intention, this document needs a *lot* more text (and
                  corresponding adjustments to the state machines) to
                  explain how these 100-class codes are handled. In
                  practice, since the current version of the document
                  does not define nor make use of 100-class codes, I
                  suggest that the most reasonable path forward is to
                  remove discussion of codes starting with "1" from the
                  first paragraph of section 5.7, instead adding a
                  paragraph immediately following it that says something
                  like: <br class="">
                </p>
                <p class=""><tt class="">  This document does not define
                    response codes starting with "1", and such</tt><tt
                    class=""><br class="">
                  </tt><tt class="">  response codes are not allowed to
                    appear in major version 1 of the CLUE</tt><tt
                    class=""><br class="">
                  </tt><tt class="">  protocol. The range from 100 to
                    199 inclusive is reserved for future major</tt><tt
                    class=""><br class="">
                  </tt><tt class="">  versions of the protocol to define
                    response codes for delayed or incomplete</tt><tt
                    class=""><br class="">
                  </tt><tt class="">  operations if necessary. Response
                    codes starting with "5" through "9" are</tt><tt
                    class=""><br class="">
                  </tt><tt class="">  reserved for future major versions
                    of the protocol to define new classes of</tt><tt
                    class=""><br class="">
                  </tt><tt class="">  response, and are not allowed in
                    major version 1 of the CLUE protocol.</tt><tt
                    class=""><br class="">
                  </tt><tt class="">  Response codes starting with "0"
                    are not allowed.</tt><br class="">
                </p>
                <p class="">Section 5.7: "The response codes and strings
                  defined for use with CLUE are as follows" - this
                  strongly implies that the descriptions given in this
                  table are the only ones that are allowed in CLUE
                  &lt;reasonString&gt; element, and that any other
                  messages should presumably be treated as an error.
                  Surely that's not what you mean. Suggest rephrasing to
                  indicate that the "Description" text can be sent in
                  the &lt;reasonString&gt;, but that implementations can
                  (and are encouraged to) include more specific
                  descriptions of the error condition, if possible.</p>
                <p class="">Section 5.7: I can't figure out how an
                  implementation could ever send a "300" response code.
                  If the XML syntax is incorrect, that's a 301. If the
                  message contains an invalid value, that's a 302. And
                  those are the only two conditions that are described
                  for 300. I think you need to give "300" a bit more
                  thought -- if you can't come up with a more generic
                  description (e.g., "low-level request error"), you
                  probably want to remove it.</p>
                <p class="">Section 5.7: for 403, be clear which
                  identifier is meant. Do you mean "The &lt;clueId&gt;
                  used in the message is not valid..."?</p>
                <p class="">Section 5.7: for 404, please be clear that
                  you're talking about the sequence number rather than
                  just using "number" without qualification.</p>
                <p class="">Section 5.7: The description for 405 uses
                  the acronym "MCC" without expanding it. Please expand
                  it.</p>
                <p class="">BLOCKING: The state machines in section 6
                  and its subsections don't have transitions for all
                  possible messages that could arrive in a state. This
                  can cause interop issues. Please add text that clearly
                  indicates whether such messages do or do not cause a
                  transition. (This might be as simple as "messages not
                  shown for a state do not cause the state to change,"
                  but only if you carefully check that this is true --
                  for example, what should an MP state machine do do if
                  it gets a "CONF + ACK" in the state "WAIT FOR CONF"?)</p>
                <p class="">Section 6: The fifth paragraph says "CLUE
                  channel" where it means "CLUE data channel."</p>
                <p class="">Section 6: The eighth paragraph says:</p>
                <pre class="">   The CP moves from the ACTIVE state to the IDLE one when the sub-state
   machines that have been activated are (both) in the relative
   TERMINATED state (see sections Section 6.1 and Section 6.2).</pre>
                <p class="">The "both" in this paragraph is confusing,
                  since it's possible to have only one or the other
                  machine running. Please rephrase.</p>
                <p class="">Section 6.2 describes a state machine that
                  starts in a state called "WAIT FOR ADV." This state
                  does not appear to be timer-supervised, meaning that
                  implementations of this state machine can stay in this
                  state literally forever. Is that the intention?</p>
                <p class="">Section 6.2 also describes the possibility
                  of sending a &lt;ack&gt; and &lt;configure&gt;
                  separately or as a combined message. I would have
                  expected to see some discussion here about why
                  implementations might choose one behavior over the
                  other.</p>
                <p class="">Section 7: The second sentence of the second
                  paragraph needs a verb.</p>
                <p class="">Section 7, paragraph 3: this claims that
                  versions are a non-negative *integer* rather than a
                  *digit*. As I mention above, this seems to be the
                  right way to handle versions, but it is decidedly at
                  odds with text elsewhere in the document and in the
                  schema. Regardless of how you choose to treat
                  versions, the text needs to be consistent.<br class="">
                </p>
                <p class="">Section 7, final paragraph: replace "Clue"
                  with "CLUE."</p>
                <p class="">Section 8 contains a paragraph starting with
                  "In that case, the new information..." but it's not
                  clear which case it's referring to. Please replace "In
                  that case" with a description of the case under
                  consideration.</p>
                <p class="">Section 8 contains the phrase "Similarly to
                  what said before..." -- this is ungrammatical and
                  needs to be rephrased.</p>
                <p class="">Section 8 indicates that extensions need to
                  indicate "the standard version of the protocol the
                  extension refers to." Given that there is
                  compatibility within a major version of a protocol, I
                  think this means to say "the major standard version of
                  the protocol that the extension refers to."</p>
                <p class="">Section 8 has a paragraph starting "For that
                  reason..." -- it's not clear what reason is being
                  referred to here. Please clarify.</p>
                <p class="">Section 8 contains schema that contains a
                  &lt;version&gt; element. It should be clarified that
                  this is the *protocol* version, not the *extension*
                  version (or, if it's the extension version, that needs
                  to be spelled out too, but I think you'll need a new
                  namespace for that...?)</p>
                <p class="">BLOCKING: Section 8.1 is an example section,
                  which are non-normative in IETF documents. It contains
                  2119-style normative language, however. These
                  normative statements need to be moved out of the
                  example section (and probably into section 8). The
                  remainder of this comment is non-blocking: I also find
                  the "SHOULD" in this section to be highly perplexing.
                  Can you explain the rationale behind requiring schema,
                  but not requiring any description of what the schema
                  *means?)</p>
                <p class="">BLOCKING: The example in section 8.1
                  includes the following:</p>
                <pre class="">   xmlns="clue-info-extension-myVideoExtensions"</pre>
                <p class="">I'm pretty certain that namespaces are
                  required to be identified by URIs rather than
                  arbitrary strings.</p>
                <p class="">Section 8.1: The final paragraph also has
                  normative language in it, although it appears to be
                  reiterating requirements from elsewhere in the
                  document. I suggest lowercasing "MUST" in this
                  paragraph.</p>
                <p class="">Section 8.1: The final paragraph mentions
                  the use of &lt;options&gt; and &lt;optionsResponse&gt;
                  to negotiate the extension. An example demonstrating
                  this negotiation would be extremely useful.</p>
                <p class="">The schema in section 9 contains:</p>
                <pre class="">&lt;xs:import namespace="urn:ietf:params:xml:ns:clue-info"
schemaLocation="data-model-schema-17.xsd"/&gt;</pre>
                <p class="">If you do not intend to bake this "-17" into
                  the document (and I can't imagine you do), please add
                  an RFC editor note to change it to something else upon
                  publication.</p>
                <p class="">Also, the schema in section 9 is (with rare
                  exception) unindented. This makes it *very* hard to
                  read. Please consider formatting it with conventional
                  XML indentation. (This also applies to the schema
                  excerpts earlier in the document.)<br class="">
                </p>
                <p class="">Has there been any automated tool-based
                  checking that the examples in section 10 to verify
                  that they conform to the schema in section 9 (and the
                  schemata it imports)?</p>
                <p class="">Section 10.2: Please expand the acronym
                  "MCCs" in the section title (keep in mind that this
                  appears in the table of contents, where it needs to
                  makes sense).</p>
                <p class="">Section 10 in general: While it does consume
                  a lot of space, I don't think that defining six rather
                  different message types and then showing only *one*
                  type in the examples is very illustrative of the
                  protocol. I would *STRONGLY* suggest adding at least a
                  response message, and ideally the example section
                  should contain at least one example for each of the
                  six message types.</p>
                <p class="">Section 11, paragraph 4: Replace "Clue" with
                  "CLUE."</p>
                <p class="">Section 12.1 has a strange double-double
                  quote around the URN name, and section 12.3 repeats
                  this for the MIME type.<br class="">
                </p>
                <p class="">All subsections of section 12: please update
                  all registrant contact information to point to the
                  IESG (<a class="moz-txt-link-abbreviated"
                    href="mailto:iesg@ietf.org" moz-do-not-send="true">iesg@ietf.org</a>)
                  rather than the CLUE working group and one of the
                  authors.</p>
                <p class="">Section 12.4.1: These descriptions will
                  appear in an IANA registry, where the phrase "in this
                  document" will have no context and be rather
                  nonsensical. Please rephrase.</p>
                <p class="">Sections 13 through 23 should include an RFC
                  editor note asking for removal before publication.</p>
                <p class="">/a<br class="">
                </p>
              </div>
            </div>
          </blockquote>
        </div>
        <br class="">
      </div>
    </blockquote>
    <p><br>
    </p>
  </body>
</html>

--------------E08E3FEB9875DF153AC78B95--


From nobody Mon Jul 10 22:51:32 2017
Return-Path: <spromano@unina.it>
X-Original-To: clue@ietfa.amsl.com
Delivered-To: clue@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BEA8213144A for <clue@ietfa.amsl.com>; Mon, 10 Jul 2017 22:51:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.399
X-Spam-Level: 
X-Spam-Status: No, score=-0.399 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, MIME_QP_LONG_LINE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_SORBS_WEB=1.5, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] 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 n7pZTtrQAFa7 for <clue@ietfa.amsl.com>; Mon, 10 Jul 2017 22:51:27 -0700 (PDT)
Received: from brc1.unina.it (brc1.unina.it [192.132.34.50]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6EF3012EC27 for <clue@ietf.org>; Mon, 10 Jul 2017 22:51:26 -0700 (PDT)
X-ASG-Debug-ID: 1499752282-05ce37129e29bed0001-dOUo1C
Received: from smtp1.unina.it (smtp1.unina.it [192.132.34.61]) by brc1.unina.it with ESMTP id diFUuKkb5ucLPwWb (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO); Tue, 11 Jul 2017 07:51:22 +0200 (CEST)
X-Barracuda-Envelope-From: spromano@unina.it
X-Barracuda-Apparent-Source-IP: 192.132.34.61
Received: from [192.168.1.69] (93-44-53-28.ip95.fastwebnet.it [93.44.53.28]) (authenticated bits=0) by smtp1.unina.it (8.14.4/8.14.4) with ESMTP id v6B5pIFD010659 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 11 Jul 2017 07:51:20 +0200
Content-Type: multipart/alternative; boundary=Apple-Mail-40E6CFEB-92B0-4D9E-BE7C-162137515C3B
Mime-Version: 1.0 (1.0)
From: Simon Pietro Romano <spromano@unina.it>
X-ASG-Orig-Subj: Re: AD Review: draft-ietf-clue-protocol-13
X-Mailer: iPhone Mail (14F89)
In-Reply-To: <df86d7b3-f45b-4e71-7e5b-8c3c1c7fe496@nostrum.com>
Date: Tue, 11 Jul 2017 07:51:15 +0200
Cc: clue@ietf.org, clue-chairs@ietf.org, draft-ietf-clue-protocol@tools.ietf.org
Content-Transfer-Encoding: 7bit
Message-Id: <D1C15FDB-0CF8-48F8-8AE9-42B762EF1E7C@unina.it>
References: <a30828ea-1db8-fccd-9c2b-ddc0a1dcb08d@nostrum.com> <4523923C-254E-45B1-AC8E-B301834E0876@unina.it> <df86d7b3-f45b-4e71-7e5b-8c3c1c7fe496@nostrum.com>
To: Adam Roach <adam@nostrum.com>
X-Barracuda-Connect: smtp1.unina.it[192.132.34.61]
X-Barracuda-Start-Time: 1499752282
X-Barracuda-Encrypted: AES256-SHA
X-Barracuda-URL: http://192.132.34.50:8000/cgi-mod/mark.cgi
X-Virus-Scanned: by bsmtpd at unina.it
X-Barracuda-BRTS-Status: 1
X-Barracuda-Spam-Score: 0.00
X-Barracuda-Spam-Status: No, SCORE=0.00 using global scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=6.0 tests=BSF_SC0_MISMATCH_TO, HTML_MESSAGE,  MIME_QP_LONG_LINE
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.35465 Rule breakdown below pts rule name              description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO    Envelope rcpt doesn't match header 0.00 HTML_MESSAGE           BODY: HTML included in message 0.00 MIME_QP_LONG_LINE      RAW: Quoted-printable line longer than 76 chars
Archived-At: <https://mailarchive.ietf.org/arch/msg/clue/UV3F_v4AgbkekrpjcB7IArMpANg>
Subject: Re: [clue] AD Review: draft-ietf-clue-protocol-13
X-BeenThere: clue@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: CLUE - ControLling mUltiple streams for TElepresence <clue.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/clue>, <mailto:clue-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/clue/>
List-Post: <mailto:clue@ietf.org>
List-Help: <mailto:clue-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/clue>, <mailto:clue-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 11 Jul 2017 05:51:31 -0000

--Apple-Mail-40E6CFEB-92B0-4D9E-BE7C-162137515C3B
Content-Type: text/plain;
	charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello Adam,

revising the draft is taking us way longer than expected, indeed. We hoped t=
o submit version -14 before Prague, but we were not able to complete it on t=
ime. My plan is to finish the revision before the end of July.=20

Thanks for your patience,

Simon

Inviato da iPhone

> Il giorno 10 lug 2017, alle ore 22:35, Adam Roach <adam@nostrum.com> ha sc=
ritto:
>=20
> For my own planning, when might I expect to see a revised edition of this d=
ocument?
>=20
> Thanks!
>=20
> /a
>=20
>> On 6/12/17 08:14, Simon Pietro Romano wrote:
>> Hello Adam,
>>=20
>> thanks a lot for your thorough review and sorry for answering that late. I=
 am currently abroad for a conference. Together with Roberta, we=E2=80=99ll w=
ork on your comments and send back our answers in the next few days.
>>=20
>> Cheers,
>>=20
>> Simon
>>                      				            _\\|//_=

>>                            				   ( O-O )
>>       ~~~~~~~~~~~~~~~~~~~~~~o00~~(_)~~00o~~~~~~~~~~~~~~~~~~~~~~~~
>>                     				Simon Pietro Romano
>>              				 Universita' di Napoli Fede=
rico II
>>                 		     Computer Engineering Department=20
>> 	             Phone: +39 081 7683823 -- Fax: +39 081 7683816
>>                                            e-mail: spromano@unina.it
>>=20
>> 		    <<Molti mi dicono che lo scoraggiamento =C3=A8 l'alibi d=
egli=20
>> 		    idioti. Ci rifletto un istante; e mi scoraggio>>. Magri=
tte.
>>                			                     oooO
>>        ~~~~~~~~~~~~~~~~~~~~~~~(   )~~~ Oooo~~~~~~~~~~~~~~~~~~~~~~~~~
>> 					                 \ (            (  =
 )
>> 			                                  \_)          ) /
>>                                                                        (_=
/
>>=20
>>=20
>>=20
>>> On 02 Jun 2017, at 02:48, Adam Roach <adam@nostrum.com> wrote:
>>>=20
>>> CLUE working group --
>>>=20
>>> I have completed my AD review for the CLUE protocol document. Based on m=
y reading, I do not think it is yet ready for IETF last call.
>>> Most of my comments below are feedback that the document authors should t=
reat as normal last call comments. The feedback that I consider to block pro=
gressing the document, in my role as AD, is explicitly marked with the prefi=
x "BLOCKER", and these will need to be resolved in a new version of the docu=
ment before progressing it further. Note that it is entirely possible that s=
omething I have marked "BLOCKER" may stem from an error on my part; so recog=
nize that these are not demands for change, as much as a need to have things=
 either fixed in the document or explained to me.
>>>=20
>>> Title: The rule of thumb is that all but a small handful of well-known a=
cronyms need to be expanded in titles and abstracts. I recognize that "CLUE"=
 is a bit tortured, as acronyms go, but the title of this document is, broad=
ly speaking, opaque. Please change it to something meaningful, such as "Prot=
ocol for Controlling Multiple Streams for Telepresence (CLUE)"
>>>=20
>>> General: There are three instances of excessively long lines in the docu=
ment.
>>>=20
>>> General: Please number and caption the figures in this document. Also, p=
lease refer to the figure numbers when pointing to them (e.g., the first par=
agraph of section 6.1 should read something like: "As soon as the sub-state m=
achine of the MP (Figure 1) is activated..."."
>>> BLOCKER: General: There are several mentions of timeouts and retry thres=
holds in the text and its corresponding state machines; however, the documen=
t neither defines nor cites a document as defining what these timeout and re=
try values are. These need to be defined and described. If the timer and ret=
ry scheme allows the two ends of the connection to have different values for=
 timeouts and number of retries, then there need to be additional error proc=
edures that allow the MC and MP state machines to stay in sync (if the timer=
/retry values can be different, it's possible for one state machine to trans=
ition to "terminated," while the other is still active, and you need messagi=
ng to clean this up). The remainder of this comment is non-blocking: Related=
 to this, the document frequently refers to retries as "expiring" (e.g., "re=
try expired" on the state diagrams). That doesn't really make sense unless "=
retry" is the name of a timer rather than a counter; I think you mean to say=
 "exhausted" or something similar.
>>> General: This document defines six message types, all of which have at l=
east two names, many of which have more. It would be a lot easier to keep tr=
ack of what is being described if these were kept consistent. I suggest choo=
sing one term for each concept and sticking with it. In other words, please p=
ick only one name from each of the following lines, and do not use any of th=
e others:
>>> OPTIONS, options
>>> OPTIONS RESPONSE, optionsResponse
>>> ADVERTISEMENT, ADV, advertisement
>>> ADVERTISEMENT ACKNOWLEDGEMENT, ADV ACK, ACK, NACK, ack
>>> CONFIGURE, CONF, CONF+ACK, configure
>>> CONFIGURE RESPONSE, CONF RESPONSE, configureResponse
>>> The terminology section appears to be in alphabetical order, except for "=
Capture Encoding" (which was presumably "Media Capture Encoding" in some ear=
lier version). Please fix.
>>>=20
>>> The definitions for "Endpoint", "MCU", and                   "Media Stre=
am/Stream" vary from the definition given in draft-ietf-clue-framework. Is t=
his intentional?
>>>=20
>>> The first paragraph of section 4 mentions the framework and data model d=
ocuments without citations. There should probably be citations to the corres=
ponding documents.
>>>=20
>>> Section 4 contains the following text:
>>>=20
>>>    The CLUE protocol represents the mechanism
>>>    for the exchange of CLUE information between CLUE Participants
>>> This is sufficiently circular as to be basically meaningless. Suggest: "=
...for the exchange of telepresence information between..."
>>>=20
>>> Section 5: The versioning scheme in here is rather perplexing. Is there s=
ome technical reason the protocol restricts major version numbers to a singl=
e digit and minor versions to a single digit? Strongly suggest that this sho=
uld be expanded to allow multiple digits for both the major and minor versio=
ns.
>>>=20
>>> Section 5: It should be made clear that the                   XML Schema=
 excerpts in section 5 are non-normative. In particular, I recommend adding t=
he following text to the end of the first paragraph of section 5: "This sect=
ion includes non-normative excerpts of the schema to aid in describing it."
>>>=20
>>> Section 5: If the single-digit version numbers are maintained (and, agai=
n, I strongly recommend against this), the definition of versionType appears=
 to be wrong: it allows a major version digit of "0", which would seem to be=
 precluded by the way versions are currently defined.
>>>=20
>>> Section 5: The XML definition allows zero or more <clueId> elements to a=
ppear in a message. If more than one is allowed, the document should explain=
 how multiple IDs are handled. If they are not, then the schema and/or text n=
eeds to prohibit having more than one.
>>>=20
>>> Section 5: The description for <sequenceNr> says that a 402 will be sent=
 in the case of an "unexpected" sequence number. This needs clarification: i=
s this for case where a sequence number gap is detected? A repeated sequence=
 number? A number that is too small? All of the above? At least             =
      describe this with the 402 error code, and point to that description f=
rom here.
>>>=20
>>> Section 5: The description for <v> would benefit from the addition of "T=
his document describes version 1.0".
>>>=20
>>> Section 5.1: "The OPTIONS message is sent by the CP which is the CI to t=
he CP which is the CR as soon as the CLUE data channel is ready." Although i=
t's a problem in other parts of the document too, the dense use of nearly id=
entical two-letter acronyms in here makes it quite hard to read. I had to ke=
ep consulting the definitions of those acronyms to decode this sentence (as w=
ell as several similar ones). Consider just expanding these terms (as well a=
s "MP" and "MC") instead of using them in prose.
>>> Section 5.1 starts to wobble back and forth between referring to element=
s with and without angle brackets (e.g., it uses both "supportedVersions" an=
d "<supportedVersions>"). Please pick one and stick with it.
>>>=20
>>> BLOCKER: Section 5.1: The description of <supportedVersions> describes a=
 scheme in which multiple supported versions can be listed; and, if the list=
 is omitted, it implies that only the version described in <v> is supported.=
 This text does not define (nor does any other text that I can find) what <v=
> should be set to when <supportedVersions> is used. Intuitively, it        =
           seems that <v> should be set to the largest minor version of the s=
mallest major version advertised in <supportedVersions>, but that (or whatev=
er the correct answer is) needs to be clearly spelled out.
>>>=20
>>> BLOCKER: Section 5.2: "If the responseCode is of the type 2xx the respon=
se MUST also include..." -- you can't use "2xx" in a normative statement wit=
hout first defining what it means. As you don't use the "#xx" format anywher=
e else, I suggest rephrasing: "If the <responseCode> is between 200 and 299 =
                  inclusive, the response MUST also include..."
>>>=20
>>> Sections 5.2, 5.4, 5.6: It seems really odd that the document defines a b=
ase clueMessageType that all messages derive from, but then leaves all the r=
esponse types (optionsResponse, ack, configureResponse) to repeatedly and in=
dependently add <responseCode>,<responseString>, and the sequence number of t=
he corresponding message over and over again. I would strongly suggest addin=
g something like:
>>>=20
>>>    <!-- CLUE RESPONSE TYPE -->
>>>    <xs:complexType name=3D"clueResponseType">
>>>    <xs:complexContent>
>>>    <xs:extension base=3D"clueMessageType">
>>>    <xs:sequence>
>>>    <xs:element name=3D"responseCode" type=3D"responseCodeType"/>
>>>    <xs:element name=3D"reasonString" type=3D"xs:string" minOccurs=3D"0"/=
>
>>>    <xs:element name=3D"requestSequenceNr" type=3D"xs:positiveInteger"/>
>>>    <xs:any namespace=3D"##other" processContents=3D"lax" minOccurs=3D"0"=
/>
>>>    </xs:sequence>
>>>    </xs:extension>
>>>    </xs:complexContent>
>>>    </xs:complexType>
>>> ...and then defining those three response types as being extensions of "=
clueResponse" instead of "clueMessage", like this:
>>>    <!-- ADV ACK MESSAGE TYPE -->
>>>    <xs:complexType name=3D"advAcknowledgementMessageType">
>>>    <xs:complexContent>
>>>    <xs:extension base=3D"clueResponseType">
>>>    <xs:anyAttribute namespace=3D"##other" processContents=3D"lax"/>
>>>    </xs:extension>
>>>    </xs:complexContent>
>>>    </xs:complexType>
>>>=20
>>> Regardless of how you do this, any section that adds "responseCode" and "=
reasonString" needs to point to section 5.7 in its description to explain ho=
w those fields are populated and interpreted.
>>>=20
>>> Section 5.5: This section allows a boolean flag in a <configure> message=
 to acknowledge an <advertisement>. Is this intended to always be handled li=
ke a 200? Consider: if you define a 201 response code in the future, will im=
plementations be                   unable to convey its meaning in a CONF + A=
CK? Given that the document defines a class of codes for success rather than=
 a simple success flag in general, it seems that this <ack> element should c=
arry a success response code rather than just a boolean. If you decide to ke=
ep the boolean, be very clear that it is to be treated as a 200 rather than a=
ny other potential success code; and that conveying any other kind of succes=
s requires a separate <ack> message.
>>>=20
>>> Section 5.5: the final paragraph mentions the <captureEncodings> element=
 -- it would be helpful to add something like "see [I-D.ietf-clue-datamodel]=
 for the definition of <captureEncodings>."
>>>=20
>>> BLOCKER: Section 5.7 indicates that there is a class of response codes, s=
tarting with "1", which are used to indicate "delayed or incomplete" respons=
es. The document does not describe any protocol behavior for this class of r=
esponse. The description of the meaning of this class (and the obvious paral=
lels to HTTP and SIP) imply that some subsequent response associated with th=
e same request will be arriving at some point in the future. If that's the i=
ntention, this document needs a *lot* more text (and corresponding adjustmen=
ts to the state machines) to explain how these 100-class codes are handled. I=
n practice, since the current version of the document does not define nor ma=
ke use of 100-class codes, I suggest that the most reasonable path forward i=
s to remove discussion of codes starting with "1" from the first paragraph o=
f section 5.7, instead adding a paragraph immediately following it that says=
 something like:=20
>>>   This document does not define                     response codes start=
ing with "1", and such
>>>   response codes are not allowed to appear in major version 1 of the CLU=
E
>>>   protocol. The range from 100 to 199 inclusive is reserved for future m=
ajor
>>>   versions of the protocol to define response codes for delayed or incom=
plete
>>>   operations if necessary. Response codes starting with "5" through "9" a=
re
>>>   reserved for future major versions of the protocol to define new class=
es of
>>>   response, and are not allowed in major version 1 of the CLUE protocol.=

>>>   Response codes starting with "0" are not allowed.
>>> Section 5.7: "The response codes and strings defined for use with CLUE a=
re as follows" - this strongly implies that the descriptions given in this t=
able are the only ones that are allowed in CLUE <reasonString> element, and t=
hat any other messages should presumably be treated as an error. Surely that=
's not what you mean. Suggest rephrasing to indicate that the "Description" t=
ext can be sent in the <reasonString>, but that implementations can (and are=
 encouraged to) include more specific descriptions of the error condition, i=
f possible.
>>>=20
>>> Section 5.7: I can't figure out how an implementation could ever send a "=
300" response code. If the XML syntax is incorrect, that's a 301. If the mes=
sage contains an invalid value, that's a 302. And                   those ar=
e the only two conditions that are described for 300. I think you need to gi=
ve "300" a bit more thought -- if you can't come up with a more generic desc=
ription (e.g., "low-level request error"), you probably want to remove it.
>>>=20
>>> Section 5.7: for 403, be clear which identifier is meant. Do you mean "T=
he <clueId> used in the message is not valid..."?
>>>=20
>>> Section 5.7: for 404, please be clear that you're talking about the sequ=
ence number rather than just using "number" without qualification.
>>>=20
>>> Section 5.7: The description for 405 uses the acronym "MCC" without expa=
nding it. Please expand it.
>>>=20
>>> BLOCKING: The state machines in section 6 and its subsections don't have=
 transitions for all possible messages that could arrive in a state. This ca=
n cause interop issues. Please add text that clearly                   indic=
ates whether such messages do or do not cause a transition. (This might be a=
s simple as "messages not shown for a state do not cause the state to change=
," but only if you carefully check that this is true -- for example, what sh=
ould an MP state machine do do if it gets a "CONF + ACK" in the state "WAIT =
FOR CONF"?)
>>>=20
>>> Section 6: The fifth paragraph says "CLUE                   channel" whe=
re it means "CLUE data channel."
>>>=20
>>> Section 6: The eighth paragraph says:
>>>=20
>>>    The CP moves from the ACTIVE state to the IDLE one when the sub-state=

>>>    machines that have been activated are (both) in the relative
>>>    TERMINATED state (see sections Section 6.1 and Section 6.2).
>>> The "both" in this paragraph is confusing, since it's possible to have o=
nly one or the other machine running. Please rephrase.
>>>=20
>>> Section 6.2 describes a state machine that starts in a state called "WAI=
T FOR ADV." This state does not appear to be timer-supervised, meaning that i=
mplementations of this state machine can stay in this state literally foreve=
r. Is that the intention?
>>>=20
>>> Section 6.2 also describes the possibility of sending a <ack> and <confi=
gure> separately or as a combined message. I would have expected to see some=
 discussion here about why implementations might choose one behavior over th=
e other.
>>>=20
>>> Section 7: The second sentence of the second paragraph needs a verb.
>>>=20
>>> Section 7, paragraph 3: this claims that versions are a non-negative *in=
teger* rather than a *digit*. As I mention above, this seems to be the right=
 way to handle versions, but it is decidedly at odds with text elsewhere in t=
he document and in the schema. Regardless of how you choose to treat version=
s, the text needs to be consistent.
>>> Section 7, final paragraph: replace "Clue" with "CLUE."
>>>=20
>>> Section 8 contains a paragraph starting with "In that case, the new info=
rmation..." but it's not clear which case it's referring to. Please replace "=
In that case" with a description of the case under consideration.
>>>=20
>>> Section 8 contains the phrase "Similarly to                   what said b=
efore..." -- this is ungrammatical and needs to be rephrased.
>>>=20
>>> Section 8 indicates that extensions need to indicate "the standard versi=
on of the protocol the extension refers to." Given that there is compatibili=
ty within a major version of a protocol, I think this means to say "the majo=
r standard version of the protocol that the extension refers to."
>>>=20
>>> Section 8 has a paragraph starting "For that reason..." -- it's not clea=
r what reason is being referred to here. Please clarify.
>>>=20
>>> Section 8 contains schema that contains a                   <version> el=
ement. It should be clarified that this is the *protocol* version, not the *=
extension* version (or, if it's the extension version, that needs to be spel=
led out too, but I think you'll need a new namespace for that...?)
>>>=20
>>> BLOCKING: Section 8.1 is an example section, which are non-normative in I=
ETF documents. It contains 2119-style normative language, however. These nor=
mative statements need to be moved out of the example section (and probably i=
nto section 8). The remainder of this comment is non-blocking: I also find t=
he "SHOULD" in this section to be highly perplexing. Can you explain the rat=
ionale behind requiring schema, but not requiring any description of what th=
e schema *means?)
>>>=20
>>> BLOCKING: The example in section 8.1 includes the following:
>>>=20
>>>    xmlns=3D"clue-info-extension-myVideoExtensions"
>>> I'm pretty certain that namespaces are required to be identified by URIs=
 rather than arbitrary strings.
>>>=20
>>> Section 8.1: The final paragraph also has normative language in it, alth=
ough it appears to be reiterating requirements from elsewhere in the documen=
t. I suggest lowercasing "MUST" in this paragraph.
>>>=20
>>> Section 8.1: The final paragraph mentions the use of <options> and <opti=
onsResponse> to negotiate the extension. An example demonstrating this negot=
iation would be extremely useful.
>>>=20
>>> The schema in section 9 contains:
>>>=20
>>> <xs:import namespace=3D"urn:ietf:params:xml:ns:clue-info"
>>> schemaLocation=3D"data-model-schema-17.xsd"/>
>>> If you do not intend to bake this "-17" into the document (and I can't i=
magine you do), please add an RFC editor note to change it to something else=
 upon publication.
>>>=20
>>> Also, the schema in section 9 is (with rare exception) unindented. This m=
akes it *very* hard to read. Please consider formatting it with conventional=
 XML indentation. (This also applies to the schema excerpts earlier in the d=
ocument.)
>>> Has there been any automated tool-based                   checking that t=
he examples in section 10 to verify that they conform to the schema in secti=
on 9 (and the schemata it imports)?
>>>=20
>>> Section 10.2: Please expand the acronym "MCCs" in the section title (kee=
p in mind that this appears in the table of contents, where it needs to make=
s sense).
>>>=20
>>> Section 10 in general: While it does consume a lot of space, I don't thi=
nk that defining six rather different message types and then showing only *o=
ne* type in the examples is very illustrative of the protocol. I would *STRO=
NGLY* suggest adding at least a response message, and ideally the example se=
ction should contain at least one example for each of the six message types.=

>>>=20
>>> Section 11, paragraph 4: Replace "Clue" with "CLUE."
>>>=20
>>> Section 12.1 has a strange double-double quote around the URN name, and s=
ection 12.3 repeats this for the MIME type.
>>> All subsections of section 12: please update all registrant contact info=
rmation to point to the IESG (iesg@ietf.org) rather than the CLUE working gr=
oup and one of the authors.
>>>=20
>>> Section 12.4.1: These descriptions will appear in an IANA registry, wher=
e the phrase "in this document" will have no context and be rather nonsensic=
al. Please rephrase.
>>>=20
>>> Sections 13 through 23 should include an RFC editor note asking for remo=
val before publication.
>>>=20
>>> /a
>>=20
>=20

--Apple-Mail-40E6CFEB-92B0-4D9E-BE7C-162137515C3B
Content-Type: text/html;
	charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; charset=3D=
utf-8"></head><body dir=3D"auto"><div>Hello Adam,</div><div id=3D"AppleMailS=
ignature"><br></div><div id=3D"AppleMailSignature">revising the draft is tak=
ing us way longer than expected, indeed. We hoped to submit version -14 befo=
re Prague, but we were not able to complete it on time. My plan is to finish=
 the revision before the end of July.&nbsp;</div><div id=3D"AppleMailSignatu=
re"><br></div><div id=3D"AppleMailSignature">Thanks for your patience,</div>=
<div id=3D"AppleMailSignature"><br></div><div id=3D"AppleMailSignature">Simo=
n<br><br>Inviato da iPhone</div><div><br>Il giorno 10 lug 2017, alle ore 22:=
35, Adam Roach &lt;<a href=3D"mailto:adam@nostrum.com">adam@nostrum.com</a>&=
gt; ha scritto:<br><br></div><blockquote type=3D"cite"><div>
 =20
    <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dutf-8"=
>
 =20
 =20
    <div class=3D"moz-cite-prefix">For my own planning, when might I
      expect to see a revised edition of this document?<br>
      <br>
      Thanks!<br>
      <br>
      /a<br>
      <br>
      On 6/12/17 08:14, Simon Pietro Romano wrote:<br>
    </div>
    <blockquote type=3D"cite" cite=3D"mid:4523923C-254E-45B1-AC8E-B301834E08=
76@unina.it">
      <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dutf-=
8">
      Hello Adam,
      <div class=3D""><br class=3D"">
      </div>
      <div class=3D"">thanks a lot for your thorough review and sorry for
        answering that late. I am currently abroad for a conference.
        Together with Roberta, we=E2=80=99ll work on your comments and send b=
ack
        our answers in the next few days.</div>
      <div class=3D""><br class=3D"">
      </div>
      <div class=3D"">Cheers,</div>
      <div class=3D""><br class=3D"">
      </div>
      <div class=3D"">Simon<br class=3D"">
        <div class=3D"">
          <div class=3D"">
            <div class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=
 &nbsp; &nbsp; &nbsp; &nbsp;<span style=3D"white-space: pre-wrap;" class=3D"=
">				          </span>&nbsp;&nbsp;_\\|//_</div>
            <div class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style=3D"white-space:=
 pre-wrap;" class=3D"">				   </span>(
              O-O )</div>
            <div class=3D"">&nbsp; &nbsp; &nbsp; ~~~~~~~~~~~~~~~~~~~~~~o00~~=
(_<wbr class=3D"">)~~00o~~~~~~~~~~~~~~~~~~~~~~~~</div>
            <div class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=
 &nbsp; &nbsp; &nbsp;&nbsp;<span style=3D"white-space: pre-wrap;" class=3D""=
>				</span>Simon
              Pietro Romano</div>
            <div class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=
<span style=3D"white-space: pre-wrap;" class=3D"">			=
	</span>&nbsp;Universita'
              di Napoli Federico II</div>
            <div class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=
 &nbsp;&nbsp;<span style=3D"white-space: pre-wrap;" class=3D"">		</s=
pan>&nbsp;
              &nbsp; &nbsp;Computer Engineering Department&nbsp;</div>
            <div class=3D""><span style=3D"white-space: pre-wrap;" class=3D"=
">	</span>&nbsp;
              &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;Phone: +39 081 7=
683823 -- Fax: +39 081 7683816</div>
            <div class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp=
; &nbsp; &nbsp; &nbsp;
              &nbsp;e-mail:&nbsp;<a href=3D"mailto:spromano@unina.it" target=
=3D"_blank" style=3D"word-wrap: normal; word-break:
                break-word;" class=3D"" moz-do-not-send=3D"true">spromano@un=
ina.it</a></div>
            <div class=3D""><br class=3D"">
            </div>
            <div class=3D""><span style=3D"white-space: pre-wrap;" class=3D"=
">		</span>&nbsp;
              &nbsp;&nbsp;&lt;&lt;Molti mi dicono che lo scoraggiamento =C3=A8=
 l'alibi
              degli&nbsp;</div>
            <div class=3D""><span style=3D"white-space: pre-wrap;" class=3D"=
">		</span>&nbsp;&nbsp;
              &nbsp;idioti. Ci rifletto un istante; e mi scoraggio&gt;&gt;.
              Magritte.</div>
            <div class=3D"">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &=
nbsp;&nbsp;<span style=3D"white-space: pre-wrap;" class=3D"">		=
	</span>&nbsp;
              &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=
 &nbsp;oooO</div>
            <div class=3D"">&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;~~~~~~~~~~~~~~~~=
~~~~~~~( &nbsp;
              )~~~&nbsp;Oooo~~~~~~~~~~~~~~~~~~~~~<wbr class=3D"">~~~~</div>
            <div class=3D""><span style=3D"white-space: pre-wrap;" class=3D"=
">					</span>&nbsp;
              &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\ ( &nb=
sp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;( &nbsp; )</div>
            <div class=3D""><span style=3D"white-space: pre-wrap;" class=3D"=
">			</span>&nbsp;
              &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;\_) &nbsp; &nbsp; &nb=
sp; &nbsp; &nbsp;) /</div>
            <div class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp=
; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
              &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=
 &nbsp; &nbsp; &nbsp; &nbsp;(_/</div>
          </div>
          <div class=3D""><br class=3D"">
          </div>
          <br class=3D"Apple-interchange-newline">
        </div>
        <br class=3D"">
        <div>
          <blockquote type=3D"cite" class=3D"">
            <div class=3D"">On 02 Jun 2017, at 02:48, Adam Roach &lt;<a href=
=3D"mailto:adam@nostrum.com" class=3D"" moz-do-not-send=3D"true">adam@nostru=
m.com</a>&gt; wrote:</div>
            <br class=3D"Apple-interchange-newline">
            <div class=3D"">
              <meta http-equiv=3D"content-type" content=3D"text/html;
                charset=3Dutf-8" class=3D"">
              <div text=3D"#000000" bgcolor=3D"#FFFFFF" class=3D"">
                <p class=3D""> CLUE working group --<br class=3D"">
                  <br class=3D"">
                  I have completed my AD review for the CLUE protocol
                  document. Based on my reading, I do not think it is
                  yet ready for IETF last call.<br class=3D"">
                </p>
                <p class=3D"">Most of my comments below are feedback that
                  the document authors should treat as normal last call
                  comments. The feedback that I consider to block
                  progressing the document, in my role as AD, is
                  explicitly marked with the prefix "BLOCKER", and these
                  will need to be resolved in a new version of the
                  document before progressing it further. Note that it
                  is entirely possible that something I have marked
                  "BLOCKER" may stem from an error on my part; so
                  recognize that these are not demands for change, as
                  much as a need to have things either fixed in the
                  document or explained to me.</p>
                <p class=3D"">Title: The rule of thumb is that all but a
                  small handful of well-known acronyms need to be
                  expanded in titles and abstracts. I recognize that
                  "CLUE" is a bit tortured, as acronyms go, but the
                  title of this document is, broadly speaking, opaque.
                  Please change it to something meaningful, such as
                  "Protocol for Controlling Multiple Streams for
                  Telepresence (CLUE)"</p>
                <p class=3D"">General: There are three instances of
                  excessively long lines in the document.</p>
                <p class=3D"">General: Please number and caption the
                  figures in this document. Also, please refer to the
                  figure numbers when pointing to them (e.g., the first
                  paragraph of section 6.1 should read something like:
                  "As soon as the sub-state machine of the MP (Figure 1)
                  is activated..."."<br class=3D"">
                </p>
                <p class=3D"">BLOCKER: General: There are several mentions
                  of timeouts and retry thresholds in the text and its
                  corresponding state machines; however, the document
                  neither defines nor cites a document as defining what
                  these timeout and retry values are. These need to be
                  defined and described. If the timer and retry scheme
                  allows the two ends of the connection to have
                  different values for timeouts and number of retries,
                  then there need to be additional error procedures that
                  allow the MC and MP state machines to stay in sync (if
                  the timer/retry values can be different, it's possible
                  for one state machine to transition to "terminated,"
                  while the other is still active, and you need
                  messaging to clean this up). The remainder of this
                  comment is non-blocking: Related to this, the document
                  frequently refers to retries as "expiring" (e.g.,
                  "retry expired" on the state diagrams). That doesn't
                  really make sense unless "retry" is the name of a
                  timer rather than a counter; I think you mean to say
                  "exhausted" or something similar.<br class=3D"">
                </p>
                <p class=3D"">General: This document defines six message
                  types, all of which have at least two names, many of
                  which have more. It would be a lot easier to keep
                  track of what is being described if these were kept
                  consistent. I suggest choosing one term for each
                  concept and sticking with it. In other words, please
                  pick only one name from each of the following lines,
                  and do not use any of the others:<br class=3D"">
                </p>
                <ol class=3D"">
                  <li class=3D"">OPTIONS, options</li>
                  <li class=3D"">OPTIONS RESPONSE, optionsResponse</li>
                  <li class=3D"">ADVERTISEMENT, ADV, advertisement</li>
                  <li class=3D"">ADVERTISEMENT ACKNOWLEDGEMENT, ADV ACK,
                    ACK, NACK, ack</li>
                  <li class=3D"">CONFIGURE, CONF, CONF+ACK, configure</li>
                  <li class=3D"">CONFIGURE RESPONSE, CONF RESPONSE,
                    configureResponse</li>
                </ol>
                <p class=3D"">The terminology section appears to be in
                  alphabetical order, except for "Capture Encoding"
                  (which was presumably "Media Capture Encoding" in some
                  earlier version). Please fix.</p>
                <p class=3D"">The definitions for "Endpoint", "MCU", and
                  "Media Stream/Stream" vary from the definition given
                  in draft-ietf-clue-framework. Is this intentional?</p>
                <p class=3D"">The first paragraph of section 4 mentions
                  the framework and data model documents without
                  citations. There should probably be citations to the
                  corresponding documents.</p>
                <p class=3D"">Section 4 contains the following text:</p>
                <pre class=3D"">   The CLUE protocol represents the mechanis=
m
   for the exchange of CLUE information between CLUE Participants</pre>
                <p class=3D"">This is sufficiently circular as to be
                  basically meaningless. Suggest: "...for the exchange
                  of telepresence information between..."</p>
                <p class=3D"">Section 5: The versioning scheme in here is
                  rather perplexing. Is there some technical reason the
                  protocol restricts major version numbers to a single
                  digit and minor versions to a single digit? Strongly
                  suggest that this should be expanded to allow multiple
                  digits for both the major and minor versions.</p>
                <p class=3D"">Section 5: It should be made clear that the
                  XML Schema excerpts in section 5 are non-normative. In
                  particular, I recommend adding the following text to
                  the end of the first paragraph of section 5: "This
                  section includes non-normative excerpts of the schema
                  to aid in describing it."</p>
                <p class=3D"">Section 5: If the single-digit version
                  numbers are maintained (and, again, I strongly
                  recommend against this), the definition of versionType
                  appears to be wrong: it allows a major version digit
                  of "0", which would seem to be precluded by the way
                  versions are currently defined.</p>
                <p class=3D"">Section 5: The XML definition allows zero or
                  more &lt;clueId&gt; elements to appear in a message.
                  If more than one is allowed, the document should
                  explain how multiple IDs are handled. If they are not,
                  then the schema and/or text needs to prohibit having
                  more than one.</p>
                <p class=3D"">Section 5: The description for
                  &lt;sequenceNr&gt; says that a 402 will be sent in the
                  case of an "unexpected" sequence number. This needs
                  clarification: is this for case where a sequence
                  number gap is detected? A repeated sequence number? A
                  number that is too small? All of the above? At least
                  describe this with the 402 error code, and point to
                  that description from here.</p>
                <p class=3D"">Section 5: The description for &lt;v&gt;
                  would benefit from the addition of "This document
                  describes version 1.0".</p>
                <p class=3D"">Section 5.1: "The OPTIONS message is sent by
                  the CP which is the CI to the CP which is the CR as
                  soon as the CLUE data channel is ready." Although it's
                  a problem in other parts of the document too, the
                  dense use of nearly identical two-letter acronyms in
                  here makes it quite hard to read. I had to keep
                  consulting the definitions of those acronyms to decode
                  this sentence (as well as several similar ones).
                  Consider just expanding these terms (as well as "MP"
                  and "MC") instead of using them in prose.<br class=3D"">
                </p>
                <p class=3D"">Section 5.1 starts to wobble back and forth
                  between referring to elements with and without angle
                  brackets (e.g., it uses both "supportedVersions" and
                  "&lt;supportedVersions&gt;"). Please pick one and
                  stick with it.</p>
                <p class=3D"">BLOCKER: Section 5.1: The description of
                  &lt;supportedVersions&gt; describes a scheme in which
                  multiple supported versions can be listed; and, if the
                  list is omitted, it implies that only the version
                  described in &lt;v&gt; is supported. This text does
                  not define (nor does any other text that I can find)
                  what &lt;v&gt; should be set to when
                  &lt;supportedVersions&gt; is used. Intuitively, it
                  seems that &lt;v&gt; should be set to the largest
                  minor version of the smallest major version advertised
                  in &lt;supportedVersions&gt;, but that (or whatever
                  the correct answer is) needs to be clearly spelled
                  out.</p>
                <p class=3D"">BLOCKER: Section 5.2: "If the responseCode
                  is of the type 2xx the response MUST also include..."
                  -- you can't use "2xx" in a normative statement
                  without first defining what it means. As you don't use
                  the "#xx" format anywhere else, I suggest rephrasing:
                  "If the &lt;responseCode&gt; is between 200 and 299
                  inclusive, the response MUST also include..."</p>
                <p class=3D"">Sections 5.2, 5.4, 5.6: It seems really odd
                  that the document defines a base clueMessageType that
                  all messages derive from, but then leaves all the
                  response types (optionsResponse, ack,
                  configureResponse) to repeatedly and independently add
                  &lt;responseCode&gt;,&lt;responseString&gt;, and the
                  sequence number of the corresponding message over and
                  over again. I would strongly suggest adding something
                  like:</p>
                <pre class=3D"">   &lt;!-- CLUE RESPONSE TYPE --&gt;
   &lt;xs:complexType name=3D"clueResponseType"&gt;
   &lt;xs:complexContent&gt;
   &lt;xs:extension base=3D"clueMessageType"&gt;
   &lt;xs:sequence&gt;
   &lt;xs:element name=3D"responseCode" type=3D"responseCodeType"/&gt;
   &lt;xs:element name=3D"reasonString" type=3D"xs:string" minOccurs=3D"0"/&=
gt;
   &lt;xs:element name=3D"requestSequenceNr" type=3D"xs:positiveInteger"/&gt=
;
   &lt;xs:any namespace=3D"##other" processContents=3D"lax" minOccurs=3D"0"/=
&gt;
   &lt;/xs:sequence&gt;
   &lt;/xs:extension&gt;
   &lt;/xs:complexContent&gt;
   &lt;/xs:complexType&gt;</pre>
                <p class=3D"">...and then defining those three response
                  types as being extensions of "clueResponse" instead of
                  "clueMessage", like this:<br class=3D"">
                </p>
                <pre class=3D"">   &lt;!-- ADV ACK MESSAGE TYPE --&gt;
   &lt;xs:complexType name=3D"advAcknowledgementMessageType"&gt;
   &lt;xs:complexContent&gt;
   &lt;xs:extension base=3D"clueResponseType"&gt;
   &lt;xs:anyAttribute namespace=3D"##other" processContents=3D"lax"/&gt;
   &lt;/xs:extension&gt;
   &lt;/xs:complexContent&gt;
   &lt;/xs:complexType&gt;

</pre>
                <p class=3D"">Regardless of how you do this, any section
                  that adds "responseCode" and "reasonString" needs to
                  point to section 5.7 in its description to explain how
                  those fields are populated and interpreted.</p>
                <p class=3D"">Section 5.5: This section allows a boolean
                  flag in a &lt;configure&gt; message to acknowledge an
                  &lt;advertisement&gt;. Is this intended to always be
                  handled like a 200? Consider: if you define a 201
                  response code in the future, will implementations be
                  unable to convey its meaning in a CONF + ACK? Given
                  that the document defines a class of codes for success
                  rather than a simple success flag in general, it seems
                  that this &lt;ack&gt; element should carry a success
                  response code rather than just a boolean. If you
                  decide to keep the boolean, be very clear that it is
                  to be treated as a 200 rather than any other potential
                  success code; and that conveying any other kind of
                  success requires a separate &lt;ack&gt; message.</p>
                <p class=3D"">Section 5.5: the final paragraph mentions
                  the &lt;captureEncodings&gt; element -- it would be
                  helpful to add something like "see
                  [I-D.ietf-clue-datamodel] for the definition of
                  &lt;captureEncodings&gt;."</p>
                <p class=3D"">BLOCKER: Section 5.7 indicates that there is
                  a class of response codes, starting with "1", which
                  are used to indicate "delayed or incomplete"
                  responses. The document does not describe any protocol
                  behavior for this class of response. The description
                  of the meaning of this class (and the obvious
                  parallels to HTTP and SIP) imply that some subsequent
                  response associated with the same request will be
                  arriving at some point in the future. If that's the
                  intention, this document needs a *lot* more text (and
                  corresponding adjustments to the state machines) to
                  explain how these 100-class codes are handled. In
                  practice, since the current version of the document
                  does not define nor make use of 100-class codes, I
                  suggest that the most reasonable path forward is to
                  remove discussion of codes starting with "1" from the
                  first paragraph of section 5.7, instead adding a
                  paragraph immediately following it that says something
                  like: <br class=3D"">
                </p>
                <p class=3D""><tt class=3D"">&nbsp; This document does not d=
efine
                    response codes starting with "1", and such</tt><tt class=
=3D""><br class=3D"">
                  </tt><tt class=3D"">&nbsp; response codes are not allowed t=
o
                    appear in major version 1 of the CLUE</tt><tt class=3D""=
><br class=3D"">
                  </tt><tt class=3D"">&nbsp; protocol. The range from 100 to=

                    199 inclusive is reserved for future major</tt><tt class=
=3D""><br class=3D"">
                  </tt><tt class=3D"">&nbsp; versions of the protocol to def=
ine
                    response codes for delayed or incomplete</tt><tt class=3D=
""><br class=3D"">
                  </tt><tt class=3D"">&nbsp; operations if necessary. Respon=
se
                    codes starting with "5" through "9" are</tt><tt class=3D=
""><br class=3D"">
                  </tt><tt class=3D"">&nbsp; reserved for future major versi=
ons
                    of the protocol to define new classes of</tt><tt class=3D=
""><br class=3D"">
                  </tt><tt class=3D"">&nbsp; response, and are not allowed i=
n
                    major version 1 of the CLUE protocol.</tt><tt class=3D""=
><br class=3D"">
                  </tt><tt class=3D"">&nbsp; Response codes starting with "0=
"
                    are not allowed.</tt><br class=3D"">
                </p>
                <p class=3D"">Section 5.7: "The response codes and strings
                  defined for use with CLUE are as follows" - this
                  strongly implies that the descriptions given in this
                  table are the only ones that are allowed in CLUE
                  &lt;reasonString&gt; element, and that any other
                  messages should presumably be treated as an error.
                  Surely that's not what you mean. Suggest rephrasing to
                  indicate that the "Description" text can be sent in
                  the &lt;reasonString&gt;, but that implementations can
                  (and are encouraged to) include more specific
                  descriptions of the error condition, if possible.</p>
                <p class=3D"">Section 5.7: I can't figure out how an
                  implementation could ever send a "300" response code.
                  If the XML syntax is incorrect, that's a 301. If the
                  message contains an invalid value, that's a 302. And
                  those are the only two conditions that are described
                  for 300. I think you need to give "300" a bit more
                  thought -- if you can't come up with a more generic
                  description (e.g., "low-level request error"), you
                  probably want to remove it.</p>
                <p class=3D"">Section 5.7: for 403, be clear which
                  identifier is meant. Do you mean "The &lt;clueId&gt;
                  used in the message is not valid..."?</p>
                <p class=3D"">Section 5.7: for 404, please be clear that
                  you're talking about the sequence number rather than
                  just using "number" without qualification.</p>
                <p class=3D"">Section 5.7: The description for 405 uses
                  the acronym "MCC" without expanding it. Please expand
                  it.</p>
                <p class=3D"">BLOCKING: The state machines in section 6
                  and its subsections don't have transitions for all
                  possible messages that could arrive in a state. This
                  can cause interop issues. Please add text that clearly
                  indicates whether such messages do or do not cause a
                  transition. (This might be as simple as "messages not
                  shown for a state do not cause the state to change,"
                  but only if you carefully check that this is true --
                  for example, what should an MP state machine do do if
                  it gets a "CONF + ACK" in the state "WAIT FOR CONF"?)</p>
                <p class=3D"">Section 6: The fifth paragraph says "CLUE
                  channel" where it means "CLUE data channel."</p>
                <p class=3D"">Section 6: The eighth paragraph says:</p>
                <pre class=3D"">   The CP moves from the ACTIVE state to the=
 IDLE one when the sub-state
   machines that have been activated are (both) in the relative
   TERMINATED state (see sections Section 6.1 and Section 6.2).</pre>
                <p class=3D"">The "both" in this paragraph is confusing,
                  since it's possible to have only one or the other
                  machine running. Please rephrase.</p>
                <p class=3D"">Section 6.2 describes a state machine that
                  starts in a state called "WAIT FOR ADV." This state
                  does not appear to be timer-supervised, meaning that
                  implementations of this state machine can stay in this
                  state literally forever. Is that the intention?</p>
                <p class=3D"">Section 6.2 also describes the possibility
                  of sending a &lt;ack&gt; and &lt;configure&gt;
                  separately or as a combined message. I would have
                  expected to see some discussion here about why
                  implementations might choose one behavior over the
                  other.</p>
                <p class=3D"">Section 7: The second sentence of the second
                  paragraph needs a verb.</p>
                <p class=3D"">Section 7, paragraph 3: this claims that
                  versions are a non-negative *integer* rather than a
                  *digit*. As I mention above, this seems to be the
                  right way to handle versions, but it is decidedly at
                  odds with text elsewhere in the document and in the
                  schema. Regardless of how you choose to treat
                  versions, the text needs to be consistent.<br class=3D"">
                </p>
                <p class=3D"">Section 7, final paragraph: replace "Clue"
                  with "CLUE."</p>
                <p class=3D"">Section 8 contains a paragraph starting with
                  "In that case, the new information..." but it's not
                  clear which case it's referring to. Please replace "In
                  that case" with a description of the case under
                  consideration.</p>
                <p class=3D"">Section 8 contains the phrase "Similarly to
                  what said before..." -- this is ungrammatical and
                  needs to be rephrased.</p>
                <p class=3D"">Section 8 indicates that extensions need to
                  indicate "the standard version of the protocol the
                  extension refers to." Given that there is
                  compatibility within a major version of a protocol, I
                  think this means to say "the major standard version of
                  the protocol that the extension refers to."</p>
                <p class=3D"">Section 8 has a paragraph starting "For that
                  reason..." -- it's not clear what reason is being
                  referred to here. Please clarify.</p>
                <p class=3D"">Section 8 contains schema that contains a
                  &lt;version&gt; element. It should be clarified that
                  this is the *protocol* version, not the *extension*
                  version (or, if it's the extension version, that needs
                  to be spelled out too, but I think you'll need a new
                  namespace for that...?)</p>
                <p class=3D"">BLOCKING: Section 8.1 is an example section,
                  which are non-normative in IETF documents. It contains
                  2119-style normative language, however. These
                  normative statements need to be moved out of the
                  example section (and probably into section 8). The
                  remainder of this comment is non-blocking: I also find
                  the "SHOULD" in this section to be highly perplexing.
                  Can you explain the rationale behind requiring schema,
                  but not requiring any description of what the schema
                  *means?)</p>
                <p class=3D"">BLOCKING: The example in section 8.1
                  includes the following:</p>
                <pre class=3D"">   xmlns=3D"clue-info-extension-myVideoExten=
sions"</pre>
                <p class=3D"">I'm pretty certain that namespaces are
                  required to be identified by URIs rather than
                  arbitrary strings.</p>
                <p class=3D"">Section 8.1: The final paragraph also has
                  normative language in it, although it appears to be
                  reiterating requirements from elsewhere in the
                  document. I suggest lowercasing "MUST" in this
                  paragraph.</p>
                <p class=3D"">Section 8.1: The final paragraph mentions
                  the use of &lt;options&gt; and &lt;optionsResponse&gt;
                  to negotiate the extension. An example demonstrating
                  this negotiation would be extremely useful.</p>
                <p class=3D"">The schema in section 9 contains:</p>
                <pre class=3D"">&lt;xs:import namespace=3D"urn:ietf:params:x=
ml:ns:clue-info"
schemaLocation=3D"data-model-schema-17.xsd"/&gt;</pre>
                <p class=3D"">If you do not intend to bake this "-17" into
                  the document (and I can't imagine you do), please add
                  an RFC editor note to change it to something else upon
                  publication.</p>
                <p class=3D"">Also, the schema in section 9 is (with rare
                  exception) unindented. This makes it *very* hard to
                  read. Please consider formatting it with conventional
                  XML indentation. (This also applies to the schema
                  excerpts earlier in the document.)<br class=3D"">
                </p>
                <p class=3D"">Has there been any automated tool-based
                  checking that the examples in section 10 to verify
                  that they conform to the schema in section 9 (and the
                  schemata it imports)?</p>
                <p class=3D"">Section 10.2: Please expand the acronym
                  "MCCs" in the section title (keep in mind that this
                  appears in the table of contents, where it needs to
                  makes sense).</p>
                <p class=3D"">Section 10 in general: While it does consume
                  a lot of space, I don't think that defining six rather
                  different message types and then showing only *one*
                  type in the examples is very illustrative of the
                  protocol. I would *STRONGLY* suggest adding at least a
                  response message, and ideally the example section
                  should contain at least one example for each of the
                  six message types.</p>
                <p class=3D"">Section 11, paragraph 4: Replace "Clue" with
                  "CLUE."</p>
                <p class=3D"">Section 12.1 has a strange double-double
                  quote around the URN name, and section 12.3 repeats
                  this for the MIME type.<br class=3D"">
                </p>
                <p class=3D"">All subsections of section 12: please update
                  all registrant contact information to point to the
                  IESG (<a class=3D"moz-txt-link-abbreviated" href=3D"mailto=
:iesg@ietf.org" moz-do-not-send=3D"true">iesg@ietf.org</a>)
                  rather than the CLUE working group and one of the
                  authors.</p>
                <p class=3D"">Section 12.4.1: These descriptions will
                  appear in an IANA registry, where the phrase "in this
                  document" will have no context and be rather
                  nonsensical. Please rephrase.</p>
                <p class=3D"">Sections 13 through 23 should include an RFC
                  editor note asking for removal before publication.</p>
                <p class=3D"">/a<br class=3D"">
                </p>
              </div>
            </div>
          </blockquote>
        </div>
        <br class=3D"">
      </div>
    </blockquote>
    <p><br>
    </p>
 =20

</div></blockquote></body></html>=

--Apple-Mail-40E6CFEB-92B0-4D9E-BE7C-162137515C3B--

