
From nobody Wed Aug  5 06:22:36 2015
Return-Path: <amitkriit@gmail.com>
X-Original-To: p2psip@ietfa.amsl.com
Delivered-To: p2psip@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C08061A1B49 for <p2psip@ietfa.amsl.com>; Wed,  5 Aug 2015 06:22:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.701
X-Spam-Level: 
X-Spam-Status: No, score=0.701 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1SIO9DwTEFZH for <p2psip@ietfa.amsl.com>; Wed,  5 Aug 2015 06:22:33 -0700 (PDT)
Received: from mail-ig0-x22b.google.com (mail-ig0-x22b.google.com [IPv6:2607:f8b0:4001:c05::22b]) (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 339461A1A60 for <p2psip@ietf.org>; Wed,  5 Aug 2015 06:22:33 -0700 (PDT)
Received: by igk11 with SMTP id 11so114096736igk.1 for <p2psip@ietf.org>; Wed, 05 Aug 2015 06:22:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:date:message-id:subject:from:to:content-type; bh=DIxT8DFPKYDLFKewj0ZwQcppnCLK+fiBD/2RwCs6SX8=; b=BiBDBJzuL4LpaRNlewTCnVfk/PMORaEn2RPTiSav20SDgLHXk6n93iBvJPUfRImFeF 2ddLVA9LQW69s4vXYocTzzawuo7J4FLPsZV9pc+OSs/EuE93UEFykK6m3jScx4xRFFyp m3XfYizPS/TtJ/7kUif3meNiMUfwqNQ0S+o3NGnGTjHO/LlPwiuAGiqZqtkiJ3FPPy6D ZLdmVngwMHVywtifA5jKOSNzczbSStNCcMxwnEi5PuadS0YtUXSHUdP5ZPyMcGuBjrDe SiSHQv2EtEqOPWZtQGx8/wH7fHM1mFF4GtYBoLp5iNdqU2Af/5l06MHdse+LbeQbQEWc ZUNA==
MIME-Version: 1.0
X-Received: by 10.50.142.69 with SMTP id ru5mr9921133igb.61.1438780952690; Wed, 05 Aug 2015 06:22:32 -0700 (PDT)
Received: by 10.107.15.140 with HTTP; Wed, 5 Aug 2015 06:22:32 -0700 (PDT)
Date: Wed, 5 Aug 2015 18:52:32 +0530
Message-ID: <CAAcV7WYBU8OBOvGS8r9cAApNrim7MC_B1PO_H2UviEmvq87vnQ@mail.gmail.com>
From: Amit Kumar <amitkriit@gmail.com>
To: p2psip@ietf.org
Content-Type: multipart/alternative; boundary=001a11c3b90898479c051c904b18
Archived-At: <http://mailarchive.ietf.org/arch/msg/p2psip/SB-neLqLDMgrQkeAgBGTMYrjb2M>
Subject: [P2PSIP] I have got an idea for P2P-SIP
X-BeenThere: p2psip@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Peer-to-Peer SIP working group discussion list <p2psip.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/p2psip>, <mailto:p2psip-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/p2psip/>
List-Post: <mailto:p2psip@ietf.org>
List-Help: <mailto:p2psip-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/p2psip>, <mailto:p2psip-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 05 Aug 2015 13:22:34 -0000

--001a11c3b90898479c051c904b18
Content-Type: text/plain; charset=UTF-8

I am posting this on behalf of Wanhive Systems Private Limited.

We believe that we have built an Industry-Strength DHT based "Multimedia
Messaging" Infrastructure which is robust, secure and scalable and which
can become the base for further development of P2P-SIP.

This is one Distributed Platform which the Industry may love to adopt.

*Please refer to following links for further details:*
Wanhive Overlay <http://www.wanhive.com/wanhive-intro.pdf>
Domain Controlled Access
<http://www.wanhive.com/docs/Domain-Controlled-Access.pdf>
Technical Details <http://www.wanhive.com/docs/wanhive-tech.html>

http://www.wanhive.com/internal-pages/products/wanhive.php


We are searching for serious collaborators (commercial collaboration
preferred) to develop solutions around it.


-- 
AMIT KUMAR

--001a11c3b90898479c051c904b18
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div><div>I am posting this on behalf of Wanhive Syst=
ems Private Limited.<br><br></div>We believe that we have built an Industry=
-Strength DHT based &quot;Multimedia Messaging&quot; Infrastructure which i=
s robust, secure and scalable and which can become the base for further dev=
elopment of P2P-SIP.<br><br></div><div>This is one Distributed Platform whi=
ch the Industry may love to adopt.<br></div><div><br></div><b>Please refer =
to following links for further details:</b><br><a href=3D"http://www.wanhiv=
e.com/wanhive-intro.pdf">Wanhive Overlay</a><br><a href=3D"http://www.wanhi=
ve.com/docs/Domain-Controlled-Access.pdf">Domain Controlled Access</a><br><=
a href=3D"http://www.wanhive.com/docs/wanhive-tech.html">Technical Details<=
/a><br><br><a href=3D"http://www.wanhive.com/internal-pages/products/wanhiv=
e.php">http://www.wanhive.com/internal-pages/products/wanhive.php</a><br><b=
r><br></div>We are searching for serious collaborators (commercial collabor=
ation preferred) to develop solutions around it.<br><br><br><div><div><div>=
<div><div>-- <br><div class=3D"gmail_signature">AMIT KUMAR<br></div>
</div></div></div></div></div></div>

--001a11c3b90898479c051c904b18--


From nobody Tue Aug 11 08:48:19 2015
Return-Path: <roland.bless@kit.edu>
X-Original-To: p2psip@ietfa.amsl.com
Delivered-To: p2psip@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BEFBD1A1BDD for <p2psip@ietfa.amsl.com>; Tue, 11 Aug 2015 08:48:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.85
X-Spam-Level: 
X-Spam-Status: No, score=-3.85 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SKjGsRY-6CuM for <p2psip@ietfa.amsl.com>; Tue, 11 Aug 2015 08:48:12 -0700 (PDT)
Received: from iramx2.ira.uni-karlsruhe.de (iramx2.ira.uni-karlsruhe.de [141.3.10.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 22D5E1A06E9 for <p2psip@ietf.org>; Tue, 11 Aug 2015 08:48:10 -0700 (PDT)
Received: from i72vorta.tm.uni-karlsruhe.de ([141.3.71.26] helo=i72vorta.tm.kit.edu) by iramx2.ira.uni-karlsruhe.de with esmtp port 25  iface 141.3.10.81 id 1ZPBma-000677-Ht; Tue, 11 Aug 2015 17:48:08 +0200
Received: from [IPv6:::1] (ip6-localhost [IPv6:::1]) by i72vorta.tm.kit.edu (Postfix) with ESMTPS id 7D9AEB011AA; Tue, 11 Aug 2015 17:48:08 +0200 (CEST)
Message-ID: <55CA1938.8020609@kit.edu>
Date: Tue, 11 Aug 2015 17:48:08 +0200
From: "Bless, Roland (TM)" <roland.bless@kit.edu>
Organization: Institute of Telematics, Karlsruhe Institute of Technology
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.8.0
MIME-Version: 1.0
To: p2psip@ietf.org, "Thomas C. Schmidt" <schmidt@informatik.haw-hamburg.de>
References: <20150704120654.8491.52141.idtracker@ietfa.amsl.com>
In-Reply-To: <20150704120654.8491.52141.idtracker@ietfa.amsl.com>
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: 8bit
X-ATIS-AV: ClamAV (iramx2.ira.uni-karlsruhe.de)
X-ATIS-Timestamp: iramx2.ira.uni-karlsruhe.de 1439308088.
Archived-At: <http://mailarchive.ietf.org/arch/msg/p2psip/vdcYoRGiS-fSZx6lqxJ1Y5ad4zk>
Subject: Re: [P2PSIP] I-D Action: draft-ietf-p2psip-sip-15.txt
X-BeenThere: p2psip@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Peer-to-Peer SIP working group discussion list <p2psip.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/p2psip>, <mailto:p2psip-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/p2psip/>
List-Post: <mailto:p2psip@ietf.org>
List-Help: <mailto:p2psip-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/p2psip>, <mailto:p2psip-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 11 Aug 2015 15:48:17 -0000

Hi,

I reviewed the latest version -15 now:
Sec. 3.1:

   "Note that
   the registration lifetime known from the regular SIP REGISTER method
   is inherited from the lifetime attribute of the basic RELOAD
   StoredData structure (see Section 7 in [RFC6940])."

Not sure that it's expressed in the right order. Maybe better:
   Note that the lifetime attribute of the basic RELOAD
   StoredData structure (see Section 7 in [RFC6940]) now corresponds
   to the registration lifetime given by a regular SIP REGISTER method
   in the "expires:" parameter.

Sec. 5.1.
   "Once the AppAttach succeeds, the peer sends plain or (D)TLS encrypted
   SIP messages over the connection as in normal SIP."

I find this still confusing as there is no way to send "plain"
SIP messages via RELOAD, they will always be sent via an encrypted
(D)TLS transport from end-to-end.
Maybe:
   Once the AppAttach succeeds, the peer sends SIP messages (for SIP
   and SIPS sessions) over the connection as in normal SIP. It is
   noteworthy that according to [RFC6940] all overlay links built
   by AppAttach are utilizing (D)TLS secured transport.

(then delete the redundant:
It is noteworthy that according to
   [RFC6940] all overlay links are built on (D)TLS secured transport.)

Similarly:
   "While hop-wise encrypted paths do not prevent the use of plain SIP,
   SIPS requires end-to-end protection that may include client links and
   endpoint certificates."
Since every AppAttach Link will be end-to-end protected by (D)TLS,
I think this statement is superfluous.


>> Sec. 6:
>>     GRUUs in RELOAD are constructed by embedding a
>>     base64-encoded destination list in the gr URI parameter of the GRUU.
>>
>> I guess that the destination list is encoded in the same way as
>> described in section  6.3.2.2. of RFC 6940. Simply a list of
>> Destination entries without any preceding length field?!
>>
> 
> Well yes, we're using the RELOAD destination list (term and definition) here. The above encoding describes the URI-encoding, not the representation of the data structure in the overlay. 

That at least caused an ambiguous interpretation on my side. I thought
that I need to build the binary representation of the destination list
data structure first and then encode it in base64. This is obviously
wrong and should be clarified.

Regards,
 Roland


From nobody Fri Aug 14 16:33:33 2015
Return-Path: <alissa@cooperw.in>
X-Original-To: p2psip@ietfa.amsl.com
Delivered-To: p2psip@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 729AE1A9235 for <p2psip@ietfa.amsl.com>; Fri, 14 Aug 2015 16:33:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level: 
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UEawP48LqSUK for <p2psip@ietfa.amsl.com>; Fri, 14 Aug 2015 16:33:27 -0700 (PDT)
Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6FC4B1A9218 for <p2psip@ietf.org>; Fri, 14 Aug 2015 16:33:27 -0700 (PDT)
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 91EDA2381F for <p2psip@ietf.org>; Fri, 14 Aug 2015 19:33:26 -0400 (EDT)
Received: from frontend1 ([10.202.2.160]) by compute5.internal (MEProxy); Fri, 14 Aug 2015 19:33:26 -0400
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=cooperw.in; h=cc :content-type:date:from:message-id:mime-version:subject:to :x-sasl-enc:x-sasl-enc; s=mesmtp; bh=altAD21Jzpp3KcrqR9RCaTLaTt4 =; b=2lbCRU1MN0U8Lu463PPofgBokSyk8vPqI3AIOS8fN/2QbccDUb1IA/bNCpp PMv4c1k79t0DeiEoT8BKlxxecsVuqbhk3nnt/XSv2bMIj12E8dqZDdhRj1WvHf2A r2/ZrLakNUBaGehrm7UV39CvpyUrdVUMl2YJkH1ur/lavXUM=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:message-id :mime-version:subject:to:x-sasl-enc:x-sasl-enc; s=smtpout; bh=al tAD21Jzpp3KcrqR9RCaTLaTt4=; b=V5NbJFwvKaNEGKkq0kVF1ZKPN675eIIfht 1EsXP2+ZTo3g0Rtjbg22PSih4fyczUglmcEunyCxhcYBfoYQ0gT3gCHxl0eXp7Oy qf5KgCBYn6teuNqVQthRv7Qishbyet2ozIej3RmO452x8fZmy0wlc3+T79u8egSt yvPUb4UnU=
X-Sasl-enc: SyjlA5P+6GjTuhqDdKfsvY6IZi1L6ylpbQIpro2h7rGg 1439595206
Received: from [10.154.220.59] (unknown [128.107.241.169]) by mail.messagingengine.com (Postfix) with ESMTPA id 9B449C00025; Fri, 14 Aug 2015 19:33:25 -0400 (EDT)
From: Alissa Cooper <alissa@cooperw.in>
Content-Type: multipart/alternative; boundary="Apple-Mail=_2B393374-BFC0-44B4-9AC5-FE1FD6BF1F75"
Date: Fri, 14 Aug 2015 16:33:26 -0700
Message-Id: <37059182-6C51-49E3-83A0-D27F2C15A366@cooperw.in>
To: p2psip <p2psip@ietf.org>
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
X-Mailer: Apple Mail (2.1878.6)
Archived-At: <http://mailarchive.ietf.org/arch/msg/p2psip/JrmsAV7ElCLN9g0jr5RjoQFSFxc>
Cc: draft-ietf-p2psip-diagnostics@tools.ietf.org
Subject: [P2PSIP] AD evaluation: draft-ietf-p2psip-diagnostics-17
X-BeenThere: p2psip@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Peer-to-Peer SIP working group discussion list <p2psip.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/p2psip>, <mailto:p2psip-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/p2psip/>
List-Post: <mailto:p2psip@ietf.org>
List-Help: <mailto:p2psip-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/p2psip>, <mailto:p2psip-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 14 Aug 2015 23:33:31 -0000

--Apple-Mail=_2B393374-BFC0-44B4-9AC5-FE1FD6BF1F75
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252

I have reviewed this document in preparation for IETF last call. Before =
proceeding to last call, I have some comments and questions that I=92d =
like to discuss. I=92ve also included a list of nits that should be =
resolved together with any last call comments.


=3D=3D Substantive comments and questions =3D=3D

=3D General=20

I think this document should be listed as updating RFC 6940 in the =
document header.

The document contains a disclaimer for pre-RFC5378 work, which I assume =
is in error. If using xml2rfc to generate the text, using the most =
up-to-date version of xml2rfc to create the next version should fix =
this.

=3D Section 4.3:

"There have been proposals that RouteQuery and a series of Fetch
   requests can be used to replace the PathTrack mechanism, but in the
   presence of churn such an operation would not, strictly speaking,
   provide identical results, as the path may change between RouteQuery
   and Fetch operations. (although obviously the path could change
   between steps of PathTrack as well)."

This text is confusing. It doesn=92t explain why PathTrack is being =
defined rather than peers using RouteQuery plus Fetch. Furthermore, the =
document does not explain how peers are supposed to interpret the =
results of the PathTrack method in the event that the route does change =
in between steps. This seems like a substantial omission.

In general, this document provides very little information about how =
peers are expected to interpret and use the diagnostic information. I =
understand that peers can do whatever they want with it, but in several =
places the fact that this is not explained makes the reasoning behind =
the protocol design decisions opaque. I would suggest providing a little =
more context, at the very least by moving the examples into the body of =
the draft somewhere.=20

=3D Section 4.4:

I=92m a little confused about the values given for the error codes. Do =
you want IANA to chose these specific values? Or are they just there as =
placeholders? The customary way of doing placeholders would be as =
follows:

Code Value         Error Code Name
      [TBD1]               Underlay Destination Unreachable
      [TBD2]               Underlay Time exceeded
      [TBD3]               Message Expired
      [TBD4]               Upstream Misrouting
      [TBD5]               Loop detected
      [TBD6]               TTL hops exceeded

These placeholders would then get used throughout the document.

This section also says:

"In addition, this document introduces several types of error =
information in the error_info field in the case of Code 0x65. ... Here =
are some examples for the error info. ... The error_info field values of =
the Code 0x66 to 0x70 are to be application specific and defined by the =
particular overlay."

I=92m not sure what is meant by all of this text. As defined in RFC =
6940, error_info is an optional implementation-specific byte string. If =
you are intending to require implementations to include specific text in =
the error_info for the first error code, then you need to explain under =
what conditions the specific text needs to be included for each string. =
And the text about the other codes seems redundant with how error_info =
is already defined in RFC 6940.

=3D Section 5.2:

"ext_length : the length of the returned DiagnosticInfo information
      in bytes.  If the value is greater than or equal to 1, then some
      extended diagnostic information is requested."

This is defining the diagnostic response =97 why would the extension be =
requesting something? And if it is possible to use an extension in that =
way, the expected behavior from the initiator when it receives such an =
extension needs to be described, or at least it needs to be noted that a =
diagnostic response could provoke a request back to the initiator.

Also, in the struct the diagnostic info is called =
=93diagnostic_info_contents=94 but in the text it is called =
=93diagnostic_information.=94 These should be the same I think.

=3D Section 5.3:

I=92m concerned about the way STATUS_INFO is defined. First, why are =
there 16 different levels of congestion status? What are they supposed =
to signify? If there is no standardized way of measuring congestion =
defined, how is a node supposed to interpret STATUS_INFO received from =
different peers? That is, couldn't one peer=92s level 7 actually mean it =
is less congested than another peer=92s level 3, and won=92t that make =
the information somewhat meaningless to the initiator? Maybe this would =
be clearer if you could explain what you expect an initiator to do with =
the information about 16 different levels of congestion.

SOFTWARE_VERSION doesn=92t really seem like diagnostic information. =
While all of the other fields may be constantly changing and therefore =
it would make sense to inquire about them in a diagnostic fashion, =
SOFTWARE_VERSION seems more like data that nodes could register or =
exchange when they join the overlay. Why is it included as a diagnostic?

Also, doesn=92t the SOFTWARE_VERSION type need a length or a specified =
delimiter that indicates the end of the string? Otherwise, how is the =
recipient supposed to know when to stop parsing it?

The definitions of EWMA_BYTES_SENT and EWMA_BYTES_RCVD seem problematic.

sent =3D alpha x sent_present + (1 - alpha) x sent
rcvd =3D alpha x rcvd_present + (1 - alpha) x rcvd

As written these equations are not right because sent/rcvd appear on =
both sides. It would be clearer to use last_sent and last_rcvd or some =
such on the right-hand side of these equations. But this begs some =
bigger questions:

- Does this place a requirement on all nodes implementing this =
specification to have to calculate these values every 5 seconds?
- How are the values calculated the first time?
- How was the value of 5 seconds chosen?

Finally, I have trouble understanding why only some of the types are =
subject to access control as described in Section 7. It seems to me that =
in some situations all of the fields defined here could be considered =
sensitive by certain nodes or on certain networks. What is the =
justification for only making some of them subject to access control?

=3D Section 6.1:

=93The destination field MUST be set to the desired destination, which =
MAY be either a NodeId or ResourceID but SHOULD NOT be the broadcast =
NodeID."

What is the expected behavior if a Ping or a PathTrack does get sent to =
the broadcast NodeID? Or should these requirements really be MUST NOTs?

=3D Section 6.4:

"However, for a single hop
   measurement, the traditional measurement methods MUST be used instead
   of the overlay layer diagnostics methods."

What is meant by the traditional measurement methods?

=3D Section 9:

Please only use either RFC-XXXX or RFC-AAAA but not both as =
placeholders.

Please also use [TBDX] for values you expect to be allocated by IANA.


=3D=3D Nits =3D=3D

=3D General

The document seems to repeatedly explain that it is doing things =93as =
specified in RFC6940.=94 I don=92t think this necessary in many cases. =
It=92s worth doing a pass through and removing the places where it=92s =
obvious that this spec is building on RFC 6940.

=3D Section 4.1:

OLD
The extensions strictly follow RELOAD
   specification on the messages routing, transport, NAT traversal etc.

NEW
The extensions strictly follow how RELOAD specifies message routing, =
transport, NAT traversal, and other RELOAD protocol features.

=3D Section 4.2.1:

s/as specified in Table 4 and specified in the RELOAD/as specified in =
Table 4/

s/new requests of the the/new requests of the/

=3D Section 4.3:

OLD
We define a simple PathTrack method for retrieving diagnostic
   information iteratively.  The mechanism defined in this document
   follows the RELOAD specification, the new request and response
   message use the message format specified in RELOAD messages.  Please
   refer to the RELOAD [RFC6940] for details of the protocol.

   The operation of this request is shown below in Figure 2.


NEW
We define a simple PathTrack method for retrieving diagnostic
   information iteratively.  The operation of this request is shown =
below in Figure 2.

=3D Section 4.3.1.2:

s/after that/after receiving a PathTrackAns where the next_hop node ID =
equals the responding node ID/

=3D Section 4.3.2.1:

s/PathTrack Response/PathTrack response/

=3D Section 4.4:

s/code. and we define/code. We define/

=3D Section 5:

s/Path_track methods/PathTrack methods/

=3D Section 5.1:

s/Note that is NOT/Note that it is not/

=3D Section 5.2:

s/Note that is NOT/Note that it is not/

s/consists one or more/consists of one or more/

=3D Section 6.1:

s/`MAY/MAY/

=3D Section 6.2:

s/return the response the initiator node/return the response to the =
initiator node/

s/The peer SHOULD/The intermediate peer SHOULD/


--Apple-Mail=_2B393374-BFC0-44B4-9AC5-FE1FD6BF1F75
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=windows-1252

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dwindows-1252"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div>I =
have reviewed this document in preparation for IETF last call. Before =
proceeding to last call, I have some comments and questions that I=92d =
like to discuss. I=92ve also included a list of nits that should be =
resolved together with any last call =
comments.</div><div><br></div><div><br></div><div>=3D=3D Substantive =
comments and questions =3D=3D</div><div><br></div><div><div>=3D =
General&nbsp;</div><div><br></div><div>I think this document should be =
listed as updating RFC 6940 in the document =
header.</div><div><br></div><div>The document contains&nbsp;<span =
style=3D"white-space: pre-wrap; widows: 1;">a disclaimer for pre-RFC5378 =
work, which I assume is in error. If using xml2rfc to generate the text, =
using the most up-to-date version of xml2rfc to create the next version =
should fix this.</span></div></div><div><br></div><div>=3D Section =
4.3:</div><div><br></div><div>"<span style=3D"font-size: =
13.3333330154419px; widows: 1;">There have been proposals that =
RouteQuery and a series of Fetch</span></div><pre class=3D"newpage" =
style=3D"font-size: 13.3333330154419px; margin-top: 0px; margin-bottom: =
0px; page-break-before: always; widows: 1;">   requests can be used to =
replace the PathTrack mechanism, but in the
   presence of churn such an operation would not, strictly speaking,
   provide identical results, as the path may change between RouteQuery
   and Fetch operations. (although obviously the path could change
   between steps of PathTrack as well)."</pre><div><br></div><div>This =
text is confusing. It doesn=92t explain why PathTrack is being defined =
rather than peers using RouteQuery plus Fetch. Furthermore, the document =
does not explain how peers are supposed to interpret the results of the =
PathTrack method in the event that the route does change in between =
steps. This seems like a substantial =
omission.</div><div><br></div><div>In general, this document provides =
very little information about how peers are expected to interpret and =
use the diagnostic information. I understand that peers can do whatever =
they want with it, but in several places the fact that this is not =
explained makes the reasoning behind the protocol design decisions =
opaque. I would suggest providing a little more context, at the very =
least by moving the examples into the body of the draft =
somewhere.&nbsp;</div><div><br></div><div>=3D Section =
4.4:</div><div><br></div><div>I=92m a little confused about the values =
given for the error codes. Do you want IANA to chose these specific =
values? Or are they just there as placeholders? The customary way of =
doing placeholders would be as follows:</div><div><br></div><div><pre =
class=3D"newpage" style=3D"font-size: 13.3333330154419px; margin-top: =
0px; margin-bottom: 0px; page-break-before: always; widows: 1;">Code =
Value         Error Code Name
      [TBD1]               Underlay Destination Unreachable
      [TBD2]               Underlay Time exceeded
      [TBD3]               Message Expired
      [TBD4]               Upstream Misrouting
      [TBD5]               Loop detected
      [TBD6]               TTL hops =
exceeded</pre></div><div><br></div><div>These placeholders would then =
get used throughout the document.</div><div><br></div><div>This section =
also says:</div><div><br></div><div>"In addition, this document =
introduces several types of error information in the error_info field in =
the case of Code 0x65. ... Here are some examples for the error info. =
... The error_info field values of the Code 0x66 to 0x70 are to be =
application specific and defined by the particular =
overlay."</div><div><span style=3D"white-space: pre-wrap; widows: =
1;"><br></span></div><div><span style=3D"widows: 1;"><span =
style=3D"white-space: pre-wrap;">I=92m not sure what is meant by all of =
this text. As defined in RFC 6940, error_info is an optional =
implementation-specific byte string. If you are intending to require =
implementations to include specific text in the error_info for the first =
error code, then you need to explain under what conditions the specific =
text needs to be included for each string. And the text about<font =
size=3D"2"> the other codes seems redundant with how error_info is =
already defined in RFC 6940.</font></span></span></div><div><span =
style=3D"widows: 1;"><span style=3D"white-space: pre-wrap;"><font =
size=3D"2"><br></font></span></span></div><div><span style=3D"widows: =
1;"><span style=3D"white-space: pre-wrap;"><font size=3D"2">=3D Section =
5.2:</font></span></span></div><div><span style=3D"widows: 1;"><span =
style=3D"white-space: pre-wrap;"><font =
size=3D"2"><br></font></span></span></div><div><span style=3D"font-size: =
13.3333330154419px; widows: 1;">"ext_length : the length of the returned =
DiagnosticInfo information</span></div><pre class=3D"newpage" =
style=3D"font-size: 13.3333330154419px; margin-top: 0px; margin-bottom: =
0px; page-break-before: always; widows: 1;">      in bytes.  If the =
value is greater than or equal to 1, then some
      extended diagnostic information is =
requested."</pre><div><br></div><div>This is defining the diagnostic =
response =97 why would the extension be requesting something? And if it =
is possible to use an extension in that way, the expected behavior from =
the initiator when it receives such an extension needs to be described, =
or at least it needs to be noted that a diagnostic response could =
provoke a request back to the initiator.</div><div><br></div><div =
style=3D"widows: 1;">Also, in the struct the diagnostic info is called =
=93<span style=3D"widows: 1;"><font size=3D"2">diagnostic_info_contents=94=
 but in the text it is called&nbsp;</font></span><font =
size=3D"2">=93diagnostic_information.=94 These should be the same I =
think.</font></div><div style=3D"widows: 1;"><font =
size=3D"2"><br></font></div><div style=3D"widows: 1;"><font size=3D"2">=3D=
 Section 5.3:</font></div><div style=3D"widows: 1;"><font =
size=3D"2"><br></font></div><div style=3D"widows: 1;"><font size=3D"2">I=92=
m concerned about the way STATUS_INFO is defined. First, why are there =
16 different levels of congestion status? What are they supposed to =
signify? If there is no standardized way of measuring congestion =
defined, how is a node supposed to interpret STATUS_INFO received from =
different peers? That is, couldn't one peer=92s level 7 actually mean it =
is less congested than another peer=92s level 3, and won=92t that make =
the information somewhat meaningless to the initiator? Maybe this would =
be clearer if you could explain what you expect an initiator to do with =
the information about 16 different levels of =
congestion.</font></div><div style=3D"widows: 1;"><font =
size=3D"2"><br></font></div><div style=3D"widows: 1;"><font =
size=3D"2">SOFTWARE_VERSION doesn=92t really seem like diagnostic =
information. While all of the other fields may be constantly changing =
and therefore it would make sense to inquire about them in a diagnostic =
fashion, SOFTWARE_VERSION seems more like data that nodes could register =
or exchange when they join the overlay. Why is it included as a =
diagnostic?</font></div><div style=3D"widows: 1;"><font =
size=3D"2"><br></font></div><div style=3D"widows: 1;"><font =
size=3D"2">Also, doesn=92t the SOFTWARE_VERSION type need a length or a =
specified delimiter that indicates the end of the string? Otherwise, how =
is the recipient supposed to know when to stop parsing =
it?</font></div><div style=3D"widows: 1;"><font =
size=3D"2"><br></font></div><div style=3D"widows: 1;"><font size=3D"2">The=
 definitions of&nbsp;</font><span style=3D"font-size: =
13.3333330154419px;">EWMA_BYTES_SENT and&nbsp;</span><span =
style=3D"font-size: 13.3333330154419px;">EWMA_BYTES_RCVD seem =
problematic.</span></div><div style=3D"widows: 1;"><br></div><div =
style=3D"widows: 1;"><pre class=3D"newpage" style=3D"font-size: =
13.3333330154419px; margin-top: 0px; margin-bottom: 0px; =
page-break-before: always;">sent =3D alpha x sent_present + (1 - alpha) =
x sent</pre><pre class=3D"newpage" style=3D"font-size: =
13.3333330154419px; margin-top: 0px; margin-bottom: 0px; =
page-break-before: always;"><pre class=3D"newpage" style=3D"font-size: =
13.3333330154419px; margin-top: 0px; margin-bottom: 0px; =
page-break-before: always;">rcvd =3D alpha x rcvd_present + (1 - alpha) =
x rcvd</pre><div><br></div></pre></div><div style=3D"widows: 1;"><font =
size=3D"2">As written these equations are not right because sent/rcvd =
appear on both sides. It would be clearer to use last_sent and last_rcvd =
or some such on the right-hand side of these equations. But this begs =
some bigger questions:</font></div><div style=3D"widows: 1;"><font =
size=3D"2"><br></font></div><div style=3D"widows: 1;"><font size=3D"2">- =
Does this place a requirement on all nodes implementing this =
specification to have to calculate these values every 5 =
seconds?</font></div><div style=3D"widows: 1;"><font size=3D"2">- How =
are the values calculated the first time?</font></div><div =
style=3D"widows: 1;"><font size=3D"2">- How was the value of 5 seconds =
chosen?</font></div><div style=3D"widows: 1;"><font =
size=3D"2"><br></font></div><div style=3D"widows: 1;"><font =
size=3D"2">Finally, I have trouble understanding why only some of the =
types are subject to access control as described in Section 7. It seems =
to me that in some situations all of the fields defined here could be =
considered sensitive by certain nodes or on certain networks. What is =
the justification for only making some of them subject to access =
control?</font></div><div style=3D"widows: 1;"><font =
size=3D"2"><br></font></div><div style=3D"widows: 1;"><font size=3D"2">=3D=
 Section 6.1:</font></div><div style=3D"widows: 1;"><font =
size=3D"2"><br></font></div><div style=3D"widows: 1;"><font =
size=3D"2">=93The&nbsp;</font><span style=3D"font-size: =
13.3333330154419px;">destination field MUST be set to the desired =
destination, which MAY&nbsp;</span><span style=3D"font-size: =
13.3333330154419px;">be either a NodeId or ResourceID but SHOULD NOT be =
the broadcast&nbsp;</span><span style=3D"font-size: =
13.3333330154419px;">NodeID."</span></div><div><br></div><div>What is =
the expected behavior if a Ping or a PathTrack does get sent to the =
broadcast NodeID? Or should these requirements really be MUST =
NOTs?</div><div><br></div><div>=3D Section =
6.4:</div><div><br></div><div><pre class=3D"newpage" style=3D"font-size: =
13.3333330154419px; margin-top: 0px; margin-bottom: 0px; =
page-break-before: always; widows: 1;">"However, for a single hop
   measurement, the traditional measurement methods MUST be used instead
   of the overlay layer diagnostics =
methods."</pre></div><div><br></div><div>What is meant by the =
traditional measurement methods?</div><div><br></div><div>=3D Section =
9:</div><div><br></div><div>Please only use either RFC-XXXX or RFC-AAAA =
but not both as placeholders.</div><div><br></div><div>Please also use =
[TBDX] for values you expect to be allocated by =
IANA.</div><div><br></div><div><br></div><div><span style=3D"white-space: =
pre-wrap; widows: 1;">=3D=3D Nits =3D=3D</span></div><div><span =
style=3D"white-space: pre-wrap; widows: 1;"><br></span></div><div><span =
style=3D"white-space: pre-wrap; widows: 1;">=3D =
General</span></div><div><span style=3D"white-space: pre-wrap; widows: =
1;"><br></span></div><div style=3D"widows: auto;"><span =
style=3D"white-space: pre-wrap; widows: 1;">The document seems to =
</span><span style=3D"white-space: pre-wrap;">repeatedly explain that it =
is doing things =93as specified in RFC6940.=94 I don=92t think this =
necessary in many cases. It=92s worth doing a pass through and removing =
the places where it=92s obvious that this spec is building on RFC =
6940.</span></div><div style=3D"widows: auto;"><span style=3D"white-space:=
 pre-wrap;"><br></span></div><div><span style=3D"white-space: pre-wrap; =
widows: 1;">=3D Section 4.1:</span></div><div><span style=3D"white-space: =
pre-wrap; widows: 1;"><br></span></div><div><span style=3D"white-space: =
pre-wrap; widows: 1;">OLD</span></div><div><pre class=3D"newpage" =
style=3D"font-size: 13.3333330154419px; margin-top: 0px; margin-bottom: =
0px; page-break-before: always; widows: 1;">The extensions strictly =
follow RELOAD
   specification on the messages routing, transport, NAT traversal =
etc.</pre><div><br></div></div><div>NEW</div><div><pre class=3D"newpage" =
style=3D"font-size: 13.3333330154419px; margin-top: 0px; margin-bottom: =
0px; page-break-before: always; widows: 1;">The extensions strictly =
follow how RELOAD specifies message routing, transport, NAT traversal, =
and other RELOAD protocol features.</pre><div><br></div></div><div><span =
style=3D"white-space: pre-wrap; widows: 1;">=3D Section =
4.2.1:</span></div><div><span style=3D"white-space: pre-wrap; widows: =
1;"><br></span></div><div><span style=3D"white-space: pre-wrap; widows: =
1;">s/</span><span style=3D"font-size: 13.3333330154419px; widows: =
1;">as specified in Table 4 and&nbsp;</span><span style=3D"font-size: =
13.3333330154419px; widows: 1;">specified in the RELOAD/</span><span =
style=3D"font-size: 13.3333330154419px; widows: 1;">as specified in =
Table 4/</span></div><div><span style=3D"font-size: 13.3333330154419px; =
widows: 1;"><br></span></div><div><span style=3D"font-size: =
13.3333330154419px; widows: 1;">s/</span><span style=3D"font-size: =
13.3333330154419px; widows: 1;">new requests of the the/</span><span =
style=3D"font-size: 13.3333330154419px; widows: 1;">new requests of =
the/</span></div><div><span style=3D"font-size: 13.3333330154419px; =
widows: 1;"><br></span></div><div><span style=3D"font-size: =
13.3333330154419px; widows: 1;">=3D Section 4.3:</span></div><div><span =
style=3D"font-size: 13.3333330154419px; widows: =
1;"><br></span></div><div><span style=3D"font-size: 13.3333330154419px; =
widows: 1;">OLD</span></div><div><pre class=3D"newpage" =
style=3D"font-size: 13.3333330154419px; margin-top: 0px; margin-bottom: =
0px; page-break-before: always; widows: 1;">We define a simple PathTrack =
method for retrieving diagnostic
   information iteratively.  The mechanism defined in this document
   follows the RELOAD specification, the new request and response
   message use the message format specified in RELOAD messages.  Please
   refer to the RELOAD [<a href=3D"https://tools.ietf.org/html/rfc6940" =
title=3D"&quot;REsource LOcation And Discovery (RELOAD) Base =
Protocol&quot;">RFC6940</a>] for details of the protocol.

   The operation of this request is shown below in Figure =
2.</pre><div><br></div></div><div><span style=3D"font-size: =
13.3333330154419px; widows: 1;"><br></span></div><div><span =
style=3D"font-size: 13.3333330154419px; widows: =
1;">NEW</span></div><div><pre class=3D"newpage" style=3D"font-size: =
13.3333330154419px; margin-top: 0px; margin-bottom: 0px; =
page-break-before: always; widows: 1;">We define a simple PathTrack =
method for retrieving diagnostic
   information iteratively.  The operation of this request is shown =
below in Figure 2.</pre><div><br></div></div><div>=3D Section =
4.3.1.2:</div><div><br></div><div>s/after that/after receiving a =
PathTrackAns where the&nbsp;<span style=3D"font-size: =
13.3333330154419px; widows: 1;">next_hop node ID equals the responding =
node ID/</span></div><div><span style=3D"font-size: 13.3333330154419px; =
widows: 1;"><br></span></div><div><span style=3D"font-size: =
13.3333330154419px; widows: 1;">=3D Section =
4.3.2.1:</span></div><div><span style=3D"font-size: 13.3333330154419px; =
widows: 1;"><br></span></div><div><span style=3D"font-size: =
13.3333330154419px; widows: 1;">s/</span><span style=3D"font-size: =
13.3333330154419px; widows: 1;">PathTrack Response/</span><span =
style=3D"font-size: 13.3333330154419px; widows: 1;">PathTrack =
response/</span></div><div><span style=3D"font-size: 13.3333330154419px; =
widows: 1;"><br></span></div><div><span style=3D"font-size: =
13.3333330154419px; widows: 1;">=3D Section 4.4:</span></div><div><span =
style=3D"font-size: 13.3333330154419px; widows: =
1;"><br></span></div><div><span style=3D"font-size: 13.3333330154419px; =
widows: 1;">s/</span><span style=3D"font-size: 13.3333330154419px; =
widows: 1;">code. and we define/</span><span style=3D"font-size: =
13.3333330154419px; widows: 1;">code. We =
define/</span></div><div><br></div><div>=3D Section =
5:</div><div><br></div><div>s/<span style=3D"font-size: =
13.3333330154419px; widows: 1;">Path_track methods/</span><span =
style=3D"font-size: 13.3333330154419px; widows: 1;">PathTrack =
methods/</span></div><div><span style=3D"font-size: 13.3333330154419px; =
widows: 1;"><br></span></div><div><span style=3D"font-size: =
13.3333330154419px; widows: 1;">=3D Section 5.1:</span></div><div><span =
style=3D"font-size: 13.3333330154419px; widows: =
1;"><br></span></div><div><span style=3D"font-size: 13.3333330154419px; =
widows: 1;">s/</span><span style=3D"font-size: 13.3333330154419px; =
widows: 1;">Note that is NOT/</span><span style=3D"font-size: =
13.3333330154419px; widows: 1;">Note that it is =
not/</span></div><div><span style=3D"font-size: 13.3333330154419px; =
widows: 1;"><br></span></div><div><div><span style=3D"font-size: =
13.3333330154419px; widows: 1;">=3D Section 5.2:</span></div><div><span =
style=3D"font-size: 13.3333330154419px; widows: =
1;"><br></span></div><div><span style=3D"font-size: 13.3333330154419px; =
widows: 1;">s/</span><span style=3D"font-size: 13.3333330154419px; =
widows: 1;">Note that is NOT/</span><span style=3D"font-size: =
13.3333330154419px; widows: 1;">Note that it is =
not/</span></div></div><div><span style=3D"font-size: =
13.3333330154419px; widows: 1;"><br></span></div><div><span =
style=3D"font-size: 13.3333330154419px; widows: 1;">s/</span><span =
style=3D"font-size: 13.3333330154419px; widows: 1;">consists one or =
more/</span><span style=3D"font-size: 13.3333330154419px; widows: =
1;">consists of one or more/</span></div><div><span style=3D"font-size: =
13.3333330154419px; widows: 1;"><br></span></div><div><span =
style=3D"font-size: 13.3333330154419px; widows: 1;">=3D Section =
6.1:</span></div><div><span style=3D"font-size: 13.3333330154419px; =
widows: 1;"><br></span></div><div><span style=3D"font-size: =
13.3333330154419px; widows: 1;">s/</span><span style=3D"font-size: =
13.3333330154419px; widows: 1;">`MAY/MAY/</span></div><div><span =
style=3D"font-size: 13.3333330154419px; widows: =
1;"><br></span></div><div><span style=3D"font-size: 13.3333330154419px; =
widows: 1;">=3D Section 6.2:</span></div><div><span style=3D"font-size: =
13.3333330154419px; widows: 1;"><br></span></div><div><span =
style=3D"font-size: 13.3333330154419px; widows: 1;">s/</span><span =
style=3D"font-size: 13.3333330154419px; widows: 1;">return the response =
the initiator node/</span><span style=3D"font-size: 13.3333330154419px; =
widows: 1;">return the response to the initiator =
node/</span></div><div><span style=3D"font-size: 13.3333330154419px; =
widows: 1;"><br></span></div><div><span style=3D"font-size: =
13.3333330154419px; widows: 1;">s/</span><span style=3D"font-size: =
13.3333330154419px; widows: 1;">The peer SHOULD/</span><span =
style=3D"font-size: 13.3333330154419px; widows: 1;">The intermediate =
peer SHOULD/</span></div><div><br></div></body></html>=

--Apple-Mail=_2B393374-BFC0-44B4-9AC5-FE1FD6BF1F75--


From nobody Mon Aug 17 08:54:27 2015
Return-Path: <dbryan@ethernot.org>
X-Original-To: p2psip@ietfa.amsl.com
Delivered-To: p2psip@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 070551B2CC9 for <p2psip@ietfa.amsl.com>; Mon, 17 Aug 2015 08:54:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.976
X-Spam-Level: 
X-Spam-Status: No, score=-1.976 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, NORMAL_HTTP_TO_IP=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gtYyE7ufQ0o1 for <p2psip@ietfa.amsl.com>; Mon, 17 Aug 2015 08:54:22 -0700 (PDT)
Received: from mail-vk0-f45.google.com (mail-vk0-f45.google.com [209.85.213.45]) (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 9226A1B2E62 for <p2psip@ietf.org>; Mon, 17 Aug 2015 08:54:21 -0700 (PDT)
Received: by vkbf67 with SMTP id f67so56101799vkb.3 for <p2psip@ietf.org>; Mon, 17 Aug 2015 08:54:20 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=anXOMvLxc4IwT2R7CwGKzvY5iCml9esjNgzGBjWyKOc=; b=kWnTQAsO9NYL7VR2hIZsutaU8znh1Ms7ILtlyKRddWQ+8wPf5cG7GW0lHcIim2jvLW HU61lUCg4FZ6NYExxjZSDB/olYnahjlxoExuSEm/wMTyzGexpSVAEhillMfqyJRhMz7U t0C6Z+TN+jpmM4Xu4UE0+XggHNS14phyNCD8NcWETlI2mvAkc4J3UohSURbt8Y8YKQoU gBAKXTtisULK3eJVHOhZ9c0VP4eWk+J9u/DSwXrgNq6BIrwGTB4dNXkfmA1mV9AwpJ22 LubwYSLtXGqauXQ+lVF2VQoFobE2J/7vcPYvWemUDIth/SzYwDwDzmoT+j7tDKLsoPEj rzfA==
X-Gm-Message-State: ALoCoQk/kpk6UnJ/+4oZAUsFi/mjZ2n9dABLd1JZWRDQ/vZFiM1c9QV5cCblkZHm5KXgGPH/A3UX
MIME-Version: 1.0
X-Received: by 10.52.69.175 with SMTP id f15mr2303710vdu.5.1439826860638; Mon, 17 Aug 2015 08:54:20 -0700 (PDT)
Received: by 10.31.190.6 with HTTP; Mon, 17 Aug 2015 08:54:20 -0700 (PDT)
In-Reply-To: <37059182-6C51-49E3-83A0-D27F2C15A366@cooperw.in>
References: <37059182-6C51-49E3-83A0-D27F2C15A366@cooperw.in>
Date: Mon, 17 Aug 2015 10:54:20 -0500
Message-ID: <CADqQgCQ_hEacxApiauKLYD0Y+ahkXGDi9uXFvLN1XjqLpzjh0Q@mail.gmail.com>
From: David Bryan <dbryan@ethernot.org>
To: Alissa Cooper <alissa@cooperw.in>
Content-Type: multipart/alternative; boundary=20cf307f3a689119a5051d83d095
Archived-At: <http://mailarchive.ietf.org/arch/msg/p2psip/RGi5kf2rE9s8bzS4tSzgKKFmc_o>
Cc: p2psip <p2psip@ietf.org>, "draft-ietf-p2psip-diagnostics@tools.ietf.org" <draft-ietf-p2psip-diagnostics@tools.ietf.org>
Subject: Re: [P2PSIP] AD evaluation: draft-ietf-p2psip-diagnostics-17
X-BeenThere: p2psip@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Peer-to-Peer SIP working group discussion list <p2psip.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/p2psip>, <mailto:p2psip-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/p2psip/>
List-Post: <mailto:p2psip@ietf.org>
List-Help: <mailto:p2psip-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/p2psip>, <mailto:p2psip-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 17 Aug 2015 15:54:27 -0000

--20cf307f3a689119a5051d83d095
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Thanks for the comments. I'll circle back with the team and will revise.

I have to check, but I actually think the first few versions of this (when
it was individual) *may* be pre-5378, but will double check.

On Fri, Aug 14, 2015 at 6:33 PM, Alissa Cooper <alissa@cooperw.in> wrote:

> I have reviewed this document in preparation for IETF last call. Before
> proceeding to last call, I have some comments and questions that I=E2=80=
=99d like
> to discuss. I=E2=80=99ve also included a list of nits that should be reso=
lved
> together with any last call comments.
>
>
> =3D=3D Substantive comments and questions =3D=3D
>
> =3D General
>
> I think this document should be listed as updating RFC 6940 in the
> document header.
>
> The document contains a disclaimer for pre-RFC5378 work, which I assume
> is in error. If using xml2rfc to generate the text, using the most
> up-to-date version of xml2rfc to create the next version should fix this.
>
> =3D Section 4.3:
>
> "There have been proposals that RouteQuery and a series of Fetch
>
>    requests can be used to replace the PathTrack mechanism, but in the
>    presence of churn such an operation would not, strictly speaking,
>    provide identical results, as the path may change between RouteQuery
>    and Fetch operations. (although obviously the path could change
>    between steps of PathTrack as well)."
>
>
> This text is confusing. It doesn=E2=80=99t explain why PathTrack is being=
 defined
> rather than peers using RouteQuery plus Fetch. Furthermore, the document
> does not explain how peers are supposed to interpret the results of the
> PathTrack method in the event that the route does change in between steps=
.
> This seems like a substantial omission.
>
> In general, this document provides very little information about how peer=
s
> are expected to interpret and use the diagnostic information. I understan=
d
> that peers can do whatever they want with it, but in several places the
> fact that this is not explained makes the reasoning behind the protocol
> design decisions opaque. I would suggest providing a little more context,
> at the very least by moving the examples into the body of the draft
> somewhere.
>
> =3D Section 4.4:
>
> I=E2=80=99m a little confused about the values given for the error codes.=
 Do you
> want IANA to chose these specific values? Or are they just there as
> placeholders? The customary way of doing placeholders would be as follows=
:
>
> Code Value         Error Code Name
>       [TBD1]               Underlay Destination Unreachable
>       [TBD2]               Underlay Time exceeded
>       [TBD3]               Message Expired
>       [TBD4]               Upstream Misrouting
>       [TBD5]               Loop detected
>       [TBD6]               TTL hops exceeded
>
>
> These placeholders would then get used throughout the document.
>
> This section also says:
>
> "In addition, this document introduces several types of error information
> in the error_info field in the case of Code 0x65. ... Here are some
> examples for the error info. ... The error_info field values of the Code
> 0x66 to 0x70 are to be application specific and defined by the particular
> overlay."
>
> I=E2=80=99m not sure what is meant by all of this text. As defined in RFC=
 6940,
> error_info is an optional implementation-specific byte string. If you are
> intending to require implementations to include specific text in the
> error_info for the first error code, then you need to explain under what
> conditions the specific text needs to be included for each string. And th=
e
> text about the other codes seems redundant with how error_info is already
> defined in RFC 6940.
>
> =3D Section 5.2:
>
> "ext_length : the length of the returned DiagnosticInfo information
>
>       in bytes.  If the value is greater than or equal to 1, then some
>       extended diagnostic information is requested."
>
>
> This is defining the diagnostic response =E2=80=94 why would the extensio=
n be
> requesting something? And if it is possible to use an extension in that
> way, the expected behavior from the initiator when it receives such an
> extension needs to be described, or at least it needs to be noted that a
> diagnostic response could provoke a request back to the initiator.
>
> Also, in the struct the diagnostic info is called =E2=80=9Cdiagnostic_inf=
o_contents=E2=80=9D
> but in the text it is called =E2=80=9Cdiagnostic_information.=E2=80=9D Th=
ese should be
> the same I think.
>
> =3D Section 5.3:
>
> I=E2=80=99m concerned about the way STATUS_INFO is defined. First, why ar=
e there
> 16 different levels of congestion status? What are they supposed to
> signify? If there is no standardized way of measuring congestion defined,
> how is a node supposed to interpret STATUS_INFO received from different
> peers? That is, couldn't one peer=E2=80=99s level 7 actually mean it is l=
ess
> congested than another peer=E2=80=99s level 3, and won=E2=80=99t that mak=
e the information
> somewhat meaningless to the initiator? Maybe this would be clearer if you
> could explain what you expect an initiator to do with the information abo=
ut
> 16 different levels of congestion.
>
> SOFTWARE_VERSION doesn=E2=80=99t really seem like diagnostic information.=
 While
> all of the other fields may be constantly changing and therefore it would
> make sense to inquire about them in a diagnostic fashion, SOFTWARE_VERSIO=
N
> seems more like data that nodes could register or exchange when they join
> the overlay. Why is it included as a diagnostic?
>
> Also, doesn=E2=80=99t the SOFTWARE_VERSION type need a length or a specif=
ied
> delimiter that indicates the end of the string? Otherwise, how is the
> recipient supposed to know when to stop parsing it?
>
> The definitions of EWMA_BYTES_SENT and EWMA_BYTES_RCVD seem problematic.
>
> sent =3D alpha x sent_present + (1 - alpha) x sent
>
> rcvd =3D alpha x rcvd_present + (1 - alpha) x rcvd
>
>
> As written these equations are not right because sent/rcvd appear on both
> sides. It would be clearer to use last_sent and last_rcvd or some such on
> the right-hand side of these equations. But this begs some bigger questio=
ns:
>
> - Does this place a requirement on all nodes implementing this
> specification to have to calculate these values every 5 seconds?
> - How are the values calculated the first time?
> - How was the value of 5 seconds chosen?
>
> Finally, I have trouble understanding why only some of the types are
> subject to access control as described in Section 7. It seems to me that =
in
> some situations all of the fields defined here could be considered
> sensitive by certain nodes or on certain networks. What is the
> justification for only making some of them subject to access control?
>
> =3D Section 6.1:
>
> =E2=80=9CThe destination field MUST be set to the desired destination, wh=
ich MAY be
> either a NodeId or ResourceID but SHOULD NOT be the broadcast NodeID."
>
> What is the expected behavior if a Ping or a PathTrack does get sent to
> the broadcast NodeID? Or should these requirements really be MUST NOTs?
>
> =3D Section 6.4:
>
> "However, for a single hop
>    measurement, the traditional measurement methods MUST be used instead
>    of the overlay layer diagnostics methods."
>
>
> What is meant by the traditional measurement methods?
>
> =3D Section 9:
>
> Please only use either RFC-XXXX or RFC-AAAA but not both as placeholders.
>
> Please also use [TBDX] for values you expect to be allocated by IANA.
>
>
> =3D=3D Nits =3D=3D
>
> =3D General
>
> The document seems to repeatedly explain that it is doing things =E2=80=
=9Cas
> specified in RFC6940.=E2=80=9D I don=E2=80=99t think this necessary in ma=
ny cases. It=E2=80=99s
> worth doing a pass through and removing the places where it=E2=80=99s obv=
ious that
> this spec is building on RFC 6940.
>
> =3D Section 4.1:
>
> OLD
>
> The extensions strictly follow RELOAD
>    specification on the messages routing, transport, NAT traversal etc.
>
>
> NEW
>
> The extensions strictly follow how RELOAD specifies message routing, tran=
sport, NAT traversal, and other RELOAD protocol features.
>
>
> =3D Section 4.2.1:
>
> s/as specified in Table 4 and specified in the RELOAD/as specified in
> Table 4/
>
> s/new requests of the the/new requests of the/
>
> =3D Section 4.3:
>
> OLD
>
> We define a simple PathTrack method for retrieving diagnostic
>    information iteratively.  The mechanism defined in this document
>    follows the RELOAD specification, the new request and response
>    message use the message format specified in RELOAD messages.  Please
>    refer to the RELOAD [RFC6940 <https://tools.ietf.org/html/rfc6940>] fo=
r details of the protocol.
>
>    The operation of this request is shown below in Figure 2.
>
>
>
> NEW
>
> We define a simple PathTrack method for retrieving diagnostic
>    information iteratively.  The operation of this request is shown below=
 in Figure 2.
>
>
> =3D Section 4.3.1.2:
>
> s/after that/after receiving a PathTrackAns where the next_hop node ID
> equals the responding node ID/
>
> =3D Section 4.3.2.1:
>
> s/PathTrack Response/PathTrack response/
>
> =3D Section 4.4:
>
> s/code. and we define/code. We define/
>
> =3D Section 5:
>
> s/Path_track methods/PathTrack methods/
>
> =3D Section 5.1:
>
> s/Note that is NOT/Note that it is not/
>
> =3D Section 5.2:
>
> s/Note that is NOT/Note that it is not/
>
> s/consists one or more/consists of one or more/
>
> =3D Section 6.1:
>
> s/`MAY/MAY/
>
> =3D Section 6.2:
>
> s/return the response the initiator node/return the response to the
> initiator node/
>
> s/The peer SHOULD/The intermediate peer SHOULD/
>
>
> _______________________________________________
> P2PSIP mailing list
> P2PSIP@ietf.org
> https://www.ietf.org/mailman/listinfo/p2psip
>
>

--20cf307f3a689119a5051d83d095
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Thanks for the comments. I&#39;ll circle back with the tea=
m and will revise.<div><br></div><div>I have to check, but I actually think=
 the first few versions of this (when it was individual) *may* be pre-5378,=
 but will double check.</div></div><div class=3D"gmail_extra"><br><div clas=
s=3D"gmail_quote">On Fri, Aug 14, 2015 at 6:33 PM, Alissa Cooper <span dir=
=3D"ltr">&lt;<a href=3D"mailto:alissa@cooperw.in" target=3D"_blank">alissa@=
cooperw.in</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div sty=
le=3D"word-wrap:break-word"><div>I have reviewed this document in preparati=
on for IETF last call. Before proceeding to last call, I have some comments=
 and questions that I=E2=80=99d like to discuss. I=E2=80=99ve also included=
 a list of nits that should be resolved together with any last call comment=
s.</div><div><br></div><div><br></div><div>=3D=3D Substantive comments and =
questions =3D=3D</div><div><br></div><div><div>=3D General=C2=A0</div><div>=
<br></div><div>I think this document should be listed as updating RFC 6940 =
in the document header.</div><div><br></div><div>The document contains=C2=
=A0<span style=3D"white-space:pre-wrap">a disclaimer for pre-RFC5378 work, =
which I assume is in error. If using xml2rfc to generate the text, using th=
e most up-to-date version of xml2rfc to create the next version should fix =
this.</span></div></div><div><br></div><div>=3D Section 4.3:</div><div><br>=
</div><div>&quot;<span style=3D"font-size:13.3333330154419px">There have be=
en proposals that RouteQuery and a series of Fetch</span></div><pre style=
=3D"font-size:13.3333330154419px;margin-top:0px;margin-bottom:0px">   reque=
sts can be used to replace the PathTrack mechanism, but in the
   presence of churn such an operation would not, strictly speaking,
   provide identical results, as the path may change between RouteQuery
   and Fetch operations. (although obviously the path could change
   between steps of PathTrack as well).&quot;</pre><div><br></div><div>This=
 text is confusing. It doesn=E2=80=99t explain why PathTrack is being defin=
ed rather than peers using RouteQuery plus Fetch. Furthermore, the document=
 does not explain how peers are supposed to interpret the results of the Pa=
thTrack method in the event that the route does change in between steps. Th=
is seems like a substantial omission.</div><div><br></div><div>In general, =
this document provides very little information about how peers are expected=
 to interpret and use the diagnostic information. I understand that peers c=
an do whatever they want with it, but in several places the fact that this =
is not explained makes the reasoning behind the protocol design decisions o=
paque. I would suggest providing a little more context, at the very least b=
y moving the examples into the body of the draft somewhere.=C2=A0</div><div=
><br></div><div>=3D Section 4.4:</div><div><br></div><div>I=E2=80=99m a lit=
tle confused about the values given for the error codes. Do you want IANA t=
o chose these specific values? Or are they just there as placeholders? The =
customary way of doing placeholders would be as follows:</div><div><br></di=
v><div><pre style=3D"font-size:13.3333330154419px;margin-top:0px;margin-bot=
tom:0px">Code Value         Error Code Name
      [TBD1]               Underlay Destination Unreachable
      [TBD2]               Underlay Time exceeded
      [TBD3]               Message Expired
      [TBD4]               Upstream Misrouting
      [TBD5]               Loop detected
      [TBD6]               TTL hops exceeded</pre></div><div><br></div><div=
>These placeholders would then get used throughout the document.</div><div>=
<br></div><div>This section also says:</div><div><br></div><div>&quot;In ad=
dition, this document introduces several types of error information in the =
error_info field in the case of Code 0x65. ... Here are some examples for t=
he error info. ... The error_info field values of the Code 0x66 to 0x70 are=
 to be application specific and defined by the particular overlay.&quot;</d=
iv><div><span style=3D"white-space:pre-wrap"><br></span></div><div><span><s=
pan style=3D"white-space:pre-wrap">I=E2=80=99m not sure what is meant by al=
l of this text. As defined in RFC 6940, error_info is an optional implement=
ation-specific byte string. If you are intending to require implementations=
 to include specific text in the error_info for the first error code, then =
you need to explain under what conditions the specific text needs to be inc=
luded for each string. And the text about<font size=3D"2"> the other codes =
seems redundant with how error_info is already defined in RFC 6940.</font><=
/span></span></div><div><span><span style=3D"white-space:pre-wrap"><font si=
ze=3D"2"><br></font></span></span></div><div><span><span style=3D"white-spa=
ce:pre-wrap"><font size=3D"2">=3D Section 5.2:</font></span></span></div><d=
iv><span><span style=3D"white-space:pre-wrap"><font size=3D"2"><br></font><=
/span></span></div><div><span style=3D"font-size:13.3333330154419px">&quot;=
ext_length : the length of the returned DiagnosticInfo information</span></=
div><pre style=3D"font-size:13.3333330154419px;margin-top:0px;margin-bottom=
:0px">      in bytes.  If the value is greater than or equal to 1, then som=
e
      extended diagnostic information is requested.&quot;</pre><div><br></d=
iv><div>This is defining the diagnostic response =E2=80=94 why would the ex=
tension be requesting something? And if it is possible to use an extension =
in that way, the expected behavior from the initiator when it receives such=
 an extension needs to be described, or at least it needs to be noted that =
a diagnostic response could provoke a request back to the initiator.</div><=
div><br></div><div>Also, in the struct the diagnostic info is called =E2=80=
=9C<span><font size=3D"2">diagnostic_info_contents=E2=80=9D but in the text=
 it is called=C2=A0</font></span><font size=3D"2">=E2=80=9Cdiagnostic_infor=
mation.=E2=80=9D These should be the same I think.</font></div><div><font s=
ize=3D"2"><br></font></div><div><font size=3D"2">=3D Section 5.3:</font></d=
iv><div><font size=3D"2"><br></font></div><div><font size=3D"2">I=E2=80=99m=
 concerned about the way STATUS_INFO is defined. First, why are there 16 di=
fferent levels of congestion status? What are they supposed to signify? If =
there is no standardized way of measuring congestion defined, how is a node=
 supposed to interpret STATUS_INFO received from different peers? That is, =
couldn&#39;t one peer=E2=80=99s level 7 actually mean it is less congested =
than another peer=E2=80=99s level 3, and won=E2=80=99t that make the inform=
ation somewhat meaningless to the initiator? Maybe this would be clearer if=
 you could explain what you expect an initiator to do with the information =
about 16 different levels of congestion.</font></div><div><font size=3D"2">=
<br></font></div><div><font size=3D"2">SOFTWARE_VERSION doesn=E2=80=99t rea=
lly seem like diagnostic information. While all of the other fields may be =
constantly changing and therefore it would make sense to inquire about them=
 in a diagnostic fashion, SOFTWARE_VERSION seems more like data that nodes =
could register or exchange when they join the overlay. Why is it included a=
s a diagnostic?</font></div><div><font size=3D"2"><br></font></div><div><fo=
nt size=3D"2">Also, doesn=E2=80=99t the SOFTWARE_VERSION type need a length=
 or a specified delimiter that indicates the end of the string? Otherwise, =
how is the recipient supposed to know when to stop parsing it?</font></div>=
<div><font size=3D"2"><br></font></div><div><font size=3D"2">The definition=
s of=C2=A0</font><span style=3D"font-size:13.3333330154419px">EWMA_BYTES_SE=
NT and=C2=A0</span><span style=3D"font-size:13.3333330154419px">EWMA_BYTES_=
RCVD seem problematic.</span></div><div><br></div><div><pre style=3D"font-s=
ize:13.3333330154419px;margin-top:0px;margin-bottom:0px">sent =3D alpha x s=
ent_present + (1 - alpha) x sent</pre><pre style=3D"font-size:13.3333330154=
419px;margin-top:0px;margin-bottom:0px"><pre style=3D"font-size:13.33333301=
54419px;margin-top:0px;margin-bottom:0px">rcvd =3D alpha x rcvd_present + (=
1 - alpha) x rcvd</pre><div><br></div></pre></div><div><font size=3D"2">As =
written these equations are not right because sent/rcvd appear on both side=
s. It would be clearer to use last_sent and last_rcvd or some such on the r=
ight-hand side of these equations. But this begs some bigger questions:</fo=
nt></div><div><font size=3D"2"><br></font></div><div><font size=3D"2">- Doe=
s this place a requirement on all nodes implementing this specification to =
have to calculate these values every 5 seconds?</font></div><div><font size=
=3D"2">- How are the values calculated the first time?</font></div><div><fo=
nt size=3D"2">- How was the value of 5 seconds chosen?</font></div><div><fo=
nt size=3D"2"><br></font></div><div><font size=3D"2">Finally, I have troubl=
e understanding why only some of the types are subject to access control as=
 described in Section 7. It seems to me that in some situations all of the =
fields defined here could be considered sensitive by certain nodes or on ce=
rtain networks. What is the justification for only making some of them subj=
ect to access control?</font></div><div><font size=3D"2"><br></font></div><=
div><font size=3D"2">=3D Section 6.1:</font></div><div><font size=3D"2"><br=
></font></div><div><font size=3D"2">=E2=80=9CThe=C2=A0</font><span style=3D=
"font-size:13.3333330154419px">destination field MUST be set to the desired=
 destination, which MAY=C2=A0</span><span style=3D"font-size:13.33333301544=
19px">be either a NodeId or ResourceID but SHOULD NOT be the broadcast=C2=
=A0</span><span style=3D"font-size:13.3333330154419px">NodeID.&quot;</span>=
</div><div><br></div><div>What is the expected behavior if a Ping or a Path=
Track does get sent to the broadcast NodeID? Or should these requirements r=
eally be MUST NOTs?</div><div><br></div><div>=3D Section 6.4:</div><div><br=
></div><div><pre style=3D"font-size:13.3333330154419px;margin-top:0px;margi=
n-bottom:0px">&quot;However, for a single hop
   measurement, the traditional measurement methods MUST be used instead
   of the overlay layer diagnostics methods.&quot;</pre></div><div><br></di=
v><div>What is meant by the traditional measurement methods?</div><div><br>=
</div><div>=3D Section 9:</div><div><br></div><div>Please only use either R=
FC-XXXX or RFC-AAAA but not both as placeholders.</div><div><br></div><div>=
Please also use [TBDX] for values you expect to be allocated by IANA.</div>=
<div><br></div><div><br></div><div><span style=3D"white-space:pre-wrap">=3D=
=3D Nits =3D=3D</span></div><div><span style=3D"white-space:pre-wrap"><br><=
/span></div><div><span style=3D"white-space:pre-wrap">=3D General</span></d=
iv><div><span style=3D"white-space:pre-wrap"><br></span></div><div><span st=
yle=3D"white-space:pre-wrap">The document seems to </span><span style=3D"wh=
ite-space:pre-wrap">repeatedly explain that it is doing things =E2=80=9Cas =
specified in RFC6940.=E2=80=9D I don=E2=80=99t think this necessary in many=
 cases. It=E2=80=99s worth doing a pass through and removing the places whe=
re it=E2=80=99s obvious that this spec is building on RFC 6940.</span></div=
><div><span style=3D"white-space:pre-wrap"><br></span></div><div><span styl=
e=3D"white-space:pre-wrap">=3D Section 4.1:</span></div><div><span style=3D=
"white-space:pre-wrap"><br></span></div><div><span style=3D"white-space:pre=
-wrap">OLD</span></div><div><pre style=3D"font-size:13.3333330154419px;marg=
in-top:0px;margin-bottom:0px">The extensions strictly follow RELOAD
   specification on the messages routing, transport, NAT traversal etc.</pr=
e><div><br></div></div><div>NEW</div><div><pre style=3D"font-size:13.333333=
0154419px;margin-top:0px;margin-bottom:0px">The extensions strictly follow =
how RELOAD specifies message routing, transport, NAT traversal, and other R=
ELOAD protocol features.</pre><div><br></div></div><div><span style=3D"whit=
e-space:pre-wrap">=3D Section 4.2.1:</span></div><div><span style=3D"white-=
space:pre-wrap"><br></span></div><div><span style=3D"white-space:pre-wrap">=
s/</span><span style=3D"font-size:13.3333330154419px">as specified in Table=
 4 and=C2=A0</span><span style=3D"font-size:13.3333330154419px">specified i=
n the RELOAD/</span><span style=3D"font-size:13.3333330154419px">as specifi=
ed in Table 4/</span></div><div><span style=3D"font-size:13.3333330154419px=
"><br></span></div><div><span style=3D"font-size:13.3333330154419px">s/</sp=
an><span style=3D"font-size:13.3333330154419px">new requests of the the/</s=
pan><span style=3D"font-size:13.3333330154419px">new requests of the/</span=
></div><div><span style=3D"font-size:13.3333330154419px"><br></span></div><=
div><span style=3D"font-size:13.3333330154419px">=3D Section 4.3:</span></d=
iv><div><span style=3D"font-size:13.3333330154419px"><br></span></div><div>=
<span style=3D"font-size:13.3333330154419px">OLD</span></div><div><pre styl=
e=3D"font-size:13.3333330154419px;margin-top:0px;margin-bottom:0px">We defi=
ne a simple PathTrack method for retrieving diagnostic
   information iteratively.  The mechanism defined in this document
   follows the RELOAD specification, the new request and response
   message use the message format specified in RELOAD messages.  Please
   refer to the RELOAD [<a href=3D"https://tools.ietf.org/html/rfc6940" tit=
le=3D"&quot;REsource LOcation And Discovery (RELOAD) Base Protocol&quot;" t=
arget=3D"_blank">RFC6940</a>] for details of the protocol.

   The operation of this request is shown below in Figure 2.</pre><div><br>=
</div></div><div><span style=3D"font-size:13.3333330154419px"><br></span></=
div><div><span style=3D"font-size:13.3333330154419px">NEW</span></div><div>=
<pre style=3D"font-size:13.3333330154419px;margin-top:0px;margin-bottom:0px=
">We define a simple PathTrack method for retrieving diagnostic
   information iteratively.  The operation of this request is shown below i=
n Figure 2.</pre><div><br></div></div><div>=3D Section <a href=3D"http://4.=
3.1.2" target=3D"_blank">4.3.1.2</a>:</div><div><br></div><div>s/after that=
/after receiving a PathTrackAns where the=C2=A0<span style=3D"font-size:13.=
3333330154419px">next_hop node ID equals the responding node ID/</span></di=
v><div><span style=3D"font-size:13.3333330154419px"><br></span></div><div><=
span style=3D"font-size:13.3333330154419px">=3D Section <a href=3D"http://4=
.3.2.1" target=3D"_blank">4.3.2.1</a>:</span></div><div><span style=3D"font=
-size:13.3333330154419px"><br></span></div><div><span style=3D"font-size:13=
.3333330154419px">s/</span><span style=3D"font-size:13.3333330154419px">Pat=
hTrack Response/</span><span style=3D"font-size:13.3333330154419px">PathTra=
ck response/</span></div><div><span style=3D"font-size:13.3333330154419px">=
<br></span></div><div><span style=3D"font-size:13.3333330154419px">=3D Sect=
ion 4.4:</span></div><div><span style=3D"font-size:13.3333330154419px"><br>=
</span></div><div><span style=3D"font-size:13.3333330154419px">s/</span><sp=
an style=3D"font-size:13.3333330154419px">code. and we define/</span><span =
style=3D"font-size:13.3333330154419px">code. We define/</span></div><div><b=
r></div><div>=3D Section 5:</div><div><br></div><div>s/<span style=3D"font-=
size:13.3333330154419px">Path_track methods/</span><span style=3D"font-size=
:13.3333330154419px">PathTrack methods/</span></div><div><span style=3D"fon=
t-size:13.3333330154419px"><br></span></div><div><span style=3D"font-size:1=
3.3333330154419px">=3D Section 5.1:</span></div><div><span style=3D"font-si=
ze:13.3333330154419px"><br></span></div><div><span style=3D"font-size:13.33=
33330154419px">s/</span><span style=3D"font-size:13.3333330154419px">Note t=
hat is NOT/</span><span style=3D"font-size:13.3333330154419px">Note that it=
 is not/</span></div><div><span style=3D"font-size:13.3333330154419px"><br>=
</span></div><div><div><span style=3D"font-size:13.3333330154419px">=3D Sec=
tion 5.2:</span></div><div><span style=3D"font-size:13.3333330154419px"><br=
></span></div><div><span style=3D"font-size:13.3333330154419px">s/</span><s=
pan style=3D"font-size:13.3333330154419px">Note that is NOT/</span><span st=
yle=3D"font-size:13.3333330154419px">Note that it is not/</span></div></div=
><div><span style=3D"font-size:13.3333330154419px"><br></span></div><div><s=
pan style=3D"font-size:13.3333330154419px">s/</span><span style=3D"font-siz=
e:13.3333330154419px">consists one or more/</span><span style=3D"font-size:=
13.3333330154419px">consists of one or more/</span></div><div><span style=
=3D"font-size:13.3333330154419px"><br></span></div><div><span style=3D"font=
-size:13.3333330154419px">=3D Section 6.1:</span></div><div><span style=3D"=
font-size:13.3333330154419px"><br></span></div><div><span style=3D"font-siz=
e:13.3333330154419px">s/</span><span style=3D"font-size:13.3333330154419px"=
>`MAY/MAY/</span></div><div><span style=3D"font-size:13.3333330154419px"><b=
r></span></div><div><span style=3D"font-size:13.3333330154419px">=3D Sectio=
n 6.2:</span></div><div><span style=3D"font-size:13.3333330154419px"><br></=
span></div><div><span style=3D"font-size:13.3333330154419px">s/</span><span=
 style=3D"font-size:13.3333330154419px">return the response the initiator n=
ode/</span><span style=3D"font-size:13.3333330154419px">return the response=
 to the initiator node/</span></div><div><span style=3D"font-size:13.333333=
0154419px"><br></span></div><div><span style=3D"font-size:13.3333330154419p=
x">s/</span><span style=3D"font-size:13.3333330154419px">The peer SHOULD/</=
span><span style=3D"font-size:13.3333330154419px">The intermediate peer SHO=
ULD/</span></div><div><br></div></div><br>_________________________________=
______________<br>
P2PSIP mailing list<br>
<a href=3D"mailto:P2PSIP@ietf.org">P2PSIP@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/p2psip" rel=3D"noreferrer"=
 target=3D"_blank">https://www.ietf.org/mailman/listinfo/p2psip</a><br>
<br></blockquote></div><br></div>

--20cf307f3a689119a5051d83d095--


From nobody Tue Aug 18 09:05:40 2015
Return-Path: <alissa@cooperw.in>
X-Original-To: p2psip@ietfa.amsl.com
Delivered-To: p2psip@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0B0081A88F9 for <p2psip@ietfa.amsl.com>; Tue, 18 Aug 2015 09:05:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.698
X-Spam-Level: 
X-Spam-Status: No, score=-2.698 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, NORMAL_HTTP_TO_IP=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ifMj1RLvhDJA for <p2psip@ietfa.amsl.com>; Tue, 18 Aug 2015 09:05:34 -0700 (PDT)
Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B61301A88F4 for <p2psip@ietf.org>; Tue, 18 Aug 2015 09:05:28 -0700 (PDT)
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id DA14A20B93 for <p2psip@ietf.org>; Tue, 18 Aug 2015 12:05:27 -0400 (EDT)
Received: from frontend1 ([10.202.2.160]) by compute3.internal (MEProxy); Tue, 18 Aug 2015 12:05:27 -0400
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=cooperw.in; h=cc :content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to:x-sasl-enc:x-sasl-enc; s=mesmtp; bh=KO5Nz CMkl2PZ1SUCM/hfBawfA9w=; b=N2nrhG0dKxsIplVRhlbLXvMxDVpBF8J+MPfyF AJd+10hW5Nc67/2wmCf6wrKDvQvfJ1dUI7fHBB7Rd248eNvH9aEhwxamPF9ivWSR epd+MN8Y+tvPplFZauXL7NcPaggu5sRR666VMoMUPmKMGByYNS5fTFcGZkFGgQlq ixTz2w=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-sasl-enc :x-sasl-enc; s=smtpout; bh=KO5NzCMkl2PZ1SUCM/hfBawfA9w=; b=b06Vg Z4gmZsqwxe0dYfnt2PLpRjAmdoLeL36mVDq4W/KmKyNcWSG6pY1wyw8A+tQl0HGo Vm9dSlGehxIEAYckVOEZstFGOCqDBcIyrEWHpPDOE4rqJjG2RPcQAjhnayPX00Er ffyvokIIZkwVVtAtKYoLMwCEMe4Lzg0+Galy5o=
X-Sasl-enc: dYXoYIMlQPXfmXAH+Lx1mNFeUE2+7eAksInHT/7vgsG4 1439913922
Received: from dhcp-171-68-21-199.cisco.com (dhcp-171-68-21-199.cisco.com [171.68.21.199]) by mail.messagingengine.com (Postfix) with ESMTPA id 1A890C00012; Tue, 18 Aug 2015 12:05:19 -0400 (EDT)
Content-Type: multipart/alternative; boundary="Apple-Mail=_02B02481-632E-4759-AC32-045E8CA1AD9A"
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Alissa Cooper <alissa@cooperw.in>
In-Reply-To: <CADqQgCQ_hEacxApiauKLYD0Y+ahkXGDi9uXFvLN1XjqLpzjh0Q@mail.gmail.com>
Date: Tue, 18 Aug 2015 09:03:55 -0700
Message-Id: <5C131A2D-2519-4CD5-AAB0-1E01563C9665@cooperw.in>
References: <37059182-6C51-49E3-83A0-D27F2C15A366@cooperw.in> <CADqQgCQ_hEacxApiauKLYD0Y+ahkXGDi9uXFvLN1XjqLpzjh0Q@mail.gmail.com>
To: David Bryan <dbryan@ethernot.org>
X-Mailer: Apple Mail (2.1878.6)
Archived-At: <http://mailarchive.ietf.org/arch/msg/p2psip/ROeY8lGwRHuNaD-H8beqSpOke-o>
Cc: p2psip <p2psip@ietf.org>, "draft-ietf-p2psip-diagnostics@tools.ietf.org" <draft-ietf-p2psip-diagnostics@tools.ietf.org>
Subject: Re: [P2PSIP] AD evaluation: draft-ietf-p2psip-diagnostics-17
X-BeenThere: p2psip@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Peer-to-Peer SIP working group discussion list <p2psip.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/p2psip>, <mailto:p2psip-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/p2psip/>
List-Post: <mailto:p2psip@ietf.org>
List-Help: <mailto:p2psip-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/p2psip>, <mailto:p2psip-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 18 Aug 2015 16:05:39 -0000

--Apple-Mail=_02B02481-632E-4759-AC32-045E8CA1AD9A
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252

On Aug 17, 2015, at 8:54 AM, David Bryan <dbryan@ethernot.org> wrote:

> Thanks for the comments. I'll circle back with the team and will =
revise.

Thanks. I did have one further thought for Section 8. It strikes me that =
the combination of diagnostic elements that this spec makes available =
could easily be used to fingerprint a peer in an overlay where peers may =
otherwise be attempting to remain anonymous. Although defenses against =
such fingerprinting are probably hard to come by (short of disallowing =
access to the diagnostics via the config file), the threat is worth =
noting at least.

>=20
> I have to check, but I actually think the first few versions of this =
(when it was individual) *may* be pre-5378, but will double check.

Ah ok.

Alissa

>=20
> On Fri, Aug 14, 2015 at 6:33 PM, Alissa Cooper <alissa@cooperw.in> =
wrote:
> I have reviewed this document in preparation for IETF last call. =
Before proceeding to last call, I have some comments and questions that =
I=92d like to discuss. I=92ve also included a list of nits that should =
be resolved together with any last call comments.
>=20
>=20
> =3D=3D Substantive comments and questions =3D=3D
>=20
> =3D General=20
>=20
> I think this document should be listed as updating RFC 6940 in the =
document header.
>=20
> The document contains a disclaimer for pre-RFC5378 work, which I =
assume is in error. If using xml2rfc to generate the text, using the =
most up-to-date version of xml2rfc to create the next version should fix =
this.
>=20
> =3D Section 4.3:
>=20
> "There have been proposals that RouteQuery and a series of Fetch
>    requests can be used to replace the PathTrack mechanism, but in the
>    presence of churn such an operation would not, strictly speaking,
>    provide identical results, as the path may change between =
RouteQuery
>    and Fetch operations. (although obviously the path could change
>    between steps of PathTrack as well)."
>=20
> This text is confusing. It doesn=92t explain why PathTrack is being =
defined rather than peers using RouteQuery plus Fetch. Furthermore, the =
document does not explain how peers are supposed to interpret the =
results of the PathTrack method in the event that the route does change =
in between steps. This seems like a substantial omission.
>=20
> In general, this document provides very little information about how =
peers are expected to interpret and use the diagnostic information. I =
understand that peers can do whatever they want with it, but in several =
places the fact that this is not explained makes the reasoning behind =
the protocol design decisions opaque. I would suggest providing a little =
more context, at the very least by moving the examples into the body of =
the draft somewhere.=20
>=20
> =3D Section 4.4:
>=20
> I=92m a little confused about the values given for the error codes. Do =
you want IANA to chose these specific values? Or are they just there as =
placeholders? The customary way of doing placeholders would be as =
follows:
>=20
> Code Value         Error Code Name
>       [TBD1]               Underlay Destination Unreachable
>       [TBD2]               Underlay Time exceeded
>       [TBD3]               Message Expired
>       [TBD4]               Upstream Misrouting
>       [TBD5]               Loop detected
>       [TBD6]               TTL hops exceeded
>=20
> These placeholders would then get used throughout the document.
>=20
> This section also says:
>=20
> "In addition, this document introduces several types of error =
information in the error_info field in the case of Code 0x65. ... Here =
are some examples for the error info. ... The error_info field values of =
the Code 0x66 to 0x70 are to be application specific and defined by the =
particular overlay."
>=20
> I=92m not sure what is meant by all of this text. As defined in RFC =
6940, error_info is an optional implementation-specific byte string. If =
you are intending to require implementations to include specific text in =
the error_info for the first error code, then you need to explain under =
what conditions the specific text needs to be included for each string. =
And the text about the other codes seems redundant with how error_info =
is already defined in RFC 6940.
>=20
> =3D Section 5.2:
>=20
> "ext_length : the length of the returned DiagnosticInfo information
>       in bytes.  If the value is greater than or equal to 1, then some
>       extended diagnostic information is requested."
>=20
> This is defining the diagnostic response =97 why would the extension =
be requesting something? And if it is possible to use an extension in =
that way, the expected behavior from the initiator when it receives such =
an extension needs to be described, or at least it needs to be noted =
that a diagnostic response could provoke a request back to the =
initiator.
>=20
> Also, in the struct the diagnostic info is called =
=93diagnostic_info_contents=94 but in the text it is called =
=93diagnostic_information.=94 These should be the same I think.
>=20
> =3D Section 5.3:
>=20
> I=92m concerned about the way STATUS_INFO is defined. First, why are =
there 16 different levels of congestion status? What are they supposed =
to signify? If there is no standardized way of measuring congestion =
defined, how is a node supposed to interpret STATUS_INFO received from =
different peers? That is, couldn't one peer=92s level 7 actually mean it =
is less congested than another peer=92s level 3, and won=92t that make =
the information somewhat meaningless to the initiator? Maybe this would =
be clearer if you could explain what you expect an initiator to do with =
the information about 16 different levels of congestion.
>=20
> SOFTWARE_VERSION doesn=92t really seem like diagnostic information. =
While all of the other fields may be constantly changing and therefore =
it would make sense to inquire about them in a diagnostic fashion, =
SOFTWARE_VERSION seems more like data that nodes could register or =
exchange when they join the overlay. Why is it included as a diagnostic?
>=20
> Also, doesn=92t the SOFTWARE_VERSION type need a length or a specified =
delimiter that indicates the end of the string? Otherwise, how is the =
recipient supposed to know when to stop parsing it?
>=20
> The definitions of EWMA_BYTES_SENT and EWMA_BYTES_RCVD seem =
problematic.
>=20
> sent =3D alpha x sent_present + (1 - alpha) x sent
> rcvd =3D alpha x rcvd_present + (1 - alpha) x rcvd
>=20
> As written these equations are not right because sent/rcvd appear on =
both sides. It would be clearer to use last_sent and last_rcvd or some =
such on the right-hand side of these equations. But this begs some =
bigger questions:
>=20
> - Does this place a requirement on all nodes implementing this =
specification to have to calculate these values every 5 seconds?
> - How are the values calculated the first time?
> - How was the value of 5 seconds chosen?
>=20
> Finally, I have trouble understanding why only some of the types are =
subject to access control as described in Section 7. It seems to me that =
in some situations all of the fields defined here could be considered =
sensitive by certain nodes or on certain networks. What is the =
justification for only making some of them subject to access control?
>=20
> =3D Section 6.1:
>=20
> =93The destination field MUST be set to the desired destination, which =
MAY be either a NodeId or ResourceID but SHOULD NOT be the broadcast =
NodeID."
>=20
> What is the expected behavior if a Ping or a PathTrack does get sent =
to the broadcast NodeID? Or should these requirements really be MUST =
NOTs?
>=20
> =3D Section 6.4:
>=20
> "However, for a single hop
>    measurement, the traditional measurement methods MUST be used =
instead
>    of the overlay layer diagnostics methods."
>=20
> What is meant by the traditional measurement methods?
>=20
> =3D Section 9:
>=20
> Please only use either RFC-XXXX or RFC-AAAA but not both as =
placeholders.
>=20
> Please also use [TBDX] for values you expect to be allocated by IANA.
>=20
>=20
> =3D=3D Nits =3D=3D
>=20
> =3D General
>=20
> The document seems to repeatedly explain that it is doing things =93as =
specified in RFC6940.=94 I don=92t think this necessary in many cases. =
It=92s worth doing a pass through and removing the places where it=92s =
obvious that this spec is building on RFC 6940.
>=20
> =3D Section 4.1:
>=20
> OLD
> The extensions strictly follow RELOAD
>    specification on the messages routing, transport, NAT traversal =
etc.
>=20
> NEW
> The extensions strictly follow how RELOAD specifies message routing, =
transport, NAT traversal, and other RELOAD protocol features.
>=20
> =3D Section 4.2.1:
>=20
> s/as specified in Table 4 and specified in the RELOAD/as specified in =
Table 4/
>=20
> s/new requests of the the/new requests of the/
>=20
> =3D Section 4.3:
>=20
> OLD
> We define a simple PathTrack method for retrieving diagnostic
>    information iteratively.  The mechanism defined in this document
>    follows the RELOAD specification, the new request and response
>    message use the message format specified in RELOAD messages.  =
Please
>    refer to the RELOAD [RFC6940] for details of the protocol.
>=20
>    The operation of this request is shown below in Figure 2.
>=20
>=20
> NEW
> We define a simple PathTrack method for retrieving diagnostic
>    information iteratively.  The operation of this request is shown =
below in Figure 2.
>=20
> =3D Section 4.3.1.2:
>=20
> s/after that/after receiving a PathTrackAns where the next_hop node ID =
equals the responding node ID/
>=20
> =3D Section 4.3.2.1:
>=20
> s/PathTrack Response/PathTrack response/
>=20
> =3D Section 4.4:
>=20
> s/code. and we define/code. We define/
>=20
> =3D Section 5:
>=20
> s/Path_track methods/PathTrack methods/
>=20
> =3D Section 5.1:
>=20
> s/Note that is NOT/Note that it is not/
>=20
> =3D Section 5.2:
>=20
> s/Note that is NOT/Note that it is not/
>=20
> s/consists one or more/consists of one or more/
>=20
> =3D Section 6.1:
>=20
> s/`MAY/MAY/
>=20
> =3D Section 6.2:
>=20
> s/return the response the initiator node/return the response to the =
initiator node/
>=20
> s/The peer SHOULD/The intermediate peer SHOULD/
>=20
>=20
> _______________________________________________
> P2PSIP mailing list
> P2PSIP@ietf.org
> https://www.ietf.org/mailman/listinfo/p2psip
>=20
>=20


--Apple-Mail=_02B02481-632E-4759-AC32-045E8CA1AD9A
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=windows-1252

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dwindows-1252"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">On Aug =
17, 2015, at 8:54 AM, David Bryan &lt;<a =
href=3D"mailto:dbryan@ethernot.org">dbryan@ethernot.org</a>&gt; =
wrote:<br><div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><div dir=3D"ltr">Thanks for the comments. I'll circle back =
with the team and will =
revise.</div></blockquote><div><br></div><div>Thanks. I did have one =
further thought for Section 8. It strikes me that the combination of =
diagnostic elements that this spec makes available could easily be used =
to fingerprint a peer in an overlay where peers may otherwise be =
attempting to remain anonymous. Although defenses against such =
fingerprinting are probably hard to come by (short of disallowing access =
to the diagnostics via the config file), the threat is worth noting at =
least.</div><br><blockquote type=3D"cite"><div =
dir=3D"ltr"><div><br></div><div>I have to check, but I actually think =
the first few versions of this (when it was individual) *may* be =
pre-5378, but will double =
check.</div></div></blockquote><div><br></div><div>Ah =
ok.</div><div><br></div><div>Alissa</div><br><blockquote =
type=3D"cite"><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On=
 Fri, Aug 14, 2015 at 6:33 PM, Alissa Cooper <span dir=3D"ltr">&lt;<a =
href=3D"mailto:alissa@cooperw.in" =
target=3D"_blank">alissa@cooperw.in</a>&gt;</span> wrote:<br><blockquote =
class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc =
solid;padding-left:1ex"><div style=3D"word-wrap:break-word"><div>I have =
reviewed this document in preparation for IETF last call. Before =
proceeding to last call, I have some comments and questions that I=92d =
like to discuss. I=92ve also included a list of nits that should be =
resolved together with any last call =
comments.</div><div><br></div><div><br></div><div>=3D=3D Substantive =
comments and questions =3D=3D</div><div><br></div><div><div>=3D =
General&nbsp;</div><div><br></div><div>I think this document should be =
listed as updating RFC 6940 in the document =
header.</div><div><br></div><div>The document contains&nbsp;<span =
style=3D"white-space:pre-wrap">a disclaimer for pre-RFC5378 work, which =
I assume is in error. If using xml2rfc to generate the text, using the =
most up-to-date version of xml2rfc to create the next version should fix =
this.</span></div></div><div><br></div><div>=3D Section =
4.3:</div><div><br></div><div>"<span =
style=3D"font-size:13.3333330154419px">There have been proposals that =
RouteQuery and a series of Fetch</span></div><pre =
style=3D"font-size:13.3333330154419px;margin-top:0px;margin-bottom:0px"> =
  requests can be used to replace the PathTrack mechanism, but in the
   presence of churn such an operation would not, strictly speaking,
   provide identical results, as the path may change between RouteQuery
   and Fetch operations. (although obviously the path could change
   between steps of PathTrack as well)."</pre><div><br></div><div>This =
text is confusing. It doesn=92t explain why PathTrack is being defined =
rather than peers using RouteQuery plus Fetch. Furthermore, the document =
does not explain how peers are supposed to interpret the results of the =
PathTrack method in the event that the route does change in between =
steps. This seems like a substantial =
omission.</div><div><br></div><div>In general, this document provides =
very little information about how peers are expected to interpret and =
use the diagnostic information. I understand that peers can do whatever =
they want with it, but in several places the fact that this is not =
explained makes the reasoning behind the protocol design decisions =
opaque. I would suggest providing a little more context, at the very =
least by moving the examples into the body of the draft =
somewhere.&nbsp;</div><div><br></div><div>=3D Section =
4.4:</div><div><br></div><div>I=92m a little confused about the values =
given for the error codes. Do you want IANA to chose these specific =
values? Or are they just there as placeholders? The customary way of =
doing placeholders would be as follows:</div><div><br></div><div><pre =
style=3D"font-size:13.3333330154419px;margin-top:0px;margin-bottom:0px">Co=
de Value         Error Code Name
      [TBD1]               Underlay Destination Unreachable
      [TBD2]               Underlay Time exceeded
      [TBD3]               Message Expired
      [TBD4]               Upstream Misrouting
      [TBD5]               Loop detected
      [TBD6]               TTL hops =
exceeded</pre></div><div><br></div><div>These placeholders would then =
get used throughout the document.</div><div><br></div><div>This section =
also says:</div><div><br></div><div>"In addition, this document =
introduces several types of error information in the error_info field in =
the case of Code 0x65. ... Here are some examples for the error info. =
... The error_info field values of the Code 0x66 to 0x70 are to be =
application specific and defined by the particular =
overlay."</div><div><span =
style=3D"white-space:pre-wrap"><br></span></div><div><span><span =
style=3D"white-space:pre-wrap">I=92m not sure what is meant by all of =
this text. As defined in RFC 6940, error_info is an optional =
implementation-specific byte string. If you are intending to require =
implementations to include specific text in the error_info for the first =
error code, then you need to explain under what conditions the specific =
text needs to be included for each string. And the text about<font =
size=3D"2"> the other codes seems redundant with how error_info is =
already defined in RFC 6940.</font></span></span></div><div><span><span =
style=3D"white-space:pre-wrap"><font =
size=3D"2"><br></font></span></span></div><div><span><span =
style=3D"white-space:pre-wrap"><font size=3D"2">=3D Section =
5.2:</font></span></span></div><div><span><span =
style=3D"white-space:pre-wrap"><font =
size=3D"2"><br></font></span></span></div><div><span =
style=3D"font-size:13.3333330154419px">"ext_length : the length of the =
returned DiagnosticInfo information</span></div><pre =
style=3D"font-size:13.3333330154419px;margin-top:0px;margin-bottom:0px"> =
     in bytes.  If the value is greater than or equal to 1, then some
      extended diagnostic information is =
requested."</pre><div><br></div><div>This is defining the diagnostic =
response =97 why would the extension be requesting something? And if it =
is possible to use an extension in that way, the expected behavior from =
the initiator when it receives such an extension needs to be described, =
or at least it needs to be noted that a diagnostic response could =
provoke a request back to the initiator.</div><div><br></div><div>Also, =
in the struct the diagnostic info is called =93<span><font =
size=3D"2">diagnostic_info_contents=94 but in the text it is =
called&nbsp;</font></span><font size=3D"2">=93diagnostic_information.=94 =
These should be the same I think.</font></div><div><font =
size=3D"2"><br></font></div><div><font size=3D"2">=3D Section =
5.3:</font></div><div><font size=3D"2"><br></font></div><div><font =
size=3D"2">I=92m concerned about the way STATUS_INFO is defined. First, =
why are there 16 different levels of congestion status? What are they =
supposed to signify? If there is no standardized way of measuring =
congestion defined, how is a node supposed to interpret STATUS_INFO =
received from different peers? That is, couldn't one peer=92s level 7 =
actually mean it is less congested than another peer=92s level 3, and =
won=92t that make the information somewhat meaningless to the initiator? =
Maybe this would be clearer if you could explain what you expect an =
initiator to do with the information about 16 different levels of =
congestion.</font></div><div><font size=3D"2"><br></font></div><div><font =
size=3D"2">SOFTWARE_VERSION doesn=92t really seem like diagnostic =
information. While all of the other fields may be constantly changing =
and therefore it would make sense to inquire about them in a diagnostic =
fashion, SOFTWARE_VERSION seems more like data that nodes could register =
or exchange when they join the overlay. Why is it included as a =
diagnostic?</font></div><div><font size=3D"2"><br></font></div><div><font =
size=3D"2">Also, doesn=92t the SOFTWARE_VERSION type need a length or a =
specified delimiter that indicates the end of the string? Otherwise, how =
is the recipient supposed to know when to stop parsing =
it?</font></div><div><font size=3D"2"><br></font></div><div><font =
size=3D"2">The definitions of&nbsp;</font><span =
style=3D"font-size:13.3333330154419px">EWMA_BYTES_SENT =
and&nbsp;</span><span =
style=3D"font-size:13.3333330154419px">EWMA_BYTES_RCVD seem =
problematic.</span></div><div><br></div><div><pre =
style=3D"font-size:13.3333330154419px;margin-top:0px;margin-bottom:0px">se=
nt =3D alpha x sent_present + (1 - alpha) x sent</pre><pre =
style=3D"font-size:13.3333330154419px;margin-top:0px;margin-bottom:0px"><p=
re =
style=3D"font-size:13.3333330154419px;margin-top:0px;margin-bottom:0px">rc=
vd =3D alpha x rcvd_present + (1 - alpha) x =
rcvd</pre><div><br></div></pre></div><div><font size=3D"2">As written =
these equations are not right because sent/rcvd appear on both sides. It =
would be clearer to use last_sent and last_rcvd or some such on the =
right-hand side of these equations. But this begs some bigger =
questions:</font></div><div><font size=3D"2"><br></font></div><div><font =
size=3D"2">- Does this place a requirement on all nodes implementing =
this specification to have to calculate these values every 5 =
seconds?</font></div><div><font size=3D"2">- How are the values =
calculated the first time?</font></div><div><font size=3D"2">- How was =
the value of 5 seconds chosen?</font></div><div><font =
size=3D"2"><br></font></div><div><font size=3D"2">Finally, I have =
trouble understanding why only some of the types are subject to access =
control as described in Section 7. It seems to me that in some =
situations all of the fields defined here could be considered sensitive =
by certain nodes or on certain networks. What is the justification for =
only making some of them subject to access =
control?</font></div><div><font size=3D"2"><br></font></div><div><font =
size=3D"2">=3D Section 6.1:</font></div><div><font =
size=3D"2"><br></font></div><div><font size=3D"2">=93The&nbsp;</font><span=
 style=3D"font-size:13.3333330154419px">destination field MUST be set to =
the desired destination, which MAY&nbsp;</span><span =
style=3D"font-size:13.3333330154419px">be either a NodeId or ResourceID =
but SHOULD NOT be the broadcast&nbsp;</span><span =
style=3D"font-size:13.3333330154419px">NodeID."</span></div><div><br></div=
><div>What is the expected behavior if a Ping or a PathTrack does get =
sent to the broadcast NodeID? Or should these requirements really be =
MUST NOTs?</div><div><br></div><div>=3D Section =
6.4:</div><div><br></div><div><pre =
style=3D"font-size:13.3333330154419px;margin-top:0px;margin-bottom:0px">"H=
owever, for a single hop
   measurement, the traditional measurement methods MUST be used instead
   of the overlay layer diagnostics =
methods."</pre></div><div><br></div><div>What is meant by the =
traditional measurement methods?</div><div><br></div><div>=3D Section =
9:</div><div><br></div><div>Please only use either RFC-XXXX or RFC-AAAA =
but not both as placeholders.</div><div><br></div><div>Please also use =
[TBDX] for values you expect to be allocated by =
IANA.</div><div><br></div><div><br></div><div><span =
style=3D"white-space:pre-wrap">=3D=3D Nits =3D=3D</span></div><div><span =
style=3D"white-space:pre-wrap"><br></span></div><div><span =
style=3D"white-space:pre-wrap">=3D General</span></div><div><span =
style=3D"white-space:pre-wrap"><br></span></div><div><span =
style=3D"white-space:pre-wrap">The document seems to </span><span =
style=3D"white-space:pre-wrap">repeatedly explain that it is doing =
things =93as specified in RFC6940.=94 I don=92t think this necessary in =
many cases. It=92s worth doing a pass through and removing the places =
where it=92s obvious that this spec is building on RFC =
6940.</span></div><div><span =
style=3D"white-space:pre-wrap"><br></span></div><div><span =
style=3D"white-space:pre-wrap">=3D Section 4.1:</span></div><div><span =
style=3D"white-space:pre-wrap"><br></span></div><div><span =
style=3D"white-space:pre-wrap">OLD</span></div><div><pre =
style=3D"font-size:13.3333330154419px;margin-top:0px;margin-bottom:0px">Th=
e extensions strictly follow RELOAD
   specification on the messages routing, transport, NAT traversal =
etc.</pre><div><br></div></div><div>NEW</div><div><pre =
style=3D"font-size:13.3333330154419px;margin-top:0px;margin-bottom:0px">Th=
e extensions strictly follow how RELOAD specifies message routing, =
transport, NAT traversal, and other RELOAD protocol =
features.</pre><div><br></div></div><div><span =
style=3D"white-space:pre-wrap">=3D Section 4.2.1:</span></div><div><span =
style=3D"white-space:pre-wrap"><br></span></div><div><span =
style=3D"white-space:pre-wrap">s/</span><span =
style=3D"font-size:13.3333330154419px">as specified in Table 4 =
and&nbsp;</span><span style=3D"font-size:13.3333330154419px">specified =
in the RELOAD/</span><span style=3D"font-size:13.3333330154419px">as =
specified in Table 4/</span></div><div><span =
style=3D"font-size:13.3333330154419px"><br></span></div><div><span =
style=3D"font-size:13.3333330154419px">s/</span><span =
style=3D"font-size:13.3333330154419px">new requests of the =
the/</span><span style=3D"font-size:13.3333330154419px">new requests of =
the/</span></div><div><span =
style=3D"font-size:13.3333330154419px"><br></span></div><div><span =
style=3D"font-size:13.3333330154419px">=3D Section =
4.3:</span></div><div><span =
style=3D"font-size:13.3333330154419px"><br></span></div><div><span =
style=3D"font-size:13.3333330154419px">OLD</span></div><div><pre =
style=3D"font-size:13.3333330154419px;margin-top:0px;margin-bottom:0px">We=
 define a simple PathTrack method for retrieving diagnostic
   information iteratively.  The mechanism defined in this document
   follows the RELOAD specification, the new request and response
   message use the message format specified in RELOAD messages.  Please
   refer to the RELOAD [<a href=3D"https://tools.ietf.org/html/rfc6940" =
title=3D"&quot;REsource LOcation And Discovery (RELOAD) Base =
Protocol&quot;" target=3D"_blank">RFC6940</a>] for details of the =
protocol.

   The operation of this request is shown below in Figure =
2.</pre><div><br></div></div><div><span =
style=3D"font-size:13.3333330154419px"><br></span></div><div><span =
style=3D"font-size:13.3333330154419px">NEW</span></div><div><pre =
style=3D"font-size:13.3333330154419px;margin-top:0px;margin-bottom:0px">We=
 define a simple PathTrack method for retrieving diagnostic
   information iteratively.  The operation of this request is shown =
below in Figure 2.</pre><div><br></div></div><div>=3D Section <a =
href=3D"http://4.3.1.2/" =
target=3D"_blank">4.3.1.2</a>:</div><div><br></div><div>s/after =
that/after receiving a PathTrackAns where the&nbsp;<span =
style=3D"font-size:13.3333330154419px">next_hop node ID equals the =
responding node ID/</span></div><div><span =
style=3D"font-size:13.3333330154419px"><br></span></div><div><span =
style=3D"font-size:13.3333330154419px">=3D Section <a =
href=3D"http://4.3.2.1/" =
target=3D"_blank">4.3.2.1</a>:</span></div><div><span =
style=3D"font-size:13.3333330154419px"><br></span></div><div><span =
style=3D"font-size:13.3333330154419px">s/</span><span =
style=3D"font-size:13.3333330154419px">PathTrack Response/</span><span =
style=3D"font-size:13.3333330154419px">PathTrack =
response/</span></div><div><span =
style=3D"font-size:13.3333330154419px"><br></span></div><div><span =
style=3D"font-size:13.3333330154419px">=3D Section =
4.4:</span></div><div><span =
style=3D"font-size:13.3333330154419px"><br></span></div><div><span =
style=3D"font-size:13.3333330154419px">s/</span><span =
style=3D"font-size:13.3333330154419px">code. and we define/</span><span =
style=3D"font-size:13.3333330154419px">code. We =
define/</span></div><div><br></div><div>=3D Section =
5:</div><div><br></div><div>s/<span =
style=3D"font-size:13.3333330154419px">Path_track methods/</span><span =
style=3D"font-size:13.3333330154419px">PathTrack =
methods/</span></div><div><span =
style=3D"font-size:13.3333330154419px"><br></span></div><div><span =
style=3D"font-size:13.3333330154419px">=3D Section =
5.1:</span></div><div><span =
style=3D"font-size:13.3333330154419px"><br></span></div><div><span =
style=3D"font-size:13.3333330154419px">s/</span><span =
style=3D"font-size:13.3333330154419px">Note that is NOT/</span><span =
style=3D"font-size:13.3333330154419px">Note that it is =
not/</span></div><div><span =
style=3D"font-size:13.3333330154419px"><br></span></div><div><div><span =
style=3D"font-size:13.3333330154419px">=3D Section =
5.2:</span></div><div><span =
style=3D"font-size:13.3333330154419px"><br></span></div><div><span =
style=3D"font-size:13.3333330154419px">s/</span><span =
style=3D"font-size:13.3333330154419px">Note that is NOT/</span><span =
style=3D"font-size:13.3333330154419px">Note that it is =
not/</span></div></div><div><span =
style=3D"font-size:13.3333330154419px"><br></span></div><div><span =
style=3D"font-size:13.3333330154419px">s/</span><span =
style=3D"font-size:13.3333330154419px">consists one or more/</span><span =
style=3D"font-size:13.3333330154419px">consists of one or =
more/</span></div><div><span =
style=3D"font-size:13.3333330154419px"><br></span></div><div><span =
style=3D"font-size:13.3333330154419px">=3D Section =
6.1:</span></div><div><span =
style=3D"font-size:13.3333330154419px"><br></span></div><div><span =
style=3D"font-size:13.3333330154419px">s/</span><span =
style=3D"font-size:13.3333330154419px">`MAY/MAY/</span></div><div><span =
style=3D"font-size:13.3333330154419px"><br></span></div><div><span =
style=3D"font-size:13.3333330154419px">=3D Section =
6.2:</span></div><div><span =
style=3D"font-size:13.3333330154419px"><br></span></div><div><span =
style=3D"font-size:13.3333330154419px">s/</span><span =
style=3D"font-size:13.3333330154419px">return the response the initiator =
node/</span><span style=3D"font-size:13.3333330154419px">return the =
response to the initiator node/</span></div><div><span =
style=3D"font-size:13.3333330154419px"><br></span></div><div><span =
style=3D"font-size:13.3333330154419px">s/</span><span =
style=3D"font-size:13.3333330154419px">The peer SHOULD/</span><span =
style=3D"font-size:13.3333330154419px">The intermediate peer =
SHOULD/</span></div><div><br></div></div><br>_____________________________=
__________________<br>
P2PSIP mailing list<br>
<a href=3D"mailto:P2PSIP@ietf.org">P2PSIP@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/p2psip" =
rel=3D"noreferrer" =
target=3D"_blank">https://www.ietf.org/mailman/listinfo/p2psip</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br></body></html>=

--Apple-Mail=_02B02481-632E-4759-AC32-045E8CA1AD9A--


From nobody Thu Aug 20 20:22:54 2015
Return-Path: <haibin.song@huawei.com>
X-Original-To: p2psip@ietfa.amsl.com
Delivered-To: p2psip@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id ECDF41A1B57 for <p2psip@ietfa.amsl.com>; Thu, 20 Aug 2015 20:22:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.211
X-Spam-Level: 
X-Spam-Status: No, score=-4.211 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CF0HbhteHVnx for <p2psip@ietfa.amsl.com>; Thu, 20 Aug 2015 20:22:46 -0700 (PDT)
Received: from lhrrgout.huawei.com (lhrrgout.huawei.com [194.213.3.17]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0B5E01A1B6A for <p2psip@ietf.org>; Thu, 20 Aug 2015 20:22:44 -0700 (PDT)
Received: from 172.18.7.190 (EHLO lhreml402-hub.china.huawei.com) ([172.18.7.190]) by lhrrg01-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id CAF09971; Fri, 21 Aug 2015 03:22:43 +0000 (GMT)
Received: from nkgeml409-hub.china.huawei.com (10.98.56.40) by lhreml402-hub.china.huawei.com (10.201.5.241) with Microsoft SMTP Server (TLS) id 14.3.235.1; Fri, 21 Aug 2015 04:22:42 +0100
Received: from NKGEML501-MBS.china.huawei.com ([169.254.2.99]) by nkgeml409-hub.china.huawei.com ([10.98.56.40]) with mapi id 14.03.0235.001; Fri, 21 Aug 2015 11:22:36 +0800
From: "Songhaibin (A)" <haibin.song@huawei.com>
To: Alissa Cooper <alissa@cooperw.in>, David Bryan <dbryan@ethernot.org>
Thread-Topic: [P2PSIP] AD evaluation: draft-ietf-p2psip-diagnostics-17
Thread-Index: AQHQ1umosqhZ/UWGA0i8P+k8SWdo8p4P1gUAgAGVAoCAAygiwA==
Date: Fri, 21 Aug 2015 03:22:35 +0000
Message-ID: <E33E01DFD5BEA24B9F3F18671078951F65345644@nkgeml501-mbs.china.huawei.com>
References: <37059182-6C51-49E3-83A0-D27F2C15A366@cooperw.in> <CADqQgCQ_hEacxApiauKLYD0Y+ahkXGDi9uXFvLN1XjqLpzjh0Q@mail.gmail.com> <5C131A2D-2519-4CD5-AAB0-1E01563C9665@cooperw.in>
In-Reply-To: <5C131A2D-2519-4CD5-AAB0-1E01563C9665@cooperw.in>
Accept-Language: en-US, zh-CN
Content-Language: zh-CN
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.138.41.191]
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <http://mailarchive.ietf.org/arch/msg/p2psip/vMf6fD0nY59l16IjUcFVuMei_yI>
Cc: p2psip <p2psip@ietf.org>, "draft-ietf-p2psip-diagnostics@tools.ietf.org" <draft-ietf-p2psip-diagnostics@tools.ietf.org>
Subject: Re: [P2PSIP] AD evaluation: draft-ietf-p2psip-diagnostics-17
X-BeenThere: p2psip@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Peer-to-Peer SIP working group discussion list <p2psip.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/p2psip>, <mailto:p2psip-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/p2psip/>
List-Post: <mailto:p2psip@ietf.org>
List-Help: <mailto:p2psip-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/p2psip>, <mailto:p2psip-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 21 Aug 2015 03:22:53 -0000

Hi Alissa,

Thank you for the comments. Please find my explanations in line with [haibi=
n].

>Thanks. I did have one further thought for Section 8. It strikes me that t=
he combination of diagnostic elements that this spec makes available could =
easily be used to fingerprint a peer in an overlay where peers may otherwis=
e be attempting to remain anonymous. Although defenses against such fingerp=
rinting are probably hard to come by (short of disallowing access to the di=
agnostics via the config file), the threat is worth noting at least.

[haibin]Actually we imply your concern with the sentence "It should also be=
 noted that attackers can use diagnostics to analyze overlay information to=
 attack certain key peers." But we could elaborate more in this section.=20


From: Alissa Cooper [mailto:alissa@cooperw.in]=20
Sent: Wednesday, August 19, 2015 12:04 AM
To: David Bryan
Cc: p2psip; draft-ietf-p2psip-diagnostics@tools.ietf.org
Subject: Re: [P2PSIP] AD evaluation: draft-ietf-p2psip-diagnostics-17

On Aug 17, 2015, at 8:54 AM, David Bryan <dbryan@ethernot.org> wrote:


Thanks for the comments. I'll circle back with the team and will revise.

Thanks. I did have one further thought for Section 8. It strikes me that th=
e combination of diagnostic elements that this spec makes available could e=
asily be used to fingerprint a peer in an overlay where peers may otherwise=
 be attempting to remain anonymous. Although defenses against such fingerpr=
inting are probably hard to come by (short of disallowing access to the dia=
gnostics via the config file), the threat is worth noting at least.



I have to check, but I actually think the first few versions of this (when =
it was individual) *may* be pre-5378, but will double check.

Ah ok.

[haibin] It is true that the first version of the individual draft is pre-5=
378.

Alissa



On Fri, Aug 14, 2015 at 6:33 PM, Alissa Cooper <alissa@cooperw.in> wrote:
I have reviewed this document in preparation for IETF last call. Before pro=
ceeding to last call, I have some comments and questions that I'd like to d=
iscuss. I've also included a list of nits that should be resolved together =
with any last call comments.


=3D=3D Substantive comments and questions =3D=3D

=3D General=A0

I think this document should be listed as updating RFC 6940 in the document=
 header.

The document contains=A0a disclaimer for pre-RFC5378 work, which I assume i=
s in error. If using xml2rfc to generate the text, using the most up-to-dat=
e version of xml2rfc to create the next version should fix this.

=3D Section 4.3:

"There have been proposals that RouteQuery and a series of Fetch
   requests can be used to replace the PathTrack mechanism, but in the
   presence of churn such an operation would not, strictly speaking,
   provide identical results, as the path may change between RouteQuery
   and Fetch operations. (although obviously the path could change
   between steps of PathTrack as well)."

This text is confusing. It doesn't explain why PathTrack is being defined r=
ather than peers using RouteQuery plus Fetch. Furthermore, the document doe=
s not explain how peers are supposed to interpret the results of the PathTr=
ack method in the event that the route does change in between steps. This s=
eems like a substantial omission.

[haibin] This is a good question. As the route change is a problem (with li=
ttle probability), we would like to retrieve diagnostics info in an efficie=
nt way, so one simple message is preferred. And you are right, it does not =
change the truth that route can change  in between steps. We need re-wordin=
g the section. The implication of route change is that, the result of the d=
iagnostics cannot be trusted with one hundred percent, which should be note=
d to the users that perform the diagnostics.

In general, this document provides very little information about how peers =
are expected to interpret and use the diagnostic information. I understand =
that peers can do whatever they want with it, but in several places the fac=
t that this is not explained makes the reasoning behind the protocol design=
 decisions opaque. I would suggest providing a little more context, at the =
very least by moving the examples into the body of the draft somewhere.=A0

[haibin] We can add some more explanations with diagnostics info interpreta=
tion.=20

=3D Section 4.4:

I'm a little confused about the values given for the error codes. Do you wa=
nt IANA to chose these specific values? Or are they just there as placehold=
ers? The customary way of doing placeholders would be as follows:

Code Value         Error Code Name
      [TBD1]               Underlay Destination Unreachable
      [TBD2]               Underlay Time exceeded
      [TBD3]               Message Expired
      [TBD4]               Upstream Misrouting
      [TBD5]               Loop detected
      [TBD6]               TTL hops exceeded

These placeholders would then get used throughout the document.

[haibin] they are place holders.=20

This section also says:

"In addition, this document introduces several types of error information i=
n the error_info field in the case of Code 0x65. ... Here are some examples=
 for the error info. ... The error_info field values of the Code 0x66 to 0x=
70 are to be application specific and defined by the particular overlay."


I'm not sure what is meant by all of this text. As defined in RFC 6940, err=
or_info is an optional implementation-specific byte string. If you are inte=
nding to require implementations to include specific text in the error_info=
 for the first error code, then you need to explain under what conditions t=
he specific text needs to be included for each string. And the text about t=
he other codes seems redundant with how error_info is already defined in RF=
C 6940.


[haibin] if a peer receives a diagnostic request found that it cannot reach=
 its next hop due to underlay problem, it needs to explain with error_info =
what happened. I do not know what you mean by redundant with RFC 6940. They=
 are different errors.

=3D Section 5.2:


"ext_length : the length of the returned DiagnosticInfo information
      in bytes.  If the value is greater than or equal to 1, then some
      extended diagnostic information is requested."

This is defining the diagnostic response - why would the extension be reque=
sting something? And if it is possible to use an extension in that way, the=
 expected behavior from the initiator when it receives such an extension ne=
eds to be described, or at least it needs to be noted that a diagnostic res=
ponse could provoke a request back to the initiator.

[haibin] it is possible to reword it as "....then some extended diagnostic =
information is responded."


Also, in the struct the diagnostic info is called "diagnostic_info_contents=
" but in the text it is called=A0"diagnostic_information." These should be =
the same I think.

[haibin] Yes. It will be corrected.

=3D Section 5.3:

I'm concerned about the way STATUS_INFO is defined. First, why are there 16=
 different levels of congestion status? What are they supposed to signify? =
If there is no standardized way of measuring congestion defined, how is a n=
ode supposed to interpret STATUS_INFO received from different peers? That i=
s, couldn't one peer's level 7 actually mean it is less congested than anot=
her peer's level 3, and won't that make the information somewhat meaningles=
s to the initiator? Maybe this would be clearer if you could explain what y=
ou expect an initiator to do with the information about 16 different levels=
 of congestion.

[haibin] Your concern makes sense. Actually it is intended to leave it for =
overlay implementers or a future standard to define the congestion level al=
gorithms . This draft just defines the format and reserves the bits for the=
ir use. As the section says " This document does not provide a specific met=
hod for congestion, leaving this decision to each node.  One possible optio=
n for a node would be to take its CPU/memory/bandwidth usage percentage in =
the past 600 seconds and normalize the highest value to the range [0x00, 0x=
0F].  A future draft may define an objective measure or specific algorithm =
for this." I think we should change the node decision to overlay decision. =
And an overlay implementer may choose to not use all that 16 values.

SOFTWARE_VERSION doesn't really seem like diagnostic information. While all=
 of the other fields may be constantly changing and therefore it would make=
 sense to inquire about them in a diagnostic fashion, SOFTWARE_VERSION seem=
s more like data that nodes could register or exchange when they join the o=
verlay. Why is it included as a diagnostic?

[haibin] Diagnostics usually take place when there are failures or abnormal=
 behaviors. Software version incompatibility might be a cause.

Also, doesn't the SOFTWARE_VERSION type need a length or a specified delimi=
ter that indicates the end of the string? Otherwise, how is the recipient s=
upposed to know when to stop parsing it?

[haibin] Will add it.

The definitions of=A0EWMA_BYTES_SENT and=A0EWMA_BYTES_RCVD seem problematic=
.

sent =3D alpha x sent_present + (1 - alpha) x sent
rcvd =3D alpha x rcvd_present + (1 - alpha) x rcvd

As written these equations are not right because sent/rcvd appear on both s=
ides. It would be clearer to use last_sent and last_rcvd or some such on th=
e right-hand side of these equations. But this begs some bigger questions:

- Does this place a requirement on all nodes implementing this specificatio=
n to have to calculate these values every 5 seconds?
- How are the values calculated the first time?
- How was the value of 5 seconds chosen?

[Haibin] This is incorporated from the early RELOAD document. Maybe some au=
thor of the RELOAD protocol can give a better explanation.

Finally, I have trouble understanding why only some of the types are subjec=
t to access control as described in Section 7. It seems to me that in some =
situations all of the fields defined here could be considered sensitive by =
certain nodes or on certain networks. What is the justification for only ma=
king some of them subject to access control?

[haibin] Actually it says different level of access control can be made. Fo=
r example, diagnostic information A can be accessed by node 1 and 2, but di=
agnostic information B can only be accessed by node 2. We can add some expl=
anations as it seems not clear to readers.


=3D Section 6.1:

"The=A0destination field MUST be set to the desired destination, which MAY=
=A0be either a NodeId or ResourceID but SHOULD NOT be the broadcast=A0NodeI=
D."

What is the expected behavior if a Ping or a PathTrack does get sent to the=
 broadcast NodeID? Or should these requirements really be MUST NOTs?

[haibin] I guess they should be MUST NOTs.=20

=3D Section 6.4:

"However, for a single hop
   measurement, the traditional measurement methods MUST be used instead
   of the overlay layer diagnostics methods."

What is meant by the traditional measurement methods?

[haibin] It mainly means IP layer ping.

=3D Section 9:

Please only use either RFC-XXXX or RFC-AAAA but not both as placeholders.

[haibin] RFC-AAAA is RFC 6940. RFC-XXXX is the placeholder. They will be co=
rrected.

Please also use [TBDX] for values you expect to be allocated by IANA.

[haibin] ok.

=3D=3D Nits =3D=3D


=3D General


The document seems to repeatedly explain that it is doing things "as specif=
ied in RFC6940." I don't think this necessary in many cases. It's worth doi=
ng a pass through and removing the places where it's obvious that this spec=
 is building on RFC 6940.

[haibin] ok.

=3D Section 4.1:


OLD
The extensions strictly follow RELOAD
   specification on the messages routing, transport, NAT traversal etc.

NEW
The extensions strictly follow how RELOAD specifies message routing, transp=
ort, NAT traversal, and other RELOAD protocol features.

=3D Section 4.2.1:


s/as specified in Table 4 and=A0specified in the RELOAD/as specified in Tab=
le 4/

s/new requests of the the/new requests of the/

=3D Section 4.3:

OLD
We define a simple PathTrack method for retrieving diagnostic
   information iteratively.  The mechanism defined in this document
   follows the RELOAD specification, the new request and response
   message use the message format specified in RELOAD messages.  Please
   refer to the RELOAD [RFC6940] for details of the protocol.

   The operation of this request is shown below in Figure 2.


NEW
We define a simple PathTrack method for retrieving diagnostic
   information iteratively.  The operation of this request is shown below i=
n Figure 2.

=3D Section 4.3.1.2:

s/after that/after receiving a PathTrackAns where the=A0next_hop node ID eq=
uals the responding node ID/

=3D Section 4.3.2.1:

s/PathTrack Response/PathTrack response/

=3D Section 4.4:

s/code. and we define/code. We define/

=3D Section 5:

s/Path_track methods/PathTrack methods/

=3D Section 5.1:

s/Note that is NOT/Note that it is not/

=3D Section 5.2:

s/Note that is NOT/Note that it is not/

s/consists one or more/consists of one or more/

=3D Section 6.1:

s/`MAY/MAY/

=3D Section 6.2:

s/return the response the initiator node/return the response to the initiat=
or node/

s/The peer SHOULD/The intermediate peer SHOULD/

[haibin] Thanks again.

BR,
-Haibin Song


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


