Re: [CCAMP] AD review of draft-ietf-ccamp-assoc-ext

"Adrian Farrel" <adrian@olddog.co.uk> Fri, 10 August 2012 01:46 UTC

Return-Path: <adrian@olddog.co.uk>
X-Original-To: ccamp@ietfa.amsl.com
Delivered-To: ccamp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8B0F721F861F for <ccamp@ietfa.amsl.com>; Thu, 9 Aug 2012 18:46:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.451
X-Spam-Level:
X-Spam-Status: No, score=-2.451 tagged_above=-999 required=5 tests=[AWL=0.148, BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9RWQvsuuvMIf for <ccamp@ietfa.amsl.com>; Thu, 9 Aug 2012 18:46:16 -0700 (PDT)
Received: from asmtp1.iomartmail.com (asmtp1.iomartmail.com [62.128.201.248]) by ietfa.amsl.com (Postfix) with ESMTP id B78C621F8624 for <ccamp@ietf.org>; Thu, 9 Aug 2012 18:46:15 -0700 (PDT)
Received: from asmtp1.iomartmail.com (localhost.localdomain [127.0.0.1]) by asmtp1.iomartmail.com (8.13.8/8.13.8) with ESMTP id q7A1kEv1019264; Fri, 10 Aug 2012 02:46:14 +0100
Received: from 950129200 (dsl-sp-81-140-15-32.in-addr.broadbandscope.com [81.140.15.32]) (authenticated bits=0) by asmtp1.iomartmail.com (8.13.8/8.13.8) with ESMTP id q7A1kChE019256 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Fri, 10 Aug 2012 02:46:13 +0100
From: Adrian Farrel <adrian@olddog.co.uk>
To: 'Lou Berger' <lberger@labn.net>, adrian@olddog.co.uk
References: <021a01cd7536$2104aa10$630dfe30$@olddog.co.uk> <50227712.4010203@labn.net>
In-Reply-To: <50227712.4010203@labn.net>
Date: Fri, 10 Aug 2012 02:46:10 +0100
Message-ID: <056001cd7699$eb953330$c2bf9990$@olddog.co.uk>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AQH2xGWI71ErEuAv2SBWNzwa8SIWFAJTXtInlu0K0eA=
Content-Language: en-gb
Cc: draft-ietf-ccamp-assoc-ext.all@tools.ietf.org, 'CCAMP' <ccamp@ietf.org>
Subject: Re: [CCAMP] AD review of draft-ietf-ccamp-assoc-ext
X-BeenThere: ccamp@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: adrian@olddog.co.uk
List-Id: Discussion list for the CCAMP working group <ccamp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ccamp>, <mailto:ccamp-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ccamp>
List-Post: <mailto:ccamp@ietf.org>
List-Help: <mailto:ccamp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ccamp>, <mailto:ccamp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 10 Aug 2012 01:46:17 -0000

Hi,

Nearly there. See in line.

Thanks or the work.

Adrian

> > To start with, a key question:
> >
> > Why does the working group want to publish this as an RFC when there
> > is no immediate intention to implement for any of the many scenarios
> > described in the document?
> >
> > Will this become just another Standards Track RFC that gathers dust
> > and obfuscates the real protocol specs, or is there good reason to
> > publish it?
> >
> 
> The document was motivated to support applications such as defined in
> draft-ietf-ccamp-rsvp-resource-sharing (whose authors say they intend to
> revive this work now that the foundation work has reach maturity.)

OK. I think that this and the other responses probably tip it towards
publication. It feels a little premature, but not overly.

> > I can see how this updates 4872.
> >
> > I am not convinced about this being an update to 2205, 3209 and 3473.

[snip]

The bottom line here appears to be:
- leave updates 4872 
- remove updates 2205, 3209, 3473
- retain text in Section 3
- don't add updates 4873

> > Section 1
> >
> > Some ambiguity, since it looks like the extension is to recovery
> > contexts other than GMPLS!
> >
> > OLD
> >    This document expands the possible usage of the ASSOCIATION object to
> >    non-GMPLS recovery contexts.
> > NEW
> >    This document expands the possible usage of the ASSOCIATION object to
> >    contexts other than GMPLS recovery.
> > END
> 
> I agree -- looking at it again after all this time.
> 
> How about (in multiple places)
> OLD
> non-GMPLS recovery
> NEW
> non-GMPLS and non-recovery

wfm

> > Section 1 Voice Call Waiting
> >
> >        However,
> >        there is no way in RSVP today to share the resources between the
> >        A->B and A->C subflows of the call since by definition the RSVP
> >        reservations for these subflows must have different IP addresses
> >        in the SESSION objects.
> >
> > Since you are defining such a mechanism, "there is no way today" is not
> > true. I suggest...
> >
> >        Since, by definition, the RSVP reservations for the subflows A->B
> >        and A->C of the call must have different IP addresses in the
> >        SESSION objects, this document defines a new mechanism to
> >        associate the subflows and allow them to share resources.
> 
> looks good to me. (assuming my co-authors don't object.)

You have acks

> > Similarly...
> >
> > OLD
> >      o Voice Shared Line:
> >        A single number that rings multiple endpoints (which may be
> >        geographically diverse), such as phone lines on a manager's desk
> >        and their assistant.  A VoIP system that models these calls as
> >        multiple P2P unicast pre-ring reservations would result in
> >        significantly over-counting bandwidth on shared links, since
> >        today unicast reservations to different endpoints cannot share
> >        bandwidth.
> > NEW
> >      o Voice Shared Line:
> >        A voice shared line is a single number that rings multiple
> >        endpoints (which may be geographically diverse), such as phone
> >        lines to a manager's desk and to their assistant.  A VoIP system
> >        that models these calls as multiple P2P unicast pre-ring
> >        reservations would result in significantly over-counting
> >        bandwidth on shared links, since RSVP unicast reservations to
> >        different endpoints cannot share bandwidth.  So a new mechanism
> >        is defined in this document allowing separate unicast
> >        reservations to be associated and share resources.
> > END
> 
> okay (assuming my co-authors don't object.)

You have acks

> > And...
> >
> > OLD
> >      o Symmetric NAT:
> >        RSVP permits sharing of resources between multiple flows
> >        addressed to the same destination D, even from different senders
> >        S1 and S2.  However, if D is behind a NAT operating in symmetric
> >        mode [RFC5389], it is possible that the destination port of the
> >        flows S1->D and S2->D may be different outside the NAT.  In this
> >        case, these flows cannot share resources using RSVP today, since
> >        the SESSION objects for these two flows outside the NAT would
> >        have different ports.
> > NEW
> >      o Symmetric NAT:
> >        RSVP permits sharing of resources between multiple flows
> >        addressed to the same destination D, even from different senders
> >        S1 and S2.  However, if D is behind a NAT operating in symmetric
> >        mode [RFC5389], it is possible that the destination port of the
> >        flows S1->D and S2->D may be different outside the NAT.  In this
> >        case, these flows cannot share resources using RSVP, since the
> >        SESSION objects for these two flows outside the NAT have
> >        different ports.  This document defines a new mechanisms to
> >        associate these flows and allow them to share resources.
> > END
> 
> okay (assuming my co-authors don't object.)

You have acks

> > Globally...
> >
> > s/extended ASSOCIATION/Extended ASSOCIATION/
> 
> sure
> 
> > Section 1
> >
> > OLD
> >    This document also defines the extended ASSOCIATION objects which can
> >    be used in the context of Transport Profile of Multiprotocol Label
> >    Switching (MPLS-TP).  Although, the scope of the extended ASSOCIATION
> >    objects is not limited to MPLS-TP.
> > NEW
> >    This document also defines the Extended ASSOCIATION objects which can
> >    be used in the context of the Transport Profile of Multiprotocol
> >    Label Switching (MPLS-TP).  The scope of the Extended ASSOCIATION
> >    objects is not limited to MPLS-TP.
> > END
> 
> sure.
> 
> > ---
> >
> > As with the previous ambiguity...
> >
> > OLD
> > 3. Non-GMPLS Recovery Usage
> > NEW
> > 3. Uses other Than GMPLS Recovery
> > END
> 
> propose same change as above: Non-GMPLS and Non-Recovery Usage

OK

> > Section 3.1
> >
> > s/defined generic/defines generic/
> 
> thanks.
> 
> > Section 3.1.2
> >
> >    A node that wishes to
> >    allow downstream nodes to associate Path state across RSVP sessions
> >    MUST include an ASSOCIATION object in the outgoing Path messages
> >    corresponding to the RSVP sessions to be associated.
> >
> > Yuck!
> >
> > Are the sessions to be associated in the outgoing Path messages or the
> > Association object, or both. Actually, I don't think this needs a MUST,
> > but can be converted to descriptive text as follows.
> 
> Agreed. This sentence is clearly subject to misinterpretation and must
> be fixed!
> 
> >    A node that wishes to allow downstream nodes to associate Path state
> >    across RSVP sessions sends a Path message corresponding to one RSVP
> >    session and includes in that message an ASSOCIATION object that
> >    indicates the associated RSVP sessions.
> 
> I think this actually doesn't match our intent.
> 
> See below for proposed wording as I think it's easier to parse the
> sentences changes/together.
> 
> > Then you have...
> >
> >    In the absence
> >    of Association Type-specific rules for identifying association, the
> >    included ASSOCIATION objects MUST be identical across all associated
> >    sessions.
> >
> > I know what you mean, but what you have said would require that a Path
> > message must contain an Association object that refers to itself. I
> > think what you need has to be more verbose to be accurate.
> >
> >    In the absence
> >    of Association Type-specific rules for identifying association, each
> >    Path message for a session in a set of associated sessions MUST
> >    include an ASSOCIATION object that indicates all the other sessions
> >    in the set.
> 
> how about:
>    To indicate association between multiple sessions, an appropriate
>    ASSOCIATION object MUST be included in the outgoing
>    Path messages corresponding to each of the associated sessions.
>    In the absence of Association Type-specific rules for identifying
>    association, the included ASSOCIATION object MUST be identical.

OK

> > 3.1.1 vs 3.2.1
> >
> > In 3.1.1 you have...
> >    Relative ordering of ASSOCIATION objects of the same
> >    type SHOULD be preserved by transit nodes.
> 
> note this is path processing,
> 
> > In 3.2.1 you have...
> >    Relative ordering of ASSOCIATION objects of the same
> >    type MUST be preserved by transit nodes.  Association type specific
> >    ordering requirements MAY be defined in the future.
>
> Note this is resv processing.
> 
> > 1. Why is 3.1.1 SHOULD and 3.1.2 MUST?
> 
> I'm not sure, other than 3.1.2 is new so there's no chance of placing a
> new requirement on implementations of 4872&3 (which only use association
> objects in Path messages.)
> 
> I'm fine with should for both.
> 
> Co-authors?

Francois seems to indicate SHOULD and SHOULD is OK.

> > 2. Why does 3.2.1 consider association type-specific rules, but these
> >    are not in 3.1.1?
> 
> 3.1.1 relates to path messages and we didn't want to impose new
> requirements on implementations of 4872&3.
> 
> > 3. s/type specific/Type-specific/
> 
> sure.
> 
> > 4. Why "MAY" not "may"?
> 
> over zealousness.  i.e., your right!
> 
> > 3.2.2
> >
> > s/This section apply/This section applies/
> 
> Thanks.
> 
> > 3.3.1
> >
> >    Once an association is identified, resources SHOULD be shared across
> >    the identified sessions.
> >
> > This use of "SHOULD" begs the question: under what circumstances MAY
> > resource sharing not be applied?
> 
> actual resource allocation is really an implementation choice and
> different internal implementation choices.  We didn't want to overly
> constrain an implementation. "is expected" is really what we mean, but
> how do you say this in 2119 language?

I think you are fine using SHOULD in this case. But you need to add
...although implementations MAY vary this according to local policy and
resource-sharing capabilities.

(Note that Francois proposed to promote this to a MUST, which would be OK, but
doesn't seem to be the original intent.)

> > Globally...
> >
> > Please be consistent with:
> > - Association ID
> > - association-id
> 
> okay.
> 
> > Section 4.1
> >
> > Global Association Source: 4 bytes
> >
> >       This field contains a value that is a unique global identifier.
> >       This field MAY contain the 2-octet or 4-octet value of the
> >       provider's Autonomous System Number (ASN).  It is expected that
> >       the global identifier will be derived from the globally unique ASN
> >       of the autonomous system hosting the Association Source.  The
> >       special value of zero (0) indicates that no global identifier is
> >       present. Note that a Global Association Source of zero SHOULD be
> >       limited to entities contained within a single operator.
> >
> > Given the statement that the content is globally unique, I don't think
> > there is room for you to pontificate about how this field might be
> > filled. You need to make a definitive statement. Otherwise the content
> > cannot be guaranteed to be globally unique (unless you envisage a
> > central registration system!).
> 
> Humm this text is actually lifted from 6370 which says:
> 
>    Quoting from RFC 5003, Section 3.2:
>       The global ID can contain the 2-octet or 4-octet value of the
>       provider's Autonomous System Number (ASN).  It is expected that
>       the global ID will be derived from the globally unique ASN of the
>       autonomous system hosting the PEs containing the actual AIIs.  The
>       presence of a global ID based on the operator's ASN ensures that
>       the AII will be globally unique.
> 
> How about:
> 
>     This field contains a value that is a unique global identifier.
>     This field MAY contain the Global_ID as defined in [RFC6370].
>     The special value of zero (0) indicates that no global identifier
>     is present. Note that a Global Association Source of zero SHOULD be
>     limited to entities contained within a single operator.

Notwithstanding the problems of ambiguity introduced in RFC 5003 (the text you
quote is poor, but section 3.2 is clearer about the actual content of the
identifier) *this* document must not be ambiguous. Noting also that RFC 5003
allows a provider to decide to not bother with global uniqueness.

So, I would prefer you to write...

     This field contains a value that is a unique global identifier
     using the Global_ID as defined in [RFC6370] or the value zero (0).
     The special value of zero indicates that no global identifier is
     present. Note that a Global Association Source of zero SHOULD be
     limited to entities contained within a single operator.

> > Section 4.1
> >
> >    Extended Association ID: variable, 4-byte aligned
> >
> >       This field contains data that is additional information to support
> >       unique identification.  The length and contents of this field is
> >       determined by the Association Source.  This field MAY be omitted,
> >       i.e., have a zero length.  This field MUST be padded with zeros
> >       (0s) to ensure 32-bit alignment.
> >
> > This is confusing. I think that the length of the field is chosen by the
> > Association source and determined by the Length field of the Association
> > object.
> >
> > But your text implies that the contents of the field may be different
> > from a four octet quantity. Since you have not included a separate
> > length indicator, this cannot be. The object length must always be a
> > multiple of 4 (says RFC 2205) and so there is no difference between a
> > zero padded field and a field where the zeros have meaning.
> >
> > You *could* say that the length of this field is Association Type-
> > specific, but that would be ugly.
> 
> How about:
>    Extended Association ID: variable, 4-byte aligned
> 
>       This field contains data that is additional information to support
>       unique identification.  The length and contents of this field is
>       determined by the Association Source.  The length of this field
>       is derive from the object Length field and as such MUST have a
>       zero length or be 4-byte aligned.  A zero length indicates that
>       this field is omitted.

Still having trouble with "determined by".  Try "dependent on".
s/derive/derived/

> > While you're at it, please note that draft-ietf-ccamp-assoc-info has
> > been published as RFC 6689
> 
> Sure.