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

Jamal Hadi Salim <hadi@mojatatu.com> Thu, 20 November 2014 15:59 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 5E8FD1A1A65 for <forces@ietfa.amsl.com>; Thu, 20 Nov 2014 07:59:10 -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 5gNo8XWsAzkS for <forces@ietfa.amsl.com>; Thu, 20 Nov 2014 07:59:08 -0800 (PST)
Received: from mail-ob0-f180.google.com (mail-ob0-f180.google.com [209.85.214.180]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0A6941A0A6A for <forces@ietf.org>; Thu, 20 Nov 2014 07:59:08 -0800 (PST)
Received: by mail-ob0-f180.google.com with SMTP id wp4so2411730obc.39 for <forces@ietf.org>; Thu, 20 Nov 2014 07:59:07 -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=5AL8CwcCbHAHn/NIMVW/nN5fYmhjg0Bmpjq+KOis/Go=; b=De0LCo89o/bW7Sq/AdIwXpfc0yRuCkotqIduZgnOuLz3lztaxalK3fu/QhiP0BhzeA IfNsVWKlkrJK9n0/vn18uW66Ar7dZhtEY6AuLowk8XiW16PYwddHIPDYot0xPPYPy5GF aBBI3IISRy9fFjiu64BJFEiymgjX1ilSMf/6GZ1k4XZ2rHryFu1SsagmYIIaaHo+ZsWH 5jon5kLMwX4UKiZHqH1Wgia8jOh5TUYKiYL5kQUyFKp27+J5R++Ss6TBI1iPwTxNuLMT E7ciTkkEf3WGUu3fUcHuPNqQBvUJIx09J6+56tiV09PLieLMlfZI5tgRzDE7TgMalIqO uv2g==
X-Gm-Message-State: ALoCoQniWQlGj+K8qHojr1jFEeHU1DaUz6OACJmbPqPcLOiYN4B/zbsQYQK6kER7/f3C2gvgUgti
X-Received: by 10.182.95.40 with SMTP id dh8mr41266173obb.17.1416499147481; Thu, 20 Nov 2014 07:59:07 -0800 (PST)
MIME-Version: 1.0
Received: by 10.202.189.11 with HTTP; Thu, 20 Nov 2014 07:58:47 -0800 (PST)
In-Reply-To: <546E0E4F.4010502@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>
From: Jamal Hadi Salim <hadi@mojatatu.com>
Date: Thu, 20 Nov 2014 10:58:47 -0500
Message-ID: <CAAFAkD_9jW+z8C-Sj3mquCvmy_T3CwHYJKRKLUrXx4oNbMSe9A@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/215JPSvshnNS6VXpm8wxu9RATAQ
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 15:59:10 -0000

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