draft-ietf-netmod-interfaces-cfg-05.txt   draft-ietf-netmod-interfaces-cfg-06.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 July 14, 2012 Intended status: Standards Track September 5, 2012
Expires: January 15, 2013 Expires: March 9, 2013
A YANG Data Model for Interface Configuration A YANG Data Model for Interface Management
draft-ietf-netmod-interfaces-cfg-05 draft-ietf-netmod-interfaces-cfg-06
Abstract Abstract
This document defines a YANG data model for the configuration of This document defines a YANG data model for the management of network
network interfaces. It is expected that interface type specific interfaces. It is expected that interface type specific data models
configuration data models augment the generic interfaces data model augment the generic interfaces data model defined in this document.
defined in this document.
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 January 15, 2013. This Internet-Draft will expire on March 9, 2013.
Copyright Notice Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the Copyright (c) 2012 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 15 skipping to change at page 2, line 15
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
2. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Interfaces Data Model . . . . . . . . . . . . . . . . . . . . 5 3. Interfaces Data Model . . . . . . . . . . . . . . . . . . . . 5
3.1. The interface List . . . . . . . . . . . . . . . . . . . . 5 3.1. The interface List . . . . . . . . . . . . . . . . . . . . 5
3.2. Interface References . . . . . . . . . . . . . . . . . . . 6 3.2. Interface References . . . . . . . . . . . . . . . . . . . 6
3.3. Interface Layering . . . . . . . . . . . . . . . . . . . . 6 3.3. Interface Layering . . . . . . . . . . . . . . . . . . . . 6
4. Relationship to the IF-MIB . . . . . . . . . . . . . . . . . . 8 4. Relationship to the IF-MIB . . . . . . . . . . . . . . . . . . 8
5. Interfaces YANG Module . . . . . . . . . . . . . . . . . . . . 9 5. Interfaces YANG Module . . . . . . . . . . . . . . . . . . . . 10
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23
7. Security Considerations . . . . . . . . . . . . . . . . . . . 15 7. Security Considerations . . . . . . . . . . . . . . . . . . . 24
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 16 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 25
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 17 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 26
9.1. Normative References . . . . . . . . . . . . . . . . . . . 17 9.1. Normative References . . . . . . . . . . . . . . . . . . . 26
9.2. Informative References . . . . . . . . . . . . . . . . . . 17 9.2. Informative References . . . . . . . . . . . . . . . . . . 26
Appendix A. Example: Ethernet Interface Module . . . . . . . . . 18 Appendix A. Example: Ethernet Interface Module . . . . . . . . . 27
Appendix B. Example: Ethernet Bonding Interface Module . . . . . 20 Appendix B. Example: Ethernet Bonding Interface Module . . . . . 29
Appendix C. Example: VLAN Interface Module . . . . . . . . . . . 21 Appendix C. Example: VLAN Interface Module . . . . . . . . . . . 30
Appendix D. Example: NETCONF <get> reply . . . . . . . . . . . . 22 Appendix D. Example: NETCONF <get> reply . . . . . . . . . . . . 31
Appendix E. ChangeLog . . . . . . . . . . . . . . . . . . . . . . 23 Appendix E. ChangeLog . . . . . . . . . . . . . . . . . . . . . . 32
E.1. Version -05 . . . . . . . . . . . . . . . . . . . . . . . 23 E.1. Version -06 . . . . . . . . . . . . . . . . . . . . . . . 32
E.2. Version -04 . . . . . . . . . . . . . . . . . . . . . . . 23 E.2. Version -05 . . . . . . . . . . . . . . . . . . . . . . . 32
E.3. Version -03 . . . . . . . . . . . . . . . . . . . . . . . 23 E.3. Version -04 . . . . . . . . . . . . . . . . . . . . . . . 32
E.4. Version -02 . . . . . . . . . . . . . . . . . . . . . . . 23 E.4. Version -03 . . . . . . . . . . . . . . . . . . . . . . . 32
E.5. Version -01 . . . . . . . . . . . . . . . . . . . . . . . 23 E.5. Version -02 . . . . . . . . . . . . . . . . . . . . . . . 32
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 24 E.6. Version -01 . . . . . . . . . . . . . . . . . . . . . . . 32
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 33
1. Introduction 1. Introduction
This document defines a YANG [RFC6020] data model for the This document defines a YANG [RFC6020] data model for the management
configuration of network interfaces. It is expected that interface of network interfaces. It is expected that interface type specific
type specific configuration data models augment the generic data models augment the generic interfaces data model defined in this
interfaces data model defined in this document. document.
Network interfaces are central to the configuration 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 and configured. for how interfaces are identified and configured.
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].
skipping to change at page 5, line 9 skipping to change at page 5, line 9
configuration, i.e., it should be possible to configure an configuration, i.e., it should be possible to configure an
interface whose physical interface hardware is not present on the interface whose physical interface hardware is not present on the
device. It is recommended that devices that support dynamic device. It is recommended that devices that support dynamic
addition and removal of physical interfaces also support pre- addition and removal of physical interfaces also support pre-
provisioning. provisioning.
3. Interfaces Data Model 3. Interfaces Data Model
The data model in the module "ietf-interfaces" has the following The data model in the module "ietf-interfaces" has the following
structure, where square brackets are used to enclose a list's keys, structure, where square brackets are used to enclose a list's keys,
and "?" means that the leaf is optional: "?" means that the leaf is optional, and "*" denotes a leaf-list:
+--rw interfaces +--rw interfaces
+--rw interface [name] +--rw interface [name]
+--rw name string +--rw name string
+--rw description? string +--rw description? string
+--rw type ianaift:iana-if-type +--rw type ianaift:iana-if-type
+--rw location? string +--rw location? string
+--rw enabled? boolean +--rw enabled? boolean
+--ro if-index int32 +--ro oper-status? enumeration
+--ro last-change? yang:date-and-time
+--ro if-index? int32
+--rw mtu? uint32 +--rw mtu? uint32
+--rw link-up-down-trap-enable? enumeration +--rw link-up-down-trap-enable? enumeration
+--ro phys-address? yang:phys-address
+--ro higher-layer-if* interface-ref
+--ro lower-layer-if* interface-ref
+--rw speed? yang:gauge64
+--ro statistics
+--ro discontinuity-time? yang:date-and-time
+--ro in-octets? yang:counter64
+--ro in-unicast-pkts? yang:counter64
+--ro in-broadcast-pkts? yang:counter64
+--ro in-multicast-pkts? yang:counter64
+--ro in-discards? yang:counter32
+--ro in-errors? yang:counter32
+--ro in-unknown-protos? yang:counter32
+--ro out-octets? yang:counter64
+--ro out-unicast-pkts? yang:counter64
+--ro out-broadcast-pkts? yang:counter64
+--ro out-multicast-pkts? yang:counter64
+--ro out-discards? yang:counter32
+--ro out-errors? yang:counter32
This module defines one YANG feature: This module defines one YANG feature:
snmp-if-mib: Indicates that the server implements IF-MIB [RFC2863]. if-mib: Indicates that the server implements IF-MIB [RFC2863].
3.1. The interface List 3.1. The interface List
The data model for interface configuration presented in this document The data model for interfaces presented in this document uses a flat
uses a flat list of interfaces. Each interface in the list is list of interfaces. Each interface in the list is identified by its
identified by its name. Furthermore, each interface has a mandatory name. Furthermore, each interface has a mandatory "type" leaf, and a
"type" leaf, and a "location" leaf. The combination of "type" and "location" leaf. The combination of "type" and "location" is unique
"location" is unique within the interface list. within the interface list.
It is expected that interface type specific data models augment the It is expected that interface type specific data models augment the
interface list, and use the "type" leaf to make the augmentation interface list, and use the "type" leaf to make the augmentation
conditional. conditional.
As an example of such an interface type specific augmentation, As an example of such an interface type specific augmentation,
consider this YANG snippet. For a more complete example, see consider this YANG snippet. For a more complete example, see
Appendix A. Appendix A.
import interfaces { import interfaces {
skipping to change at page 8, line 5 skipping to change at page 7, line 24
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 = 'ethernetCsmacd'" { + "/if:type = '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.
} }
There are two state data leaf-list nodes "higher-layer-if" and
"lower-layer-if" defined, that contains 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
"interface" list is typically mapped to one ifEntry. The "if-index" "interface" list is typically mapped to one ifEntry. The "if-index"
leaf contains the value of the corresponding ifEntry's ifIndex. leaf contains the value of the 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 an DisplayString [RFC2579] which uses a
7-bit ASCII character set. An implementation MAY restrict the 7-bit ASCII character set. An implementation MAY restrict the
allowed values for "name" to match the restrictions of ifName. allowed values for "name" to match the restrictions of ifName.
skipping to change at page 8, line 28 skipping to change at page 9, line 5
of these interfaces using the "interface" list, cannot have a 1-1 of these interfaces using the "interface" list, cannot have a 1-1
mapping between the "name" leaf and ifName. mapping between the "name" leaf and ifName.
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.
The following table lists the YANG data nodes with corresponding The following table lists 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 | IF-MIB object |
+--------------------------+------------------------+ +----------------------------------+------------------------+
| interface | ifEntry | | interface | ifEntry |
| name | ifName | | name | ifName |
| description | ifAlias | | description | ifAlias |
| type | ifType | | type | ifType |
| enabled | ifAdminStatus | | enabled | ifAdminStatus |
| if-index | ifIndex | | oper-status | ifOperStatus |
| mtu | ifMtu | | last-change | ifLastChange |
| link-up-down-trap-enable | ifLinkUpDownTrapEnable | | if-index | ifIndex |
+--------------------------+------------------------+ | mtu | ifMtu |
| link-up-down-trap-enable | ifLinkUpDownTrapEnable |
| phys-address | ifPhysAddress |
| higher-layer-if / lower-layer-if | ifStackTable |
| speed | ifSpeed |
| in-octets | ifHCInOctets |
| in-unicast-pkts | ifHCInUcastPkts |
| in-broadcast-pkts | ifHCInBroadcastPkts |
| in-multicast-pkts | ifHCInMulticastPkts |
| in-discards | ifInDiscards |
| in-errors | ifInErrors |
| in-unknown-protos | ifInUnknownProtos |
| out-octets | ifHCOutOctets |
| out-unicast-pkts | ifHCOutUcastPkts |
| out-broadcast-pkts | ifHCOutBroadcastPkts |
| out-multicast-pkts | ifHCOutMulticastPkts |
| out-discards | ifOutDiscards |
| out-errors | ifOutErrors |
+----------------------------------+------------------------+
Mapping of YANG data nodes to IF-MIB objects Mapping of YANG data nodes to IF-MIB objects
5. Interfaces YANG Module 5. Interfaces YANG Module
This YANG module imports a typedef from This YANG module imports a typedef from
[I-D.ietf-netmod-iana-if-type]. [I-D.ietf-netmod-iana-if-type].
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@2012-07-14.yang" <CODE BEGINS> file "ietf-interfaces@2012-09-05.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 {
prefix yang;
}
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";
contact contact
"WG Web: <http://tools.ietf.org/wg/netmod/> "WG Web: <http://tools.ietf.org/wg/netmod/>
WG List: <mailto:netmod@ietf.org> WG List: <mailto:netmod@ietf.org>
skipping to change at page 9, line 42 skipping to change at page 10, line 45
<mailto:david.kessens@nsn.com> <mailto:david.kessens@nsn.com>
WG Chair: Juergen Schoenwaelder WG Chair: Juergen Schoenwaelder
<mailto:j.schoenwaelder@jacobs-university.de> <mailto:j.schoenwaelder@jacobs-university.de>
Editor: Martin Bjorklund Editor: Martin Bjorklund
<mailto:mbj@tail-f.com>"; <mailto:mbj@tail-f.com>";
description description
"This module contains a collection of YANG definitions for "This module contains a collection of YANG definitions for
configuring network interfaces. managing network interfaces.
Copyright (c) 2012 IETF Trust and the persons identified as Copyright (c) 2012 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
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).
skipping to change at page 10, line 4 skipping to change at page 11, line 7
Copyright (c) 2012 IETF Trust and the persons identified as Copyright (c) 2012 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
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 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 2012-07-14 { revision 2012-09-05 {
description description
"Initial revision."; "Initial revision.";
reference reference
"RFC XXXX: A YANG Data Model for Interface Configuration"; "RFC XXXX: A YANG Data Model for Interface Management";
} }
/* Typedefs */ /* Typedefs */
typedef interface-ref { typedef interface-ref {
type leafref { type leafref {
path "/if:interfaces/if:interface/if:name"; path "/if:interfaces/if:interface/if:name";
} }
description description
"This type is used by data models that need to reference "This type is used by data models that need to reference
interfaces."; interfaces.";
} }
/* Features */ /* Features */
feature snmp-if-mib { feature if-mib {
description description
"This feature indicates that the server implements IF-MIB."; "This feature indicates that the server implements IF-MIB.";
reference reference
"RFC 2863: The Interfaces Group MIB"; "RFC 2863: The Interfaces Group MIB";
} }
/* Data nodes */ /* Data nodes */
container interfaces { container interfaces {
description description
skipping to change at page 10, line 48 skipping to change at page 12, line 4
/* Data nodes */ /* Data nodes */
container interfaces { container interfaces {
description description
"Interface parameters."; "Interface parameters.";
list interface { list interface {
key "name"; key "name";
unique "type location"; unique "type location";
description description
"The list of configured interfaces on the device."; "The list of interfaces on the device.";
leaf name { leaf name {
type string; type string;
description description
"An arbitrary name for the interface. "An arbitrary name for the interface.
A device MAY restrict the allowed values for this leaf, A device MAY restrict the allowed values for this leaf,
possibly depending on the type and location. possibly depending on the type and location.
For example, if a device has a single array of 8 ethernet For example, if a device has a single array of 8 ethernet
skipping to change at page 12, line 5 skipping to change at page 13, line 9
leaf type { leaf type {
type ianaift:iana-if-type; type ianaift:iana-if-type;
mandatory true; mandatory true;
description description
"The type of the interface. "The type of the interface.
When an interface entry is created, a server MAY When an interface entry is created, a server MAY
initialize the type leaf with a valid value, e.g., if it initialize the type leaf with a valid value, e.g., if it
is possible to derive the type from the name of the is possible to derive the type from the name of the
interface."; interface.";
reference
"RFC 2863: The Interfaces Group MIB - ifType";
} }
leaf location { leaf location {
type string; type string;
description description
"The device-specific location of the interface of a "The device-specific location of the interface of a
particular type. The format of the location string particular type. The format of the location string
depends on the interface type and the device. depends on the interface type and the device.
If the interface's type represents a physical interface, If the interface's type represents a physical interface,
skipping to change at page 12, line 43 skipping to change at page 13, line 49
This leaf contains the configured, desired state of the This leaf contains the configured, desired state of the
interface. Systems that implement the IF-MIB use the interface. Systems that implement the IF-MIB use the
value of this leaf to set IF-MIB.ifAdminStatus to 'up' or value of this leaf to set IF-MIB.ifAdminStatus to 'up' or
'down' after an ifEntry has been initialized, as described 'down' after an ifEntry has been initialized, as described
in RFC 2863."; in RFC 2863.";
reference reference
"RFC 2863: The Interfaces Group MIB - ifAdminStatus"; "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
} }
leaf oper-status {
type enumeration {
enum up {
value 1;
description
"Ready to pass packets.";
}
enum down {
value 2;
}
enum testing {
value 3;
description
"In some test mode. No operational packets can
be passed.";
}
enum unknown {
value 4;
description
"Status can not be determined
for some reason.";
}
enum dormant {
value 5;
}
enum not-present {
value 6;
description
"Some component is missing.";
}
enum lower-layer-down {
value 7;
description
"Down due to state of lower-layer
interface(s).";
}
}
config false;
description
"The current operational state of the interface.
If 'enabled' is 'false' then 'oper-status'
should be 'down'. If 'enabled' is changed to 'true'
then 'oper-status' should change to 'up' if the interface
is ready to transmit and receive network traffic; it
should change to 'dormant' if the interface is waiting for
external actions (such as a serial line waiting for an
incoming connection); it should remain in the 'down' state
if and only if there is a fault that prevents it from
going to the 'up' state; it should remain in the
'not-present' state if the interface has missing
(typically, hardware) components.";
reference
"RFC 2863: The Interfaces Group MIB - ifOperStatus";
}
leaf last-change {
type yang:date-and-time;
config false;
description
"The time the interface entered its current operational
state. If the current state was entered prior to the
last re-initialization of the local network management
subsystem, then this node is not present.";
reference
"RFC 2863: The Interfaces Group MIB - ifLastChange";
}
leaf if-index { leaf if-index {
if-feature snmp-if-mib; if-feature if-mib;
type int32 { type int32 {
range "1..2147483647"; range "1..2147483647";
} }
config false; config false;
description description
"The ifIndex value for the ifEntry represented by this "The ifIndex value for the ifEntry represented by this
interface. interface.
Media-specific modules must specify how the type is Media-specific modules must specify how the type is
mapped to entries in the ifTable."; mapped to entries in the ifTable.";
skipping to change at page 13, line 20 skipping to change at page 15, line 46
leaf mtu { leaf mtu {
type uint32; type uint32;
description description
"The size, in octets, of the largest packet that the "The size, in octets, of the largest packet that the
interface can send and receive. This node might not be interface can send and receive. This node might not be
valid for all interface types. valid for all interface types.
Media-specific modules must specify any restrictions on Media-specific modules must specify any restrictions on
the mtu for their interface type."; the mtu for their interface type.";
reference
"RFC 2863: The Interfaces Group MIB - ifMtu";
} }
leaf link-up-down-trap-enable { leaf link-up-down-trap-enable {
if-feature snmp-if-mib; if-feature if-mib;
type enumeration { type enumeration {
enum enabled { enum enabled {
value 1; value 1;
} }
enum disabled { enum disabled {
value 2; value 2;
} }
} }
description description
"Indicates whether linkUp/linkDown SNMP notifications "Indicates whether linkUp/linkDown SNMP notifications
should be generated for this interface. should be generated for this interface.
If this node is not configured, the value 'enabled' is If this node is not configured, the value 'enabled' is
operationally used by the server for interfaces which do operationally used by the server for interfaces which do
not operate on top of any other interface (as defined in not operate on top of any other interface (i.e., there are
the ifStackTable), and 'disabled' otherwise."; no 'lower-layer-if' entries), and 'disabled' otherwise.";
reference reference
"RFC 2863: The Interfaces Group MIB - "RFC 2863: The Interfaces Group MIB -
ifLinkUpDownTrapEnable"; ifLinkUpDownTrapEnable";
} }
leaf phys-address {
type yang:phys-address;
config false;
description
"The interface's address at its protocol sub-layer. For
example, for an 802.x interface, this object normally
contains a MAC address. The interface's media-specific
modules must define the bit and byte ordering and the
format of the value of this object. For interfaces that do
not have such an address (e.g., a serial line), this node
is not present.";
reference
"RFC 2863: The Interfaces Group MIB - ifPhysAddress";
}
leaf-list higher-layer-if {
type interface-ref;
config false;
description
"A list of references to interfaces layered on top of this
interface.";
reference
"RFC 2863: The Interfaces Group MIB - ifStackTable";
}
leaf-list lower-layer-if {
type interface-ref;
config false;
description
"A list of references to interfaces layered underneath this
interface.";
reference
"RFC 2863: The Interfaces Group MIB - ifStackTable";
}
leaf speed {
type yang:gauge64;
units "bits / second";
description
"An estimate of the interface's current bandwidth in bits
per second. For interfaces which do not vary in
bandwidth or for those where no accurate estimation can
be made, this node should contain the nominal bandwidth.
For interfaces that has no concept of bandwidth, this
node is not present.";
reference
"RFC 2863: The Interfaces Group MIB -
ifSpeed, ifHighSpeed";
}
container statistics {
config false;
description
"A collection of interface-related statistics objects.";
leaf discontinuity-time {
type yang:date-and-time;
description
"The time on the most recent occasion at which any one or
more of this interface's counters suffered a
discontinuity. If no such discontinuities have occurred
since the last re-initialization of the local management
subsystem, then this node contains the time the local
management subsystem re-initialized itself.";
}
leaf in-octets {
type yang:counter64;
description
"The total number of octets received on the interface,
including framing characters.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'discontinuity-time'.";
reference
"RFC 2863: The Interfaces Group MIB - ifHCInOctets";
}
leaf in-unicast-pkts {
type yang:counter64;
description
"The number of packets, delivered by this sub-layer to a
higher (sub-)layer, which were not addressed to a
multicast or broadcast address at this sub-layer.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'discontinuity-time'.";
reference
"RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
}
leaf in-broadcast-pkts {
type yang:counter64;
description
"The number of packets, delivered by this sub-layer to a
higher (sub-)layer, which were addressed to a broadcast
address at this sub-layer.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'discontinuity-time'.";
reference
"RFC 2863: The Interfaces Group MIB -
ifHCInBroadcastPkts";
}
leaf in-multicast-pkts {
type yang:counter64;
description
"The number of packets, delivered by this sub-layer to a
higher (sub-)layer, which were addressed to a multicast
address at this sub-layer. For a MAC layer protocol,
this includes both Group and Functional addresses.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'discontinuity-time'.";
reference
"RFC 2863: The Interfaces Group MIB -
ifHCInMulticastPkts";
}
leaf in-discards {
type yang:counter32;
description
"The number of inbound packets which were chosen to be
discarded even though no errors had been detected to
prevent their being deliverable to a higher-layer
protocol. One possible reason for discarding such a
packet could be to free up buffer space.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'discontinuity-time'.";
reference
"RFC 2863: The Interfaces Group MIB - ifInDiscards";
}
leaf in-errors {
type yang:counter32;
description
"For packet-oriented interfaces, the number of inbound
packets that contained errors preventing them from being
deliverable to a higher-layer protocol. For character-
oriented or fixed-length interfaces, the number of
inbound transmission units that contained errors
preventing them from being deliverable to a higher-layer
protocol.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'discontinuity-time'.";
reference
"RFC 2863: The Interfaces Group MIB - ifInErrors";
}
leaf in-unknown-protos {
type yang:counter32;
description
"For packet-oriented interfaces, the number of packets
received via the interface which were discarded because
of an unknown or unsupported protocol. For
character-oriented or fixed-length interfaces that
support protocol multiplexing the number of transmission
units received via the interface which were discarded
because of an unknown or unsupported protocol. For any
interface that does not support protocol multiplexing,
this counter is not present.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'discontinuity-time'.";
reference
"RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
}
leaf out-octets {
type yang:counter64;
description
"The total number of octets transmitted out of the
interface, including framing characters.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'discontinuity-time'.";
reference
"RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
}
leaf out-unicast-pkts {
type yang:counter64;
description
"The total number of packets that higher-level protocols
requested be transmitted, and which were not addressed
to a multicast or broadcast address at this sub-layer,
including those that were discarded or not sent.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'discontinuity-time'.";
reference
"RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
}
leaf out-broadcast-pkts {
type yang:counter64;
description
"The total number of packets that higher-level protocols
requested be transmitted, and which were addressed to a
broadcast address at this sub-layer, including those
that were discarded or not sent.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'discontinuity-time'.";
reference
"RFC 2863: The Interfaces Group MIB -
ifHCOutBroadcastPkts";
}
leaf out-multicast-pkts {
type yang:counter64;
description
"The total number of packets that higher-level protocols
requested be transmitted, and which were addressed to a
multicast address at this sub-layer, including those
that were discarded or not sent. For a MAC layer
protocol, this includes both Group and Functional
addresses.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'discontinuity-time'.";
reference
"RFC 2863: The Interfaces Group MIB -
ifHCOutMulticastPkts";
}
leaf out-discards {
type yang:counter32;
description
"The number of outbound packets which were chosen to be
discarded even though no errors had been detected to
prevent their being transmitted. One possible reason
for discarding such a packet could be to free up buffer
space.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'discontinuity-time'.";
reference
"RFC 2863: The Interfaces Group MIB - ifOutDiscards";
}
leaf out-errors {
type yang:counter32;
description
"For packet-oriented interfaces, the number of outbound
packets that could not be transmitted because of errors.
For character-oriented or fixed-length interfaces, the
number of outbound transmission units that could not be
transmitted because of errors.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
'discontinuity-time'.";
reference
"RFC 2863: The Interfaces Group MIB - ifOutErrors";
}
}
} }
} }
} }
<CODE ENDS> <CODE ENDS>
6. IANA Considerations 6. IANA Considerations
This document registers a URI in the IETF XML registry [RFC3688]. This document registers a URI in the IETF XML registry [RFC3688].
Following the format in RFC 3688, the following registration is Following the format in RFC 3688, the following registration is
skipping to change at page 21, line 42 skipping to change at page 30, line 42
must "/if:interfaces/if:interface[if:name = current()]" must "/if:interfaces/if:interface[if:name = current()]"
+ "/vlan:vlan-tagging = true" { + "/vlan:vlan-tagging = true" {
description description
"The base interface must have vlan tagging enabled."; "The base interface must have vlan tagging enabled.";
} }
} }
leaf vlan-id { leaf vlan-id {
type uint16 { type uint16 {
range "1..4094"; range "1..4094";
} }
must "../base-interface"; must "../base-interface" {
description
"If a vlan-id is defined, a base-interface must
be specified.";
}
} }
} }
} }
Appendix D. Example: NETCONF <get> reply Appendix D. Example: NETCONF <get> reply
This section gives an example of a reply to the NETCONF <get> request This section gives an example of a reply to the NETCONF <get> request
for a device that implements the example data models above. for a device that implements the example data models above.
<rpc-reply <rpc-reply
skipping to change at page 23, line 9 skipping to change at page 32, line 9
xmlns="http://example.com/vlan">true</vlan-tagging> xmlns="http://example.com/vlan">true</vlan-tagging>
</interface> </interface>
</interfaces> </interfaces>
</data> </data>
</rpc-reply> </rpc-reply>
Appendix E. ChangeLog Appendix E. ChangeLog
RFC Editor: remove this section upon publication as an RFC. RFC Editor: remove this section upon publication as an RFC.
E.1. Version -05 E.1. Version -06
o Added oper-status leaf.
o Added leaf-lists higher-layer-if and lower-layer-if, that show the
interface layering.
o Added container statistics with counters.
E.2. Version -05
o Added an Informative References section. o Added an Informative References section.
o Updated the Security Considerations section. o Updated the Security Considerations section.
o Clarified the behavior of an NETCONF server when invalid values o Clarified the behavior of an NETCONF server when invalid values
are received. are received.
E.2. Version -04 E.3. Version -04
o Clarified why ifPromiscuousMode is not part of this data model. o Clarified why ifPromiscuousMode is not part of this data model.
o Added a table that shows the mapping between this YANG data model o Added a table that shows the mapping between this YANG data model
and IF-MIB. and IF-MIB.
E.3. Version -03 E.4. Version -03
o Added the section Relationship to the IF-MIB. o Added the section Relationship to the IF-MIB.
o Changed if-index to be a leaf instead of leaf-list. o Changed if-index to be a leaf instead of leaf-list.
o Explained the notation used in the data model tree picture. o Explained the notation used in the data model tree picture.
E.4. Version -02 E.5. Version -02
o Editorial fixes o Editorial fixes
E.5. Version -01 E.6. Version -01
o Changed leaf "if-admin-status" to leaf "enabled". o Changed leaf "if-admin-status" to leaf "enabled".
o Added Security Considerations o Added Security Considerations
Author's Address Author's Address
Martin Bjorklund Martin Bjorklund
Tail-f Systems Tail-f Systems
 End of changes. 36 change blocks. 
69 lines changed or deleted 477 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/