Re: [forces] Avoiding need to issue a draft every time WAS(Re: FEO events

Joel Halpern Direct <jmh.direct@joelhalpern.com> Thu, 20 November 2014 16:13 UTC

Return-Path: <jmh.direct@joelhalpern.com>
X-Original-To: forces@ietfa.amsl.com
Delivered-To: forces@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CDFCF1A1ABB for <forces@ietfa.amsl.com>; Thu, 20 Nov 2014 08:13:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level:
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-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 m-TVFXY2UDHf for <forces@ietfa.amsl.com>; Thu, 20 Nov 2014 08:13:24 -0800 (PST)
Received: from mailb2.tigertech.net (mailb2.tigertech.net [208.80.4.154]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DFDAC1A1A65 for <forces@ietf.org>; Thu, 20 Nov 2014 08:13:23 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by mailb2.tigertech.net (Postfix) with ESMTP id 90C4E1C0806; Thu, 20 Nov 2014 08:13:23 -0800 (PST)
X-Virus-Scanned: Debian amavisd-new at b2.tigertech.net
Received: from Joels-MacBook-Pro.local (unknown [212.214.9.162]) (using TLSv1 with cipher ECDHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by mailb2.tigertech.net (Postfix) with ESMTPSA id 53E871C00AC; Thu, 20 Nov 2014 08:13:22 -0800 (PST)
Message-ID: <546E1320.3080701@joelhalpern.com>
Date: Thu, 20 Nov 2014 11:13:20 -0500
From: Joel Halpern Direct <jmh.direct@joelhalpern.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.6.0
MIME-Version: 1.0
To: Jamal Hadi Salim <hadi@mojatatu.com>
References: <CAAFAkD9LhtrpCe2QPkz67O+G9t5L6qkfQyF0=3cOGtfiQgo8ZQ@mail.gmail.com> <546E0992.8000300@joelhalpern.com> <CAAFAkD9Q6HE-X+00vz4gVk_ao9wffsZ5ru87qF+HP24H6E8_2g@mail.gmail.com> <546E0E4F.4010502@joelhalpern.com> <CAAFAkD_9jW+z8C-Sj3mquCvmy_T3CwHYJKRKLUrXx4oNbMSe9A@mail.gmail.com>
In-Reply-To: <CAAFAkD_9jW+z8C-Sj3mquCvmy_T3CwHYJKRKLUrXx4oNbMSe9A@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: http://mailarchive.ietf.org/arch/msg/forces/8heAPPRFklFQhXcd7XqWTbN1YqM
Cc: Julian Reschke <julian.reschke@gmx.de>, forces <forces@ietf.org>
Subject: Re: [forces] Avoiding need to issue a draft every time WAS(Re: FEO events
X-BeenThere: forces@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: ForCES WG mailing list <forces.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/forces>, <mailto:forces-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/forces/>
List-Post: <mailto:forces@ietf.org>
List-Help: <mailto:forces-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/forces>, <mailto:forces-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 20 Nov 2014 16:13:33 -0000

You can always create parallel classes (gre-augmenting-class1) which are 
used just to hold extra configuration without being in the data path. 
Yes, it is a bit awkward as you can have the back-pointer but no 
forward-pointer.  But it works.  And it requires no RFC.  Just use the 
FCFS portion of the registry.

Yours,
Joel

On 11/20/14, 10:58 AM, Jamal Hadi Salim wrote:
> On Thu, Nov 20, 2014 at 10:52 AM, Joel Halpern Direct
> <jmh.direct@joelhalpern.com> wrote:
>> Subclassing is precisely designed to provide augmentation.
>> You can also do associated classes / instances (which is what folks usually
>> get with augmentation) but I prefer subclassing.
>>
>
> Sub classing requires a new class identity.
>
> If i defined a port LFB and then inherited into
> a gre LFB it makes sense because I need most of the fields
> port has to offer; i can override some of them and i
> can augment.
>
> But all i wanted was to add a new field to gre meaningful
> to gre, it doesnt make sense i go and subclass that.
> My initial thinking (before Julian commented) was we change
> the version. The scaling problem i am describing here is
> this idea of adding new fields in self-contained LFB classes
> is the way of life in open source. And people survive fine without
> versioning.
>
> cheers,
> jamal
>
>> Yours,
>> Joel
>>
>> On 11/20/14, 10:50 AM, Jamal Hadi Salim wrote:
>>>
>>> On Thu, Nov 20, 2014 at 10:32 AM, Joel M. Halpern <jmh@joelhalpern.com>
>>> wrote:
>>>>
>>>> I think that there are several issues combined here.
>>>>
>>>> We already have mechanisms so that anyone can define LFBs.  And that
>>>> includes new subclasses of existing LFBs.  Note that he information as to
>>>> what LFB classes and subclasses an FE supports is easily discoverable,
>>>> by design.
>>>>
>>>
>>> That part works well.
>>>
>>> Lets put FEPO/FEO to the side for the sake of discussion.
>>> Say i defined a port LFB and I publish it and it ends up being RFC.
>>> And then two months down the road i would like to add a new
>>> component - the process requires me to publish a new document
>>> and go through the same publication. That is manageable if the
>>> churn stops at some point. It never stops in open source.
>>> So the idea that i have to create a document and go through a standards
>>> process doesnt scale.
>>>
>>>> There is the question of whether event mechanism should be more easily
>>>> extended than a new subclass.  I have trouble seeing how we could
>>>> do that,
>>>> since in many instances it will require different code in the FE to
>>>> generate
>>>> new events.
>>>>
>>>
>>> I think the sub-classing issue also works well. What i am refering to
>>> is more class "augmentation" than it is sub-classing.
>>>
>>>> Then there is the question of changes to the FEO (or FEPO).  For
>>>> itneroperability, those have to be very stable.  In this case, for
>>>> example,
>>>> if your CE needs those events, you can only work with FEs that have been
>>>> upgraded to generate those events from the FEO.   If we allow random
>>>> changes
>>>> to the FEO, the probability of interoperability between independent
>>>> implementations is very low.  So while I am sympathetic, I am reluctant
>>>> to
>>>> go down a path the makes interoperability harder.
>>>>
>>>
>>> We can make an exception for FEPO/FEO. But think of other
>>> classes which merely require a new component augmented
>>> (not subclassing).
>>>
>>> cheers,
>>> jamal
>>>
>>