Re: [netmod] Module tags

Robert Wilton <rwilton@cisco.com> Tue, 14 February 2017 17:29 UTC

Return-Path: <rwilton@cisco.com>
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 467AF12941A for <netmod@ietfa.amsl.com>; Tue, 14 Feb 2017 09:29:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.523
X-Spam-Level:
X-Spam-Status: No, score=-14.523 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
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 79-8SBzpQQVy for <netmod@ietfa.amsl.com>; Tue, 14 Feb 2017 09:29:42 -0800 (PST)
Received: from aer-iport-4.cisco.com (aer-iport-4.cisco.com [173.38.203.54]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A27781295A5 for <netmod@ietf.org>; Tue, 14 Feb 2017 09:29:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=8497; q=dns/txt; s=iport; t=1487093381; x=1488302981; h=subject:to:references:cc:from:message-id:date: mime-version:in-reply-to:content-transfer-encoding; bh=ZsMWMSJlLPFgyC4oidmm1tEqCM1uW/9bQm5rLwsQwUI=; b=CgzJNtphFkuK/YHmb0bHqTPx2FNjBdtGXW1rNg1rp64bXYgaHk8J2gDO nr02Ehzq5P2k9XiYvrSuOFQuDBOm76aH5n4cuZgxhwHMFnmqL+BbeIDIT X+Zo7OVL2cAiFvKrTV6BOYNPm4qgjmn6IODFm5zuly2l5DHlKpFWBzKvy Y=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0DIAQBKPaNY/xbLJq1UChoBAQEBAgEBAQEIAQEBAYQzAydfjWFykR6VNoIMHwuFLkoCgjwYAQIBAQEBAQEBYiiEaQEBAQMBAQE2MwMEBxALDgouJzAGDQYCAQEFEolICA6xTotfAQEBAQEBAQEBAQEBAQEBAQEBAR+GTIIFgWGBCYQmBgsBSIU5BYsPhDSML5IUgXuIRCOGI4gsgmSIBR84VSMIIBQIFRU9hEUdgWFANYdzgi0BAQE
X-IronPort-AV: E=Sophos;i="5.35,162,1484006400"; d="scan'208";a="652482191"
Received: from aer-iport-nat.cisco.com (HELO aer-core-3.cisco.com) ([173.38.203.22]) by aer-iport-4.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 14 Feb 2017 17:29:37 +0000
Received: from [10.63.23.109] (dhcp-ensft1-uk-vla370-10-63-23-109.cisco.com [10.63.23.109]) by aer-core-3.cisco.com (8.14.5/8.14.5) with ESMTP id v1EHTaUj014515; Tue, 14 Feb 2017 17:29:37 GMT
To: Christian Hopps <chopps@chopps.org>
References: <87r338gtzw.fsf@chopps.org> <20170209.085506.1418859449501855827.mbj@tail-f.com> <878tpfac43.fsf@chopps.org> <20170209.120823.198284779081114388.mbj@tail-f.com> <874m03a74p.fsf@chopps.org> <15a22d86378.27fd.9b4188e636579690ba6c69f2c8a0f1fd@labn.net> <72728899-a310-b43e-65dd-7623135c5fba@cisco.com> <87mvdo986q.fsf@chopps.org> <d13c0b5c-edb5-a6c1-a042-e1203ced5423@cisco.com> <87tw7wn39n.fsf@chopps.org>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <36ddb2a1-61b2-362e-ffc5-5a8e54f8c4f3@cisco.com>
Date: Tue, 14 Feb 2017 17:29:27 +0000
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.7.1
MIME-Version: 1.0
In-Reply-To: <87tw7wn39n.fsf@chopps.org>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/-MIU6gy78B9pr2sa94P5-lqE9BU>
Cc: netmod@ietf.org
Subject: Re: [netmod] Module tags
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
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: Tue, 14 Feb 2017 17:29:44 -0000


On 14/02/2017 16:30, Christian Hopps wrote:
> Robert Wilton <rwilton@cisco.com> writes:
>
>> On 14/02/2017 14:08, Christian Hopps wrote:
>>> Robert Wilton <rwilton@cisco.com> writes:
>>>
>>>> Hi tags draft authors,
>>>> On 09/02/2017 12:28, Lou Berger wrote:
>>>>> I'm personally more excited by the use of tags as additional module
>>>>> meta-data accessible via yang library. But also see no reason to
>>>>> preclude this possible  (even if unlikely) usage.
>>>> When the idea of tags was presented as IETF, I had assumed that tags
>>>> would be versioned/managed entirely independently from the YANG modules
>>>> that the tags apply to.
>>> Well they are called "tags" after all.  Normally one applies a tag to
>>> something (i.e., tags it. :)
>> Of course, I still mean that the tags are applied to the module, but
>> just that the place where that relationship is defined and maintained is
>> not in the module itself. I.e. some central locations that map from
>> unique module name to associated metadata tags.
>>
>> A roughly equivalent example might be perhaps like CDDB, where a program
>> can take a CD track, and go and fetch the associated metadata from some
>> known location without the metadata being embedded in the CD track itself.
> Sure, but that is setup that way b/c the CD data is seen as read only
> right? I don't think this is even the normal way to tag things. There
> are tons of examples of the opposite where the item itself is tagged
> (XML attributes, social media's #hashtags, cow ears, ...).
It will be easier to change the tag on a cow ear than on a standardized 
YANG module, but I like your example ;-)

It is outside my area of expertise, but I expect that most of the 
meta-data associated with a cow is not attached to the cow itself, but 
stored in some database somewhere.  The cow ear tag is more so that you 
can identify the right cow in the database.

>
>>>> For a while, there was a desire to organize YANG modules by their
>>>> hierarchical path location in the schema tree.  My concern with this
>>>> approach, is that there needs to be sufficient foresight to get that
>>>> structure right now, because it will be very painful to change it in
>>>> future.  Unfortunately things have a habit of evolving over time, and
>>>> hence choosing the right structure now such that is still the right
>>>> structure in 25 years seems somewhat unlikely.
>>>>
>>>> I was thinking that tags offers a better solution to this problem, that
>>>> allows the structure to be a bit more dynamic, evolving over time.  I.e.
>>>> YANG modules for features can sit at (or near to) the top level of the
>>>> schema tree, and tags can then be used to group those modules into
>>>> sensible organizations that can evolve, so that when clients are trying
>>>> to sort through all the different YANG models that are available, they
>>>> have more hope than looking at a flat list.
>>> We in fact plan to do this with the device meta model. I believe this
>>> was in the presentation too, but it might not have been very obvious.
>>>
>>>> In this scenario, I think that it is better if the YANG module
>>>> definitions themselves don't specify the tags because then
>>>> adding/removing/changing them is going to be a pain.  If this tag
>>>> information was managed separately (e.g. in something like YANG catalog)
>>>> then it seems easier for the tags to evolve over time.
>>> I want to be sure I understand you here. We've defined 3 places that a
>>> tag could be defined (comes into existence), the module designer, the
>>> vendor and the local user. When you say "module defines" are you talking
>>> about the first case, or are you talking about where a tag resides after
>>> it is created?
>> I was talking meaning the first case, where the tags are embedded in the
>> definition of a module, that itself is embedded in a published standard.
>>
>>>    For the latter that was our intention with the yang
>>> library augmentation. For the former case consider e.g., IS-IS, I think
>>> the authors of that module know and are the appropriate folks to add
>>> categorization tags such as "ietf:routing", "ietf:protocol",
>>> "ietf:routing:igp" or whatever.
>> OK, today, it might seem obvious that the tags should be routing,
>> protocol, igp, etc.  But in the future that choice of categorization
>> might not be the best, but it will be resistant to change because some
>> of the tag definitions are embedded in the modules themselves.
>>
>> Some of your suggested tags identify areas of IETF.  But what if those
>> areas change over time, of the associated of drafts/WGs to particular
>> areas changes.  A YANG module could end up being tagged with a stale
>> area, and I doubt that anyone would want to update a standard to just
>> update the tags.
> Lou didn't like the area tags either, so perhaps those are just poor
> initial choices, but "routing" (i.e., std tag "ietf:routing") is a fine
> tag I think, so maybe we need to move more to this rather than the ietf
> area groupings.
I think that the WG area tags could be useful for someone that is trying 
to categorize YANG models by IETF area.    But my main point is that if 
we decided that they were a good idea now, but not such a great idea in 
5 years time, going back and changing (or removing) them is painful if 
they are baked into the models.

>
>> So, I was wondering if it wouldn't be better to not allow tags to be
>> embedded in the modules at all.  Instead, if this was maintained in a
>> central database, e.g. like http://www.yangcatalog.org/, then the module
>> authors could always email the maintainers of YANG catalog to agree with
>> them how the module could most usefully be tagged in the catalog.  If
>> this needs to change over time then this would seem to be much easier to
>> update.
> And then what happens to the modules that are deployed? I like having
> some set of tags than are paired directly with the standardized module
> specifically b/c they do not change.
This goes back to my questioning as to whether tags should actually 
extend to the devices themselves, or just live in the manageability 
layer of YANG modules.

E.g. an operator could maintain a local database of tags associated with 
the modules that they use.  This database would initially be sourced 
from a central place, but could be refined/updated however the operator 
liked.  Tag based queries could be build in the operators mgmt systems, 
but would be converted to equivalent regular queries (with appropriate 
subtree filters) before being sent to the device.

Thanks,
Rob

>
> We did leave things open, so you could also create a yang catalog tag
> prefix and service as well.
>
> Thanks,
> Chris.
>
>>>    Nothing would keep the user or vendor
>>> from removing these or adding their own tags for the same purpose as
>>> well if they found these inappropriate or incorrect.
>> OK, yes.  But I wasn't thinking so much of a particular vendor or
>> operator, but more if the industry in general (or perhaps just the
>> maintainers of the catalog) decided that different categorization would
>> be more appropriate over time.
>>
>> Thanks,
>> Rob
>>
>>>> But I also had not really realized that the tags information would
>>>> necessarily reach down to the devices.  I.e. I hadn't envisaged Chris's
>>>> example of querying the hello-time via an IGP package tag. Instead, I
>>>> had thought of tags making a YANG catalog website more useful.  E.g.
>>>> when browsing for YANG modules, be able to restrict the query to just
>>>> the modules that are tagged as "standard" + "IGP", etc.
>>>>
>>>> So, I think that this draft may benefit with a bit more description of
>>>> the envisaged use cases, and also about how tags are envisaged to evolve
>>>> once they have been defined.
>>> Well one goal I had with tags was to allow for them to be used in
>>> the future in ways we may not have anticipated. Therefore
>>> we specifically did not lock down how they are used or what they are
>>> used for. That said, examples of how one might use could be helpful.
>>>
>>> Thanks,
>>> Chris.
>>>
>>>> Thanks,
>>>> Rob
>>>>
>>>>> Lou
>>>>>
>>>>>
>>>>>> Thanks,
>>>>>> Chris.
>>>>> _______________________________________________
>>>>> netmod mailing list
>>>>> netmod@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/netmod
>>>>> .
>>>>>