Re: [RTG-DIR] RtgDir review:draft-ietf-mpls-ldp-gtsm-06.txt

Carlos Pignataro <cpignata@cisco.com> Mon, 28 May 2012 15:28 UTC

Return-Path: <cpignata@cisco.com>
X-Original-To: rtg-dir@ietfa.amsl.com
Delivered-To: rtg-dir@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AD9DE21F8627 for <rtg-dir@ietfa.amsl.com>; Mon, 28 May 2012 08:28:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -110.298
X-Spam-Level:
X-Spam-Status: No, score=-110.298 tagged_above=-999 required=5 tests=[AWL=-0.300, BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_72=0.6, RCVD_IN_DNSWL_HI=-8, USER_IN_WHITELIST=-100]
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 RMXxB8jG6wQP for <rtg-dir@ietfa.amsl.com>; Mon, 28 May 2012 08:28:56 -0700 (PDT)
Received: from rcdn-iport-7.cisco.com (rcdn-iport-7.cisco.com [173.37.86.78]) by ietfa.amsl.com (Postfix) with ESMTP id 5DB9D21F8623 for <rtg-dir@ietf.org>; Mon, 28 May 2012 08:28:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=cpignata@cisco.com; l=39514; q=dns/txt; s=iport; t=1338218936; x=1339428536; h=subject:mime-version:from:in-reply-to:date:cc:message-id: references:to; bh=WcZWU5ymz7sGNPIbbGLsbdhRr9XyG+s15XTPdhRxQXk=; b=FVNXIxijSYKAggQzFYMwcDLvngezFlRN8Am2LL0Tdi7HDdrNfBVIu3x+ fi/2EylFMbvUJAqQUEZ6Pvn09v69R4l5fwukw5O2lJBgeJAiuBkTj5szl C12ITPIfL7oBSkT1DhE9N9Zvke09Lv3963xPgmttj/sz3fRHc8wcxV1GF s=;
X-Files: signature.asc : 203
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: ArYFAG2Zw0+tJV2Y/2dsb2JhbABFiBKjcQGJW4EHghcBAQEDARIBB1IKAwULCxEDAQEBASABBgdGCQgGEwkLBwQDh2QFC5hCnzKLA4RfYAOONIZjgQ+MfYFlgS2BTw
X-IronPort-AV: E=Sophos; i="4.75,671,1330905600"; d="asc'?scan'208,217"; a="87288763"
Received: from rcdn-core-1.cisco.com ([173.37.93.152]) by rcdn-iport-7.cisco.com with ESMTP; 28 May 2012 15:28:55 +0000
Received: from rtp-cpignata-8914.cisco.com (rtp-cpignata-8914.cisco.com [10.117.115.53]) by rcdn-core-1.cisco.com (8.14.5/8.14.5) with ESMTP id q4SFSs5J016459; Mon, 28 May 2012 15:28:54 GMT
Mime-Version: 1.0 (Apple Message framework v1278)
Content-Type: multipart/signed; boundary="Apple-Mail=_F0015F48-72AD-417B-B414-453FE5ABCB98"; protocol="application/pgp-signature"; micalg="pgp-sha1"
From: Carlos Pignataro <cpignata@cisco.com>
In-Reply-To: <C0AC8FAB6849AB4FADACCC70A949E2F123BAF520E6@EUSAACMS0701.eamcs.ericsson.se>
Date: Mon, 28 May 2012 11:28:53 -0400
Message-Id: <0C0765F2-3507-4C14-8976-6E992EF8D806@cisco.com>
References: <5E893DB832F57341992548CDBB333163A577E0C9D2@EMBX01-HQ.jnpr.net> <C0AC8FAB6849AB4FADACCC70A949E2F123BAF51FE6@EUSAACMS0701.eamcs.ericsson.se> <A08DC03A-B2FD-4FDC-9DAE-46D66220D798@cisco.com> <C0AC8FAB6849AB4FADACCC70A949E2F123BAF520E6@EUSAACMS0701.eamcs.ericsson.se>
To: Eric Gray <eric.gray@ericsson.com>
X-Mailer: Apple Mail (2.1278)
X-Mailman-Approved-At: Mon, 28 May 2012 08:45:07 -0700
Cc: "rtg-dir@ietf.org" <rtg-dir@ietf.org>, "draft-ietf-mpls-ldp-gtsm@tools.ietf.org" <draft-ietf-mpls-ldp-gtsm@tools.ietf.org>, "BRUNGARD, DEBORAH A" <db3546@att.com>, "rtg-ads@tools.ietf.org" <rtg-ads@tools.ietf.org>
Subject: Re: [RTG-DIR] RtgDir review:draft-ietf-mpls-ldp-gtsm-06.txt
X-BeenThere: rtg-dir@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Routing Area Directorate <rtg-dir.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtg-dir>, <mailto:rtg-dir-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtg-dir>
List-Post: <mailto:rtg-dir@ietf.org>
List-Help: <mailto:rtg-dir-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtg-dir>, <mailto:rtg-dir-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 28 May 2012 15:28:58 -0000

Eric,

You are bringing up a real problem that we have not solved. Perhaps mostly theoretical, in theory, but real nonetheless -- though, in practice, I have seen this become an issue in other protocols. Thank you.

I have first-hand appreciation for the problem space you are describing, so I wanted to close the loop and follow-up with this response.

Hopefully this response is helpful and useful -- perhaps we can even take an action or two from it.

There are two dimensions: one generic and one specific to the I-D you are reviewing. And I believe that your proposed solution is wrong, both in the generic and specific cases.

Generic:

Clearly there is a potential race condition on a set of bits marked as "Reserved" / MBZ, that do not have an assignment strategy/rule -- agreed. Like you say (or imply), using RFC metadata like "Updates", etc is not a solution, it is a patch.

However, I strongly believe that narrowcasting and constraining the context of a figure is not the solution either. RFC definitions should be "as simple as possible, but NOT simpler", and removing relevant and useful context is not substitute for lack of bit governance.

I believe that the real solution is to have a central single source of truth for the definitions, appropriate pointers, and explicit and well defined allocation strategies. All of these requirements are already solved with IANA providing that service. To me, the real problem is that these Reserved bits are not managed by IANA.

The issue is not trivial, however, because (as Adrian had pointed out), those consecutive bits are not typedef'ed (i.e., they could be a bit-field, or a 16-bit unsigned integer field and some extra bits, 3 independent fields, or...)

To be honest, the same can happen with any field already assigned and not only Reserved -- which is I believe part of the point you are making. It has happened already (having a "Type" field, and then "borrowing" the most-significant bit to use it as "Mandatory" vs. "Optional" TLV) -- but it is even less likely than a collision on an unassigned set of bits. The "Reserved" is more "problematic" than existing fields.

Because unless we only copy the field itself alone, there will always be context, and it is rather arbitrary to set the context on a 16-bit short -- so the natural context (i.e., the context from the place being updated) is most useful.

I believe (although I could argue either way of this, and I do not think it could be "won" since both sides of the argument can hold) that the right approach is to reserve and manage via IANA -- existing fields, values, bitfields, but also Reserved bits.

In fact, we had started down this road -- doing "community service" with this I-D http://tools.ietf.org/html/draft-ietf-mpls-ldp-iana-01 but there was discussion around whether it was the right thing to manage Reserved fields (as a set of bits) because they could be assigned with a different field type (bitfield, integer of different sizes, etc), and "typecasting" a IANA definition was considered odd.

In retrospect, perhaps it is not off to Reserve the Reserved field in IANA and centralize the definition.

Specific to draft-ietf-mpls-ldp-gtsm:

In the specific case of this bit being assigned from Reserved in this particular TLV, draft-ietf-mpls-ldp-gtsm uses:

     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |0|0| Common Hello Parms(0x0400)|      Length                   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |      Hold Time                |T|R|G|   Reserved              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

And I believe this is the best choice because it is the closest to the Figure from the RFC that it is updating -- it is the natural boundary. Basically this is the same figure used in RFC 5036, so it maximizes the graphical correlation and context. http://tools.ietf.org/html/rfc5036#section-3.5.2

From this, "0|0" is unlikely to change unless there is a major LDP ginormous change, the type 0x0400 won't change because it is the Type, the Length won't change (as the field that it is, and also as the value), then we have "Hold Time" (most unlikely to change again).

Conversely, you propose we use:

    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |T|R|G|   Reserved              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

And I believe this is wrong on quite a number of reasons. First, because it shifts alignment in the 32-bit word, basically defeating the Principle of Least Astonishment removing the graphical anchor. Second, because the fields that it is not including are the ones that (in practice) will not change!, Third, because an implementor will have much more trouble correlating this to where it is coming from in RFC 5036, especially a visual one :-)

And fourth and last, because it still includes the "Reserved" which is the one that could most likely be assigned (in other RFC in parallel, in the future, etc...

Even when a reviewer needs to "check I did not typo bits" -- thank you for that :-)

My perspective is that we would not gain anything and we would loose at least those 3 points. In fact, that it would be a lot "messier" and much "less clean" to over-trim the figure from what's in RFC 5036.

And the alternative, which is where the logic you present is leading me, is to define the bit as in RFC 3514 :-) http://tools.ietf.org/html/rfc3514#section-2

   The G-bit is laid out as follows:

             0
            +-+
            |G|
            +-+

Moreover, we started this trying to do what we considered was the right thing http://tools.ietf.org/html/draft-ietf-mpls-ldp-iana-01#section-2.3 but abandoned this approach.

Thanks,

-- Carlos.


On May 25, 2012, at 4:04 PM, Eric Gray wrote:

> When I said it would be "cleaner", it was because your draft doesn't modify
> the rest of the TLV.
>  
> As a general rule, it is "cleaner" not to include anything that you are not
> modifying (beyond whatever you believe is minimal acceptable context).
>  
> If some later draft were to come along and modify - or extend - some
> other part of the TLV, the issue would then be - does this later document
> update this one, or RFC 5036?
>  
> That could lead to a mess.  Which is pretty much what it means not to
> be "clean."
>  
> However, it doesn't seem terribly likely that someone else is going to alter
> another part of this TLV, so this is largely theoretical, and a minor issue.
>  
> As a secondary factor, the fact that you repeated the entire TLV meant
> that there were just that many other bits I had to make sure you didn't
> "typo" in some way, or make other (un)intended changes to.
>  
> From a point of view of readability, it should be relatively clear to anyone
> implementing these changes to their LDP implementation, where the flags
> field is in the modified TLV.  In fact, I suspect that - if you just showed the
> flags field, this would make the meaning clearer and easier to implement
> to many readers.
>  
> And this too is a minor issue.  For one thing, it is a matter of opinion.  As
> I mentioned in my other reply, it's okay with me if you don't want to adopt 
> any of the changes implied in my comments.
>  
> On your paraphrasing the quote about a picture being worth a thousand
> words, the jury's still out on just how true that is.  Different people think
> and comprehend in different ways.  For me, a picture is worthless unless
> the words are there to explain it.
>  
> --
> Eric
> 
> From: Carlos Pignataro [mailto:cpignata@cisco.com] 
> Sent: Friday, May 25, 2012 2:46 PM
> To: Eric Gray
> Cc: rtg-ads@tools.ietf.org; BRUNGARD, DEBORAH A; rtg-dir@ietf.org; draft-ietf-mpls-ldp-gtsm@tools.ietf.org
> Subject: Re: RtgDir review:draft-ietf-mpls-ldp-gtsm-06.txt
> Importance: High
> 
> Eric,
> 
> Thanks much for your review! Please see inline.
> 
> On May 25, 2012, at 2:17 PM, Eric Gray wrote:
> 
>> 
>> 
>> Hello, 
>> 
>> I have been selected as the Routing Directorate reviewer for this draft. The Routing Directorate seeks to review all routing or routing-related drafts as they pass through IETF last call and IESG review, and sometimes on special request. The purpose of the review is to provide assistance to the Routing ADs. For more information about the Routing Directorate, please see http://www.ietf.org/iesg/directorate/routing.html 
>> 
>> Although these comments are primarily for the use of the Routing ADs, it would be helpful if you could consider them along with any other IETF Last Call comments that you receive, and strive to resolve them through discussion or by updating the draft. 
>> 
>> Document: draft-ietf-mpls-ldp-gtsm-06.txt 
>> Reviewer: Eric Gray
>> Review Date: 25-May-2012 
>> Intended Status: Standard 
>> 
>> Summary: 
>> 
>> No major issues found. This document is essentially ready for publication.
> 
> Sounds good.
> 
>> 
>> Comments: 
>> 
>> This document is mostly clearly written and easily understood.
> 
> Thanks. Is the "mostly" qualifying clearly written, easily understood, or both? :-) Where is specifically not? It seems the nits you bring up below are not clarifying meaning.
> 
>> 
>> Major Issues: 
>> 
>> No major issues found.
>> 
>> Minor Issues: 
>> ============
>> 
>> Because this draft defines only a new bit assignment as an update to RFC 5036, it 
>> would have been cleaner to have only included the flags field as shown here:
>> 
>> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>> |T|R|G|   Reserved              |
>> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> 
> Thank you for this suggestion. I feel however that furthering the packet context in which the bits reside adds much more to the clarity and removes ambiguity than this proposal. That is, the whole TLV in a figure is more clear than just 3 bits and a reserved without insertion point, and the figure exactly as from the RFC it is updating (RFC 5036) module the updated bit is more unambiguous and easier to find.
> 
>> 
>> To maintain readability, the draft should still say where this field is (that it
>> is part of the Common Hello Parameter TLV).  
> 
> A figure is worth how many words? :-)
> 
>> 
>> In addition, since the definitions of T and R are exactly as given in RFC 5036,
>> the text that currently repeats the definitions for T and R could better have 
>> been written as:
>> 
>> "T and R
>>   As specified in [RFC5036]."
> 
> Sure we could take the common denominator out, but the current form of the definition has more symmetry and rhyme while not wasting too many extra lines...
> 
>     T, Targeted Hello
>        As specified in [RFC5036].
> 
>     R, Request Send Targeted Hellos
>        As specified in [RFC5036].
> 
>     G, GTSM
> ...
> 
>> 
>> This way of representing the changes makes it clearer what the actual changes
>> are.  However, this is a very minor issue.
> 
> Perhaps clarity is relative. I feel that including the contextual fields graphically is more clear than describing it with words, and keeping a per-field list element seems more clear.
> 
> In any case I appreciate you taking the time to comment on this and proposing an alternate representation of those few lines.
> 
>> _________________________________________________________________________________
>> 
>> I am curious why the text under Figure 1 explicitly includes the possibility that 
>> an LSR might implement GTSM capability negotiation but not implement GTSM.  But, 
>> again, this is a very minor issue.
> 
> Do you mean the text immediately underneath Figure 1, or the last paragraph of Section 2.1? If the latter, this is based on an mpls wg review (Adrian's IIRC), which separates the support for GTSM from the understanding of the G bit. While I agree with you, I think the current text is OK because it is unambiguous and complete. 
> 
> Thanks also for pointing this out. I do not expect this will be the case but covering the base.
> 
>> _________________________________________________________________________________
>> 
>> NITs:
>> ====
>> 
>> In the abstract, "packets" should be "packet's."
> 
> Agreed. Changed in my working copy.
> 
>> 
>> First sentence, first paragraph under Figure 1 - "meaingful" should be "meaningful."
> 
> Wow, great catch! I thought I'd run idspell on this...
> 
>> 
>> Second sentence, second paragraph under Figure 1 - "but that it does not" should be
>> "but that does not."
> 
> Yes. Done in my working copy.
> 
> Thanks again for this review!
> 
> -- Carlos.
> 
>> 
>> --
>> Eric Gray
>> 
>> 
>> 
>