--- 1/draft-ietf-netmod-intf-ext-yang-01.txt 2016-10-27 07:16:04.713239320 -0700 +++ 2/draft-ietf-netmod-intf-ext-yang-02.txt 2016-10-27 07:16:04.761240540 -0700 @@ -1,21 +1,21 @@ Internet Engineering Task Force R. Wilton, Ed. Internet-Draft D. Ball Intended status: Standards Track T. Singh -Expires: January 8, 2017 Cisco Systems +Expires: April 30, 2017 Cisco Systems S. Sivaraj Juniper Networks - July 7, 2016 + October 27, 2016 Common Interface Extension YANG Data Models - draft-ietf-netmod-intf-ext-yang-01 + draft-ietf-netmod-intf-ext-yang-02 Abstract This document defines two YANG modules that augment the Interfaces data model defined in the "YANG Data Model for Interface Management" with additional configuration and operational data nodes to support common lower layer interface properties, such as interface MTU. These properties are common to many types of interfaces on network routers and switches and are implemented by multiple network equipment vendors with similar semantics, even though some of the @@ -29,21 +29,21 @@ Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." - This Internet-Draft will expire on January 8, 2017. + This Internet-Draft will expire on April 30, 2017. Copyright Notice Copyright (c) 2016 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents @@ -70,31 +70,31 @@ 3.4. Encapsulation . . . . . . . . . . . . . . . . . . . . . . 8 3.5. Loopback . . . . . . . . . . . . . . . . . . . . . . . . 8 3.6. MTU . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.7. Sub-interface . . . . . . . . . . . . . . . . . . . . . . 9 3.8. Transport Layer . . . . . . . . . . . . . . . . . . . . . 10 4. Interfaces Ethernet-Like Module . . . . . . . . . . . . . . . 10 5. Interfaces Common YANG Module . . . . . . . . . . . . . . . . 10 6. Interfaces Ethernet-Like YANG Module . . . . . . . . . . . . 19 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 22 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 - 9. Security Considerations . . . . . . . . . . . . . . . . . . . 23 + 9. Security Considerations . . . . . . . . . . . . . . . . . . . 22 9.1. interfaces-common.yang . . . . . . . . . . . . . . . . . 23 9.2. interfaces-ethernet-like.yang . . . . . . . . . . . . . . 24 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 24 - 10.1. Normative References . . . . . . . . . . . . . . . . . . 25 + 10.1. Normative References . . . . . . . . . . . . . . . . . . 24 10.2. Informative References . . . . . . . . . . . . . . . . . 25 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 25 1. Introduction - This document defines two YANG RFC 6020 [RFC6020] modules for the + This document defines two YANG RFC 7950 [RFC7950] modules for the management of network interfaces. It defines various augmentations to the generic interfaces data model defined in RFC 7223 [RFC7223] to support configuration of lower layer interface properties that are common across many types of network interface. One of the aims of this draft is to provide a standard namespace and path for these configuration items regardless of the underlying interface type. For example a standard namespace and path for configuring or reading the MAC address associated with an interface is provided that can be used for any interface type that uses @@ -461,25 +461,27 @@ augment /if:interfaces-state/if:interface: +--ro ethernet-like +--ro mac-address? yang:mac-address +--ro bia-mac-address? yang:mac-address 5. Interfaces Common YANG Module This YANG module augments the interface container defined in RFC 7223 [RFC7223]. - file "ietf-interfaces-common@2016-07-07.yang" + file "ietf-interfaces-common@2016-10-27.yang" module ietf-interfaces-common { yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces-common"; prefix if-cmn; + import ietf-interfaces { prefix if; } import iana-if-type { prefix ianaift; } organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; @@ -508,36 +510,25 @@ Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of XXX; see the RFC itself for full legal notices."; - revision 2016-07-07 { - description - "Update module title and description text to IETF standard - text"; - - reference "Internet draft: draft-ietf-netmod-intf-ext-yang-01"; - - } - - revision 2015-10-19 { + revision 2016-10-27 { description - "Add support for various common interface configuration - parameters that are likely to be widely implemented by various - network device vendors."; + "Initial version"; - reference "Internet draft: draft-wilton-netmod-intf-ext-yang-01"; + reference "Internet draft: draft-ietf-netmod-intf-ext-yang-02"; } feature bandwidth { description "This feature indicates that the device supports configurable interface bandwidth."; reference "Section 3.1 Bandwidth"; } feature carrier-delay { @@ -757,31 +747,30 @@ the penalty value cannot exceed. The default value is vendor/device specific."; } } } /* * 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. */ augment "/if:interfaces/if:interface" { - when "if:type = 'ianaift:ethernetCsmacd' or - if:type = 'ianaift:ieee8023adLag' or - if:type = 'ethSubInterface' or - if:type = 'ianaift:pos' or - if:type = 'ianaift:atmSubInterface'" { + 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 "Add encapsulation top level node to interface types @@ -794,24 +783,24 @@ description "Extensible choice of L2 encapsulations"; } } } /* * Various types of interfaces support loopback configuration, any * that are supported by YANG should be listed here. */ augment "/if:interfaces/if:interface" { - when "if:type = 'ianaift:ethernetCsmacd' or - if:type = 'ianaift:sonet' or - if:type = 'ianaift:atm' or - if:type = 'ianaift:otnOtu'" { + when "derived-from-or-self(if:type, 'ianaift:ethernetCsmacd') or + derived-from-or-self(if:type, 'ianaift:sonet') or + derived-from-or-self(if:type, 'ianaift:atm') or + derived-from-or-self(if:type, 'ianaift:otnOtu')" { description "All interface types that support loopback configuration."; } if-feature "loopback"; description "Augments the IETF interface model with loopback configuration for interfaces that support it."; leaf loopback { type identityref { base loopback; @@ -842,31 +831,32 @@ } /* * Add generic support for sub-interfaces. * * This should be extended to cover all interface types that are * child interfaces of other interfaces. */ augment "/if:interfaces/if:interface" { when "derived-from(if:type, 'sub-interface') or - if:type = 'ianaift:atmSubInterface' or - if:type = 'ianaift:frameRelay'" { + derived-from-or-self(if:type, 'ianaift:atmSubInterface') or + derived-from-or-self(if:type, 'ianaift:frameRelay')" { description "Any ianaift:types that explicitly represent sub-interfaces or any types that derive from the sub-interface identity"; } if-feature "sub-interfaces"; description "Add a parent interface field to interfaces that model sub-interfaces"; leaf parent-interface { type if:interface-ref; + mandatory true; description "This is the reference to the parent interface of this sub-interface."; } } /* * Augments the IETF interfaces model with a leaf that indicates * which layer traffic is to be transported at. @@ -900,27 +890,28 @@ } 6. Interfaces Ethernet-Like YANG Module This YANG module augments the interface container defined in RFC 7223 [RFC7223] for Etherlike interfaces. This includes Ethernet interfaces, 802.3 LAG (802.1AX) interfaces, VLAN sub-interfaces, Switch Virtual interfaces, and Pseudo-Wire Head-End interfaces. - file "ietf-interfaces-ethernet-like@2016-07-07.yang" + file "ietf-interfaces-ethernet-like@2016-10-27.yang" module ietf-interfaces-ethernet-like { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces-ethernet-like"; prefix ethlike; - import ietf-interfaces { prefix if; } import ietf-yang-types { prefix yang; } import iana-if-type { prefix ianaift; @@ -955,43 +946,35 @@ Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of XXX; see the RFC itself for full legal notices."; - revision 2016-07-07 { - description - "Update module title and description text to IETF standard - text"; - - reference "Internet draft: draft-ietf-netmod-intf-ext-yang-01"; - } - - revision 2015-06-26 { + revision 2016-10-27 { description "Updated reference to new internet draft name."; reference - "Internet draft: draft-wilton-netmod-intf-ext-yang-00"; + "Internet draft: draft-ietf-netmod-intf-ext-yang-02"; } /* * Configuration parameters for Etherlike interfaces. */ augment "/if:interfaces/if:interface" { - when "if:type = 'ianaift:ethernetCsmacd' or - if:type = 'ianaift:ieee8023adLag' or - if:type = 'ianaift:l2vlan' or - if:type = 'ianaift:ifPwType'" { + 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:l2vlan') or + derived-from-or-self(if:type, 'ianaift:ifPwType')" { description "Applies to all Ethernet-like interfaces"; } description "Augment the interface model with configuration parameters for all Ethernet-like interfaces"; container ethernet-like { description "Contains configuration parameters for interfaces that use Ethernet framing and expose an Ethernet MAC layer."; @@ -1000,24 +983,24 @@ description "The configured MAC address of the interface."; } } } /* * Operational state for Etherlike interfaces. */ augment "/if:interfaces-state/if:interface" { - when "if:type = 'ianaift:ethernetCsmacd' or - if:type = 'ianaift:ieee8023adLag' or - if:type = 'ianaift:l2vlan' or - if:type = 'ianaift:ifPwType'" { + 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:l2vlan') or + derived-from-or-self(if:type, 'ianaift:ifPwType')" { description "Applies to all Ethernet-like interfaces"; } description "Augments the interface model with operational state parameters for all Ethernet-like interfaces."; container ethernet-like { description "Contains operational state parameters for interfaces that use Ethernet framing and expose an Ethernet MAC layer."; leaf mac-address { @@ -1135,40 +1118,40 @@ contains a node for configuring the operational MAC address to use on an interface. Adding/modifying/deleting this leaf has the potential risk of causing protocol instability, excessive protocol traffic, and general traffic loss, particularly if the configuration change caused a duplicate MAC address to be present on the local network . The following leaf is affected: o interfaces/interface/ethernet-like/mac-address 10. References + 10.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . - [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for - the Network Configuration Protocol (NETCONF)", RFC 6020, - DOI 10.17487/RFC6020, October 2010, - . - [RFC7223] Bjorklund, M., "A YANG Data Model for Interface Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, . [RFC7224] Bjorklund, M., "IANA Interface Type YANG Module", RFC 7224, DOI 10.17487/RFC7224, May 2014, . + [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", + RFC 7950, DOI 10.17487/RFC7950, August 2016, + . + 10.2. Informative References [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., and A. Bierman, Ed., "Network Configuration Protocol (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, . [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, .