draft-ietf-netmod-interfaces-cfg-13.txt   draft-ietf-netmod-interfaces-cfg-14.txt 
Network Working Group M. Bjorklund Network Working Group M. Bjorklund
Internet-Draft Tail-f Systems Internet-Draft Tail-f Systems
Intended status: Standards Track November 7, 2013 Intended status: Standards Track December 7, 2013
Expires: May 11, 2014 Expires: June 10, 2014
A YANG Data Model for Interface Management A YANG Data Model for Interface Management
draft-ietf-netmod-interfaces-cfg-13 draft-ietf-netmod-interfaces-cfg-14
Abstract Abstract
This document defines a YANG data model for the management of network This document defines a YANG data model for the management of network
interfaces. It is expected that interface type specific data models interfaces. It is expected that interface type specific data models
augment the generic interfaces data model defined in this document. augment the generic interfaces data model defined in this document.
The data model includes configuration data, state data and counters The data model includes configuration data and state data (status
for the collection of statistics. information and counters for the collection of statistics).
Status of this Memo Status of this Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
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 May 11, 2014. This Internet-Draft will expire on June 10, 2014.
Copyright Notice Copyright Notice
Copyright (c) 2013 IETF Trust and the persons identified as the Copyright (c) 2013 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 3, line 16 skipping to change at page 3, line 16
This document defines a YANG [RFC6020] data model for the management This document defines a YANG [RFC6020] data model for the management
of network interfaces. It is expected that interface type specific of network interfaces. It is expected that interface type specific
data models augment the generic interfaces data model defined in this data models augment the generic interfaces data model defined in this
document. document.
Network interfaces are central to the management of many Internet Network interfaces are central to the management of many Internet
protocols. Thus, it is important to establish a common data model protocols. Thus, it is important to establish a common data model
for how interfaces are identified, configured, and monitored. for how interfaces are identified, configured, and monitored.
The data model includes configuration data, state data and counters The data model includes configuration data and state data (status
for the collection of statistics. information and counters for the collection of statistics).
1.1. Terminology 1.1. Terminology
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in BCP
14, [RFC2119]. 14, [RFC2119].
The following terms are used within this document: The following terms are used within this document:
skipping to change at page 4, line 17 skipping to change at page 4, line 17
The following terms are defined in [RFC6020] and are not redefined The following terms are defined in [RFC6020] and are not redefined
here: here:
o augment o augment
o data model o data model
o data node o data node
o presence container
1.2. Tree Diagrams 1.2. Tree Diagrams
A simplified graphical representation of the data model is used in A simplified graphical representation of the data model is used in
this document. The meaning of the symbols in these diagrams is as this document. The meaning of the symbols in these diagrams is as
follows: follows:
o Brackets "[" and "]" enclose list keys. o Brackets "[" and "]" enclose list keys.
o Abbreviations before data node names: "rw" means configuration o Abbreviations before data node names: "rw" means configuration
(read-write) and "ro" state data (read-only). (read-write) and "ro" state data (read-only).
skipping to change at page 7, line 44 skipping to change at page 7, line 44
For system-controlled interfaces, the "name" is the device-specific For system-controlled interfaces, the "name" is the device-specific
name of the interface. The 'config false' list "/interfaces-state/ name of the interface. The 'config false' list "/interfaces-state/
interface" contains all existing interfaces on the device. interface" contains all existing interfaces on the device.
If the device supports arbitrarily named user-controlled interfaces, If the device supports arbitrarily named user-controlled interfaces,
the NETCONF server advertises the feature "arbitrary-names". If the the NETCONF server advertises the feature "arbitrary-names". If the
device does not advertise this feature, the names of user-controlled device does not advertise this feature, the names of user-controlled
interfaces MUST match the device's naming scheme. How a client can interfaces MUST match the device's naming scheme. How a client can
learn the naming scheme of such devices is outside the scope of this learn the naming scheme of such devices is outside the scope of this
document. document. See Appendix E.1 and Appendix E.2 for examples.
When a system-controlled interface is created by the system, the When a system-controlled interface is created by the system, the
system tries to apply the interface configuration in /interfaces/ system tries to apply the interface configuration in "/interfaces/
interface with the same name as the new interface. If no such interface" with the same name as the new interface. If no such
interface configuration is found, or if the configured type does not interface configuration is found, or if the configured type does not
match the real interface type, the system creates the interface match the real interface type, the system creates the interface
without applying explicit configuration. without applying explicit configuration.
When a user-controlled interface is created, the configuration When a user-controlled interface is created, the configuration
determines the name of the interface. determines the name of the interface.
3.2. Interface References 3.2. Interface References
An interface is identified by its name, which is unique within the An interface is identified by its name, which is unique within the
skipping to change at page 8, line 48 skipping to change at page 8, line 48
type if:interface-ref; type if:interface-ref;
must "/if:interfaces/if:interface[if:name = current()]" must "/if:interfaces/if:interface[if:name = current()]"
+ "/if:type = 'ianaift:ethernetCsmacd'" { + "/if:type = 'ianaift:ethernetCsmacd'" {
description description
"The type of a slave interface must be ethernet"; "The type of a slave interface must be ethernet";
} }
} }
// other bonding config params, failover times etc. // other bonding config params, failover times etc.
} }
Two state data leaf-lists, "higher-layer-if" and "lower-layer-if", While the interface layering is configured in type specific models,
represent a read-only view of the interface layering hierarchy. two generic state data leaf-lists, "higher-layer-if" and
"lower-layer-if", represent a read-only view of the interface
layering hierarchy.
4. Relationship to the IF-MIB 4. Relationship to the IF-MIB
If the device implements IF-MIB [RFC2863], each entry in the If the device implements IF-MIB [RFC2863], each entry in the
"/interfaces-state/interface" list is typically mapped to one "/interfaces-state/interface" list is typically mapped to one
ifEntry. The "if-index" leaf MUST contain the value of the ifEntry. The "if-index" leaf MUST contain the value of the
corresponding ifEntry's ifIndex. corresponding ifEntry's ifIndex.
In most cases, the "name" of an "interface" entry is mapped to In most cases, the "name" of an "interface" entry is mapped to
ifName. ifName is defined as an DisplayString [RFC2579] which uses a ifName. ifName is defined as a DisplayString [RFC2579] which uses a
7-bit ASCII character set. An implementation MUST restrict the 7-bit ASCII character set. An implementation that performs this
allowed values for "name" to match the restrictions of ifName. mapping MUST restrict the allowed values for "name" to match the
restrictions of ifName.
The IF-MIB allows two different ifEntries to have the same ifName. The IF-MIB allows two different ifEntries to have the same ifName.
Devices that support this feature, and also support the data model Devices that support this feature, and also support the data model
defined in this document, cannot have a 1-1 mapping between the defined in this document, cannot have a 1-1 mapping between the
"name" leaf and ifName. "name" leaf and ifName.
The configured "description" of an "interface" has traditionally been The configured "description" of an "interface" has traditionally been
mapped to ifAlias in some implementations. This document allows this mapped to ifAlias in some implementations. This document allows this
mapping, but implementers should be aware of the differences in the mapping, but implementers should be aware of the differences in the
value space and persistence for these objects. See the YANG module value space and persistence for these objects. See the YANG module
definition of the leaf "description" in Section 5 for details. definition of the leaf "description" in Section 5 for details.
The IF-MIB also defines the writable object ifPromiscuousMode. Since The IF-MIB also defines the writable object ifPromiscuousMode. Since
this object typically is not a configuration object, it is not mapped this object typically is not a configuration object, it is not mapped
to the "ietf-interfaces" module. to the "ietf-interfaces" module.
There are a number of counters in the IF-MIB that exist in two There are a number of counters in the IF-MIB that exist in two
versions; one with 32 bits and one with 64 bits. The YANG module versions; one with 32 bits and one with 64 bits. The 64-bit versions
contains the 64 bits counters only. Note that NETCONF and SNMP may were added to support high-speed interfaces with a data rate greater
differ in the time granularity in which they provide access to the than 20,000,000 bits/second. Today's implementations generally
counters. For example, it is common that SNMP implementations cache support such high-speed interfaces and hence only 64-bit counters are
counter values for some time. provided in this data model. Note that NETCONF and SNMP may differ
in the time granularity in which they provide access to the counters.
For example, it is common that SNMP implementations cache counter
values for some time.
The following table lists the YANG data nodes with corresponding The following tables list the YANG data nodes with corresponding
objects in the IF-MIB. objects in the IF-MIB.
+----------------------------------+------------------------+ +------------------------------------------+------------------------+
| YANG data node | IF-MIB object | | YANG data node in | IF-MIB object |
+----------------------------------+------------------------+ | /interfaces-state/interface | |
| /interfaces-state/interface | ifEntry | +------------------------------------------+------------------------+
| /interfaces-state/name | ifName | | name | ifName |
| description | ifAlias | | type | ifType |
| type | ifType | | admin-status | ifAdminStatus |
| enabled / admin-status | ifAdminStatus | | oper-status | ifOperStatus |
| oper-status | ifOperStatus | | last-change | ifLastChange |
| last-change | ifLastChange | | if-index | ifIndex |
| if-index | ifIndex | | link-up-down-trap-enable | ifLinkUpDownTrapEnable |
| link-up-down-trap-enable | ifLinkUpDownTrapEnable | | phys-address | ifPhysAddress |
| phys-address | ifPhysAddress | | higher-layer-if / lower-layer-if | ifStackTable |
| higher-layer-if / lower-layer-if | ifStackTable | | speed | ifSpeed |
| speed | ifSpeed | | in-octets | ifHCInOctets |
| in-octets | ifHCInOctets | | in-unicast-pkts | ifHCInUcastPkts |
| in-unicast-pkts | ifHCInUcastPkts | | in-broadcast-pkts | ifHCInBroadcastPkts |
| in-broadcast-pkts | ifHCInBroadcastPkts | | in-multicast-pkts | ifHCInMulticastPkts |
| in-multicast-pkts | ifHCInMulticastPkts | | in-discards | ifInDiscards |
| in-discards | ifInDiscards | | in-errors | ifInErrors |
| in-errors | ifInErrors | | in-unknown-protos | ifInUnknownProtos |
| in-unknown-protos | ifInUnknownProtos | | out-octets | ifHCOutOctets |
| out-octets | ifHCOutOctets | | out-unicast-pkts | ifHCOutUcastPkts |
| out-unicast-pkts | ifHCOutUcastPkts | | out-broadcast-pkts | ifHCOutBroadcastPkts |
| out-broadcast-pkts | ifHCOutBroadcastPkts | | out-multicast-pkts | ifHCOutMulticastPkts |
| out-multicast-pkts | ifHCOutMulticastPkts | | out-discards | ifOutDiscards |
| out-discards | ifOutDiscards | | out-errors | ifOutErrors |
| out-errors | ifOutErrors | +------------------------------------------+------------------------+
+----------------------------------+------------------------+
YANG data nodes and related IF-MIB objects YANG state data nodes and related IF-MIB objects
+-----------------------------------------+---------------+
| YANG data node in /interfaces/interface | IF-MIB object |
+-----------------------------------------+---------------+
| description | ifAlias |
+-----------------------------------------+---------------+
YANG config data nodes and related IF-MIB objects
5. Interfaces YANG Module 5. Interfaces YANG Module
This YANG module imports typedefs from [RFC6991]. This YANG module imports typedefs from [RFC6991].
RFC Ed.: update the date below with the date of RFC publication and RFC Ed.: update the date below with the date of RFC publication and
remove this note. remove this note.
<CODE BEGINS> file "ietf-interfaces@2013-11-07.yang" <CODE BEGINS> file "ietf-interfaces@2013-12-06.yang"
module ietf-interfaces { module ietf-interfaces {
namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces";
prefix if; prefix if;
import ietf-yang-types { import ietf-yang-types {
prefix yang; prefix yang;
} }
skipping to change at page 12, line 12 skipping to change at page 12, line 12
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 RFC XXXX; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
// RFC Ed.: replace XXXX with actual RFC number and remove this // RFC Ed.: replace XXXX with actual RFC number and remove this
// note. // note.
// RFC Ed.: update the date below with the date of RFC publication // RFC Ed.: update the date below with the date of RFC publication
// and remove this note. // and remove this note.
revision 2013-07-04 { revision 2013-12-06 {
description description
"Initial revision."; "Initial revision.";
reference reference
"RFC XXXX: A YANG Data Model for Interface Management"; "RFC XXXX: A YANG Data Model for Interface Management";
} }
/* /*
* Typedefs * Typedefs
*/ */
skipping to change at page 13, line 48 skipping to change at page 13, line 48
description description
"The list of configured interfaces on the device. "The list of configured interfaces on the device.
The operational state of an interface is available in the The operational state of an interface is available in the
/interfaces-state/interface list. If the configuration of a /interfaces-state/interface list. If the configuration of a
system-controlled interface cannot be used by the system system-controlled interface cannot be used by the system
(e.g., the interface hardware present does not match the (e.g., the interface hardware present does not match the
interface type), then the configuration is not applied to interface type), then the configuration is not applied to
the system-controlled interface shown in the the system-controlled interface shown in the
/interfaces-state/interface list. If the the configuration /interfaces-state/interface list. If the configuration
of a user-controlled interface cannot be used by the system, of a user-controlled interface cannot be used by the system,
the configured interface is not instantiated in the the configured interface is not instantiated in the
/interfaces-state/interface list."; /interfaces-state/interface list.";
leaf name { leaf name {
type string; type string;
description description
"The name of the interface. "The name of the interface.
A device MAY restrict the allowed values for this leaf, A device MAY restrict the allowed values for this leaf,
 End of changes. 17 change blocks. 
55 lines changed or deleted 70 lines changed or added

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