Re: [netmod] Module tags

Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> Sun, 12 February 2017 13:04 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 B076712967E for <netmod@ietfa.amsl.com>; Sun, 12 Feb 2017 05:04:14 -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 11QYOOKuAUTV for <netmod@ietfa.amsl.com>; Sun, 12 Feb 2017 05:04:13 -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 C1D64129679 for <netmod@ietf.org>; Sun, 12 Feb 2017 05:04:12 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 96FAE72C; Sun, 12 Feb 2017 14:04:11 +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 qmSlEmZ3u8wf; Sun, 12 Feb 2017 14:04:05 +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 14:04:10 +0100 (CET)
Received: from localhost (demetrius1.jacobs-university.de [212.201.44.46]) by hermes.jacobs-university.de (Postfix) with ESMTP id CCDE3200C1; Sun, 12 Feb 2017 14:04:10 +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 RU-4FwBOyhBB; Sun, 12 Feb 2017 14:04:10 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id F2919200BE; Sun, 12 Feb 2017 14:04:09 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id C3F583E7262B; Sun, 12 Feb 2017 14:04:12 +0100 (CET)
Date: Sun, 12 Feb 2017 14:04:12 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Christian Hopps <chopps@chopps.org>
Message-ID: <20170212130412.GA8415@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> <20170212115135.GB8250@elstar.local> <87wpcvpo0z.fsf@chopps.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <87wpcvpo0z.fsf@chopps.org>
User-Agent: Mutt/1.6.0 (2016-04-01)
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/Ci0JF50ezfhgrvfZUUogXOb6_jQ>
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 13:04:14 -0000

On Sun, Feb 12, 2017 at 07:54:52AM -0500, Christian Hopps wrote:
> 
> Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> writes:
> 
> >> 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.
> 
> I agree it's probably mostly useful going forward.
> 
> My xpath foo isn't very strong, but given that both OSPF and IS-IS label
> their hello interval timer nodes "hello-interval" I believe this xpath
> would select those nodes from both models:
> 
>     //hello-interval[/tags="ietf:routing:igp"]
> 
> That said, the content does currently differ. For OSPF the node is the
> integer timer interval whereas the synonymous interval for IS-IS is a child
> node named "value".

See, either something is designed and guaranteed to mean the same or
it is not.  Assuming that something showing up at the same path was
designed to be the same can go seriously wrong. I wonder why an
operator would want to run a network on such weak premises.

> >> >> >> 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.
> 
> Yes indeed tags can be created in 3 ways, but the ultimate authority is
> the user as they are the ones actually deploying devices to implement
> something (e.g., a network). The designer and implementer cannot
> ultimately know how the user will use their devices and their modules.

Then there should only be type (c) tags. 

> I guess I'm drawing from my unix background here, give the user the rope;
> I'm not sure how they would hang themselves with this particular rope,
> but worrying about that seems to be the only reason to not give them the
> control. :)

There are many things a device can implement differently. Do we
generally need a way to overwrite things? I am trying to understand
why tags are different and considered to require this ability. And as
I said, there is always the option to trust only the tags an operator
has assigned himself.

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