| <?xml version="1.0" encoding="UTF-8"?> |
| <module name="ietf-interfaces" |
| xmlns="urn:ietf:params:xml:ns:yang:yin:1" |
| xmlns:if="urn:ietf:params:xml:ns:yang:ietf-interfaces" |
| xmlns:yang="urn:ietf:params:xml:ns:yang:ietf-yang-types"> |
| <namespace uri="urn:ietf:params:xml:ns:yang:ietf-interfaces"/> |
| <prefix value="if"/> |
| <import module="ietf-yang-types"> |
| <prefix value="yang"/> |
| </import> |
| <organization> |
| <text>IETF NETMOD (NETCONF Data Modeling Language) Working Group</text> |
| </organization> |
| <contact> |
| <text>WG Web: <http://tools.ietf.org/wg/netmod/> |
| WG List: <mailto:netmod@ietf.org> |
| |
| WG Chair: Thomas Nadeau |
| <mailto:tnadeau@lucidvision.com> |
| |
| WG Chair: Juergen Schoenwaelder |
| <mailto:j.schoenwaelder@jacobs-university.de> |
| |
| Editor: Martin Bjorklund |
| <mailto:mbj@tail-f.com></text> |
| </contact> |
| <description> |
| <text>This module contains a collection of YANG definitions for |
| managing network interfaces. |
| |
| Copyright (c) 2014 IETF Trust and the persons identified as |
| authors of the code. All rights reserved. |
| |
| Redistribution and use in source and binary forms, with or |
| without modification, is permitted pursuant to, and subject |
| to the license terms contained in, the Simplified BSD License |
| set forth in Section 4.c of the IETF Trust's Legal Provisions |
| Relating to IETF Documents |
| (http://trustee.ietf.org/license-info). |
| |
| This version of this YANG module is part of RFC 7223; see |
| the RFC itself for full legal notices.</text> |
| </description> |
| <revision date="2014-05-08"> |
| <description> |
| <text>Initial revision.</text> |
| </description> |
| <reference> |
| <text>RFC 7223: A YANG Data Model for Interface Management</text> |
| </reference> |
| </revision> |
| <typedef name="interface-ref"> |
| <type name="leafref"> |
| <path value="/if:interfaces/if:interface/if:name"/> |
| </type> |
| <description> |
| <text>This type is used by data models that need to reference |
| configured interfaces.</text> |
| </description> |
| </typedef> |
| <typedef name="interface-state-ref"> |
| <type name="leafref"> |
| <path value="/if:interfaces-state/if:interface/if:name"/> |
| </type> |
| <description> |
| <text>This type is used by data models that need to reference |
| the operationally present interfaces.</text> |
| </description> |
| </typedef> |
| <identity name="interface-type"> |
| <description> |
| <text>Base identity from which specific interface types are |
| derived.</text> |
| </description> |
| </identity> |
| <feature name="arbitrary-names"> |
| <description> |
| <text>This feature indicates that the device allows user-controlled |
| interfaces to be named arbitrarily.</text> |
| </description> |
| </feature> |
| <feature name="pre-provisioning"> |
| <description> |
| <text>This feature indicates that the device supports |
| pre-provisioning of interface configuration, i.e., it is |
| possible to configure an interface whose physical interface |
| hardware is not present on the device.</text> |
| </description> |
| </feature> |
| <feature name="if-mib"> |
| <description> |
| <text>This feature indicates that the device implements |
| the IF-MIB.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB</text> |
| </reference> |
| </feature> |
| <container name="interfaces"> |
| <description> |
| <text>Interface configuration parameters.</text> |
| </description> |
| <list name="interface"> |
| <key value="name"/> |
| <description> |
| <text>The list of configured interfaces on the device. |
| |
| The operational state of an interface is available in the |
| /interfaces-state/interface list. If the configuration of a |
| system-controlled interface cannot be used by the system |
| (e.g., the interface hardware present does not match the |
| interface type), then the configuration is not applied to |
| the system-controlled interface shown in the |
| /interfaces-state/interface list. If the configuration |
| of a user-controlled interface cannot be used by the system, |
| the configured interface is not instantiated in the |
| /interfaces-state/interface list.</text> |
| </description> |
| <leaf name="name"> |
| <type name="string"/> |
| <description> |
| <text>The name of the interface. |
| |
| A device MAY restrict the allowed values for this leaf, |
| possibly depending on the type of the interface. |
| For system-controlled interfaces, this leaf is the |
| device-specific name of the interface. The 'config false' |
| list /interfaces-state/interface contains the currently |
| existing interfaces on the device. |
| |
| If a client tries to create configuration for a |
| system-controlled interface that is not present in the |
| /interfaces-state/interface list, the server MAY reject |
| the request if the implementation does not support |
| pre-provisioning of interfaces or if the name refers to |
| an interface that can never exist in the system. A |
| NETCONF server MUST reply with an rpc-error with the |
| error-tag 'invalid-value' in this case. |
| |
| If the device supports pre-provisioning of interface |
| configuration, the 'pre-provisioning' feature is |
| advertised. |
| |
| If the device allows arbitrarily named user-controlled |
| interfaces, the 'arbitrary-names' feature is advertised. |
| |
| When a configured user-controlled interface is created by |
| the system, it is instantiated with the same name in the |
| /interface-state/interface list.</text> |
| </description> |
| </leaf> |
| <leaf name="description"> |
| <type name="string"/> |
| <description> |
| <text>A textual description of the interface. |
| |
| A server implementation MAY map this leaf to the ifAlias |
| MIB object. Such an implementation needs to use some |
| mechanism to handle the differences in size and characters |
| allowed between this leaf and ifAlias. The definition of |
| such a mechanism is outside the scope of this document. |
| |
| Since ifAlias is defined to be stored in non-volatile |
| storage, the MIB implementation MUST map ifAlias to the |
| value of 'description' in the persistently stored |
| datastore. |
| |
| Specifically, if the device supports ':startup', when |
| ifAlias is read the device MUST return the value of |
| 'description' in the 'startup' datastore, and when it is |
| written, it MUST be written to the 'running' and 'startup' |
| datastores. Note that it is up to the implementation to |
| |
| decide whether to modify this single leaf in 'startup' or |
| perform an implicit copy-config from 'running' to |
| 'startup'. |
| |
| If the device does not support ':startup', ifAlias MUST |
| be mapped to the 'description' leaf in the 'running' |
| datastore.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - ifAlias</text> |
| </reference> |
| </leaf> |
| <leaf name="type"> |
| <type name="identityref"> |
| <base name="interface-type"/> |
| </type> |
| <mandatory value="true"/> |
| <description> |
| <text>The type of the interface. |
| |
| When an interface entry is created, a server MAY |
| initialize the type leaf with a valid value, e.g., if it |
| is possible to derive the type from the name of the |
| interface. |
| |
| 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 |
| type is not supported or if the type does not match the |
| name of the interface, the server MUST reject the request. |
| A NETCONF server MUST reply with an rpc-error with the |
| error-tag 'invalid-value' in this case.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - ifType</text> |
| </reference> |
| </leaf> |
| <leaf name="enabled"> |
| <type name="boolean"/> |
| <default value="true"/> |
| <description> |
| <text>This leaf contains the configured, desired state of the |
| interface. |
| |
| Systems that implement the IF-MIB use the value of this |
| leaf in the 'running' datastore to set |
| IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry |
| has been initialized, as described in RFC 2863. |
| |
| |
| |
| Changes in this leaf in the 'running' datastore are |
| reflected in ifAdminStatus, but if ifAdminStatus is |
| changed over SNMP, this leaf is not affected.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - ifAdminStatus</text> |
| </reference> |
| </leaf> |
| <leaf name="link-up-down-trap-enable"> |
| <if-feature name="if-mib"/> |
| <type name="enumeration"> |
| <enum name="enabled"> |
| <value value="1"/> |
| </enum> |
| <enum name="disabled"> |
| <value value="2"/> |
| </enum> |
| </type> |
| <description> |
| <text>Controls whether linkUp/linkDown SNMP notifications |
| should be generated for this interface. |
| |
| If this node is not configured, the value 'enabled' is |
| operationally used by the server for interfaces that do |
| not operate on top of any other interface (i.e., there are |
| no 'lower-layer-if' entries), and 'disabled' otherwise.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - |
| ifLinkUpDownTrapEnable</text> |
| </reference> |
| </leaf> |
| </list> |
| </container> |
| <container name="interfaces-state"> |
| <config value="false"/> |
| <description> |
| <text>Data nodes for the operational state of interfaces.</text> |
| </description> |
| <list name="interface"> |
| <key value="name"/> |
| <description> |
| <text>The list of interfaces on the device. |
| |
| System-controlled interfaces created by the system are |
| always present in this list, whether they are configured or |
| not.</text> |
| </description> |
| <leaf name="name"> |
| <type name="string"/> |
| <description> |
| <text>The name of the interface. |
| |
| A server implementation MAY map this leaf to the ifName |
| MIB object. Such an implementation needs to use some |
| mechanism to handle the differences in size and characters |
| allowed between this leaf and ifName. The definition of |
| such a mechanism is outside the scope of this document.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - ifName</text> |
| </reference> |
| </leaf> |
| <leaf name="type"> |
| <type name="identityref"> |
| <base name="interface-type"/> |
| </type> |
| <mandatory value="true"/> |
| <description> |
| <text>The type of the interface.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - ifType</text> |
| </reference> |
| </leaf> |
| <leaf name="admin-status"> |
| <if-feature name="if-mib"/> |
| <type name="enumeration"> |
| <enum name="up"> |
| <value value="1"/> |
| <description> |
| <text>Ready to pass packets.</text> |
| </description> |
| </enum> |
| <enum name="down"> |
| <value value="2"/> |
| <description> |
| <text>Not ready to pass packets and not in some test mode.</text> |
| </description> |
| </enum> |
| <enum name="testing"> |
| <value value="3"/> |
| <description> |
| <text>In some test mode.</text> |
| </description> |
| </enum> |
| </type> |
| <mandatory value="true"/> |
| <description> |
| <text>The desired state of the interface. |
| |
| This leaf has the same read semantics as ifAdminStatus.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - ifAdminStatus</text> |
| </reference> |
| </leaf> |
| <leaf name="oper-status"> |
| <type name="enumeration"> |
| <enum name="up"> |
| <value value="1"/> |
| <description> |
| <text>Ready to pass packets.</text> |
| </description> |
| </enum> |
| <enum name="down"> |
| <value value="2"/> |
| <description> |
| <text>The interface does not pass any packets.</text> |
| </description> |
| </enum> |
| <enum name="testing"> |
| <value value="3"/> |
| <description> |
| <text>In some test mode. No operational packets can |
| be passed.</text> |
| </description> |
| </enum> |
| <enum name="unknown"> |
| <value value="4"/> |
| <description> |
| <text>Status cannot be determined for some reason.</text> |
| </description> |
| </enum> |
| <enum name="dormant"> |
| <value value="5"/> |
| <description> |
| <text>Waiting for some external event.</text> |
| </description> |
| </enum> |
| <enum name="not-present"> |
| <value value="6"/> |
| <description> |
| <text>Some component (typically hardware) is missing.</text> |
| </description> |
| </enum> |
| <enum name="lower-layer-down"> |
| <value value="7"/> |
| <description> |
| <text>Down due to state of lower-layer interface(s).</text> |
| </description> |
| </enum> |
| </type> |
| <mandatory value="true"/> |
| <description> |
| <text>The current operational state of the interface. |
| |
| This leaf has the same semantics as ifOperStatus.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - ifOperStatus</text> |
| </reference> |
| </leaf> |
| <leaf name="last-change"> |
| <type name="yang:date-and-time"/> |
| <description> |
| <text>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.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - ifLastChange</text> |
| </reference> |
| </leaf> |
| <leaf name="if-index"> |
| <if-feature name="if-mib"/> |
| <type name="int32"> |
| <range value="1..2147483647"/> |
| </type> |
| <mandatory value="true"/> |
| <description> |
| <text>The ifIndex value for the ifEntry represented by this |
| interface.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - ifIndex</text> |
| </reference> |
| </leaf> |
| <leaf name="phys-address"> |
| <type name="yang:phys-address"/> |
| <description> |
| <text>The interface's address at its protocol sub-layer. For |
| example, for an 802.x interface, this object normally |
| contains a Media Access Control (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.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - ifPhysAddress</text> |
| </reference> |
| </leaf> |
| <leaf-list name="higher-layer-if"> |
| <type name="interface-state-ref"/> |
| <description> |
| <text>A list of references to interfaces layered on top of this |
| interface.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - ifStackTable</text> |
| </reference> |
| </leaf-list> |
| <leaf-list name="lower-layer-if"> |
| <type name="interface-state-ref"/> |
| <description> |
| <text>A list of references to interfaces layered underneath this |
| interface.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - ifStackTable</text> |
| </reference> |
| </leaf-list> |
| <leaf name="speed"> |
| <type name="yang:gauge64"/> |
| <units name="bits/second"/> |
| <description> |
| <text>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.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - |
| ifSpeed, ifHighSpeed</text> |
| </reference> |
| </leaf> |
| <container name="statistics"> |
| <description> |
| <text>A collection of interface-related statistics objects.</text> |
| </description> |
| <leaf name="discontinuity-time"> |
| <type name="yang:date-and-time"/> |
| <mandatory value="true"/> |
| <description> |
| <text>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.</text> |
| </description> |
| </leaf> |
| <leaf name="in-octets"> |
| <type name="yang:counter64"/> |
| <description> |
| <text>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'.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - ifHCInOctets</text> |
| </reference> |
| </leaf> |
| <leaf name="in-unicast-pkts"> |
| <type name="yang:counter64"/> |
| <description> |
| <text>The number of packets, delivered by this sub-layer to a |
| higher (sub-)layer, that 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'.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts</text> |
| </reference> |
| </leaf> |
| <leaf name="in-broadcast-pkts"> |
| <type name="yang:counter64"/> |
| <description> |
| <text>The number of packets, delivered by this sub-layer to a |
| higher (sub-)layer, that 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'.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - |
| ifHCInBroadcastPkts</text> |
| </reference> |
| </leaf> |
| <leaf name="in-multicast-pkts"> |
| <type name="yang:counter64"/> |
| <description> |
| <text>The number of packets, delivered by this sub-layer to a |
| higher (sub-)layer, that 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'.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - |
| ifHCInMulticastPkts</text> |
| </reference> |
| </leaf> |
| <leaf name="in-discards"> |
| <type name="yang:counter32"/> |
| <description> |
| <text>The number of inbound packets that 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'.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - ifInDiscards</text> |
| </reference> |
| </leaf> |
| <leaf name="in-errors"> |
| <type name="yang:counter32"/> |
| <description> |
| <text>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'.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - ifInErrors</text> |
| </reference> |
| </leaf> |
| <leaf name="in-unknown-protos"> |
| <type name="yang:counter32"/> |
| <description> |
| <text>For packet-oriented interfaces, the number of packets |
| 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. |
| |
| 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'.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - ifInUnknownProtos</text> |
| </reference> |
| </leaf> |
| <leaf name="out-octets"> |
| <type name="yang:counter64"/> |
| <description> |
| <text>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'.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - ifHCOutOctets</text> |
| </reference> |
| </leaf> |
| <leaf name="out-unicast-pkts"> |
| <type name="yang:counter64"/> |
| <description> |
| <text>The total number of packets that higher-level protocols |
| requested be transmitted, and that 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'.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts</text> |
| </reference> |
| </leaf> |
| <leaf name="out-broadcast-pkts"> |
| <type name="yang:counter64"/> |
| <description> |
| <text>The total number of packets that higher-level protocols |
| requested be transmitted, and that 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'.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - |
| ifHCOutBroadcastPkts</text> |
| </reference> |
| </leaf> |
| <leaf name="out-multicast-pkts"> |
| <type name="yang:counter64"/> |
| <description> |
| <text>The total number of packets that higher-level protocols |
| 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. |
| |
| 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'.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - |
| ifHCOutMulticastPkts</text> |
| </reference> |
| </leaf> |
| <leaf name="out-discards"> |
| <type name="yang:counter32"/> |
| <description> |
| <text>The number of outbound packets that 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'.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - ifOutDiscards</text> |
| </reference> |
| </leaf> |
| <leaf name="out-errors"> |
| <type name="yang:counter32"/> |
| <description> |
| <text>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'.</text> |
| </description> |
| <reference> |
| <text>RFC 2863: The Interfaces Group MIB - ifOutErrors</text> |
| </reference> |
| </leaf> |
| </container> |
| </list> |
| </container> |
| </module> |