Re: [netmod] An abundant amount of IANA if types...

Robert Wilton <rwilton@cisco.com> Fri, 06 April 2018 13:55 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 7ECA01270A7 for <netmod@ietfa.amsl.com>; Fri, 6 Apr 2018 06:55:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.511
X-Spam-Level:
X-Spam-Status: No, score=-14.511 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, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, 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 5rKGVehmFTyC for <netmod@ietfa.amsl.com>; Fri, 6 Apr 2018 06:55:49 -0700 (PDT)
Received: from aer-iport-1.cisco.com (aer-iport-1.cisco.com [173.38.203.51]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 050521200FC for <netmod@ietf.org>; Fri, 6 Apr 2018 06:55:48 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=4127; q=dns/txt; s=iport; t=1523022949; x=1524232549; h=subject:to:references:from:message-id:date:mime-version: in-reply-to:content-transfer-encoding; bh=fKifEXqWG98gMRuS0IsyR3FDcqFmAG3YJrDSjhqGeW8=; b=NdfBei55WKCSwc+4HCF4DJ7KZWt95fwEdr94dplHF1qsS+6GuSM9CDD5 xu58uL74om6Cj5jMo0pcZz46MSK+R5Miqk0NSSyawoC3a9xKzE/fTKVOe HLZMbn/GNXRMxs0jkQYTLm86lc2bZHT/EcqP5/iz7lWy17TISkZegbgHQ U=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CeAQCEe8da/xbLJq1UCRkBAQEBAQEBAQEBAQEHAQEBAQGDE4F/KINfiF6NdwghgQ+UUguFAwKCWTcVAQIBAQEBAQECbCiFIgEBAQECASMPAQVRCxAIAgImAgJXBgEMBgIBAReEagipBYIchFeDcIIlgQmINj+BDCIMgiguhEWDKoJUApdDCI4tBodEhHyKaYUdgSUyIoFSMxoIGxU6gkOQTz4wjhoBAQ
X-IronPort-AV: E=Sophos;i="5.48,415,1517875200"; d="scan'208";a="3038163"
Received: from aer-iport-nat.cisco.com (HELO aer-core-1.cisco.com) ([173.38.203.22]) by aer-iport-1.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Apr 2018 13:55:45 +0000
Received: from [10.63.23.169] (dhcp-ensft1-uk-vla370-10-63-23-169.cisco.com [10.63.23.169]) by aer-core-1.cisco.com (8.14.5/8.14.5) with ESMTP id w36DtjBg023835; Fri, 6 Apr 2018 13:55:45 GMT
To: Ladislav Lhotka <lhotka@nic.cz>, netmod@ietf.org
References: <AM4PR07MB1716AECAC144285D98B0E1EE94BB0@AM4PR07MB1716.eurprd07.prod.outlook.com> <1522972773708.26374@Aviatnet.com> <95e15ae380a2e114a8defa3ad924d73c15137b1b.camel@nic.cz> <AM4PR07MB1716DDB1796AA320616F7C0F94BA0@AM4PR07MB1716.eurprd07.prod.outlook.com> <20180406081830.go3hfajpr4hp6svm@elstar.local> <87h8oora3f.fsf@nic.cz> <20180406113639.rgmxofccvsn7gzw5@elstar.local> <2d13795de2ba190878afaf8b1dd94e9d9495a6a7.camel@nic.cz>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <4c3be475-0b9c-5837-5d08-115201b43305@cisco.com>
Date: Fri, 06 Apr 2018 14:55:45 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0
MIME-Version: 1.0
In-Reply-To: <2d13795de2ba190878afaf8b1dd94e9d9495a6a7.camel@nic.cz>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/-1nig8DcLShncskDLIVfgcpcjv0>
Subject: Re: [netmod] An abundant amount of IANA if types...
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.22
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: Fri, 06 Apr 2018 13:55:51 -0000

At the moment, I would say that the vast majority of the definitions in 
IANA.yang are just noise because they refer to definitions that are 
obsolete.  Our OS seems to use only 10% of the 287+ defined IANA types, 
and that 10% includes technologies such as frame relay, serial, atm, 
that very much seem to be on their way out.

Using hierarchical identities and interface properties seems like a 
reasonable solution to me (e.g. as described in 
draft-wilton-netmod-interface-properties-00).  E.g. so rather than 
having configuration with a direct when statement on a specific list of 
interface types, instead the when statement can depend on the 
appropriate interface properties.

I also like Lada's suggestion of trying to spread out the IANA 
definitions to the modules that are defining the technology.  So, if a 
device implements support for PPP configuration/operational state then 
it would also naturally define any PPP related interface identities at 
the same time.

If a vendor wants to define their own flavour of Ethernet interface then 
they can do so in their vendor specific module without requiring all 
tooling to become aware of it, and allowing the existing Ethernet 
configuration to work as normal.



On 06/04/2018 13:01, Ladislav Lhotka wrote:
> On Fri, 2018-04-06 at 13:36 +0200, Juergen Schoenwaelder wrote:
>> On Fri, Apr 06, 2018 at 10:51:48AM +0200, Ladislav Lhotka wrote:
>>> Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> writes:
>>>
>>>> If we would have a mechanism to deviate an identityref to a subset of
>>>> identity values supported by an implementation, we would have solved a
>>>> more generic problem. Yes, the IANA list could be 'nicer' but it will
>>>> never be 'nice'.
>>> Three mechanisms can be used for this:
>>>
>>> - splitting the identities into separate modules
>> Whatever module organization you come up with, it won't work for all
>> implementations.
Yes, getting the root of this structure right is perhaps somewhat 
tricky, but I don't think that it needs to be all encompassing, or perfect.

>>> - using features
>> Making every identity a feature will turn the feature system upside
>> down. This is similar to making every leaf a feature.
>>
>>> - using deviations (even though vendors frown on them)
>> If my implementation only supports A and B and C, then a deviation may
>> state exactly that and the problem is solved. Hoping that my specific
> In fact, deviations cannot delete identity values because they aren't schema
> nodes, so they are of no use.
>
>> combination of A and B and C matches a set of modules or some set of
>> features is in my view an illusion.
> An implementation that supports, say, a given type of tunnel interface will
> implement the module that covers this tunnel type. If the identity for this
> tunnel interface type is defined in the same module, then all is good. I don't
> get why this should be an illusion. On the contrary, I think it is the cleanest
> available solution to this conformance specification problem.
>
>> Vendors not shipping proper deviations are essentially telling their
>> customers that they have not yet understood model driven management.
>> We need to change the mindset here instead of polluting our data
>> models with hundreds or thousands of fine grained 'features'.
> I agree that zillions of features aren't nice but it seems to be the only
> solution that we currently have for modules of the iana-if-type style.
>
> Having an bulky set of identity values, most of which are of no interest, is IMO
> much worse and could also be a security issue if implementors aren't careful
> enough.
I'm not sure there is a security concern here, but a long list where 
most of the values are cruft doesn't really seem to help anyone.  It 
also makes it harder to know which is the right type to use.  E.g. will 
everyone know that they should use "ethernetCsmacd" rather than 
"gigabitEthernet" for an optical GE interface that doesn't actually use 
CSMA/CD ...

Thanks,
Rob


>
> Lada
>
>> /js
>>