Re: [netmod] Module tags

Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> Sun, 12 February 2017 11:51 UTC

Return-Path: <j.schoenwaelder@jacobs-university.de>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 43081129562 for <netmod@ietfa.amsl.com>; Sun, 12 Feb 2017 03:51:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.201
X-Spam-Level:
X-Spam-Status: No, score=-4.201 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001] autolearn=ham autolearn_force=no
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 Andc9VMCpQYI for <netmod@ietfa.amsl.com>; Sun, 12 Feb 2017 03:51:34 -0800 (PST)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6284D1294F3 for <netmod@ietf.org>; Sun, 12 Feb 2017 03:51:34 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 30183741; Sun, 12 Feb 2017 12:51:33 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.205]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id YSlfXQ5FQ8DV; Sun, 12 Feb 2017 12:51:27 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Sun, 12 Feb 2017 12:51:32 +0100 (CET)
Received: from localhost (demetrius1.jacobs-university.de [212.201.44.46]) by hermes.jacobs-university.de (Postfix) with ESMTP id 578AD200C1; Sun, 12 Feb 2017 12:51:32 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius1.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id RKbK54c0npNN; Sun, 12 Feb 2017 12:51:31 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 99A84200BE; Sun, 12 Feb 2017 12:51:31 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 845A33E724DC; Sun, 12 Feb 2017 12:51:35 +0100 (CET)
Date: Sun, 12 Feb 2017 12:51:35 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Christian Hopps <chopps@chopps.org>
Message-ID: <20170212115135.GB8250@elstar.local>
Mail-Followup-To: Christian Hopps <chopps@chopps.org>, Andy Bierman <andy@yumaworks.com>, "netmod@ietf.org" <netmod@ietf.org>
References: <87shnogymx.fsf@chopps.org> <20170208.231709.2214078600549867460.mbj@tail-f.com> <CABCOCHQJ+ef4C=TAfH9NK47mWgO0XOy1gg-cggigWq7Fqdfkgw@mail.gmail.com> <87d1eouby0.fsf@chopps.org> <20170211135417.GC6490@elstar.local> <8737fju4n5.fsf@chopps.org> <20170212104106.GA8142@elstar.local> <871sv3r7xf.fsf@chopps.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <871sv3r7xf.fsf@chopps.org>
User-Agent: Mutt/1.6.0 (2016-04-01)
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/F-O9BJy6UNn9rrtmo8H0E0nkC84>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Module tags
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 12 Feb 2017 11:51:36 -0000

On Sun, Feb 12, 2017 at 05:59:40AM -0500, Christian Hopps wrote:
> a
> Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> writes:
> 
> > On Sun, Feb 12, 2017 at 04:42:22AM -0500, Christian Hopps wrote:
> >>
> >> > Can you point me to a set of modules and a concrete query where this
> >> > makes sense? I am like Martin not yet convinced that there is a use
> >> > case for this.
> >>
> >> I gave the example of something that implements a common interface. So
> >> for example most IGP routing protocols have hello timers. One could
> >> imagine an "ietf:implements:hello-timer" (or whatever) tag. This type of
> >> thing is used to avoid the use of multiple-inheritance in OOP. It could
> >> serve a similar purpose with yang (although in this case it avoids having
> >> to factor all commonality out into tiny modules).
> >>
> >> I don't know if this would develop organically or not, but I do know
> >> having a central list eliminates the option. Why choose the option with
> >> less capabilities?
> >
> > I am asking for a concrete example. Assuming that modules will have a
> > common structure and naming inside is IMHO wishful thinking. Show me a
> > concrete example please using existing modules.
> 
> I did give an example: IGP hello timers. I feel it's unreasonable to
> expect me to be more concrete with existing modules when we are talking
> about creating a feature that would make commonality useful (!)
> 
> There are IGP models, they have common hello timers, the fact that these
> are placed in a common area simply has to do with the fact that there
> was no gain in doing so.
> 
> I've offered I think a valid use case that is well excepted and present
> in other areas of computer science, your saying no-one is doing this now
> with yang. To me that's like having java without the interface
> statement and then asking to be shown actual java code using the
> non-existent interface statement. There are yang models with common
> factorable structure now, I've given an example. If that's not enough I
> don't know what else I can do.

Sorry, a bunch of tags and an expectation of authors doing things in a
common way does not give you Java interfaces. I remain unconvinced and
there is no requirement that we agree on this use case being
realistic.  At least you seem to agree that for existing modules this
is not terribly useful and that future modules would have to follow
certain conventions to make things useful.

> >> >> Is there a way to get the reset to default behavior? We do allow the
> >> >> user to remove default set tags, so I think that's why Lou added that
> >> >> RPC.
> >> >
> >> > Note sure whether this (removing of non-configured tags) is a good
> >> > idea. Again, concrete use cases might help to make the point.
> >>
> >> I do want to support tag removal. The most obvious case for tags is for
> >> operator use, and the resulting tag set for any module should be under
> >> the control of the operator. A use case would be that some server has a bug
> >> in their implementation and the admin wants to remove it from possible
> >> use. I'd ask the reverse question, why take this control away from the
> >> operator?
> >
> > I am trying to understand the use case. If you are unhappy with the
> > default tags, why not add your own tags? This way, the operator has
> > full control over his tag space.
> 
> A model on a server is buggy for some tagged feature, I want to remove
> that tag from it on that server. Your suggesting rather than me be in
> control and simply remove that tag from that server, I need to not use
> that tag at all in all of my network, and instead create a new tag that
> I add to all the functional servers in my network leaving it off this
> single server.
> 
> Again why is this a big deal? What are you gaining by not allowing the
> removal of tags? As an operator I'm certainly losing something.

It was suggested (I think) that tags originate either (a) from the
data model it self, (b) from the implementation itself, (c) from the
operator. You want to be able to overwrite (remove) (a) and (b) tags?
Are tags not scoped by something that represents some form of
ownership? If so, does it make sense to step on other people's
carefully design tags? What if this creates conflicts for different
applications, some like to have a certain tag some don't?

Perhaps what you are requesting is useful but I think it needs a bit
more thinking and clarity about what tags mean and how tags are
scoped.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>