Re: [Lsr] Flex Algo merge work, IS-IS and OSPF FAD sub-TLVs

"Les Ginsberg (ginsberg)" <ginsberg@cisco.com> Sun, 20 May 2018 16:33 UTC

Return-Path: <ginsberg@cisco.com>
X-Original-To: lsr@ietfa.amsl.com
Delivered-To: lsr@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E17D412D779 for <lsr@ietfa.amsl.com>; Sun, 20 May 2018 09:33:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.511
X-Spam-Level:
X-Spam-Status: No, score=-14.511 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
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 Pa8LJaBzLrxU for <lsr@ietfa.amsl.com>; Sun, 20 May 2018 09:33:56 -0700 (PDT)
Received: from rcdn-iport-5.cisco.com (rcdn-iport-5.cisco.com [173.37.86.76]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3B59112D72F for <lsr@ietf.org>; Sun, 20 May 2018 09:33:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=17046; q=dns/txt; s=iport; t=1526834036; x=1528043636; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=T6jcd+Mh1g3N5n9qq4zz0VsiThgoeA/PAl6BloKL6oc=; b=AKUcVgFn2BU3ojH0TXLUnbaYH8e+irRYo91Ln8A5pphezHTNlR38DqKg UO35zusZn7QTdywisYTVj88prusaZsnOWHO/FciFtC65cVI/SLw8BnaA0 1bsoPRjFQpGgM/gpkTwoQDFSOEZMBF1gs2HYMpXDTZ3BkrSS7bPHku4bl M=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AHAgCqogFb/5NdJa1RChkBAQEBAQE?= =?us-ascii?q?BAQEBAQEHAQEBAQGDQ2F9KAqDapR8gXl1GpNKgWQLGAuBVIJ1AhqBdyE3FQE?= =?us-ascii?q?CAQEBAQEBAmwcDIUoAQEBAwEBASEROgsFBwQCAQgOAwQBAQECAiYCAgIlCxU?= =?us-ascii?q?ICAIEDgUIgxyBdwgPpG+CHIg9ggoFgQmFeYEzgVQ/gQ4Bgg1KBy6DEQEBgS0?= =?us-ascii?q?BBwoCAUSCWoJUAphMCQKIPYYQgT+DbYJfhHqQUAIREwGBJAEyImFxcBU7gkO?= =?us-ascii?q?CIBeIWYU+b45RgRgBAQ?=
X-IronPort-AV: E=Sophos;i="5.49,423,1520899200"; d="scan'208";a="180261071"
Received: from rcdn-core-11.cisco.com ([173.37.93.147]) by rcdn-iport-5.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 May 2018 16:33:54 +0000
Received: from XCH-RCD-015.cisco.com (xch-rcd-015.cisco.com [173.37.102.25]) by rcdn-core-11.cisco.com (8.14.5/8.14.5) with ESMTP id w4KGXs4V017231 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Sun, 20 May 2018 16:33:54 GMT
Received: from xch-aln-001.cisco.com (173.36.7.11) by XCH-RCD-015.cisco.com (173.37.102.25) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Sun, 20 May 2018 11:33:53 -0500
Received: from xch-aln-001.cisco.com ([173.36.7.11]) by XCH-ALN-001.cisco.com ([173.36.7.11]) with mapi id 15.00.1320.000; Sun, 20 May 2018 11:33:53 -0500
From: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
To: Christian Hopps <chopps@chopps.org>
CC: "Acee Lindem (acee)" <acee@cisco.com>, "lsr@ietf.org" <lsr@ietf.org>
Thread-Topic: [Lsr] Flex Algo merge work, IS-IS and OSPF FAD sub-TLVs
Thread-Index: AQHT7rSaiHAWoyz3a0iRubot8Dm8UqQ1nILggAHAzoD//9yh8IAA0/2AgADBBXA=
Date: Sun, 20 May 2018 16:33:53 +0000
Message-ID: <14aca4c3177e44dabb66995e3187029a@XCH-ALN-001.cisco.com>
References: <612C3B15-9DD2-48C0-A5E5-B999D07AD1D7@cisco.com> <8c0d3e38bfe04b1a973f3cb4285840e8@XCH-ALN-001.cisco.com> <F02D7E3F-15D4-4C8C-89DE-D6F69AA71323@chopps.org> <7686e04b209b4520b5a2f25e96da310d@XCH-ALN-001.cisco.com> <3E609B6F-7AAB-442A-85E4-BBE2BBD4AA70@chopps.org>
In-Reply-To: <3E609B6F-7AAB-442A-85E4-BBE2BBD4AA70@chopps.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.24.73.231]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/lsr/Zv53L6IOU8ykhaXuc9dnfvvfVcs>
Subject: Re: [Lsr] Flex Algo merge work, IS-IS and OSPF FAD sub-TLVs
X-BeenThere: lsr@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Link State Routing Working Group <lsr.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/lsr>, <mailto:lsr-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/lsr/>
List-Post: <mailto:lsr@ietf.org>
List-Help: <mailto:lsr-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/lsr>, <mailto:lsr-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 20 May 2018 16:33:59 -0000

Chris-

I am happy to see that the scope of this discussion is narrowing. I think the scope of what your proposing is much more appropriate for discussion - but we are in still not in agreement.
Please see inline.

> -----Original Message-----
> From: Christian Hopps <chopps@chopps.org>
> Sent: Saturday, May 19, 2018 4:48 PM
> To: Les Ginsberg (ginsberg) <ginsberg@cisco.com>
> Cc: Acee Lindem (acee) <acee@cisco.com>om>; lsr@ietf.org
> Subject: Re: [Lsr] Flex Algo merge work, IS-IS and OSPF FAD sub-TLVs
> 
> 
> 
> > On May 19, 2018, at 12:27 PM, Les Ginsberg (ginsberg)
> <ginsberg@cisco.com> wrote:
> 
> First, please understand that my intent is to have a discussion on the subject
> of when (and when not) to use common definitions. Just because I
> enumerated a bunch of ways that that might be accomplished does not
> mean that I am advocating for all of them or any one in particular. I bet that
> we agree on many of the options not being the right way, but I wanted to list
> all the ways I could imagine doing this so that we as a group could consider
> them during the discussion.
> 
> > Chris -
> ...
> > As we often say "this is software - we can do anything" but please tell me
> WHY this is a good thing?
> > So far the only argument seems to be that you think this make the draft
> "easier to read" - which begs the question as to whether in this particular
> case the current form of the draft (protocol specific encoding sections) is
> hard to read. It isn’t for me.
> 
> I don't agree with the paraphrasing "easier to read". I'm saying that it's better
> to define a thing in one place rather than in define it repeatedly in multiple
> places. Again this is why we have a combined document, right?
> 
> Ah, I see where we may not be understanding each other. I am thinking
> much more about the duplicate IANA registries, not about using 2 sections
> vs. 1 section in the combined document. The registries we are talking about
> are literally copies and I'd like to not have 2 IANA registries to document the
> same thing.
> 
> > I really think you are extending the "combine the WGs" idea beyond where
> it should reasonably go.
> > It has never been a goal to combine the protocols - and once you start
> straying into trying to combine descriptions of protocol specific encoding I
> think that is exactly what you are trying to do - even if only in a modest way.
> 
> That seems like a reasonable way to think about how far we should or
> shouldn't go. So how strict would you say your view is on this "rule"? Is it
> never appropriate to make any compromise on encoding in order to be able
> to share, or is it just this case that you find "too much for too little"?
> 
> > We have already defined combined registries in those cases where we are
> defining an attribute value that is the same for both protocols e.g., IGP
> algorithm and MSD.
> > But trying to extend that and combine the description of the protocol
> specific encoding isn’t appropriate or desirable.
> 
> I agree! IGP algorithm is a great example, and I'm glad you agree that it was a
> good idea. The content of the "Sub-TLVs of the FAD TLV" are in the same way
> shared by both protocols. The types and the values are defined exactly the
> same for both protocols. The *only* difference is the encoding of the type
> (and length) value, the semantics are the same.
> 
[Les:] There is a qualitative difference between having a common registry to identify a protocol independent attribute and having a common registry to define a protocol scoped type value.

I appreciate that in this case we are defining a new container (FAD) which will have sub-containers that are applicable to both protocols. And I agree that it seems very hard to imagine any future sub-container which would not be applicable to both protocols. And I also agree that assigning the same type value to each sub-TLV for both protocols (now and in the future) is practical - and perhaps even desirable.

Nevertheless, the "type" which identifies the sub-container is a protocol scoped attribute.  The fact that we could use a common number in this case does not mean it is conceptually correct to consider the value as protocol independent.

Let's please keep the definitions in registries which have the correct scope - which in the case of TLV/sub-TLV types is per/protocol.

   Les



> So again, is there a more elegant way to define and document that shared
> semantic in one place?
> 
> How about an option 2c
> 
>   2c: Leave the encodings the way they are, and use a common registry to
> define the type/value semantics.
> 
> Thanks,
> Chris.
> 
> >   Les
> >
> >
> >> -----Original Message-----
> >> From: Christian Hopps <chopps@chopps.org>
> >> Sent: Saturday, May 19, 2018 6:15 AM
> >> To: Les Ginsberg (ginsberg) <ginsberg@cisco.com>
> >> Cc: Acee Lindem (acee) <acee@cisco.com>om>; lsr@ietf.org
> >> Subject: Re: [Lsr] Flex Algo merge work, IS-IS and OSPF FAD sub-TLVs
> >>
> >> Hi Les,
> >>
> >> It feels like your response is perhaps reading more into my
> >> suggestion than was intended. I was in no way suggesting we go back
> >> and start combining TLV registries, or that future registries needed to be
> combined unnecessarily.
> >>
> >> I'm looking at this particular case where we have 2 copies of the
> >> same [sub- ]sub-TLV registry that we will be creating as the document
> >> is written. The OSPF definitions for the sub-TLV types are exactly
> >> the same as the IS-IS sub- sub-TLVs ones. In fact option 2 keeps the
> >> containing [sub-]TLV separate and only the [sub-]sub-TLV space is
> combined.
> >>
> >> Isn't it better to define something once and refer to that single definition?
> >> This is the motivation that led us to combining the documents in the
> >> first place, and so I'm simply wondering if we can benefit more from
> >> this same treatment.
> >>
> >> Thanks,
> >> Chris.
> >>
> >> P.S WRT type field length of [sub-]sub-TLVs. We are *defining* the
> >> value content, so of course we can do whatever we want and no
> >> documents about other [sub-]TLV values, types or field lengths
> >> actually applies unless we wish it to.
> >>
> >> P.P.S. WRT scoping. The document defines an IS-IS sub-TLV which is
> >> scoped to the IS-IS Router Capability TLV (242) and defines an OSPF
> >> TLV which is scoped to the Router Information LSA. I think these are
> >> fairly analogous, or at least can be treated as such for
> >> [sub-]sub-TLV definitions. In fact section 5.3 treats them as equal
> >> for defining their use. I don't put this above b/c it's not something
> >> I want to distract from the general discussion and sharing the FAD [sub-
> ]TLV was only option 1 of a list.
> >>
> >>
> >>> On May 18, 2018, at 11:41 AM, Les Ginsberg (ginsberg)
> >> <ginsberg@cisco.com> wrote:
> >>>
> >>> (I never saw Chris's original email either - perhaps it was sent
> >>> during the period when delivery to the alias when compromised.)
> >>>
> >>> I am in full agreement w Acee - it is a VERY BAD idea to try to
> >>> combine
> >> protocol TLV registries.
> >>> There are many reasons for this - here are a few.
> >>>
> >>> 1)In IS-IS the scope of TLV type identifiers is the protocol - in
> >>> OSPF it is the LSA type
> >>>
> >>> 2)There are (obviously) many legacy code points which will make
> >>> consistency at best confusing
> >>>
> >>> 3)Imposing an 8 bit type on OSPF or a 16 bit type on IS-IS is simply
> >>> a non-
> >> starter.  RFC 7356 defines a non-backwards compatible way of doing
> >> this for IS-IS - but does so in a way that preserves the legacy
> >> codepoints - which seems obviously necessary. And introducing a 16
> >> bit length into IS-IS isn't sensible unless we also address the
> >> current 256 LSP number limitation (which RFC 7356 also does).
> >> Suggesting this can be usefully done in a backwards compatible way does
> not make sense to me.
> >>> I cannot imagine why OSPF would be motivated to move to a more
> >> restricted 8 bit type/length model.
> >>>
> >>> I cannot support this suggestion.
> >>>
> >>>  Les
> >>>
> >>>
> >>>> -----Original Message-----
> >>>> From: Lsr <lsr-bounces@ietf.org> On Behalf Of Acee Lindem (acee)
> >>>> Sent: Friday, May 18, 2018 7:29 AM
> >>>> To: Christian Hopps <chopps@chopps.org>
> >>>> Cc: lsr@ietf.org
> >>>> Subject: [Lsr] Flex Algo merge work, IS-IS and OSPF FAD sub-TLVs
> >>>>
> >>>> Hi Chris,
> >>>>
> >>>> Somehow, I lost the mail below and was only able to retrieve it
> >>>> from the archive. Pardon my top posting.
> >>>>
> >>>> While I believe that sharing code points for values, e.g., IGP
> >>>> Algorithm Type, is a good idea, I don’t necessarily think it is a
> >>>> good idea to merge the TLV type registries. It seems to me it would
> >>>> be a poor trade-off to impact optimal protocol encoding including
> >>>> implementation just so we can have a combined IANA registry. It is
> >>>> extremely unlikely that OSPF and IS-IS implementations will ever
> >>>> share a
> >> common TLV parsing library.
> >>>>
> >>>> Note that we did discuss this once before in the context of the
> >>>> OSPF and IS- IS Tunnel Encapsulation drafts. I'd appreciate hearing
> >>>> what other WG members feel with respect to this issue.
> >>>>
> >>>> Thanks,
> >>>> Acee
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> Christian Hopps <chopps@chopps.org> Thu, 17 May 2018 21:07 UTC
> >>>>
> >>>> So in looking at the IANA requests inside the newly merged flex
> >>>> algorithm draft I noticed that the document is creating 2 separate
> >>>> Flex Algorithm Definition sub-tlvs Registries for IS-IS and OSPF
> >>>> with the initial content described in sections:
> >>>>
> >>>> 6.1.  ISIS Flexible Algorithm Exclude Admin Group Sub-TLV 6.2.
> >>>> ISIS Flexible Algorithm Include-Any Admin Group Sub-TLV 6.3.  ISIS
> >>>> Flexible Algorithm Include-All Admin Group Sub-TLV
> >>>>
> >>>> 7.1.  OSPF Flexible Algorithm Exclude Admin Group Sub-TLV 7.2.
> >>>> OSPF Flexible Algorithm Include-Any Admin Group Sub-TLV 7.3.  OSPF
> >>>> Flexible Algorithm Include-All Admin Group Sub-TLV
> >>>>
> >>>> They are basically the same thing (indeed the later OSPF sections
> >>>> refer back to the IS-IS sections), except for one detail AFAICT,
> >>>> the size of the type and length fields.
> >>>>
> >>>> I think we may have some options here to make this a bit more
> elegant.
> >>>>
> >>>> 1. Share the same sub-TLV structure  a. using the OSPF sub-tlv
> >>>> structure (16 bit type and 16 bit len) for both protocols  b. using
> >>>> the IS-IS sub-tlv structure (8 bit type and 8 bit len) for both
> >>>> protocols
> >>>>
> >>>> 2. Use different structure with the same type field size of the  a.
> >>>> more constrained IS-IS 8 bit size  b. less constrained OSPF 16 bit
> >>>> size
> >>>>
> >>>> 3. Define and use some generic method to define shared TLVs like
> >>>> this where the only actual difference is the size of the type and length
> fields.
> >>>>
> >>>>
> >>>> 1, Creates a clean and simple standard, 1 TLV definition and 1
> >>>> sub-TLV registry.
> >>>>
> >>>> 1a, has the property that the length value in IS-IS can't normally
> >>>> exceed an 8 bit value; however, sub-TLV length values are already
> >>>> constrained beyond the field size as sub-TLVs may appear anywhere
> >>>> in
> >> the TLV.
> >>>>
> >>>> 1b, restricts both protocols to 256 types, and perhaps more
> >>>> importantly restricts the sub-TLV length to 257 octets. This is
> >>>> handled all the time in IS-IS using repeated TLVs, but not so much
> >>>> (ever?)
> >> in OSPF.
> >>>>
> >>>>
> >>>> 2. Allows us to at least create a single IANA registry for the
> >>>> sub-tlv types so we aren't duplicating them and their definitions
> >>>> for each
> >> protocol.
> >>>>
> >>>>
> >>>> 3. Is interesting but probably requires some work outside of this
> >> document.
> >>>>
> >>>>
> >>>> This document is serving as our guinea pig for how to merge work so
> >>>> I think it's worth spending some effort on these types of details.
> >>>>
> >>>> Thanks,
> >>>> Chris.
> >>>>
> >>>> _______________________________________________
> >>>> Lsr mailing list
> >>>> Lsr@ietf.org
> >>>> https://www.ietf.org/mailman/listinfo/lsr
> >