[P2PSIP] Revisions to draft-ietf-p2psip-base-24 made in response to 2nd IETF LC

Dean Willis <dean.willis@softarmor.com> Thu, 21 February 2013 05:03 UTC

Return-Path: <dean.willis@softarmor.com>
X-Original-To: p2psip@ietfa.amsl.com
Delivered-To: p2psip@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4F0EF21F87CD for <p2psip@ietfa.amsl.com>; Wed, 20 Feb 2013 21:03:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.89
X-Spam-Level:
X-Spam-Status: No, score=-101.89 tagged_above=-999 required=5 tests=[AWL=-0.725, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-1, SARE_SPEC_REPLICA_OBFU=1.812, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0QcArZwTmAFv for <p2psip@ietfa.amsl.com>; Wed, 20 Feb 2013 21:03:27 -0800 (PST)
Received: from mail-vb0-f45.google.com (mail-vb0-f45.google.com [209.85.212.45]) by ietfa.amsl.com (Postfix) with ESMTP id A4A1821F87B3 for <p2psip@ietf.org>; Wed, 20 Feb 2013 21:03:27 -0800 (PST)
Received: by mail-vb0-f45.google.com with SMTP id p1so5523003vbi.18 for <p2psip@ietf.org>; Wed, 20 Feb 2013 21:03:27 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=softarmor.com; s=google; h=mime-version:x-received:date:message-id:subject:from:to :content-type; bh=cSU51/8MDUngZRCpsoDKxPU8fQNiOzwwA1YOGw/TY7g=; b=S/qtE+x6SiUagp7PoQJ7QLVa2Kw/d7VDguznUuCD+TKVDpDjWEg0lKMss3aIEC4x8c 4ukSLF7LdGN99TCtxU1ICwlxm6dex8y7TMBxK9jHI+c8ZLTqy5PZ+1PXPsogpOC2/RHa 3lpsikZIUIgtDYoLtzjcHyo4QYK7vsXX8Tl84=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:date:message-id:subject:from:to :content-type:x-gm-message-state; bh=cSU51/8MDUngZRCpsoDKxPU8fQNiOzwwA1YOGw/TY7g=; b=DQJMMfFfnmQ1xKVzl1+u6Mta4R8CceLw6m2Xm7mZlv4Z3vxNin8aHG+lOsI8kSZcRe 2mK0fg/UflhbzlnLtk62tChn3PYEsKzdSAUOzBrkFHvKHmWwMWlZur5MYPs5bGr9fKm6 4aAtgabrGwC4SECXePp40o4bB0co5+xSDu+K8SvBMwsDo/E/quYYXUnI3QmHPdo4H2+Z UOPc2/B2aWHw2XoHtUWymHiQLS6Qx5YCHvYj3wDCburPavBETzEzAPd3qifUoS8Lab3Y 3n8xntfp3pAMw0dppOKusIqPj0ixHmUQzX/41ZiJY6BjRvqYjNdCcY94b+Rw8/1s6poE kuWA==
MIME-Version: 1.0
X-Received: by 10.52.21.8 with SMTP id r8mr13210476vde.130.1361423006841; Wed, 20 Feb 2013 21:03:26 -0800 (PST)
Received: by 10.58.46.17 with HTTP; Wed, 20 Feb 2013 21:03:26 -0800 (PST)
Date: Wed, 20 Feb 2013 23:03:26 -0600
Message-ID: <CAOHm=4tKTzqsKmpXAO65_WveuZ=ayKByt6K1vjB4t910Zv_a+Q@mail.gmail.com>
From: Dean Willis <dean.willis@softarmor.com>
To: p2psip-chairs@tools.ietf.org, iesg@iesg.org, p2psip@ietf.org, Marc Petit-Huguenin <marc@petit-huguenin.org>, Cullen Jennings <fluffy@cisco.com>, Eric Rescorla <ekr@rtfm.com>
Content-Type: text/plain; charset="ISO-8859-1"
X-Gm-Message-State: ALoCoQltJ7ldegAD3sj37oQIWfZMqDK89qAAgXMlphnv4dvelI89vBnF5CNlaDEBGpdcwqTO5PZc
Subject: [P2PSIP] Revisions to draft-ietf-p2psip-base-24 made in response to 2nd IETF LC
X-BeenThere: p2psip@ietf.org
X-Mailman-Version: 2.1.12
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: <http://www.ietf.org/mail-archive/web/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: Thu, 21 Feb 2013 05:03:29 -0000

a 2nd IETF last call closed on this document Tuesday.

Following IETF LC, changes have been made to the
draft-ietf-pp2psip-base document to accommodate tha majority of
critical comments made during the IETF LC period. It should be noted
that additional comments were following IETF LC received from Roland
Bless and Polina Goltsman. The latter of these was quite lengthy,
running to approximately one hundred twenty three points, and the
contributor will be added to the Acknowledgements. The editorial team
extracted what appeared to be the most critical of these and made
textual modifications as needed. Work is continuing on the remainder;
they are believed to be nits of the "a" versus "an" level; worth
doing, but not affecting IESG review. We expect to provide these
before submission to the RFC Ed.

Revisions are described below.

IANA Considerations:
--------------------------------

1) Text in 14.7 saying "Code points in this registry" was replaced
with "New entries in this registry", as they aren't code points.

2) Text added in 14.10 clarifying that the entries in this registry
are 8-bit integers (0-255) as described in 6.5.1.1

This should not impact IANA actions.

Pete Resnick
- ------------

1) "6.3.4 - No discussion of wildcard in this section. Does there need to be?"

Because 6.3.4 is the section about SecurityBlock, I guess that "wildcard"
refers to wildcard certificate. It is not possible to define a wildcard
RELOAD certificate because neither the reload URI or the rfc822Name
supports a wildcard, but under the current rules, there is nothing that
prevents adding a dns: to the SAN or a wildcard to the subject.

So to remove ambiguity, the following text was added in section 11.3:

"The SubjectAltName field in the certificate MUST NOT contain any
 other identities than listed above. The subject distinguished name in
 the certificate MUST be empty."


2) "6.5 - Not clear to me why this document settles on ICE (or anything lower
layer). Seems like it could have been abstracted out and left to a different
layer. I'm kind of disappointed that all of section 6.5 (and maybe sections 6.6
and 9) is not a separate document. (I understand that this is the WG wanted to
do it. Just registering my complaint, but I won't make a fuss.)"

No change. We sympathize with Pete's desire to layer things differently, but ...


Stephen Farrell
- ---------------

3) "I do have one question: is the
overlay-reliability-timer in the configuration defined in 11.1
supposed to override the "15 second" timer ("Maximum Request
Lifetime") defined in section 2 and and used in various
places, if the value of the overlay-reliability-timer is more
than 15000?"

The definition was modified like this:

"Maximum Request Lifetime:  The maximum time a request will wait for a
    response.  This value is equal to the overlay-reliability-timer
    value defined in Section 11.1 multiplied by the number of
    transmissions, as defined in Section 6.2.1, and so defaults to 15
    seconds."


Stewart Bryant
- --------------

4) "I understand that the example using port "6100" is an error and will be
 corrected in the next version to the assigned port."

The text was modified like this:

"...As an example, here is
 the wire representation of the IPv4 address "192.0.2.1" with port
 "6084".

       01           ; type    = IPv4
       06           ; length  = 6
       c0 00 02 01  ; address = 192.0.2.1
       17 c4        ; port    = 6084"


Wesley Eddy
- -----------

5) "The document seems to be schizophrenic about Head of Line blocking.  The
section 6.5.1.6 text on why TCP is not a desirable Overlay Link Protocol notes
Head of Line blocking as the primary reason to prefer another protocol, yet the
stop and wait algorithm in 6.6.3.1 for use over DTLS, says that only one
message can be unacknowledged at a time, so it's unclear how this avoid Head of
Line blocking issues (if at all).  It seems like you seay HoL issues are worth
avoiding, and then define operation only over transports with HoL issues (TCP
and the DTLS-based ones)."

The following text was added in 6.5.1.6.:

"Note that none of the protocols defined in this document meets these
 conditions, but it is expected that new Overlay link protocols
 defined in the future will fill this gap."

Also two new Overlay Link protocols using SCTP are defined in a newly
published draft (draft-petithuguenin-p2psip-reload-sctp).

6) "As noted by Michael Scharf, the RTO computation text in section 5.6.3.1.1
has a confused (or confusing) citation of RFC 6298 and may lead to instability
in presence of RTT variations."

(That an old discuss but the modification never went into the document)

The new text is:

"overlay-reliability-timer  Default value for the end-to-end
    retransmission timer for messages, in milliseconds.  If not
    present, the default value is 3000.  The value MUST be at least
    200 milliseconds, which means the minimum time delay before
    dropping a link is 1000 milliseconds."

Russ Housely:
--------------------

Address comments from revised Gen-Art review by Mary Barnes


1)   Gen-Art Comment:
In Section 11.5, 3rd para, the document says: "it can note the Node-ID
in the response and use this Node-ID to start sending requests".  Is
the use of the Node-ID MAY or a MUST?

There was no section 11.5 in -24; the text in question is in 11.4

The text has been revised as:

   When contacting a bootstrap node, the joining node MUST first form
   the DTLS or TLS connection to the bootstrap node and then send an
   Attach request over this connection with the destination Resource-ID
   set to the joining node's Node-ID.


2) Gen-Art Comment:
Section 1.2.1, 2nd paragraph: I don't understand the example
as to why a single application requires multiple usages - i.e, why
voicemail? Isn't the intent to say that an application might need to
use both SIP and XMPP - i.e., you wouldn't define a "usage" for an
application, would you?
[While Cullen responded to this comment with an explanation, there was
no change to clarify the text and Marc's response didn't help clarify
my concern]"


-24 text:

   The architecture diagram shows both a SIP usage and an XMPP usage.  A
   single application may require multiple usages; for example a
   softphone application may also require a voicemail usage.  A usage
   may define multiple Kinds of data that are stored in the overlay and
   may also rely on Kinds originally defined by other usages.

-25 text:

   The architecture diagram shows both a SIP usage and an XMPP usage.  A
   single application may require multiple usages; for example a
   voicemail feature in a softphone application that stores links to the
   messages in the overlay would require a different usage than the type
   of rendezvous service of XMPP or SIP.  A usage may define multiple
   Kinds of data that are stored in the overlay and may also rely on
   Kinds originally defined by other usages.


The example here is that single application (e.g., a softphone
application) might require multiple RELOAD usages, (e.g, one RELOAD
usage for storing voicemail and another RELOAD usage for SIP
rendezvous services).  We think the text is adequately clear.


3) Gen-Art comment:
Section 3.3, 2nd paragraph after the capability bullet list, next to
last sentence. There is at least an article missing from this
sentence and it reads rather awkwardly. Perhaps changing to something
like:
OLD:
If there is a failure on
the reverse path caused by topology change since the request was
sent, this will be handled by the end-to-end retransmission of the
response as described in Section 6.2.1.
NEW:
Note that a failure on
the reverse path caused by a topology change after the request was
sent, will be handled by the end-to-end retransmission of the response
as described in Section 6.2.1."


Text was revised to:

   Note that a failure on
   the reverse path caused by a topology change after the request was
   sent will be handled by the end-to-end retransmission of the response
   as described in Section 6.2.1.


4) Gen-Art Comment:
"- [-17] Section 3.3, last paragraph. Add a reference to 5.4.2.4
after "RouteQuery method""

Reference was added in -25


5) Gen-Art Comment:
Section 3.4, last paragraph, 3rd sentence: "that the specified by
the algorithm" should be something like "than specified by the
algorithm"."

Revised text:

   However, a peer needs to try to maintain the specified Routing Table
   defined by the topology plugin algorithm and needs to form new
   connections if it detects that it has fewer direct connections than
   specified by the algorithm.


6) Gen-Art Comment
Section 6.6: All my previous concerns were addressed, except,
the Note to implementors paragraph still seems out of context - it
should be deleted or this section should be restructured so it is in
context.

 Text was restructured in -25


7) Gen-Art Comment
 Section 12, Second paragraph, 3rd sentence
says that "It gets routed to the admitting peer (AP), yet the flow
shows that the message first gets routed to the PP and then onto AP.
It would be helpful if that were clarified. [Note: Marc's response
indicated that he thought this was fixed in the -23, however, the diff
shows no changes to that specific text between the -17 and the -24 ]"

The call flow diagram was revised to match the text.


8) Gen-Art Nits
"- Section 1.2.5, 2nd para, last sentence: this sentence is a bit tough
to interpret on a first read. I would suggest rewording something
like the following:
OLD:
This layer is to the Message Transport Layer as link-
level congestion control and retransmission in modern wireless
networks is to Internet transport protocols.
NEW:
The relation of this layer to the Message Transport Layer
"is similar to"|"can be likened to" the relation of the link-
level congestion control and retransmission in modern wireless
networks to Internet transport protocols.

Section 3.4, last paragraph, 4th sentence: "in accord" -> "in
accordance"

Section 10.1, 2nd paragraph, 5th sentence: "can be thought of a
doubly-linked list" -> "can be thought of as a doubly-linked list"

Section 15, last paragraph: "help resolve" -> "helped resolve""

Text was modified as suggested.


Roland Bless
--------------------

1) Under 10.5 Joining, add forward reference to 11.4

Revised:

JN MUST connect to its chosen bootstrap node as specified in Section 11.4.


2)  in 10.5 element 2, change "Acquire the routing table for" to
"Acquire the routing table of".

Done.

3) in 10.5 element 3:
JP SHOULD send Attach requests to initiate connections to each of
the peers in the neighbor table as well as to the desired finger
table entries. Note that this does not populate their routing
tables, but only their connection tables, so JP will not get
messages that it is expected to route to other nodes."
here it is unclear that the Attach requests are sent via the AP
and what "desired" finger table entries means, e.g., in contrast to
all?"

Revised to:

   3.  JN SHOULD send Attach requests to initiate connections to each of
       the peers in the Neighbor Table as well as to the desired Finger
       Table entries.  Note that this does not populate their Routing
       Tables, but only their Connection Tables, so JN will not get
       messages that it is expected to route to other nodes.


4) Sec. 10.7.2.:
"If a finger table entry is found to have failed,"
how is it determined to have "failed"? 10.7.1 is only
related to neighbor failures...does the same definition
apply here?"

Copied definition from 10.7.1 to 10.7.2:;

10.7.2.  Handling Finger Table Entry Failure

   If a Finger Table entry is found to have failed (as determined by
   connectivity pings or the failure of some request), all references to
   the failed peer MUST be removed from the Finger Table and replaced
   with the closest preceding peer from the Finger Table or Neighbor
   Table.

5)  Sec: 10.7.4.2.:
"A peer SHOULD NOT send Ping requests looking for new finger table
entries more often than the configuration element "chord-ping-
interval", which defaults to 3600 seconds (one per hour)."
This paragraph should probably moved some paragraphs down as it
has been stated yet that a peer should actually send Ping requests
at all (this is explained in the subsequent paragraphs)."

Restructured as suggested.


6) Sec 12:
throughout the figures: "Update" should be "UpdateReq"
and Attach should be AttachReq?"

Revised as suggested.


7) Inconsistent capitalization of Neighbor Table and Connection Table

Reviewed for consistency.



Polina Goltsman
------------------------

1) PG Major issue 1: sec. 6.3.2:
length field in Forwarding Header covers what exactly? it is not
really clear whether the length field counts the whole message or in
case of fragmentation only the fragment size. When reading Sec 6.7 is
seems that the former is meant, but the definition could and should be
clearer. Similarly, sec. 6.7 should be clear about this, e.g.,
describing that all Forwarding Headers are identical for fragments of
the same message with exception of the fragment field.

Revised:

   Any node along the path can fragment the message but only the final
   destination reassembles the fragments.  When a node takes a packet
   and fragments it, each fragment has a full copy of the Forwarding
   Header but the data after the Forwarding Header is broken up in
   appropriate sized chunks.  The size of the payload chunks needs to
   take into account space to allow the via and destination lists to
   grow.  Each fragment MUST contain a full copy of the via list,
   destination list, and ForwardingOptions and MUST contain at least 256
   bytes of the message body.  If these elements cannot fit within the
   MTU of the underlying datagram protocol, RELOAD fragmentation is not
   performed and IP-layer fragmentation is allowed to occur.  The length
   field MUST contain the size of the message after fragmentation.  When
   a message MUST be fragmented, it SHOULD be split into equal-sized
   fragments that are no larger than the PMTU of the next overlay link
   minus 32 bytes.  This is to allow the via list to grow before further
   fragmentation is required.


2) PG Major issue 2: sec. 7.4.1.1: replica number handling is unclear
it is unclear how
replica numbers are incremented (e.g., per peer) and what receiving peers
should actually do with this number. Is it important to store the value or
would a boolean be sufficient so that the peer knows that it's a
replica?"

Revised:

Added text explaining that replica numbers are allocated and
interpreted by the topology plugin.

Explained how CHORD-RELOAD interprets the replica numbers.

3) PG Minor issue 1: Resource-ID used before introduction

Added explicative text in 1.1:

   The RELOAD network is not only a messaging network.  It is also a
   storage network, albeit one designed for small-scale transient
   storage rather than for bulk storage of large objects.  Records are
   stored under numeric addresses, called Resource-IDs, which occupy the
   same space as node identifiers.  Peers are responsible for storing
   the data associated with some set of addresses as determined by their
   Node-ID.  For instance, we might say that every peer is responsible
   for storing any data value which has an address less than or equal to
   its own Node-ID, but greater than the next lowest Node-ID.  Thus,
   Node-20 would be responsible for storing values 11-20


4) PG Minor Issue 2: Language in Forwarding and Link Management Layer
definition clumsy.

Revised as suggested to:

Forwarding and Link Management Layer:  Stores and implements the
      Routing Table by providing packet forwarding services between
      nodes.  It also handles establishing new links between nodes,
      including setting up connections for overlay links across NATs
      using ICE.


5) PG Minor Issue 3: Change "link layer" to "overlay link layer" in
definition of "overlay link layer".

Changed as suggested.


6) PG Minor Issue 4: Add "may" to last para of 1.2

Changed "nodes communicate with a central provisioning infrastructure"
to "nodes may communicate with a central provisioning infrastructure"


7) PG Minor Issue 5: in 1.3 change TLS-PSK to TLS-PSK/TLS-SRP

Done.


8) PG Minor Issue 6: Change in Terminology definition

Changed "Terms in used this document are defined inline when used" to
"Terms in this document are defined inline when used"


9) PG Minor Issue 7: Definition of Bootstrap node

Was:

Bootstrap Node:  A network node used by Joining Nodes to help locate
      the Admitting Peer

Suggested change:

Bootstrap Node: A network node used by Joining Nodes to help
  accessing the overlay by forwarding messages to peers

Retained original definition following review between editors and authors.


10) PG Minor Issue 8: Clarify definition of Connection Table

Changed as suggested to:

   Connection Table:  Contains connection information for the set of
      nodes to which a node is directly connected, which include nodes
      that are not yet available for routing.


11) PG Minor Issue 9: Clarify "invalid" in definition of Node-OD

New text:

   Node-ID:  A value of fixed but configurable length that uniquely
      identifies a node.  Node-IDs of all 0s and all 1s are reserved; a
      value of zero is not used in the wire protocol but can be used to
      indicate an invalid node in implementations and APIs; the Node-ID
      of all 1s is used on the wire protocol as a wildcard.


12) PG Minor Issue 10: Change "plugin algorithm" to "topology plugin
algorithm" in definition of Responsible Peer.

Changed as suggested.


13) PG Minor Issue 11: Change "An Usage" to "A Usage" in definition of Usage

Changed as suggested.


There were also several small changes made as discussed on the P2PSIP
mailing list.