Re: [netmod] LL review of draft-ietf-netmod-intf-ext-yang-03
Robert Wilton <rwilton@cisco.com> Fri, 10 March 2017 14:46 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 AC8A312960C for <netmod@ietfa.amsl.com>; Fri, 10 Mar 2017 06:46:57 -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 LqmuAzfyVv3Y for <netmod@ietfa.amsl.com>; Fri, 10 Mar 2017 06:46:56 -0800 (PST)
Received: from aer-iport-2.cisco.com (aer-iport-2.cisco.com [173.38.203.52]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A6AF9129484 for <netmod@ietf.org>; Fri, 10 Mar 2017 06:46:55 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=11098; q=dns/txt; s=iport; t=1489157215; x=1490366815; h=subject:to:references:from:message-id:date:mime-version: in-reply-to:content-transfer-encoding; bh=p0qVGLYXYXe1adg1OjbgUiI+iheciLV8kupgGtGfkfA=; b=C8s5cgkEFdfzNRCUZ8iiNpdNo3uQSP1L7LpURFpEN6J9w3RAB+CZUT5K k1m8EUM6sdnAy7sSCIi49ayF0ce0zjdzkBDrF+kLL/Ycaxq17ju1wRrWQ CqX8CsBF8JLS0wO+AAvGTjLtv7bv+zb8bgL/aLncc4Wf3GEEG+tAlPdDm Y=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CmBABGu8JY/xbLJq1dGQEBAQEBAQEBAQEBBwEBAQEBhFxgg2CKDnOQPh+QBoUygg6CbIM2AoJ7GAECAQEBAQEBAWsohRUBAQEBAgEjDwEFLyILGAICJgICVwYBDAYCAQGJdAixRYImimoBAQEBAQUBAQEBAQEBIYELhUOCBQiBWYEJhCYRAYMigl8Fj1iMYog8iXyBe4UlgzGGUYhEgm+DbIQhHzh7CCIWCBcVP4ZVQDWHbIIuAQEB
X-IronPort-AV: E=Sophos;i="5.36,141,1486425600"; d="scan'208";a="650330078"
Received: from aer-iport-nat.cisco.com (HELO aer-core-3.cisco.com) ([173.38.203.22]) by aer-iport-2.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Mar 2017 14:46:53 +0000
Received: from [10.63.23.115] (dhcp-ensft1-uk-vla370-10-63-23-115.cisco.com [10.63.23.115]) by aer-core-3.cisco.com (8.14.5/8.14.5) with ESMTP id v2AEkqRn018124; Fri, 10 Mar 2017 14:46:52 GMT
To: Ladislav Lhotka <lhotka@nic.cz>, netmod@ietf.org
References: <m2h95xxwee.fsf@birdie.labs.nic.cz> <33d0132e-750b-97ed-8bdb-0befeb1b81c3@cisco.com> <0400d1cb-30ce-e074-b707-202026161ebb@cisco.com> <m24lz1z0im.fsf@birdie.labs.nic.cz>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <12f97503-9801-56f5-650f-8accdab68e4c@cisco.com>
Date: Fri, 10 Mar 2017 14:46:53 +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: <m24lz1z0im.fsf@birdie.labs.nic.cz>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/CZ5MJQKEilJMZK-uUOSOvJCLNK4>
Subject: Re: [netmod] LL review of draft-ietf-netmod-intf-ext-yang-03
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: Fri, 10 Mar 2017 14:46:57 -0000
Lada, Thanks for the comments, some further comments inline ... On 10/03/2017 14:09, Ladislav Lhotka wrote: > Hi Rob, > > please see inline. > > Robert Wilton <rwilton@cisco.com> writes: > >> Hi Lada, >> >> To pick up an old thread, I'm updating the interface model per your >> comments below, and I had a few questions that you might have an opinion on. >> >> On 22/12/2016 14:32, Robert Wilton wrote: >>> Hi Lada, >>> >>> Thanks for the review and comments. >>> >>> >>> On 21/12/2016 13:08, Ladislav Lhotka wrote: >>>> Hi, >>>> >>>> I think this is a very useful addition to ietf-interfaces. In general, >>>> the document is clearly written and YANG modules nicely designed. Here >>>> are my comments: >>>> >>>> *** Sec. 1 >>>> - "This document defines two YANG RFC 7950 [RFC7950] modules …" >>>> looks weird. I'd suggest "… YANG 1.1 [RFC7950] …" instead. >>> OK. >> Fixed. >>>> *** Sec. 2 >>>> - first line: s/of of/of/ >> Fixed. >> >>>> *** Sec. 3.1 >>>> - If the "bandwidth" parameter is only used for tuning routing >>>> algorithms and has nothing to do with real bandwidth on the >>>> interface, I would suggest to use a different name >>>> (metric?). Perhaps it may indeed be better to leave this to >>>> routing protocol modules because they can also specify how >>>> exactly such a parameter is used. >>> Yes, possibility it would be better to define this as part of the >>> routing models. The idea here is that the bandwidth would span across >>> the routing protocols rather than be tied to a specific protocol. >> I think that we need a better name than just "bandwidth" since this leaf >> doesn't affect the actual bandwidth on the of the link, just the >> bandwidth that is reported to routing protocols to implicitly adjust >> their link metrics. Hence, I was considering renaming this to >> "reported-bandwidth"? > This looks like something for routing people to decide. > >> I also think that it would be good to follow up with the routing folks >> to see if this leaf would be better covered in a general routing model. >> Where do you think is the best place that I raise this, the routing area >> yang design team? > Maybe, or RTGWG? OK. I'll send an email that way, after I've published this next revision. > >> >>>> *** Sec. 3.6 >>>> - The "l3-mtu" parameter is probably the same as "mtu" defined in >>>> ietf-ip. Again, I would suggest to leave the definition of MTU >>>> to each L3 protocol because there may be specific aspects and >>>> constraints. >>> The MTU being defined here is an "l2-mtu" parameter. I.e. the maximum >>> size of the L2 frames that can be sent/received. For some devices >>> this value is independent of a protocol specific L3 MTU that only >>> affects that particular protocol instance. >> I've updated the text to make it clear that it is only a L2 MTU >> configuration leaf, and if not configured, the system will automatically >> decide on the L2 MTU. > Shouldn't it have a "when" substatement to make it available only for > "layer-2" interfaces? It can apply to all interfaces that use a layer 2 encapsulation, i.e. most interfaces. The only interfaces that it wouldn't apply to are: - interfaces that are performing optical switching - but then I think that they are probably not really interfaces at all. - software interfaces that represent a tunnel endpoint that carriers L3 frames with no L2 encapsulation. Although in this case you could just regard them as having a 0 byte layer 2 overhead. > >>> >>>> *** Sec. 3.8 >>>> - I think that "transport-layer" is not a good name because in the >>>> ISO OSI model it denotes a particular layer (L4). How about >>>> "iso-osi-layer"? >> I agree that "transport-layer" is somewhat ambiguous. >> >> I was wondering whether "service-layer" or "service-type" would work? > This looks more like a business term, "iso-osi-layer" or just > "osi-layer" seems better to me, even if you include only layers > 1-3. Actually, the OSI model calls these three "media layers", but this > term isn't commonly used. The problem with osi-layer is that I don't think that the name really indicates what it means. > >> Or perhaps it could be called "forwarding-mode"? > IMO, the layers are not only about forwarding. Agreed, but this configuration is to provide a constraint as to what services and forwarding paradigm can be enabled. E.g. an "l2 transport/service" would be connected to an L2VPN instance but not IP. An ACL applied to a "L2 transport/service" would filter on MAC addresses/VLAN Ids rather than IP header fields. > >>>> - The type of "transport-layer" has three enums, namely >>>> "layer-[123]". I would suggest to use descriptive names >>>> ("physical-layer" etc.), include the remaining layers of the ISO >>>> OSI model, and maybe also define it as a typedef - or does this >>>> belong to ietf-inet-types? >> I'm not sure that defining the higher layers of the OSI model helps. >> Perhaps using identities would be a better choice? >> >> Perhaps: >> "physical-layer" >> "data-link-layer" >> "network-layer" >> >> But I prefer "layer-2" over "data-link-layer" since I think that term >> is much more widespread. I'm also not quite sure whether > OK. > >> "physical-layer" is actually the right term, I think that is probably >> really "below-layer-2" >> > In terms of the OSI model, there is only layer 1 (physical) below layer > 2. Or do you mean things like Ethernet-over-MPLS? I don't know how the > layer classification works in such convoluted cases. For layer-2, I think of carrying L2 frames over another service (e.g. IP, MPLS, or MAC-in-MAC). For layer-1, I was thinking of things like optical switching or OTN switching. But again it does come back to whether those are represented as interfaces. Although, even in the optical switching cases, I think that devices sometimes snoop the layer 2 frame statistics. > >>>> - Is a leaf sufficient? I think some interfaces can be in multiple >>>> layers at the same time (e.g. an ATM interface is L3 but can >>>> also be L2 for Classical IP over ATM). Or is the idea that such >>>> an interface will be split into two entries of the "interface" >>>> list? >>> This needs some further thought/work. >> I think that using sub-interfaces is the cleanest way of doing this, so >> each sub-interface can be offering a service at a different layer. >> >> >>> The main idea here was to be able to label sub-interfaces as >>> supporting only L2 services or L3 services, since on some platforms >>> different types of interfaces get instantiated internally. > OK, I don't dare to give any suggestions here. > >>>> *** YANG modules >>>> - Descriptions are not consistently formatted. I think that the >>>> current BCP is to start description text on the same line as the >>>> "description" keyword only if it all fits on one line. >>>> - I don't have a strong opinion on this but it might increase >>>> readability if the number of augments is reduced. Perhaps at >>>> least augments that contain only one node could be made into one >>>> (and the "feature" and "when" statements moved to the nodes' >>>> definitions. >>> Yes, I'll fix these, probably using Martin's suggested approach. >> I've fixed the descriptions, and merged all the augments except for the >> sub-interface one (which is an if-feature conditional augment of a >> mandatory node). > Good. > >> I also have a question about the "encapsulation" container that is >> currently defined as: >> >> /* >> * Various types of interfaces support a configurable layer 2 >> * encapsulation, any that are supported by YANG should be >> * listed here. >> * >> * Different encapsulations can hook into the common encaps-type >> * choice statement. >> */ >> container encapsulation { >> when >> "derived-from-or-self(if:type, 'ianaift:ethernetCsmacd') or >> derived-from-or-self(if:type, 'ianaift:ieee8023adLag') or >> derived-from-or-self(if:type, 'ianaift:pos') or >> derived-from-or-self(if:type, 'ianaift:atmSubInterface') or >> derived-from-or-self(if:type, 'ethSubInterface')" { >> >> description >> "All interface types that can have a configurable L2 >> encapsulation"; >> /* >> * TODO - Should we introduce an abstract type to make this >> * extensible to new interface types, or vendor >> * specific interface types? >> */ >> } >> >> description >> "Holds the OSI layer 2 encapsulation associated with an >> interface"; >> choice encaps-type { >> description "Extensible choice of L2 encapsulations"; >> } >> } >> >> I was considering removing the when statement to generalize this, since >> the case statements can be constricted to suitable interface types using >> when statements anyway. E.g. I'm proposing to changing it to something >> like this: >> >> /* >> * Various types of interfaces support a configurable >> * encapsulation. >> * >> * Different encapsulations (often layer 2) can hook into the >> * common encaps-type choice statement. >> */ >> container encapsulation { >> description >> "Holds the encapsulation (often layer 2) associated with an >> interface"; >> choice encaps-type { >> description >> "Extensible choice of encapsulations"; >> } >> } >> >> Do you have a view on this? > This demonstrates that the IANA interface types are not very useful for > restricting the data model. As you indicate, multiple levels of the > interface hierarchy (abstract interface types) might be better, perhaps > you could also make use of multiple inheritance of identities, hence > allowing for arbitrary mixes of interface properties encoded in the type. Yes, I think that the IANA interface types are a problem. Previously I was planning on writing up a draft with abstract types deriving from the IANA types, but I'm not sure whether this helps in the general case. It might be that we need to define a set of abstract types (e.g. physical interfaces, ethernet-like, sub-interface, logical interface, etc) and then update the type identities in iana-if-type.yang to derive from those base types (which I believe would be an allowed backwards compatible change). Thanks, Rob > > Cheers, Lada > >> Thanks, >> Rob >> >> >>> Thanks again, >>> Rob >>> >>>> Lada >>>>
- [netmod] LL review of draft-ietf-netmod-intf-ext-… Ladislav Lhotka
- Re: [netmod] LL review of draft-ietf-netmod-intf-… Martin Bjorklund
- Re: [netmod] LL review of draft-ietf-netmod-intf-… Robert Wilton
- Re: [netmod] LL review of draft-ietf-netmod-intf-… Ladislav Lhotka
- Re: [netmod] LL review of draft-ietf-netmod-intf-… Robert Wilton
- Re: [netmod] LL review of draft-ietf-netmod-intf-… Ladislav Lhotka
- Re: [netmod] LL review of draft-ietf-netmod-intf-… Robert Wilton
- Re: [netmod] LL review of draft-ietf-netmod-intf-… Acee Lindem (acee)
- Re: [netmod] LL review of draft-ietf-netmod-intf-… Robert Wilton