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

Jamal Hadi Salim <hadi@mojatatu.com> Thu, 20 November 2014 16:27 UTC

Return-Path: <hadi@mojatatu.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 D912E1A1B0A for <forces@ietfa.amsl.com>; Thu, 20 Nov 2014 08:27:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.978
X-Spam-Level:
X-Spam-Status: No, score=-1.978 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7] 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 PKMzzmN0srPV for <forces@ietfa.amsl.com>; Thu, 20 Nov 2014 08:27:42 -0800 (PST)
Received: from mail-ob0-f177.google.com (mail-ob0-f177.google.com [209.85.214.177]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E54C91A1AFE for <forces@ietf.org>; Thu, 20 Nov 2014 08:27:08 -0800 (PST)
Received: by mail-ob0-f177.google.com with SMTP id va2so2387510obc.22 for <forces@ietf.org>; Thu, 20 Nov 2014 08:27:08 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=jPduSyIn9F6dHLyWRq1140eKdlz13b32SZP58gQ+Ixw=; b=X1LCxNkglqhlcpjoN4YobcXZU576WWYLAMnwMKo71EIrnxZZ6wocasPJe1i7XxaeYz z7pgYEPZsOZ7W4uYmp39yVGQCf97CVaqQFdWq3D+nduGrgVDVcbPNR9HUUeBGVxHfjuA l7lOdCBJBtfsY2V1f3mZsgv7kdZeSljJQRvu84Jj5YwO7N7mnafTDzxkx5itwynSQlZS WoRj7bAsFbvK72ZRf6mSvbM0XpzeIcyhGmmqegRSsXV4v5k1EycN9lxrKIfgkICo15oQ tXyXraTmFr/hCe2SV0FjABulGu9iykm5fO8HE8xW99f7WQx9F1FwfR4gLjQCThQ27JjW +aOA==
X-Gm-Message-State: ALoCoQlN+w8mJFeP7PXx5Cbxwbexh6O9gGXglgaPMXUzlkMW4e+4pAAZKQRj99dvmEZLSDRLA0Cx
X-Received: by 10.60.132.7 with SMTP id oq7mr1329416oeb.61.1416500828311; Thu, 20 Nov 2014 08:27:08 -0800 (PST)
MIME-Version: 1.0
Received: by 10.202.189.11 with HTTP; Thu, 20 Nov 2014 08:26:48 -0800 (PST)
In-Reply-To: <546E1320.3080701@joelhalpern.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> <546E1320.3080701@joelhalpern.com>
From: Jamal Hadi Salim <hadi@mojatatu.com>
Date: Thu, 20 Nov 2014 11:26:48 -0500
Message-ID: <CAAFAkD8WfKDRfT+j=Mqm7vXQD1CX+jcB=Qq76PhCNuw3=C3ySw@mail.gmail.com>
To: Joel Halpern Direct <jmh.direct@joelhalpern.com>
Content-Type: text/plain; charset="UTF-8"
Archived-At: http://mailarchive.ietf.org/arch/msg/forces/o1_aKbbJm612sp3kAp_6Lv5UcV4
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:27:45 -0000

On Thu, Nov 20, 2014 at 11:13 AM, Joel Halpern Direct
<jmh.direct@joelhalpern.com> wrote:
> 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.
>

It is awkward because it is "parallel" and because I
will have to go looking for your document.
What i am proposing is discoverability. I can query the FE to tell
me about a class components, their types etc.

cheers,
jamal

> 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
>>>>
>>>
>