Re: [clue] WGLC for draft-ietf-clue-protocol-10

Simon Pietro Romano <spromano@unina.it> Mon, 23 January 2017 09:00 UTC

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 B5C1C1295D5 for <clue@ietfa.amsl.com>; Mon, 23 Jan 2017 01:00:49 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.099
X-Spam-Level:
X-Spam-Status: No, score=-5.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-3.199, SPF_PASS=-0.001] 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 VXPyCvHL9gyx for <clue@ietfa.amsl.com>; Mon, 23 Jan 2017 01:00:47 -0800 (PST)
Received: from brc2.unina.it (brc2.unina.it [192.132.34.42]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5A972129961 for <clue@ietf.org>; Mon, 23 Jan 2017 01:00:47 -0800 (PST)
X-ASG-Debug-ID: 1485162044-05f27574c2fa890001-dOUo1C
Received: from smtp2.unina.it (smtp2.unina.it [192.132.34.62]) by brc2.unina.it with ESMTP id ZcgRGPrTFrZ0Mrxw (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO); Mon, 23 Jan 2017 10:00:44 +0100 (CET)
X-Barracuda-Envelope-From: spromano@unina.it
X-Barracuda-Apparent-Source-IP: 192.132.34.62
Received: from [143.225.28.167] ([143.225.28.167]) (authenticated bits=0) by smtp2.unina.it (8.14.4/8.14.4) with ESMTP id v0N8xsP0002680 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 23 Jan 2017 10:00:42 +0100
Content-Type: multipart/alternative; boundary="Apple-Mail=_B1303319-D025-42CC-8203-CD8450B7E980"
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
From: Simon Pietro Romano <spromano@unina.it>
X-ASG-Orig-Subj: Re: [clue] WGLC for draft-ietf-clue-protocol-10
In-Reply-To: <e220de50-db77-e021-c824-1d246f2eb2dd@nteczone.com>
Date: Mon, 23 Jan 2017 10:00:46 +0100
Message-Id: <8A070EF8-BEB7-4CA8-86C1-E10A25C91F04@unina.it>
References: <ac44e23d-061b-5d1b-b6e5-24e8f5ef0ffc@alum.mit.edu> <075716a0-ab1d-f943-50d0-a65fd339f165@nteczone.com> <4B2480BA-75CA-4E73-A3D4-ABA3058EE6AD@unina.it> <e220de50-db77-e021-c824-1d246f2eb2dd@nteczone.com>
To: Christian Groves <Christian.Groves@nteczone.com>
X-Mailer: Apple Mail (2.3124)
X-Barracuda-Connect: smtp2.unina.it[192.132.34.62]
X-Barracuda-Start-Time: 1485162044
X-Barracuda-Encrypted: AES256-SHA
X-Barracuda-URL: http://192.132.34.42:8000/cgi-mod/mark.cgi
X-Virus-Scanned: by bsmtpd at unina.it
X-Barracuda-BRTS-Status: 1
X-Barracuda-Spam-Score: 0.82
X-Barracuda-Spam-Status: No, SCORE=0.82 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, MIME_QP_LONG_LINE_2
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.35999 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 0.82 MIME_QP_LONG_LINE_2 RAW: Quoted-printable line longer than 76 chars
Archived-At: <https://mailarchive.ietf.org/arch/msg/clue/0cH-uTI525aHSySy6mocT4nrMjw>
Cc: clue@ietf.org
Subject: Re: [clue] WGLC for draft-ietf-clue-protocol-10
X-BeenThere: clue@ietf.org
X-Mailman-Version: 2.1.17
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, 23 Jan 2017 09:00:50 -0000

Dear Christian,

please find in-line our answers to your comments.

> ..snip
>>> General: The document talks about extensions and options. Are they different? if not should we use one term.
>> The difference is indeed a subtle one. The idea should be that an option is a predefined capability of the protocol that is not mandatory, whereas an extension is a brand new feature one might be interested in defining for their own purpose. Technically speaking, they look exactly the same, as section 8 clearly illustrates.
> [CNG]I think we need to separate whether something is an optional capability or not from extending the protocol/data model. Extensions I see are additions to the protocol.

OK. We made this distinction clear, by redefining the <option> element and its related <optionsType> definition. Such pieces of information are now called, respectively, <extension> and <extensionType>. The document now makes a coherent use of the terms. 

>> Cl.5.6/General: Do we need some text indicating that there's no partial execution of commands. E.g. If a MP is able to understand all the selected capture encodings bar one. The whole command fails and nothing is instantiated.
>> We added the following sentence at the end of the section:
>> 
>> "We remark that there is no partial execution of commands. As an example, if a MP is able to understand all the selected capture encodings except one, then the whole command fails and nothing is instantiated."
> [CNG] That's OK except that i'd remove "We remark that..." and just keep it at "There is no....”.

OK. Done.

>> Cl.5.7: It says future protocol version can introduce error codes? How about options? It seems like an option could introduce a specific error code.
>> Based on the discussion in section 8, a new response code might indeed be added through the “extension” mechanism. Though, the “cleanest” way for achieving such a task in a formal way is by adding
>> the new response code to the list of codes published in the dedicated IANA registry (see section 12.4.2 fo the draft). In the mentioned section, we refer to future versions of the standard.
> [CNG] By saying that error codes can be designed in future versions seems to preclude them being defined by extensions. (BTW 5.7 uses "designed", I think "defined" would be better).

We rephrased the sentence as follows:

"Further response codes can be either defined in future versions of the 
protocol (by adding them to the related IANA registry), or defined 
by leveraging the extension mechanism. In any case, such new response
codes MUST NOT overwrite the ones here defined and they MUST 
respect the semantics of the first code digit.”

Does this sound OK to you?

> I agree one could simply update the IANA registry with the new code but I was thinking more of how an end point would know that it would be used. That's where registering an extension would make sense. Of course if you made a new version you wouldn't need an extension.

OK. See above.

> ..snip
>> Cl.6 para 5: "Otherwise <if> ("channel error")…"
>> Should we add an "if" between “Otherwise” and the parenthesis? Please advise on that.
> [CNG] If doesn't need to be in parentheses just "Otherwise if …"

You’re the English master! We modified accordingly: 

"Otherwise if ("channel error"), it moves back to the IDLE state.”

>> Cl.8 I think it would be very helpful to include an example syntax showing the definition of a new capture attribute that could be used by future people as a template. Its still not clear if there's any distinction between "option" and "extension”.
>> See our answer above regarding extensions vs options. If we all agree that they are practically the same thing, we can properly re-word things in the document.
>> 
>> About the example, a new capture attribute could be defined in a separate schema to further describe, e.g., a video capture.
>> Indeed, looking at the data model XML definition of a video capture, it is possible to see that there is an <any> element allowing for the introduction of a new XML field in the XML description of the capture, by keeping the compatibility with the CLUE data model schema:
>> 
>> <!-- VIDEO CAPTURE TYPE -->
>>   <xs:complexType name="videoCaptureType">
>>    <xs:complexContent>
>>     <xs:extension base="tns:mediaCaptureType">
>>      <xs:sequence>
>>       <xs:any namespace="##other" processContents="lax" minOccurs="0"
>>       maxOccurs="unbounded"/>
>>      </xs:sequence>
>>      <xs:anyAttribute namespace="##other" processContents="lax"/>
>>     </xs:extension>
>>    </xs:complexContent>
>>   </xs:complexType>
>> 
>> 
>> That means that a video capture might have, after the set of the generic media capture attributes, a set of new attributes defined elsewhere, i.e., in an XML schema defining an extension.
>> Such a schema might look like the following:
>> 
>> <?xml version="1.0" encoding="UTF-8" ?>
>> <xs:schema
>> version="1.0"
>> targetNamespace="clue-info-extension-myVideoExtensions"
>> xmlns:xs="http://www.w3.org/2001/XMLSchema <http://www.w3.org/2001/XMLSchema>"
>> xmlns="clue-info-extension-myVideoExtensions"
>> elementFormDefault="qualified"
>> attributeFormDefault="unqualified">
>> 
>> <!-- this is the new element to be put in place of the <any>
>> element in the video capture definition
>> of the CLUE data model schema -->
>> 
>> <xs:element name="myVideoExtension">
>> <xs:complexType>
>> <xs:sequence>
>> <xs:element ref="newVideoAttribute1"/>
>> <xs:element ref="newVideoAttribute2"/>
>> </xs:sequence>
>> </xs:complexType>
>> </xs:element>
>> 
>> <xs:element name="newVideoAttribute1" type = "xs:string">
>> </xs:element>
>> 
>> <xs:element name = "newVideoAttribute2" type = "xs:boolean">
>> </xs:element>
>> 
>> </xs:schema>
>> 
>> The video capture could be further described in the advertisement  using the <myVideoExtension> element containing two extra information (<newVideoAttribute1> and <newVideoAttribute2>) besides using the attributes envisioned for a generic media capture.
>> As stated in this document, both the CP must be aware of the extension schema and related semantics to use such an extension and negotiate it via the OPTIONS and OPTIONS RESPONSE mechanism.
> [CNG] I think its valuable to have such an example on extending the clue-info and clue-protocol schemas.

OK. Example added.

Cheers,

Simon & Roberta
                     				            _\\|//_
                           				   ( 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 06 Jan 2017, at 13:58, Christian Groves <Christian.Groves@nteczone.com> wrote:
> 
> Hello Simon,
> 
> Sorry about the slow response. I've been travelling. Please see my responses below.
> 
> Regards, Christian
> 
> 
> ..snip
>>> General: The document talks about extensions and options. Are they different? if not should we use one term.
>> The difference is indeed a subtle one. The idea should be that an option is a predefined capability of the protocol that is not mandatory, whereas an extension is a brand new feature one might be interested in defining for their own purpose. Technically speaking, they look exactly the same, as section 8 clearly illustrates.
> [CNG]I think we need to separate whether something is an optional capability or not from extending the protocol/data model. Extensions I see are additions to the protocol.
> 
> ..snip
>> 
>>> Cl.5.2: Is there a reason why we indicated that both the response code AND string are mandatory? It seems like an unnecessary duplication. Its not clear that text other than what has be defined may be sent.
>> OK. We made the "reasonString” element become optional in version-11 of the schema (minOccurs=“0”).
> [CNG] OK
> 
> ..snip
>> Cl.5.3 para 2: "Picture" -> "Syntax" or "Schema". Its worth harmonising how each message section describes this.
>> We replaced “picture” with “schema excerpt”. Does this look ok?
> [CNG] OK
> 
> ..snip
>> Cl.5.6/General: Do we need some text indicating that there's no partial execution of commands. E.g. If a MP is able to understand all the selected capture encodings bar one. The whole command fails and nothing is instantiated.
>> We added the following sentence at the end of the section:
>> 
>> "We remark that there is no partial execution of commands. As an example, if a MP is able to understand all the selected capture encodings except one, then the whole command fails and nothing is instantiated."
> [CNG] That's OK except that i'd remove "We remark that..." and just keep it at "There is no....".
>> 
>>> Cl.5.7: It says future protocol version can introduce error codes? How about options? It seems like an option could introduce a specific error code.
>> Based on the discussion in section 8, a new response code might indeed be added through the “extension” mechanism. Though, the “cleanest” way for achieving such a task in a formal way is by adding
>> the new response code to the list of codes published in the dedicated IANA registry (see section 12.4.2 fo the draft). In the mentioned section, we refer to future versions of the standard.
> [CNG] By saying that error codes can be designed in future versions seems to preclude them being defined by extensions. (BTW 5.7 uses "designed", I think "defined" would be better).
> 
> I agree one could simply update the IANA registry with the new code but I was thinking more of how an end point would know that it would be used. That's where registering an extension would make sense. Of course if you made a new version you wouldn't need an extension.
> 
> ..snip
>> Cl.6 para 5: "Otherwise <if> ("channel error")…"
>> Should we add an "if" between “Otherwise” and the parenthesis? Please advise on that.
> [CNG] If doesn't need to be in parentheses just "Otherwise if ..."
> 
> ..snip
>> Cl.6.1&6.2: Do we need to indicate that the timeout and retry relates to the transport (e.g. SCTP) rather than application level timers/counters? I'm a bit confused about the descriptions in the draft as we have a reliable transport.
>> Namely, we state that the CLUE (application layer) protocol relies on timeouts and retransmissions. Our interpretation is that we do need timeouts and retransmissions for application-layer errors.
> [CNG] OK.
>> Cl.6.2 para 3: "If the ADV elaboration is unsuccessful (bad syntax, missing XML elements, etc.), and the number of times this has happened is under the retry treshold," I don't understand why the retry threshold comes in here? Wouldn't the MC simply send a NACK is there's an error. It wouldn't wait for multiple instances of the erroneous message.
>> The idea here is that the MC avoids entering a loop where the MP keeps on sending an erroneous ADV hence forcing the MC to respond with a NACK. If this situation iterates for a while (# of retries), the MC terminates the ongoing CLUE “session”.
> [CNG] OK that makes sense.
> 
> ..snip
>> Cl.8 I think it would be very helpful to include an example syntax showing the definition of a new capture attribute that could be used by future people as a template. Its still not clear if there's any distinction between "option" and "extension”.
>> See our answer above regarding extensions vs options. If we all agree that they are practically the same thing, we can properly re-word things in the document.
>> 
>> About the example, a new capture attribute could be defined in a separate schema to further describe, e.g., a video capture.
>> Indeed, looking at the data model XML definition of a video capture, it is possible to see that there is an <any> element allowing for the introduction of a new XML field in the XML description of the capture, by keeping the compatibility with the CLUE data model schema:
>> 
>> <!-- VIDEO CAPTURE TYPE -->
>>    <xs:complexType name="videoCaptureType">
>>     <xs:complexContent>
>>      <xs:extension base="tns:mediaCaptureType">
>>       <xs:sequence>
>>        <xs:any namespace="##other" processContents="lax" minOccurs="0"
>>        maxOccurs="unbounded"/>
>>       </xs:sequence>
>>       <xs:anyAttribute namespace="##other" processContents="lax"/>
>>      </xs:extension>
>>     </xs:complexContent>
>>    </xs:complexType>
>> 
>> 
>> That means that a video capture might have, after the set of the generic media capture attributes, a set of new attributes defined elsewhere, i.e., in an XML schema defining an extension.
>> Such a schema might look like the following:
>> 
>> <?xml version="1.0" encoding="UTF-8" ?>
>> <xs:schema
>> version="1.0"
>> targetNamespace="clue-info-extension-myVideoExtensions"
>> xmlns:xs="http://www.w3.org/2001/XMLSchema"
>> xmlns="clue-info-extension-myVideoExtensions"
>> elementFormDefault="qualified"
>> attributeFormDefault="unqualified">
>> 
>> <!-- this is the new element to be put in place of the <any>
>> element in the video capture definition
>> of the CLUE data model schema -->
>> 
>> <xs:element name="myVideoExtension">
>> <xs:complexType>
>> <xs:sequence>
>> <xs:element ref="newVideoAttribute1"/>
>> <xs:element ref="newVideoAttribute2"/>
>> </xs:sequence>
>> </xs:complexType>
>> </xs:element>
>> 
>> <xs:element name="newVideoAttribute1" type = "xs:string">
>> </xs:element>
>> 
>> <xs:element name = "newVideoAttribute2" type = "xs:boolean">
>> </xs:element>
>> 
>> </xs:schema>
>> 
>> The video capture could be further described in the advertisement  using the <myVideoExtension> element containing two extra information (<newVideoAttribute1> and <newVideoAttribute2>) besides using the attributes envisioned for a generic media capture.
>> As stated in this document, both the CP must be aware of the extension schema and related semantics to use such an extension and negotiate it via the OPTIONS and OPTIONS RESPONSE mechanism.
> [CNG] I think its valuable to have such an example on extending the clue-info and clue-protocol schemas.
> 
> ..snip
>> Thanks 1k for your precious review!
> [CNG] No problem.
>> 
>> 
> 
>