draft-ietf-netmod-rfc7223bis-00.txt   draft-ietf-netmod-rfc7223bis-01.txt 
Network Working Group M. Bjorklund Network Working Group M. Bjorklund
Internet-Draft Tail-f Systems Internet-Draft Tail-f Systems
Obsoletes: rfc7223 (if approved) October 16, 2017 Obsoletes: rfc7223 (if approved) December 17, 2017
Intended status: Standards Track Intended status: Standards Track
Expires: April 19, 2018 Expires: June 20, 2018
A YANG Data Model for Interface Management A YANG Data Model for Interface Management
draft-ietf-netmod-rfc7223bis-00 draft-ietf-netmod-rfc7223bis-01
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 definitions for configuration and system The data model includes definitions for configuration and system
state (status information and counters for the collection of state (status information and counters for the collection of
statistics). This document obsoletes RFC 7223. statistics). This document obsoletes RFC 7223.
skipping to change at page 1, line 36 skipping to change at page 1, line 36
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 April 19, 2018. This Internet-Draft will expire on June 20, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 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 27 skipping to change at page 2, line 27
3.3. Interface Layering . . . . . . . . . . . . . . . . . . . 8 3.3. Interface Layering . . . . . . . . . . . . . . . . . . . 8
4. Relationship to the IF-MIB . . . . . . . . . . . . . . . . . 9 4. Relationship to the IF-MIB . . . . . . . . . . . . . . . . . 9
5. Interfaces YANG Module . . . . . . . . . . . . . . . . . . . 10 5. Interfaces YANG Module . . . . . . . . . . . . . . . . . . . 10
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 34 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 34
7. Security Considerations . . . . . . . . . . . . . . . . . . . 34 7. Security Considerations . . . . . . . . . . . . . . . . . . . 34
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 35 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 35
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 35 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 35
9.1. Normative References . . . . . . . . . . . . . . . . . . 35 9.1. Normative References . . . . . . . . . . . . . . . . . . 35
9.2. Informative References . . . . . . . . . . . . . . . . . 36 9.2. Informative References . . . . . . . . . . . . . . . . . 36
Appendix A. Example: Ethernet Interface Module . . . . . . . . . 36 Appendix A. Example: Ethernet Interface Module . . . . . . . . . 36
Appendix B. Example: Ethernet Bonding Interface Module . . . . . 37 Appendix B. Example: Ethernet Bonding Interface Module . . . . . 38
Appendix C. Example: VLAN Interface Module . . . . . . . . . . . 38 Appendix C. Example: VLAN Interface Module . . . . . . . . . . . 38
Appendix D. Example: NETCONF <get-config> Reply . . . . . . . . 40 Appendix D. Example: NETCONF <get-config> Reply . . . . . . . . 40
Appendix E. Example: NETCONF <get-data> Reply . . . . . . . . . 41 Appendix E. Example: NETCONF <get-data> Reply . . . . . . . . . 41
Appendix F. Examples: Interface Naming Schemes . . . . . . . . . 43 Appendix F. Examples: Interface Naming Schemes . . . . . . . . . 43
F.1. Router with Restricted Interface Names . . . . . . . . . 43 F.1. Router with Restricted Interface Names . . . . . . . . . 43
F.2. Router with Arbitrary Interface Names . . . . . . . . . . 44 F.2. Router with Arbitrary Interface Names . . . . . . . . . . 44
F.3. Ethernet Switch with Restricted Interface Names . . . . . 45 F.3. Ethernet Switch with Restricted Interface Names . . . . . 45
F.4. Generic Host with Restricted Interface Names . . . . . . 45 F.4. Generic Host with Restricted Interface Names . . . . . . 45
F.5. Generic Host with Arbitrary Interface Names . . . . . . . 46 F.5. Generic Host with Arbitrary Interface Names . . . . . . . 46
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 47 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 47
skipping to change at page 3, line 21 skipping to change at page 3, line 21
The "/interfaces-state" subtree with "config false" data nodes is The "/interfaces-state" subtree with "config false" data nodes is
deprecated. All "config false" data nodes are now present in the deprecated. All "config false" data nodes are now present in the
"/interfaces" subtree. "/interfaces" subtree.
Servers that do not implement NMDA, or that wish to support clients Servers that do not implement NMDA, or that wish to support clients
that do not implement NMDA, MAY implement the deprecated that do not implement NMDA, MAY implement the deprecated
"/interfaces-state" tree. "/interfaces-state" tree.
1.2. Terminology 1.2. Terminology
The key words "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] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
The following terms are used within this document: The following terms are used within this document:
o system-controlled interface: An interface is said to be system- o system-controlled interface: An interface is said to be system-
controlled if the system creates and deletes the interface controlled if the system creates and deletes the interface
independently of what has been explicitly configured. Examples independently of what has been explicitly configured. Examples
are interfaces representing physical hardware that appear and are interfaces representing physical hardware that appear and
disappear when hardware (e.g., a line card or hot-pluggable disappear when hardware (e.g., a line card or hot-pluggable
wireless interface) is added or removed. System-controlled wireless interface) is added or removed. System-controlled
interfaces may also appear if a certain functionality is enabled interfaces may also appear if a certain functionality is enabled
skipping to change at page 4, line 25 skipping to change at page 4, line 25
o augment o augment
o data model o data model
o data node o data node
o presence container o presence container
1.3. Tree Diagrams 1.3. Tree Diagrams
A simplified graphical representation of the data model is used in Tree diagrams used in this document follow the notation defined in
this document. The meaning of the symbols in these diagrams is as [I-D.ietf-netmod-yang-tree-diagrams].
follows:
o Brackets "[" and "]" enclose list keys.
o Abbreviations before data node names: "rw" means configuration
(read-write), and "ro" means state data (read-only).
o Symbols after data node names: "?" means an optional node, "!"
means a presence container, and "*" denotes either a list or a
leaf-list.
o Parentheses enclose choice and case nodes, and case nodes are also
marked with a colon (":").
o Ellipsis ("...") stands for contents of subtrees that are not
shown.
2. Objectives 2. Objectives
This section describes some of the design objectives for the model This section describes some of the design objectives for the model
presented in Section 5. presented in Section 5.
o It is recognized that existing implementations will have to map o It is recognized that existing implementations will have to map
the interface data model defined in this memo to their proprietary the interface data model defined in this memo to their proprietary
native data model. To facilitate such mappings, the data model native data model. To facilitate such mappings, the data model
should be simple. should be simple.
skipping to change at page 10, line 42 skipping to change at page 10, line 42
| out-discards | ifOutDiscards | | out-discards | ifOutDiscards |
| out-errors | ifOutErrors | | out-errors | ifOutErrors |
+--------------------------------------+----------------------------+ +--------------------------------------+----------------------------+
YANG Data Nodes and Related IF-MIB Objects YANG 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].
<CODE BEGINS> file "ietf-interfaces@2017-08-17.yang" <CODE BEGINS> file "ietf-interfaces@2017-12-16.yang"
module ietf-interfaces { module ietf-interfaces {
yang-version 1.1; yang-version 1.1;
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;
} }
organization organization
"IETF NETMOD (NETCONF Data Modeling Language) Working Group"; "IETF NETMOD (Network Modeling) 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>
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
managing network interfaces. managing network interfaces.
Copyright (c) 2017 IETF Trust and the persons identified as Copyright (c) 2017 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.";
revision 2017-08-17 { revision 2017-12-16 {
description description
"Updated to support NMDA."; "Updated to support NMDA.";
reference reference
"RFC XXXX: A YANG Data Model for Interface Management"; "RFC XXXX: A YANG Data Model for Interface Management";
} }
revision 2014-05-08 { revision 2014-05-08 {
description description
"Initial revision."; "Initial revision.";
reference reference
"RFC 7223: A YANG Data Model for Interface Management"; "RFC 7223: 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.";
} }
/* /*
* Identities * Identities
*/ */
identity interface-type { identity interface-type {
description description
"Base identity from which specific interface types are "Base identity from which specific interface types are
derived."; derived.";
} }
/* /*
* Features * Features
*/ */
feature arbitrary-names { feature arbitrary-names {
description description
"This feature indicates that the device allows user-controlled "This feature indicates that the device allows user-controlled
interfaces to be named arbitrarily."; interfaces to be named arbitrarily.";
} }
feature pre-provisioning { feature pre-provisioning {
description description
"This feature indicates that the device supports "This feature indicates that the device supports
pre-provisioning of interface configuration, i.e., it is pre-provisioning of interface configuration, i.e., it is
possible to configure an interface whose physical interface possible to configure an interface whose physical interface
hardware is not present on the device."; hardware is not present on the device.";
} }
feature if-mib { feature if-mib {
description description
"This feature indicates that the device implements "This feature indicates that the device implements
the IF-MIB."; the 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
"Interface parameters."; "Interface parameters.";
list interface { list interface {
key "name"; key "name";
description description
"The list of interfaces on the device. "The list of interfaces on the device.
The status of an interface is available in this list in the The status of an interface is available in this list in the
operational state. If the configuration of a operational state. 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 operational the system-controlled interface shown in the operational
state. If the configuration of a user-controlled interface state. If the configuration of a user-controlled interface
cannot be used by the system, the configured interface is cannot be used by the system, the configured interface is
not instantiated in the operational state. not instantiated in the operational state.
System-controlled interfaces created by the system are always System-controlled interfaces created by the system are
present in this list in the operational state, whether they always present in this list in the operational state,
are configured or not."; whether they are configured or not.";
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,
possibly depending on the type of the interface. possibly depending on the type of the interface.
For system-controlled interfaces, this leaf is the For system-controlled interfaces, this leaf is the
device-specific name of the interface. device-specific name of the interface.
If a client tries to create configuration for a If a client tries to create configuration for a
system-controlled interface that is not present in the system-controlled interface that is not present in the
operational state, the server MAY reject the request if operational state, the server MAY reject the request if
the implementation does not support pre-provisioning of the implementation does not support pre-provisioning of
interfaces or if the name refers to an interface that can interfaces or if the name refers to an interface that can
never exist in the system. A NETCONF server MUST reply never exist in the system. A NETCONF server MUST reply
with an rpc-error with the error-tag 'invalid-value' in with an rpc-error with the error-tag 'invalid-value' in
this case. this case.
If the device supports pre-provisioning of interface If the device supports pre-provisioning of interface
configuration, the 'pre-provisioning' feature is configuration, the 'pre-provisioning' feature is
advertised. advertised.
If the device allows arbitrarily named user-controlled If the device allows arbitrarily named user-controlled
interfaces, the 'arbitrary-names' feature is advertised. interfaces, the 'arbitrary-names' feature is advertised.
When a configured user-controlled interface is created by When a configured user-controlled interface is created by
the system, it is instantiated with the same name in the the system, it is instantiated with the same name in the
operational state. operational state.
A server implementation MAY map this leaf to the ifName A server implementation MAY map this leaf to the ifName
MIB object. Such an implementation needs to use some MIB object. Such an implementation needs to use some
mechanism to handle the differences in size and characters mechanism to handle the differences in size and characters
allowed between this leaf and ifName. The definition of allowed between this leaf and ifName. The definition of
such a mechanism is outside the scope of this document."; such a mechanism is outside the scope of this document.";
reference reference
"RFC 2863: The Interfaces Group MIB - ifName"; "RFC 2863: The Interfaces Group MIB - ifName";
} }
leaf description { leaf description {
type string; type string;
description description
"A textual description of the interface. "A textual description of the interface.
A server implementation MAY map this leaf to the ifAlias A server implementation MAY map this leaf to the ifAlias
MIB object. Such an implementation needs to use some MIB object. Such an implementation needs to use some
mechanism to handle the differences in size and characters mechanism to handle the differences in size and characters
allowed between this leaf and ifAlias. The definition of allowed between this leaf and ifAlias. The definition of
such a mechanism is outside the scope of this document. such a mechanism is outside the scope of this document.
Since ifAlias is defined to be stored in non-volatile Since ifAlias is defined to be stored in non-volatile
storage, the MIB implementation MUST map ifAlias to the storage, the MIB implementation MUST map ifAlias to the
value of 'description' in the persistently stored value of 'description' in the persistently stored
configuration."; configuration.";
reference reference
"RFC 2863: The Interfaces Group MIB - ifAlias"; "RFC 2863: The Interfaces Group MIB - ifAlias";
} }
leaf type { leaf type {
type identityref { type identityref {
base interface-type; base interface-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.
If a client tries to set the type of an interface to a If a client tries to set the type of an interface to a
value that can never be used by the system, e.g., if the value that can never be used by the system, e.g., if the
type is not supported or if the type does not match the type is not supported or if the type does not match the
name of the interface, the server MUST reject the request. name of the interface, the server MUST reject the request.
A NETCONF server MUST reply with an rpc-error with the A NETCONF server MUST reply with an rpc-error with the
error-tag 'invalid-value' in this case."; error-tag 'invalid-value' in this case.";
reference reference
"RFC 2863: The Interfaces Group MIB - ifType"; "RFC 2863: The Interfaces Group MIB - ifType";
} }
leaf enabled { leaf enabled {
type boolean; type boolean;
default "true"; default "true";
description description
"This leaf contains the configured, desired state of the "This leaf contains the configured, desired state of the
interface. interface.
Systems that implement the IF-MIB use the value of this Systems that implement the IF-MIB use the value of this
leaf in the intended configuration to set leaf in the intended configuration to set
IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
has been initialized, as described in RFC 2863. has been initialized, as described in RFC 2863.
Changes in this leaf in the intended configuration are Changes in this leaf in the intended configuration are
reflected in ifAdminStatus, but if ifAdminStatus is reflected in ifAdminStatus.";
changed over SNMP, this leaf is not affected."; reference
reference "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
"RFC 2863: The Interfaces Group MIB - ifAdminStatus"; }
}
leaf link-up-down-trap-enable { leaf link-up-down-trap-enable {
if-feature if-mib; if-feature if-mib;
type enumeration { type enumeration {
enum enabled { enum enabled {
value 1; value 1;
description description
"The device will generate linkUp/linkDown SNMP "The device will generate linkUp/linkDown SNMP
notifications for this interface."; notifications for this interface.";
} }
enum disabled { enum disabled {
value 2; value 2;
description description
"The device will not generate linkUp/linkDown SNMP "The device will not generate linkUp/linkDown SNMP
notifications for this interface."; notifications for this interface.";
} }
} }
description description
"Controls whether linkUp/linkDown SNMP notifications "Controls 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 that do operationally used by the server for interfaces that do
not operate on top of any other interface (i.e., there are not operate on top of any other interface (i.e., there are
no 'lower-layer-if' entries), and 'disabled' otherwise."; no 'lower-layer-if' entries), and 'disabled' otherwise.";
reference
"RFC 2863: The Interfaces Group MIB -
ifLinkUpDownTrapEnable";
}
reference leaf admin-status {
"RFC 2863: The Interfaces Group MIB - if-feature if-mib;
ifLinkUpDownTrapEnable"; type enumeration {
} enum up {
value 1;
description
"Ready to pass packets.";
}
enum down {
value 2;
description
"Not ready to pass packets and not in some test mode.";
}
enum testing {
value 3;
description
"In some test mode.";
}
}
config false;
mandatory true;
description
"The desired state of the interface.
leaf admin-status { This leaf has the same read semantics as ifAdminStatus.";
if-feature if-mib; reference
type enumeration { "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
enum up { }
value 1;
description
"Ready to pass packets.";
}
enum down {
value 2;
description
"Not ready to pass packets and not in some test mode.";
}
enum testing {
value 3;
description
"In some test mode.";
}
}
config false;
mandatory true;
description
"The desired state of the interface.
This leaf has the same read semantics as ifAdminStatus."; leaf oper-status {
reference type enumeration {
"RFC 2863: The Interfaces Group MIB - ifAdminStatus"; enum up {
} value 1;
description
"Ready to pass packets.";
}
enum down {
value 2;
description
"The interface does not pass any packets.";
}
enum testing {
value 3;
description
"In some test mode. No operational packets can
be passed.";
}
enum unknown {
value 4;
description
"Status cannot be determined for some reason.";
}
enum dormant {
value 5;
description
"Waiting for some external event.";
}
enum not-present {
value 6;
description
"Some component (typically hardware) is missing.";
}
enum lower-layer-down {
value 7;
description
"Down due to state of lower-layer interface(s).";
}
}
config false;
mandatory true;
description
"The current operational state of the interface.
leaf oper-status { This leaf has the same semantics as ifOperStatus.";
type enumeration { reference
enum up { "RFC 2863: The Interfaces Group MIB - ifOperStatus";
value 1; }
description
"Ready to pass packets.";
}
enum down {
value 2;
description
"The interface does not pass any packets.";
}
enum testing {
value 3;
description
"In some test mode. No operational packets can
be passed.";
}
enum unknown {
value 4;
description
"Status cannot be determined for some reason.";
}
enum dormant {
value 5;
description
"Waiting for some external event.";
}
enum not-present {
value 6;
description
"Some component (typically hardware) is missing.";
}
enum lower-layer-down {
value 7;
description
"Down due to state of lower-layer interface(s).";
}
}
config false;
mandatory true;
description
"The current operational state of the interface.
This leaf has the same semantics as ifOperStatus."; leaf last-change {
reference type yang:date-and-time;
"RFC 2863: The Interfaces Group MIB - ifOperStatus"; 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 last-change { leaf if-index {
type yang:date-and-time; if-feature if-mib;
config false; type int32 {
description range "1..2147483647";
"The time the interface entered its current operational }
state. If the current state was entered prior to the config false;
last re-initialization of the local network management mandatory true;
subsystem, then this node is not present."; description
reference "The ifIndex value for the ifEntry represented by this
"RFC 2863: The Interfaces Group MIB - ifLastChange"; interface.";
} reference
"RFC 2863: The Interfaces Group MIB - ifIndex";
}
leaf if-index { leaf phys-address {
if-feature if-mib; type yang:phys-address;
type int32 { config false;
range "1..2147483647"; description
} "The interface's address at its protocol sub-layer. For
config false; example, for an 802.x interface, this object normally
mandatory true; contains a Media Access Control (MAC) address. The
description interface's media-specific modules must define the bit
"The ifIndex value for the ifEntry represented by this and byte ordering and the format of the value of this
interface."; object. For interfaces that do not have such an address
reference (e.g., a serial line), this node is not present.";
"RFC 2863: The Interfaces Group MIB - ifIndex"; reference
} "RFC 2863: The Interfaces Group MIB - ifPhysAddress";
}
leaf phys-address { leaf-list higher-layer-if {
type yang:phys-address; type interface-ref;
config false; config false;
description description
"The interface's address at its protocol sub-layer. For "A list of references to interfaces layered on top of this
example, for an 802.x interface, this object normally interface.";
contains a Media Access Control (MAC) address. The reference
interface's media-specific modules must define the bit "RFC 2863: The Interfaces Group MIB - ifStackTable";
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 { leaf-list lower-layer-if {
type interface-ref; type interface-ref;
config false; config false;
description description
"A list of references to interfaces layered on top of this "A list of references to interfaces layered underneath this
interface."; interface.";
reference reference
"RFC 2863: The Interfaces Group MIB - ifStackTable"; "RFC 2863: The Interfaces Group MIB - ifStackTable";
} }
leaf-list lower-layer-if { leaf speed {
type interface-ref; type yang:gauge64;
config false; units "bits/second";
description config false;
"A list of references to interfaces layered underneath this description
interface."; "An estimate of the interface's current bandwidth in bits
reference per second. For interfaces that do not vary in
"RFC 2863: The Interfaces Group MIB - ifStackTable"; bandwidth or for those where no accurate estimation can
} be made, this node should contain the nominal bandwidth.
leaf speed { For interfaces that have no concept of bandwidth, this
type yang:gauge64; node is not present.";
units "bits/second"; reference
config false; "RFC 2863: The Interfaces Group MIB -
description ifSpeed, ifHighSpeed";
"An estimate of the interface's current bandwidth in bits }
per second. For interfaces that 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 have no concept of bandwidth, this
node is not present.";
reference
"RFC 2863: The Interfaces Group MIB -
ifSpeed, ifHighSpeed";
}
container statistics { container statistics {
config false; config false;
description description
"A collection of interface-related statistics objects."; "A collection of interface-related statistics objects.";
leaf discontinuity-time { leaf discontinuity-time {
type yang:date-and-time; type yang:date-and-time;
mandatory true; mandatory true;
description description
"The time on the most recent occasion at which any one or "The time on the most recent occasion at which any one or
more of this interface's counters suffered a more of this interface's counters suffered a
discontinuity. If no such discontinuities have occurred discontinuity. If no such discontinuities have occurred
since the last re-initialization of the local management since the last re-initialization of the local management
subsystem, then this node contains the time the local subsystem, then this node contains the time the local
management subsystem re-initialized itself."; management subsystem re-initialized itself.";
} }
leaf in-octets { leaf in-octets {
type yang:counter64; type yang:counter64;
description description
"The total number of octets received on the interface, "The total number of octets received on the interface,
including framing characters. including framing characters.
Discontinuities in the value of this counter can occur Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at at re-initialization of the management system, and at
other times as indicated by the value of other times as indicated by the value of
'discontinuity-time'."; 'discontinuity-time'.";
reference reference
"RFC 2863: The Interfaces Group MIB - ifHCInOctets"; "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
} }
leaf in-unicast-pkts { leaf in-unicast-pkts {
type yang:counter64; type yang:counter64;
description description
"The number of packets, delivered by this sub-layer to a "The number of packets, delivered by this sub-layer to a
higher (sub-)layer, that were not addressed to a higher (sub-)layer, that were not addressed to a
multicast or broadcast address at this sub-layer. multicast or broadcast address at this sub-layer.
Discontinuities in the value of this counter can occur Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at at re-initialization of the management system, and at
other times as indicated by the value of other times as indicated by the value of
'discontinuity-time'."; 'discontinuity-time'.";
reference reference
"RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
} }
leaf in-broadcast-pkts { leaf in-broadcast-pkts {
type yang:counter64; type yang:counter64;
description description
"The number of packets, delivered by this sub-layer to a "The number of packets, delivered by this sub-layer to a
higher (sub-)layer, that were addressed to a broadcast higher (sub-)layer, that were addressed to a broadcast
address at this sub-layer. address at this sub-layer.
Discontinuities in the value of this counter can occur Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at at re-initialization of the management system, and at
other times as indicated by the value of other times as indicated by the value of
'discontinuity-time'."; 'discontinuity-time'.";
reference reference
"RFC 2863: The Interfaces Group MIB - "RFC 2863: The Interfaces Group MIB -
ifHCInBroadcastPkts"; ifHCInBroadcastPkts";
} }
leaf in-multicast-pkts { leaf in-multicast-pkts {
type yang:counter64; type yang:counter64;
description description
"The number of packets, delivered by this sub-layer to a "The number of packets, delivered by this sub-layer to a
higher (sub-)layer, that were addressed to a multicast higher (sub-)layer, that were addressed to a multicast
address at this sub-layer. For a MAC-layer protocol, address at this sub-layer. For a MAC-layer protocol,
this includes both Group and Functional addresses. this includes both Group and Functional addresses.
Discontinuities in the value of this counter can occur Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at at re-initialization of the management system, and at
other times as indicated by the value of other times as indicated by the value of
'discontinuity-time'."; 'discontinuity-time'.";
reference reference
"RFC 2863: The Interfaces Group MIB - "RFC 2863: The Interfaces Group MIB -
ifHCInMulticastPkts"; ifHCInMulticastPkts";
} }
leaf in-discards { leaf in-discards {
type yang:counter32; type yang:counter32;
description description
"The number of inbound packets that were chosen to be "The number of inbound packets that were chosen to be
discarded even though no errors had been detected to discarded even though no errors had been detected to
prevent their being deliverable to a higher-layer prevent their being deliverable to a higher-layer
protocol. One possible reason for discarding such a protocol. One possible reason for discarding such a
packet could be to free up buffer space. packet could be to free up buffer space.
Discontinuities in the value of this counter can occur Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at at re-initialization of the management system, and at
other times as indicated by the value of other times as indicated by the value of
'discontinuity-time'."; 'discontinuity-time'.";
reference reference
"RFC 2863: The Interfaces Group MIB - ifInDiscards"; "RFC 2863: The Interfaces Group MIB - ifInDiscards";
} }
leaf in-errors { leaf in-errors {
type yang:counter32; type yang:counter32;
description description
"For packet-oriented interfaces, the number of inbound "For packet-oriented interfaces, the number of inbound
packets that contained errors preventing them from being packets that contained errors preventing them from being
deliverable to a higher-layer protocol. For character- deliverable to a higher-layer protocol. For character-
oriented or fixed-length interfaces, the number of oriented or fixed-length interfaces, the number of
inbound transmission units that contained errors inbound transmission units that contained errors
preventing them from being deliverable to a higher-layer preventing them from being deliverable to a higher-layer
protocol. protocol.
Discontinuities in the value of this counter can occur Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at at re-initialization of the management system, and at
other times as indicated by the value of other times as indicated by the value of
'discontinuity-time'."; 'discontinuity-time'.";
reference reference
"RFC 2863: The Interfaces Group MIB - ifInErrors"; "RFC 2863: The Interfaces Group MIB - ifInErrors";
} }
leaf in-unknown-protos { leaf in-unknown-protos {
type yang:counter32; type yang:counter32;
description description
"For packet-oriented interfaces, the number of packets "For packet-oriented interfaces, the number of packets
received via the interface that were discarded because received via the interface that were discarded because
of an unknown or unsupported protocol. For of an unknown or unsupported protocol. For
character-oriented or fixed-length interfaces that character-oriented or fixed-length interfaces that
support protocol multiplexing, the number of support protocol multiplexing, the number of
transmission units received via the interface that were transmission units received via the interface that were
discarded because of an unknown or unsupported protocol. discarded because of an unknown or unsupported protocol.
For any interface that does not support protocol For any interface that does not support protocol
multiplexing, this counter is not present. multiplexing, this counter is not present.
Discontinuities in the value of this counter can occur Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at at re-initialization of the management system, and at
other times as indicated by the value of other times as indicated by the value of
'discontinuity-time'."; 'discontinuity-time'.";
reference reference
"RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
} }
leaf out-octets { leaf out-octets {
type yang:counter64; type yang:counter64;
description description
"The total number of octets transmitted out of the "The total number of octets transmitted out of the
interface, including framing characters. interface, including framing characters.
Discontinuities in the value of this counter can occur Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at at re-initialization of the management system, and at
other times as indicated by the value of other times as indicated by the value of
'discontinuity-time'."; 'discontinuity-time'.";
reference reference
"RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
} }
leaf out-unicast-pkts { leaf out-unicast-pkts {
type yang:counter64; type yang:counter64;
description description
"The total number of packets that higher-level protocols "The total number of packets that higher-level protocols
requested be transmitted, and that were not addressed requested be transmitted, and that were not addressed
to a multicast or broadcast address at this sub-layer, to a multicast or broadcast address at this sub-layer,
including those that were discarded or not sent. including those that were discarded or not sent.
Discontinuities in the value of this counter can occur Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at at re-initialization of the management system, and at
other times as indicated by the value of other times as indicated by the value of
'discontinuity-time'."; 'discontinuity-time'.";
reference reference
"RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
} }
leaf out-broadcast-pkts { leaf out-broadcast-pkts {
type yang:counter64; type yang:counter64;
description description
"The total number of packets that higher-level protocols "The total number of packets that higher-level protocols
requested be transmitted, and that were addressed to a requested be transmitted, and that were addressed to a
broadcast address at this sub-layer, including those broadcast address at this sub-layer, including those
that were discarded or not sent. that were discarded or not sent.
Discontinuities in the value of this counter can occur Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at at re-initialization of the management system, and at
other times as indicated by the value of other times as indicated by the value of
'discontinuity-time'."; 'discontinuity-time'.";
reference reference
"RFC 2863: The Interfaces Group MIB - "RFC 2863: The Interfaces Group MIB -
ifHCOutBroadcastPkts"; ifHCOutBroadcastPkts";
} }
leaf out-multicast-pkts { leaf out-multicast-pkts {
type yang:counter64; type yang:counter64;
description description
"The total number of packets that higher-level protocols "The total number of packets that higher-level protocols
requested be transmitted, and that were addressed to a requested be transmitted, and that were addressed to a
multicast address at this sub-layer, including those multicast address at this sub-layer, including those
that were discarded or not sent. For a MAC-layer that were discarded or not sent. For a MAC-layer
protocol, this includes both Group and Functional protocol, this includes both Group and Functional
addresses. addresses.
Discontinuities in the value of this counter can occur Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at at re-initialization of the management system, and at
other times as indicated by the value of other times as indicated by the value of
'discontinuity-time'."; 'discontinuity-time'.";
reference reference
"RFC 2863: The Interfaces Group MIB - "RFC 2863: The Interfaces Group MIB -
ifHCOutMulticastPkts"; ifHCOutMulticastPkts";
} }
leaf out-discards { leaf out-discards {
type yang:counter32; type yang:counter32;
description description
"The number of outbound packets that were chosen to be "The number of outbound packets that were chosen to be
discarded even though no errors had been detected to discarded even though no errors had been detected to
prevent their being transmitted. One possible reason prevent their being transmitted. One possible reason
for discarding such a packet could be to free up buffer for discarding such a packet could be to free up buffer
space. space.
Discontinuities in the value of this counter can occur Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at at re-initialization of the management system, and at
other times as indicated by the value of other times as indicated by the value of
'discontinuity-time'."; 'discontinuity-time'.";
reference reference
"RFC 2863: The Interfaces Group MIB - ifOutDiscards"; "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
} }
leaf out-errors { leaf out-errors {
type yang:counter32; type yang:counter32;
description description
"For packet-oriented interfaces, the number of outbound "For packet-oriented interfaces, the number of outbound
packets that could not be transmitted because of errors. 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 For character-oriented or fixed-length interfaces, the
at re-initialization of the management system, and at number of outbound transmission units that could not be
other times as indicated by the value of transmitted because of errors.
'discontinuity-time'.";
reference
"RFC 2863: The Interfaces Group MIB - ifOutErrors";
}
}
} 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";
}
}
/* }
* Legacy typedefs }
*/
typedef interface-state-ref { /*
type leafref { * Legacy typedefs
path "/if:interfaces-state/if:interface/if:name"; */
}
status deprecated;
description
"This type is used by data models that need to reference
the operationally present interfaces.";
}
/* typedef interface-state-ref {
* Legacy operational state data nodes type leafref {
*/ path "/if:interfaces-state/if:interface/if:name";
}
status deprecated;
description
"This type is used by data models that need to reference
the operationally present interfaces.";
}
container interfaces-state { /*
config false; * Legacy operational state data nodes
status deprecated; */
description
"Data nodes for the operational state of interfaces.";
list interface { container interfaces-state {
key "name"; config false;
status deprecated; status deprecated;
description
"Data nodes for the operational state of interfaces.";
description list interface {
"The list of interfaces on the device. key "name";
status deprecated;
System-controlled interfaces created by the system are description
always present in this list, whether they are configured or "The list of interfaces on the device.
not.";
leaf name { System-controlled interfaces created by the system are
type string; always present in this list, whether they are configured or
status deprecated; not.";
description
"The name of the interface.
A server implementation MAY map this leaf to the ifName leaf name {
MIB object. Such an implementation needs to use some type string;
mechanism to handle the differences in size and characters status deprecated;
allowed between this leaf and ifName. The definition of description
such a mechanism is outside the scope of this document."; "The name of the interface.
reference
"RFC 2863: The Interfaces Group MIB - ifName";
}
leaf type { A server implementation MAY map this leaf to the ifName
type identityref { MIB object. Such an implementation needs to use some
base interface-type; mechanism to handle the differences in size and characters
} allowed between this leaf and ifName. The definition of
mandatory true; such a mechanism is outside the scope of this document.";
status deprecated; reference
description "RFC 2863: The Interfaces Group MIB - ifName";
"The type of the interface."; }
reference
"RFC 2863: The Interfaces Group MIB - ifType";
}
leaf admin-status { leaf type {
if-feature if-mib; type identityref {
type enumeration { base interface-type;
enum up { }
value 1; mandatory true;
description status deprecated;
"Ready to pass packets."; description
} "The type of the interface.";
enum down { reference
value 2; "RFC 2863: The Interfaces Group MIB - ifType";
description }
"Not ready to pass packets and not in some test mode.";
}
enum testing {
value 3;
description
"In some test mode.";
} leaf admin-status {
} if-feature if-mib;
mandatory true; type enumeration {
status deprecated; enum up {
description value 1;
"The desired state of the interface. description
"Ready to pass packets.";
}
enum down {
value 2;
description
"Not ready to pass packets and not in some test mode.";
}
enum testing {
value 3;
description
"In some test mode.";
}
This leaf has the same read semantics as ifAdminStatus."; }
reference mandatory true;
"RFC 2863: The Interfaces Group MIB - ifAdminStatus"; status deprecated;
} description
"The desired state of the interface.
leaf oper-status { This leaf has the same read semantics as ifAdminStatus.";
type enumeration { reference
enum up { "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
value 1; }
description
"Ready to pass packets.";
}
enum down {
value 2;
description
"The interface does not pass any packets.";
}
enum testing {
value 3;
description
"In some test mode. No operational packets can
be passed.";
}
enum unknown {
value 4;
description
"Status cannot be determined for some reason.";
}
enum dormant {
value 5;
description
"Waiting for some external event.";
}
enum not-present {
value 6;
description
"Some component (typically hardware) is missing.";
}
enum lower-layer-down {
value 7;
description
"Down due to state of lower-layer interface(s).";
}
}
mandatory true;
status deprecated;
description
"The current operational state of the interface.
This leaf has the same semantics as ifOperStatus."; leaf oper-status {
reference type enumeration {
"RFC 2863: The Interfaces Group MIB - ifOperStatus"; enum up {
} value 1;
description
"Ready to pass packets.";
}
enum down {
value 2;
description
"The interface does not pass any packets.";
}
enum testing {
value 3;
description
"In some test mode. No operational packets can
be passed.";
}
enum unknown {
value 4;
description
"Status cannot be determined for some reason.";
}
enum dormant {
value 5;
description
"Waiting for some external event.";
}
enum not-present {
value 6;
description
"Some component (typically hardware) is missing.";
}
enum lower-layer-down {
value 7;
description
"Down due to state of lower-layer interface(s).";
leaf last-change { }
type yang:date-and-time; }
status deprecated; mandatory true;
description status deprecated;
"The time the interface entered its current operational description
state. If the current state was entered prior to the "The current operational state of the interface.
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 { This leaf has the same semantics as ifOperStatus.";
if-feature if-mib; reference
type int32 { "RFC 2863: The Interfaces Group MIB - ifOperStatus";
range "1..2147483647"; }
}
mandatory true;
status deprecated;
description
"The ifIndex value for the ifEntry represented by this
interface.";
reference
"RFC 2863: The Interfaces Group MIB - ifIndex";
}
leaf phys-address { leaf last-change {
type yang:phys-address; type yang:date-and-time;
status deprecated; status deprecated;
description description
"The interface's address at its protocol sub-layer. For "The time the interface entered its current operational
example, for an 802.x interface, this object normally state. If the current state was entered prior to the
contains a Media Access Control (MAC) address. The last re-initialization of the local network management
interface's media-specific modules must define the bit subsystem, then this node is not present.";
and byte ordering and the format of the value of this reference
object. For interfaces that do not have such an address "RFC 2863: The Interfaces Group MIB - ifLastChange";
(e.g., a serial line), this node is not present."; }
reference
"RFC 2863: The Interfaces Group MIB - ifPhysAddress";
}
leaf-list higher-layer-if { leaf if-index {
type interface-state-ref; if-feature if-mib;
status deprecated; type int32 {
description range "1..2147483647";
"A list of references to interfaces layered on top of this }
interface."; mandatory true;
reference status deprecated;
"RFC 2863: The Interfaces Group MIB - ifStackTable"; description
} "The ifIndex value for the ifEntry represented by this
interface.";
reference
"RFC 2863: The Interfaces Group MIB - ifIndex";
}
leaf-list lower-layer-if { leaf phys-address {
type interface-state-ref; type yang:phys-address;
status deprecated; status deprecated;
description description
"A list of references to interfaces layered underneath this "The interface's address at its protocol sub-layer. For
interface."; example, for an 802.x interface, this object normally
reference contains a Media Access Control (MAC) address. The
"RFC 2863: The Interfaces Group MIB - ifStackTable"; 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 speed { leaf-list higher-layer-if {
type yang:gauge64; type interface-state-ref;
units "bits/second"; status deprecated;
status deprecated; description
description "A list of references to interfaces layered on top of this
"An estimate of the interface's current bandwidth in bits interface.";
per second. For interfaces that do not vary in reference
bandwidth or for those where no accurate estimation can "RFC 2863: The Interfaces Group MIB - ifStackTable";
be made, this node should contain the nominal bandwidth. }
For interfaces that have no concept of bandwidth, this
node is not present.";
reference
"RFC 2863: The Interfaces Group MIB -
ifSpeed, ifHighSpeed";
}
container statistics { leaf-list lower-layer-if {
status deprecated; type interface-state-ref;
description status deprecated;
"A collection of interface-related statistics objects."; description
"A list of references to interfaces layered underneath this
interface.";
reference
"RFC 2863: The Interfaces Group MIB - ifStackTable";
}
leaf discontinuity-time { leaf speed {
type yang:date-and-time; type yang:gauge64;
mandatory true; units "bits/second";
status deprecated; status deprecated;
description description
"The time on the most recent occasion at which any one or "An estimate of the interface's current bandwidth in bits
more of this interface's counters suffered a per second. For interfaces that do not vary in
discontinuity. If no such discontinuities have occurred bandwidth or for those where no accurate estimation can
since the last re-initialization of the local management be made, this node should contain the nominal bandwidth.
subsystem, then this node contains the time the local For interfaces that have no concept of bandwidth, this
management subsystem re-initialized itself."; node is not present.";
} reference
"RFC 2863: The Interfaces Group MIB -
ifSpeed, ifHighSpeed";
}
leaf in-octets { container statistics {
type yang:counter64; status deprecated;
status deprecated; description
description "A collection of interface-related statistics objects.";
"The total number of octets received on the interface,
including framing characters.
Discontinuities in the value of this counter can occur leaf discontinuity-time {
at re-initialization of the management system, and at type yang:date-and-time;
other times as indicated by the value of mandatory true;
'discontinuity-time'."; status deprecated;
reference description
"RFC 2863: The Interfaces Group MIB - ifHCInOctets"; "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-unicast-pkts { leaf in-octets {
type yang:counter64; type yang:counter64;
status deprecated; status deprecated;
description description
"The number of packets, delivered by this sub-layer to a "The total number of octets received on the interface,
higher (sub-)layer, that were not addressed to a including framing characters.
multicast or broadcast address at this sub-layer.
Discontinuities in the value of this counter can occur Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at at re-initialization of the management system, and at
other times as indicated by the value of other times as indicated by the value of
'discontinuity-time'."; 'discontinuity-time'.";
reference reference
"RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
} }
leaf in-broadcast-pkts { leaf in-unicast-pkts {
type yang:counter64; type yang:counter64;
status deprecated; status deprecated;
description description
"The number of packets, delivered by this sub-layer to a "The number of packets, delivered by this sub-layer to a
higher (sub-)layer, that were addressed to a broadcast higher (sub-)layer, that were not addressed to a
address at this sub-layer. multicast or broadcast address at this sub-layer.
Discontinuities in the value of this counter can occur Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at at re-initialization of the management system, and at
other times as indicated by the value of other times as indicated by the value of
'discontinuity-time'."; 'discontinuity-time'.";
reference reference
"RFC 2863: The Interfaces Group MIB - "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
ifHCInBroadcastPkts"; }
}
leaf in-multicast-pkts { leaf in-broadcast-pkts {
type yang:counter64; type yang:counter64;
status deprecated; status deprecated;
description description
"The number of packets, delivered by this sub-layer to a "The number of packets, delivered by this sub-layer to a
higher (sub-)layer, that were addressed to a multicast higher (sub-)layer, that were addressed to a broadcast
address at this sub-layer. For a MAC-layer protocol, address at this sub-layer.
this includes both Group and Functional addresses.
Discontinuities in the value of this counter can occur Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at at re-initialization of the management system, and at
other times as indicated by the value of other times as indicated by the value of
'discontinuity-time'."; 'discontinuity-time'.";
reference reference
"RFC 2863: The Interfaces Group MIB - "RFC 2863: The Interfaces Group MIB -
ifHCInMulticastPkts"; ifHCInBroadcastPkts";
} }
leaf in-discards { leaf in-multicast-pkts {
type yang:counter32; type yang:counter64;
status deprecated; status deprecated;
description description
"The number of inbound packets that were chosen to be "The number of packets, delivered by this sub-layer to a
discarded even though no errors had been detected to higher (sub-)layer, that were addressed to a multicast
prevent their being deliverable to a higher-layer address at this sub-layer. For a MAC-layer protocol,
protocol. One possible reason for discarding such a this includes both Group and Functional addresses.
packet could be to free up buffer space.
Discontinuities in the value of this counter can occur Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at at re-initialization of the management system, and at
other times as indicated by the value of other times as indicated by the value of
'discontinuity-time'."; 'discontinuity-time'.";
reference reference
"RFC 2863: The Interfaces Group MIB - ifInDiscards"; "RFC 2863: The Interfaces Group MIB -
} ifHCInMulticastPkts";
leaf in-errors { }
type yang:counter32;
status deprecated;
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 leaf in-discards {
at re-initialization of the management system, and at type yang:counter32;
other times as indicated by the value of status deprecated;
'discontinuity-time'."; description
reference "The number of inbound packets that were chosen to be
"RFC 2863: The Interfaces Group MIB - ifInErrors"; 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.
leaf in-unknown-protos { Discontinuities in the value of this counter can occur
type yang:counter32; at re-initialization of the management system, and at
status deprecated; other times as indicated by the value of
description 'discontinuity-time'.";
"For packet-oriented interfaces, the number of packets reference
received via the interface that were discarded because "RFC 2863: The Interfaces Group MIB - ifInDiscards";
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 that 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 leaf in-errors {
at re-initialization of the management system, and at type yang:counter32;
other times as indicated by the value of status deprecated;
'discontinuity-time'."; description
reference "For packet-oriented interfaces, the number of inbound
"RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; 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.
leaf out-octets { Discontinuities in the value of this counter can occur
type yang:counter64; at re-initialization of the management system, and at
status deprecated; other times as indicated by the value of
description 'discontinuity-time'.";
"The total number of octets transmitted out of the reference
interface, including framing characters. "RFC 2863: The Interfaces Group MIB - ifInErrors";
}
Discontinuities in the value of this counter can occur leaf in-unknown-protos {
at re-initialization of the management system, and at type yang:counter32;
other times as indicated by the value of status deprecated;
'discontinuity-time'."; description
reference "For packet-oriented interfaces, the number of packets
"RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; received via the interface that 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 that were
discarded because of an unknown or unsupported protocol.
For any interface that does not support protocol
multiplexing, this counter is not present.
leaf out-unicast-pkts { Discontinuities in the value of this counter can occur
type yang:counter64; at re-initialization of the management system, and at
status deprecated; other times as indicated by the value of
description 'discontinuity-time'.";
"The total number of packets that higher-level protocols reference
requested be transmitted, and that were not addressed "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
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 leaf out-octets {
at re-initialization of the management system, and at type yang:counter64;
other times as indicated by the value of status deprecated;
'discontinuity-time'."; description
reference "The total number of octets transmitted out of the
"RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; interface, including framing characters.
}
leaf out-broadcast-pkts { Discontinuities in the value of this counter can occur
type yang:counter64; at re-initialization of the management system, and at
status deprecated; other times as indicated by the value of
description 'discontinuity-time'.";
"The total number of packets that higher-level protocols reference
requested be transmitted, and that were addressed to a "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
broadcast address at this sub-layer, including those }
that were discarded or not sent.
Discontinuities in the value of this counter can occur leaf out-unicast-pkts {
at re-initialization of the management system, and at type yang:counter64;
other times as indicated by the value of status deprecated;
'discontinuity-time'."; description
reference "The total number of packets that higher-level protocols
"RFC 2863: The Interfaces Group MIB - requested be transmitted, and that were not addressed
ifHCOutBroadcastPkts"; to a multicast or broadcast address at this sub-layer,
} including those that were discarded or not sent.
leaf out-multicast-pkts { Discontinuities in the value of this counter can occur
type yang:counter64; at re-initialization of the management system, and at
status deprecated; other times as indicated by the value of
description 'discontinuity-time'.";
"The total number of packets that higher-level protocols reference
requested be transmitted, and that were addressed to a "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
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 leaf out-broadcast-pkts {
at re-initialization of the management system, and at type yang:counter64;
other times as indicated by the value of status deprecated;
'discontinuity-time'."; description
reference "The total number of packets that higher-level protocols
"RFC 2863: The Interfaces Group MIB - requested be transmitted, and that were addressed to a
ifHCOutMulticastPkts"; broadcast address at this sub-layer, including those
} that were discarded or not sent.
leaf out-discards { Discontinuities in the value of this counter can occur
type yang:counter32; at re-initialization of the management system, and at
status deprecated; other times as indicated by the value of
description 'discontinuity-time'.";
"The number of outbound packets that were chosen to be reference
discarded even though no errors had been detected to "RFC 2863: The Interfaces Group MIB -
prevent their being transmitted. One possible reason ifHCOutBroadcastPkts";
for discarding such a packet could be to free up buffer }
space.
Discontinuities in the value of this counter can occur leaf out-multicast-pkts {
at re-initialization of the management system, and at type yang:counter64;
other times as indicated by the value of status deprecated;
'discontinuity-time'."; description
reference "The total number of packets that higher-level protocols
"RFC 2863: The Interfaces Group MIB - ifOutDiscards"; requested be transmitted, and that 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.
leaf out-errors { Discontinuities in the value of this counter can occur
type yang:counter32; at re-initialization of the management system, and at
status deprecated; other times as indicated by the value of
description 'discontinuity-time'.";
"For packet-oriented interfaces, the number of outbound reference
packets that could not be transmitted because of errors. "RFC 2863: The Interfaces Group MIB -
For character-oriented or fixed-length interfaces, the ifHCOutMulticastPkts";
number of outbound transmission units that could not be }
transmitted because of errors.
Discontinuities in the value of this counter can occur leaf out-discards {
at re-initialization of the management system, and at type yang:counter32;
other times as indicated by the value of status deprecated;
'discontinuity-time'."; description
reference "The number of outbound packets that were chosen to be
"RFC 2863: The Interfaces Group MIB - ifOutErrors"; 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;
status deprecated;
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 has been Following the format in RFC 3688, the following registration has been
made. made.
URI: urn:ietf:params:xml:ns:yang:ietf-interfaces URI: urn:ietf:params:xml:ns:yang:ietf-interfaces
skipping to change at page 35, line 26 skipping to change at page 35, line 26
The author wishes to thank Alexander Clemm, Per Hedeland, Ladislav The author wishes to thank Alexander Clemm, Per Hedeland, Ladislav
Lhotka, and Juergen Schoenwaelder for their helpful comments. Lhotka, and Juergen Schoenwaelder for their helpful comments.
9. References 9. References
9.1. Normative References 9.1. Normative References
[I-D.ietf-netmod-revised-datastores] [I-D.ietf-netmod-revised-datastores]
Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
and R. Wilton, "Network Management Datastore and R. Wilton, "Network Management Datastore
Architecture", draft-ietf-netmod-revised-datastores-03 Architecture", draft-ietf-netmod-revised-datastores-07
(work in progress), July 2017. (work in progress), November 2017.
[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/
DOI 10.17487/RFC2119, March 1997, <https://www.rfc- RFC2119, March 1997, <https://www.rfc-editor.org/info/
editor.org/info/rfc2119>. rfc2119>.
[RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group [RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group
MIB", RFC 2863, DOI 10.17487/RFC2863, June 2000, MIB", RFC 2863, DOI 10.17487/RFC2863, June 2000,
<https://www.rfc-editor.org/info/rfc2863>. <https://www.rfc-editor.org/info/rfc2863>.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
DOI 10.17487/RFC3688, January 2004, <https://www.rfc- DOI 10.17487/RFC3688, January 2004, <https://www.rfc-
editor.org/info/rfc3688>. editor.org/info/rfc3688>.
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
the Network Configuration Protocol (NETCONF)", RFC 6020, the Network Configuration Protocol (NETCONF)", RFC 6020,
DOI 10.17487/RFC6020, October 2010, <https://www.rfc- DOI 10.17487/RFC6020, October 2010, <https://www.rfc-
editor.org/info/rfc6020>. editor.org/info/rfc6020>.
[RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", RFC
RFC 6991, DOI 10.17487/RFC6991, July 2013, 6991, DOI 10.17487/RFC6991, July 2013, <https://www.rfc-
<https://www.rfc-editor.org/info/rfc6991>. editor.org/info/rfc6991>.
[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
RFC 7950, DOI 10.17487/RFC7950, August 2016, RFC 7950, DOI 10.17487/RFC7950, August 2016,
<https://www.rfc-editor.org/info/rfc7950>. <https://www.rfc-editor.org/info/rfc7950>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
9.2. Informative References 9.2. Informative References
[I-D.ietf-netmod-yang-tree-diagrams]
Bjorklund, M. and L. Berger, "YANG Tree Diagrams", draft-
ietf-netmod-yang-tree-diagrams-02 (work in progress),
October 2017.
[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,
<https://www.rfc-editor.org/info/rfc6241>. <https://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,
<https://www.rfc-editor.org/info/rfc6242>. <https://www.rfc-editor.org/info/rfc6242>.
[RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration
Protocol (NETCONF) Access Control Model", RFC 6536, Protocol (NETCONF) Access Control Model", RFC 6536, DOI
DOI 10.17487/RFC6536, March 2012, <https://www.rfc- 10.17487/RFC6536, March 2012, <https://www.rfc-
editor.org/info/rfc6536>. editor.org/info/rfc6536>.
[RFC7224] Bjorklund, M., "IANA Interface Type YANG Module", [RFC7224] Bjorklund, M., "IANA Interface Type YANG Module", RFC
RFC 7224, DOI 10.17487/RFC7224, May 2014, 7224, DOI 10.17487/RFC7224, May 2014, <https://www.rfc-
<https://www.rfc-editor.org/info/rfc7224>. editor.org/info/rfc7224>.
Appendix A. Example: Ethernet Interface Module Appendix A. Example: Ethernet Interface Module
This section gives a simple example of how an Ethernet interface This section gives a simple example of how an Ethernet interface
module could be defined. It demonstrates how media-specific module could be defined. It demonstrates how media-specific
configuration parameters can be conditionally augmented to the configuration parameters can be conditionally augmented to the
generic interface list. It also shows how operational state generic interface list. It also shows how operational state
parameters can be conditionally augmented to the operational parameters can be conditionally augmented to the operational
interface list. The example is not intended as a complete module for interface list. The example is not intended as a complete module for
Ethernet configuration. Ethernet configuration.
skipping to change at page 37, line 4 skipping to change at page 37, line 13
import ietf-interfaces { import ietf-interfaces {
prefix if; prefix if;
} }
import iana-if-type { import iana-if-type {
prefix ianaift; prefix ianaift;
} }
// configuration and state parameters for Ethernet interfaces // configuration and state parameters for Ethernet interfaces
augment "/if:interfaces/if:interface" { augment "/if:interfaces/if:interface" {
when "if:type = 'ianaift:ethernetCsmacd'"; when "if:type = 'ianaift:ethernetCsmacd'";
container ethernet { container ethernet {
choice transmission-params { container transmission {
case auto { choice transmission-params {
leaf auto-negotiate { case auto {
type empty; leaf auto-negotiate {
} type empty;
}
case manual {
leaf duplex {
type enumeration {
enum "half";
enum "full";
} }
} }
case manual {
leaf speed { container manual {
type enumeration { leaf duplex {
enum "10Mb"; type enumeration {
enum "100Mb"; enum "half";
enum "1Gb"; enum "full";
enum "10Gb"; }
}
leaf speed {
type enumeration {
enum "10Mb";
enum "100Mb";
enum "1Gb";
enum "10Gb";
}
}
} }
} }
} }
} leaf duplex {
leaf duplexx { type enumeration {
type enumeration { enum "half";
enum "half"; enum "full";
enum "full"; }
config false;
} }
config false;
} }
// other Ethernet-specific params... // other Ethernet-specific params...
} }
} }
} }
Appendix B. Example: Ethernet Bonding Interface Module Appendix B. Example: Ethernet Bonding Interface Module
This section gives an example of how interface layering can be This section gives an example of how interface layering can be
defined. An Ethernet bonding interface that bonds several Ethernet defined. An Ethernet bonding interface that bonds several Ethernet
interfaces into one logical interface is defined. interfaces into one logical interface is defined.
module ex-ethernet-bonding { module ex-ethernet-bonding {
namespace "http://example.com/ethernet-bonding"; namespace "http://example.com/ethernet-bonding";
 End of changes. 150 change blocks. 
1055 lines changed or deleted 1056 lines changed or added

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