blob: ae7e77cac52528de0741252e53e021b3c5607418 [file] [log] [blame]
<?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: &lt;http://tools.ietf.org/wg/netmod/&gt;
WG List: &lt;mailto:netmod@ietf.org&gt;
WG Chair: Thomas Nadeau
&lt;mailto:tnadeau@lucidvision.com&gt;
WG Chair: Juergen Schoenwaelder
&lt;mailto:j.schoenwaelder@jacobs-university.de&gt;
Editor: Martin Bjorklund
&lt;mailto:mbj@tail-f.com&gt;</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>