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

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/