ietf-interfaces

This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the pe...

  • Version: 2018-02-20

    ietf-interfaces@2018-02-20


    
      module ietf-interfaces {
    
        yang-version 1.1;
    
        namespace
          "urn:ietf:params:xml:ns:yang:ietf-interfaces";
    
        prefix if;
    
        import ietf-yang-types {
          prefix yang;
        }
    
        organization
          "IETF NETMOD (Network Modeling) Working Group";
    
        contact
          "WG Web:   <https://datatracker.ietf.org/wg/netmod/>
    WG List:  <mailto:netmod@ietf.org>
    
    Editor:   Martin Bjorklund
    	  <mailto:mbj@tail-f.com>";
    
        description
          "This module contains a collection of YANG definitions for
    managing network interfaces.
    
    Copyright (c) 2018 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
    (https://trustee.ietf.org/license-info).
    
    This version of this YANG module is part of RFC 8343; see
    the RFC itself for full legal notices.";
    
        revision "2018-02-20" {
          description "Updated to support NMDA.";
          reference
            "RFC 8343: A YANG Data Model for Interface Management";
    
        }
    
        revision "2014-05-08" {
          description "Initial revision.";
          reference
            "RFC 7223: A YANG Data Model for Interface Management";
    
        }
    
    
        typedef interface-ref {
          type leafref {
            path "/if:interfaces/if:interface/if:name";
          }
          description
            "This type is used by data models that need to reference
    interfaces.";
        }
    
        identity interface-type {
          description
            "Base identity from which specific interface types are
    derived.";
        }
    
        feature arbitrary-names {
          description
            "This feature indicates that the device allows user-controlled
    interfaces to be named arbitrarily.";
        }
    
        feature pre-provisioning {
          description
            "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.";
        }
    
        feature if-mib {
          description
            "This feature indicates that the device implements
    the IF-MIB.";
          reference
            "RFC 2863: The Interfaces Group MIB";
    
        }
    
        container interfaces {
          description "Interface parameters.";
          list interface {
            key "name";
            description
              "The list of interfaces on the device.
    
    The status of an interface is available in this list in the
    operational state.  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 operational
    state.  If the configuration of a user-controlled interface
    cannot be used by the system, the configured interface is
    not instantiated in the operational state.
    
    System-controlled interfaces created by the system are
    always present in this list in the operational state,
    whether or not they are configured.";
            leaf name {
              type string;
              description
                "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.
    
    If a client tries to create configuration for a
    system-controlled interface that is not present in the
    operational state, 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 Network Configuration
    Protocol (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
    operational state.
    
    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.";
              reference
                "RFC 2863: The Interfaces Group MIB - ifName";
    
            }
    
            leaf description {
              type string;
              description
                "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
    configuration.";
              reference
                "RFC 2863: The Interfaces Group MIB - ifAlias";
    
            }
    
            leaf type {
              type identityref {
                base interface-type;
              }
              mandatory true;
              description
                "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.";
              reference
                "RFC 2863: The Interfaces Group MIB - ifType";
    
            }
    
            leaf enabled {
              type boolean;
              default "true";
              description
                "This leaf contains the configured, desired state of the
    interface.
    
    Systems that implement the IF-MIB use the value of this
    leaf in the intended configuration 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 intended configuration are
    reflected in ifAdminStatus.";
              reference
                "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
    
            }
    
            leaf link-up-down-trap-enable {
              if-feature if-mib;
              type enumeration {
                enum "enabled" {
                  value 1;
                  description
                    "The device will generate linkUp/linkDown SNMP
    notifications for this interface.";
                }
                enum "disabled" {
                  value 2;
                  description
                    "The device will not generate linkUp/linkDown SNMP
    notifications for this interface.";
                }
              }
              description
                "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.";
              reference
                "RFC 2863: The Interfaces Group MIB -
                	  ifLinkUpDownTrapEnable";
    
            }
    
            leaf admin-status {
              if-feature if-mib;
              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.
    
    This leaf has the same read semantics as ifAdminStatus.";
              reference
                "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
    
            }
    
            leaf oper-status {
              type enumeration {
                enum "up" {
                  value 1;
                  description
                    "Ready to pass packets.";
                }
                enum "down" {
                  value 2;
                  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.";
              reference
                "RFC 2863: The Interfaces Group MIB - ifOperStatus";
    
            }
    
            leaf last-change {
              type yang:date-and-time;
              config false;
              description
                "The time the interface entered its current operational
    state.  If the current state was entered prior to the
    last re-initialization of the local network management
    subsystem, then this node is not present.";
              reference
                "RFC 2863: The Interfaces Group MIB - ifLastChange";
    
            }
    
            leaf if-index {
              if-feature if-mib;
              type int32 {
                range "1..2147483647";
              }
              config false;
              mandatory true;
              description
                "The ifIndex value for the ifEntry represented by this
    interface.";
              reference
                "RFC 2863: The Interfaces Group MIB - ifIndex";
    
            }
    
            leaf phys-address {
              type yang:phys-address;
              config false;
              description
                "The interface's address at its protocol sub-layer.  For
    example, for an 802.x interface, this object normally
    contains a 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.";
              reference
                "RFC 2863: The Interfaces Group MIB - ifPhysAddress";
    
            }
    
            leaf-list higher-layer-if {
              type interface-ref;
              config false;
              description
                "A list of references to interfaces layered on top of this
    interface.";
              reference
                "RFC 2863: The Interfaces Group MIB - ifStackTable";
    
            }
    
            leaf-list lower-layer-if {
              type interface-ref;
              config false;
              description
                "A list of references to interfaces layered underneath this
    interface.";
              reference
                "RFC 2863: The Interfaces Group MIB - ifStackTable";
    
            }
    
            leaf speed {
              type yang:gauge64;
              units "bits/second";
              config false;
              description
                "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 {
              config false;
              description
                "A collection of interface-related statistics objects.";
              leaf discontinuity-time {
                type yang:date-and-time;
                mandatory true;
                description
                  "The time on the most recent occasion at which any one or
    more of this interface's counters suffered a
    discontinuity.  If no such discontinuities have occurred
    since the last re-initialization of the local management
    subsystem, then this node contains the time the local
    management subsystem re-initialized itself.";
              }
    
              leaf in-octets {
                type yang:counter64;
                description
                  "The total number of octets received on the interface,
    including framing characters.
    
    Discontinuities in the value of this counter can occur
    at re-initialization of the management system and at
    other times as indicated by the value of
    'discontinuity-time'.";
                reference
                  "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
    
              }
    
              leaf in-unicast-pkts {
                type yang:counter64;
                description
                  "The number of packets, delivered by this sub-layer to a
    higher (sub-)layer, 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'.";
                reference
                  "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
    
              }
    
              leaf in-broadcast-pkts {
                type yang:counter64;
                description
                  "The number of packets, delivered by this sub-layer to a
    higher (sub-)layer, 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'.";
                reference
                  "RFC 2863: The Interfaces Group MIB -
                  	  ifHCInBroadcastPkts";
    
              }
    
              leaf in-multicast-pkts {
                type yang:counter64;
                description
                  "The number of packets, delivered by this sub-layer to a
    higher (sub-)layer, 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'.";
                reference
                  "RFC 2863: The Interfaces Group MIB -
                  	  ifHCInMulticastPkts";
    
              }
    
              leaf in-discards {
                type yang:counter32;
                description
                  "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'.";
                reference
                  "RFC 2863: The Interfaces Group MIB - ifInDiscards";
    
              }
    
              leaf in-errors {
                type yang:counter32;
                description
                  "For packet-oriented interfaces, the number of inbound
    packets that contained errors preventing them from being
    deliverable to a higher-layer protocol.  For character-
    oriented or fixed-length interfaces, the number of
    inbound transmission units that contained errors
    preventing them from being deliverable to a higher-layer
    protocol.
    
    Discontinuities in the value of this counter can occur
    at re-initialization of the management system and at
    other times as indicated by the value of
    'discontinuity-time'.";
                reference
                  "RFC 2863: The Interfaces Group MIB - ifInErrors";
    
              }
    
              leaf in-unknown-protos {
                type yang:counter32;
                description
                  "For packet-oriented interfaces, the number of packets
    received via the interface 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'.";
                reference
                  "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
    
              }
    
              leaf out-octets {
                type yang:counter64;
                description
                  "The total number of octets transmitted out of the
    interface, including framing characters.
    
    Discontinuities in the value of this counter can occur
    at re-initialization of the management system and at
    other times as indicated by the value of
    'discontinuity-time'.";
                reference
                  "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
    
              }
    
              leaf out-unicast-pkts {
                type yang:counter64;
                description
                  "The total number of packets that higher-level protocols
    requested be transmitted and 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'.";
                reference
                  "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
    
              }
    
              leaf out-broadcast-pkts {
                type yang:counter64;
                description
                  "The total number of packets that higher-level protocols
    requested be transmitted and 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'.";
                reference
                  "RFC 2863: The Interfaces Group MIB -
                  	  ifHCOutBroadcastPkts";
    
              }
    
              leaf out-multicast-pkts {
                type yang:counter64;
                description
                  "The total number of packets that higher-level protocols
    requested be transmitted and 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'.";
                reference
                  "RFC 2863: The Interfaces Group MIB -
                  	  ifHCOutMulticastPkts";
    
              }
    
              leaf out-discards {
                type yang:counter32;
                description
                  "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'.";
                reference
                  "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
    
              }
    
              leaf out-errors {
                type yang:counter32;
                description
                  "For packet-oriented interfaces, the number of outbound
    packets that could not be transmitted because of errors.
    For character-oriented or fixed-length interfaces, the
    number of outbound transmission units that could not be
    transmitted because of errors.
    
    Discontinuities in the value of this counter can occur
    at re-initialization of the management system and at
    other times as indicated by the value of
    'discontinuity-time'.";
                reference
                  "RFC 2863: The Interfaces Group MIB - ifOutErrors";
    
              }
            }  // container statistics
    
            container ipv4 {
              presence
                "Enables IPv4 unless the 'enabled' leaf
    (which defaults to 'true') is set to 'false'";
              description
                "Parameters for the IPv4 address family.";
              leaf enabled {
                type boolean;
                default "true";
                description
                  "Controls whether IPv4 is enabled or disabled on this
    interface.  When IPv4 is enabled, this interface is
    connected to an IPv4 stack, and the interface can send
    and receive IPv4 packets.";
              }
    
              leaf forwarding {
                type boolean;
                default "false";
                description
                  "Controls IPv4 packet forwarding of datagrams received by,
    but not addressed to, this interface.  IPv4 routers
    forward datagrams.  IPv4 hosts do not (except those
    source-routed via the host).";
              }
    
              leaf mtu {
                type uint16 {
                  range "68..max";
                }
                units "octets";
                description
                  "The size, in octets, of the largest IPv4 packet that the
    interface will send and receive.
    
    The server may restrict the allowed values for this leaf,
    depending on the interface's type.
    
    If this leaf is not configured, the operationally used MTU
    depends on the interface's type.";
                reference
                  "RFC 791: Internet Protocol";
    
              }
    
              list address {
                key "ip";
                description
                  "The list of IPv4 addresses on the interface.";
                leaf ip {
                  type inet:ipv4-address-no-zone;
                  description
                    "The IPv4 address on the interface.";
                }
    
                choice subnet {
                  mandatory true;
                  description
                    "The subnet can be specified as a prefix length or,
    if the server supports non-contiguous netmasks, as
    a netmask.";
                  leaf prefix-length {
                    type uint8 {
                      range "0..32";
                    }
                    description
                      "The length of the subnet prefix.";
                  }
                  leaf netmask {
                    if-feature ipv4-non-contiguous-netmasks;
                    type yang:dotted-quad;
                    description
                      "The subnet specified as a netmask.";
                  }
                }  // choice subnet
    
                leaf origin {
                  type ip-address-origin;
                  config false;
                  description
                    "The origin of this address.";
                }
              }  // list address
    
              list neighbor {
                key "ip";
                description
                  "A list of mappings from IPv4 addresses to
    link-layer addresses.
    
    Entries in this list in the intended configuration are
    used as static entries in the ARP Cache.
    
    In the operational state, this list represents the ARP
    Cache.";
                reference
                  "RFC 826: An Ethernet Address Resolution Protocol";
    
                leaf ip {
                  type inet:ipv4-address-no-zone;
                  description
                    "The IPv4 address of the neighbor node.";
                }
    
                leaf link-layer-address {
                  type yang:phys-address;
                  mandatory true;
                  description
                    "The link-layer address of the neighbor node.";
                }
    
                leaf origin {
                  type neighbor-origin;
                  config false;
                  description
                    "The origin of this neighbor entry.";
                }
              }  // list neighbor
            }  // container ipv4
    
            container ipv6 {
              presence
                "Enables IPv6 unless the 'enabled' leaf
    (which defaults to 'true') is set to 'false'";
              description
                "Parameters for the IPv6 address family.";
              leaf enabled {
                type boolean;
                default "true";
                description
                  "Controls whether IPv6 is enabled or disabled on this
    interface.  When IPv6 is enabled, this interface is
    connected to an IPv6 stack, and the interface can send
    and receive IPv6 packets.";
              }
    
              leaf forwarding {
                type boolean;
                default "false";
                description
                  "Controls IPv6 packet forwarding of datagrams received by,
    but not addressed to, this interface.  IPv6 routers
    forward datagrams.  IPv6 hosts do not (except those
    source-routed via the host).";
                reference
                  "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
                  	  Section 6.2.1, IsRouter";
    
              }
    
              leaf mtu {
                type uint32 {
                  range "1280..max";
                }
                units "octets";
                description
                  "The size, in octets, of the largest IPv6 packet that the
    interface will send and receive.
    
    The server may restrict the allowed values for this leaf,
    depending on the interface's type.
    
    If this leaf is not configured, the operationally used MTU
    depends on the interface's type.";
                reference
                  "RFC 8200: Internet Protocol, Version 6 (IPv6)
                  	  Specification
                  	  Section 5";
    
              }
    
              list address {
                key "ip";
                description
                  "The list of IPv6 addresses on the interface.";
                leaf ip {
                  type inet:ipv6-address-no-zone;
                  description
                    "The IPv6 address on the interface.";
                }
    
                leaf prefix-length {
                  type uint8 {
                    range "0..128";
                  }
                  mandatory true;
                  description
                    "The length of the subnet prefix.";
                }
    
                leaf origin {
                  type ip-address-origin;
                  config false;
                  description
                    "The origin of this address.";
                }
    
                leaf status {
                  type enumeration {
                    enum "preferred" {
                      value 0;
                      description
                        "This is a valid address that can appear as the
    destination or source address of a packet.";
                    }
                    enum "deprecated" {
                      value 1;
                      description
                        "This is a valid but deprecated address that should
    no longer be used as a source address in new
    communications, but packets addressed to such an
    address are processed as expected.";
                    }
                    enum "invalid" {
                      value 2;
                      description
                        "This isn't a valid address, and it shouldn't appear
    as the destination or source address of a packet.";
                    }
                    enum "inaccessible" {
                      value 3;
                      description
                        "The address is not accessible because the interface
    to which this address is assigned is not
    operational.";
                    }
                    enum "unknown" {
                      value 4;
                      description
                        "The status cannot be determined for some reason.";
                    }
                    enum "tentative" {
                      value 5;
                      description
                        "The uniqueness of the address on the link is being
    verified.  Addresses in this state should not be
    used for general communication and should only be
    used to determine the uniqueness of the address.";
                    }
                    enum "duplicate" {
                      value 6;
                      description
                        "The address has been determined to be non-unique on
    the link and so must not be used.";
                    }
                    enum "optimistic" {
                      value 7;
                      description
                        "The address is available for use, subject to
    restrictions, while its uniqueness on a link is
    being verified.";
                    }
                  }
                  config false;
                  description
                    "The status of an address.  Most of the states correspond
    to states from the IPv6 Stateless Address
    Autoconfiguration protocol.";
                  reference
                    "RFC 4293: Management Information Base for the
                    	  Internet Protocol (IP)
                    	  - IpAddressStatusTC
                     RFC 4862: IPv6 Stateless Address Autoconfiguration";
    
                }
              }  // list address
    
              list neighbor {
                key "ip";
                description
                  "A list of mappings from IPv6 addresses to
    link-layer addresses.
    
    Entries in this list in the intended configuration are
    used as static entries in the Neighbor Cache.
    
    In the operational state, this list represents the
    Neighbor Cache.";
                reference
                  "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)";
    
                leaf ip {
                  type inet:ipv6-address-no-zone;
                  description
                    "The IPv6 address of the neighbor node.";
                }
    
                leaf link-layer-address {
                  type yang:phys-address;
                  mandatory true;
                  description
                    "The link-layer address of the neighbor node.
    
    In the operational state, if the neighbor's 'state' leaf
    is 'incomplete', this leaf is not instantiated.";
                }
    
                leaf origin {
                  type neighbor-origin;
                  config false;
                  description
                    "The origin of this neighbor entry.";
                }
    
                leaf is-router {
                  type empty;
                  config false;
                  description
                    "Indicates that the neighbor node acts as a router.";
                }
    
                leaf state {
                  type enumeration {
                    enum "incomplete" {
                      value 0;
                      description
                        "Address resolution is in progress, and the
    link-layer address of the neighbor has not yet been
    determined.";
                    }
                    enum "reachable" {
                      value 1;
                      description
                        "Roughly speaking, the neighbor is known to have been
    reachable recently (within tens of seconds ago).";
                    }
                    enum "stale" {
                      value 2;
                      description
                        "The neighbor is no longer known to be reachable, but
    until traffic is sent to the neighbor no attempt
    should be made to verify its reachability.";
                    }
                    enum "delay" {
                      value 3;
                      description
                        "The neighbor is no longer known to be reachable, and
    traffic has recently been sent to the neighbor.
    Rather than probe the neighbor immediately, however,
    delay sending probes for a short while in order to
    give upper-layer protocols a chance to provide
    reachability confirmation.";
                    }
                    enum "probe" {
                      value 4;
                      description
                        "The neighbor is no longer known to be reachable, and
    unicast Neighbor Solicitation probes are being sent
    to verify reachability.";
                    }
                  }
                  config false;
                  description
                    "The Neighbor Unreachability Detection state of this
    entry.";
                  reference
                    "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
                    	  Section 7.3.2";
    
                }
              }  // list neighbor
    
              leaf dup-addr-detect-transmits {
                type uint32;
                default "1";
                description
                  "The number of consecutive Neighbor Solicitation messages
    sent while performing Duplicate Address Detection on a
    tentative address.  A value of zero indicates that
    Duplicate Address Detection is not performed on
    tentative addresses.  A value of one indicates a single
    transmission with no follow-up retransmissions.";
                reference
                  "RFC 4862: IPv6 Stateless Address Autoconfiguration";
    
              }
    
              container autoconf {
                description
                  "Parameters to control the autoconfiguration of IPv6
    addresses, as described in RFC 4862.";
                reference
                  "RFC 4862: IPv6 Stateless Address Autoconfiguration";
    
                leaf create-global-addresses {
                  type boolean;
                  default "true";
                  description
                    "If enabled, the host creates global addresses as
    described in RFC 4862.";
                  reference
                    "RFC 4862: IPv6 Stateless Address Autoconfiguration
                    	  Section 5.5";
    
                }
    
                leaf create-temporary-addresses {
                  if-feature ipv6-privacy-autoconf;
                  type boolean;
                  default "false";
                  description
                    "If enabled, the host creates temporary addresses as
    described in RFC 4941.";
                  reference
                    "RFC 4941: Privacy Extensions for Stateless Address
                    	  Autoconfiguration in IPv6";
    
                }
    
                leaf temporary-valid-lifetime {
                  if-feature ipv6-privacy-autoconf;
                  type uint32;
                  units "seconds";
                  default "604800";
                  description
                    "The time period during which the temporary address
    is valid.";
                  reference
                    "RFC 4941: Privacy Extensions for Stateless Address
                    	  Autoconfiguration in IPv6
                    	  - TEMP_VALID_LIFETIME";
    
                }
    
                leaf temporary-preferred-lifetime {
                  if-feature ipv6-privacy-autoconf;
                  type uint32;
                  units "seconds";
                  default "86400";
                  description
                    "The time period during which the temporary address is
    preferred.";
                  reference
                    "RFC 4941: Privacy Extensions for Stateless Address
                    	  Autoconfiguration in IPv6
                    	  - TEMP_PREFERRED_LIFETIME";
    
                }
              }  // container autoconf
            }  // container ipv6
          }  // list interface
        }  // container interfaces
    
        typedef interface-state-ref {
          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;
          status deprecated;
          description
            "Data nodes for the operational state of interfaces.";
          list interface {
            key "name";
            status deprecated;
            description
              "The list of interfaces on the device.
    
    System-controlled interfaces created by the system are
    always present in this list, whether or not they are
    configured.";
            leaf name {
              type string;
              status deprecated;
              description
                "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.";
              reference
                "RFC 2863: The Interfaces Group MIB - ifName";
    
            }
    
            leaf type {
              type identityref {
                base interface-type;
              }
              mandatory true;
              status deprecated;
              description
                "The type of the interface.";
              reference
                "RFC 2863: The Interfaces Group MIB - ifType";
    
            }
    
            leaf admin-status {
              if-feature if-mib;
              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.";
                }
              }
              mandatory true;
              status deprecated;
              description
                "The desired state of the interface.
    
    This leaf has the same read semantics as ifAdminStatus.";
              reference
                "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
    
            }
    
            leaf oper-status {
              type enumeration {
                enum "up" {
                  value 1;
                  description
                    "Ready to pass packets.";
                }
                enum "down" {
                  value 2;
                  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.";
              reference
                "RFC 2863: The Interfaces Group MIB - ifOperStatus";
    
            }
    
            leaf last-change {
              type yang:date-and-time;
              status deprecated;
              description
                "The time the interface entered its current operational
    state.  If the current state was entered prior to the
    last re-initialization of the local network management
    subsystem, then this node is not present.";
              reference
                "RFC 2863: The Interfaces Group MIB - ifLastChange";
    
            }
    
            leaf if-index {
              if-feature if-mib;
              type int32 {
                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 {
              type yang:phys-address;
              status deprecated;
              description
                "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.";
              reference
                "RFC 2863: The Interfaces Group MIB - ifPhysAddress";
    
            }
    
            leaf-list higher-layer-if {
              type interface-state-ref;
              status deprecated;
              description
                "A list of references to interfaces layered on top of this
    interface.";
              reference
                "RFC 2863: The Interfaces Group MIB - ifStackTable";
    
            }
    
            leaf-list lower-layer-if {
              type interface-state-ref;
              status deprecated;
              description
                "A list of references to interfaces layered underneath this
    interface.";
              reference
                "RFC 2863: The Interfaces Group MIB - ifStackTable";
    
            }
    
            leaf speed {
              type yang:gauge64;
              units "bits/second";
              status deprecated;
              description
                "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 {
              status deprecated;
              description
                "A collection of interface-related statistics objects.";
              leaf discontinuity-time {
                type yang:date-and-time;
                mandatory true;
                status deprecated;
                description
                  "The time on the most recent occasion at which any one or
    more of this interface's counters suffered a
    discontinuity.  If no such discontinuities have occurred
    since the last re-initialization of the local management
    subsystem, then this node contains the time the local
    management subsystem re-initialized itself.";
              }
    
              leaf in-octets {
                type yang:counter64;
                status deprecated;
                description
                  "The total number of octets received on the interface,
    including framing characters.
    
    Discontinuities in the value of this counter can occur
    at re-initialization of the management system and at
    other times as indicated by the value of
    'discontinuity-time'.";
                reference
                  "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
    
              }
    
              leaf in-unicast-pkts {
                type yang:counter64;
                status deprecated;
                description
                  "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'.";
                reference
                  "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
    
              }
    
              leaf in-broadcast-pkts {
                type yang:counter64;
                status deprecated;
                description
                  "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'.";
                reference
                  "RFC 2863: The Interfaces Group MIB -
                  	  ifHCInBroadcastPkts";
    
              }
    
              leaf in-multicast-pkts {
                type yang:counter64;
                status deprecated;
                description
                  "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'.";
                reference
                  "RFC 2863: The Interfaces Group MIB -
                  	  ifHCInMulticastPkts";
    
              }
    
              leaf in-discards {
                type yang:counter32;
                status deprecated;
                description
                  "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'.";
                reference
                  "RFC 2863: The Interfaces Group MIB - ifInDiscards";
    
              }
    
              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
    at re-initialization of the management system and at
    other times as indicated by the value of
    'discontinuity-time'.";
                reference
                  "RFC 2863: The Interfaces Group MIB - ifInErrors";
    
              }
    
              leaf in-unknown-protos {
                type yang:counter32;
                status deprecated;
                description
                  "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'.";
                reference
                  "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
    
              }
    
              leaf out-octets {
                type yang:counter64;
                status deprecated;
                description
                  "The total number of octets transmitted out of the
    interface, including framing characters.
    
    Discontinuities in the value of this counter can occur
    at re-initialization of the management system and at
    other times as indicated by the value of
    'discontinuity-time'.";
                reference
                  "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
    
              }
    
              leaf out-unicast-pkts {
                type yang:counter64;
                status deprecated;
                description
                  "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'.";
                reference
                  "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
    
              }
    
              leaf out-broadcast-pkts {
                type yang:counter64;
                status deprecated;
                description
                  "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'.";
                reference
                  "RFC 2863: The Interfaces Group MIB -
                  	  ifHCOutBroadcastPkts";
    
              }
    
              leaf out-multicast-pkts {
                type yang:counter64;
                status deprecated;
                description
                  "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'.";
                reference
                  "RFC 2863: The Interfaces Group MIB -
                  	  ifHCOutMulticastPkts";
    
              }
    
              leaf out-discards {
                type yang:counter32;
                status deprecated;
                description
                  "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'.";
                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";
    
              }
            }  // container statistics
    
            container ipv4 {
              presence
                "Present if IPv4 is enabled on this interface";
              config false;
              status deprecated;
              description
                "Interface-specific parameters for the IPv4 address family.";
              leaf forwarding {
                type boolean;
                status deprecated;
                description
                  "Indicates whether IPv4 packet forwarding is enabled or
    disabled on this interface.";
              }
    
              leaf mtu {
                type uint16 {
                  range "68..max";
                }
                units "octets";
                status deprecated;
                description
                  "The size, in octets, of the largest IPv4 packet that the
    interface will send and receive.";
                reference
                  "RFC 791: Internet Protocol";
    
              }
    
              list address {
                key "ip";
                status deprecated;
                description
                  "The list of IPv4 addresses on the interface.";
                leaf ip {
                  type inet:ipv4-address-no-zone;
                  status deprecated;
                  description
                    "The IPv4 address on the interface.";
                }
    
                choice subnet {
                  status deprecated;
                  description
                    "The subnet can be specified as a prefix length or,
    if the server supports non-contiguous netmasks, as
    a netmask.";
                  case prefix-length {
                    status deprecated;
                    leaf prefix-length {
                      type uint8 {
                        range "0..32";
                      }
                      status deprecated;
                      description
                        "The length of the subnet prefix.";
                    }
                  }  // case prefix-length
    
                  case netmask {
                    status deprecated;
                    leaf netmask {
                      if-feature ipv4-non-contiguous-netmasks;
                      type yang:dotted-quad;
                      status deprecated;
                      description
                        "The subnet specified as a netmask.";
                    }
                  }  // case netmask
                }  // choice subnet
    
                leaf origin {
                  type ip-address-origin;
                  status deprecated;
                  description
                    "The origin of this address.";
                }
              }  // list address
    
              list neighbor {
                key "ip";
                status deprecated;
                description
                  "A list of mappings from IPv4 addresses to
    link-layer addresses.
    
    This list represents the ARP Cache.";
                reference
                  "RFC 826: An Ethernet Address Resolution Protocol";
    
                leaf ip {
                  type inet:ipv4-address-no-zone;
                  status deprecated;
                  description
                    "The IPv4 address of the neighbor node.";
                }
    
                leaf link-layer-address {
                  type yang:phys-address;
                  status deprecated;
                  description
                    "The link-layer address of the neighbor node.";
                }
    
                leaf origin {
                  type neighbor-origin;
                  status deprecated;
                  description
                    "The origin of this neighbor entry.";
                }
              }  // list neighbor
            }  // container ipv4
    
            container ipv6 {
              presence
                "Present if IPv6 is enabled on this interface";
              config false;
              status deprecated;
              description
                "Parameters for the IPv6 address family.";
              leaf forwarding {
                type boolean;
                default "false";
                status deprecated;
                description
                  "Indicates whether IPv6 packet forwarding is enabled or
    disabled on this interface.";
                reference
                  "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
                  	  Section 6.2.1, IsRouter";
    
              }
    
              leaf mtu {
                type uint32 {
                  range "1280..max";
                }
                units "octets";
                status deprecated;
                description
                  "The size, in octets, of the largest IPv6 packet that the
    interface will send and receive.";
                reference
                  "RFC 8200: Internet Protocol, Version 6 (IPv6)
                  	  Specification
                  	  Section 5";
    
              }
    
              list address {
                key "ip";
                status deprecated;
                description
                  "The list of IPv6 addresses on the interface.";
                leaf ip {
                  type inet:ipv6-address-no-zone;
                  status deprecated;
                  description
                    "The IPv6 address on the interface.";
                }
    
                leaf prefix-length {
                  type uint8 {
                    range "0..128";
                  }
                  mandatory true;
                  status deprecated;
                  description
                    "The length of the subnet prefix.";
                }
    
                leaf origin {
                  type ip-address-origin;
                  status deprecated;
                  description
                    "The origin of this address.";
                }
    
                leaf status {
                  type enumeration {
                    enum "preferred" {
                      value 0;
                      description
                        "This is a valid address that can appear as the
    destination or source address of a packet.";
                    }
                    enum "deprecated" {
                      value 1;
                      description
                        "This is a valid but deprecated address that should
    no longer be used as a source address in new
    communications, but packets addressed to such an
    address are processed as expected.";
                    }
                    enum "invalid" {
                      value 2;
                      description
                        "This isn't a valid address, and it shouldn't appear
    as the destination or source address of a packet.";
                    }
                    enum "inaccessible" {
                      value 3;
                      description
                        "The address is not accessible because the interface
    to which this address is assigned is not
    operational.";
                    }
                    enum "unknown" {
                      value 4;
                      description
                        "The status cannot be determined for some reason.";
                    }
                    enum "tentative" {
                      value 5;
                      description
                        "The uniqueness of the address on the link is being
    verified.  Addresses in this state should not be
    used for general communication and should only be
    used to determine the uniqueness of the address.";
                    }
                    enum "duplicate" {
                      value 6;
                      description
                        "The address has been determined to be non-unique on
    the link and so must not be used.";
                    }
                    enum "optimistic" {
                      value 7;
                      description
                        "The address is available for use, subject to
    restrictions, while its uniqueness on a link is
    being verified.";
                    }
                  }
                  status deprecated;
                  description
                    "The status of an address.  Most of the states correspond
    to states from the IPv6 Stateless Address
    Autoconfiguration protocol.";
                  reference
                    "RFC 4293: Management Information Base for the
                    	  Internet Protocol (IP)
                    	  - IpAddressStatusTC
                     RFC 4862: IPv6 Stateless Address Autoconfiguration";
    
                }
              }  // list address
    
              list neighbor {
                key "ip";
                status deprecated;
                description
                  "A list of mappings from IPv6 addresses to
    link-layer addresses.
    
    This list represents the Neighbor Cache.";
                reference
                  "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)";
    
                leaf ip {
                  type inet:ipv6-address-no-zone;
                  status deprecated;
                  description
                    "The IPv6 address of the neighbor node.";
                }
    
                leaf link-layer-address {
                  type yang:phys-address;
                  status deprecated;
                  description
                    "The link-layer address of the neighbor node.";
                }
    
                leaf origin {
                  type neighbor-origin;
                  status deprecated;
                  description
                    "The origin of this neighbor entry.";
                }
    
                leaf is-router {
                  type empty;
                  status deprecated;
                  description
                    "Indicates that the neighbor node acts as a router.";
                }
    
                leaf state {
                  type enumeration {
                    enum "incomplete" {
                      value 0;
                      description
                        "Address resolution is in progress, and the
    link-layer address of the neighbor has not yet been
    determined.";
                    }
                    enum "reachable" {
                      value 1;
                      description
                        "Roughly speaking, the neighbor is known to have been
    reachable recently (within tens of seconds ago).";
                    }
                    enum "stale" {
                      value 2;
                      description
                        "The neighbor is no longer known to be reachable, but
    until traffic is sent to the neighbor no attempt
    should be made to verify its reachability.";
                    }
                    enum "delay" {
                      value 3;
                      description
                        "The neighbor is no longer known to be reachable, and
    traffic has recently been sent to the neighbor.
    Rather than probe the neighbor immediately, however,
    delay sending probes for a short while in order to
    give upper-layer protocols a chance to provide
    reachability confirmation.";
                    }
                    enum "probe" {
                      value 4;
                      description
                        "The neighbor is no longer known to be reachable, and
    unicast Neighbor Solicitation probes are being sent
    to verify reachability.";
                    }
                  }
                  status deprecated;
                  description
                    "The Neighbor Unreachability Detection state of this
    entry.";
                  reference
                    "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
                    	  Section 7.3.2";
    
                }
              }  // list neighbor
            }  // container ipv6
          }  // list interface
        }  // container interfaces-state
      }  // module ietf-interfaces
    

© 2024 YumaWorks, Inc. All rights reserved.