This module contains a collection of YANG definitions for managing network interfaces. Copyright (c) 2018 IETF Trust and the pe...
Version: 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"; } leaf sent-ipv4-packets { type yang:zero-based-counter64; description "Number of decapsulated and forwarded IPv4 packets. 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'."; } leaf sent-ipv4-bytes { type yang:zero-based-counter64; description "Decapsulated/translated IPv4 traffic sent, in bytes. 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'."; } leaf sent-ipv6-packets { type yang:zero-based-counter64; description "Number of encapsulated IPv6 packets 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'."; } leaf sent-ipv6-bytes { type yang:zero-based-counter64; description "Encapsulated IPv6 traffic sent, in bytes. 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'."; } leaf rcvd-ipv4-packets { type yang:zero-based-counter64; description "Number of IPv4 packets received. 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'."; } leaf rcvd-ipv4-bytes { type yang:zero-based-counter64; description "IPv4 traffic received, in bytes. 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'."; } leaf rcvd-ipv6-packets { type yang:zero-based-counter64; description "Number of IPv4-in-IPv6 packets received. 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'."; } leaf rcvd-ipv6-bytes { type yang:zero-based-counter64; description "IPv4-in-IPv6 traffic received, in bytes. 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'."; } leaf dropped-ipv4-packets { type yang:zero-based-counter64; description "Number of IPv4 packets dropped at the Internet-facing interface. 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'."; } leaf dropped-ipv4-bytes { type yang:zero-based-counter64; description "IPv4 traffic dropped at the Internet-facing interface, in bytes. 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'."; } leaf dropped-ipv6-packets { type yang:zero-based-counter64; description "Number of IPv4-in-IPv6 packets dropped. 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'."; } leaf dropped-ipv6-bytes { type yang:zero-based-counter64; description "IPv4-in-IPv6 traffic dropped, in bytes. 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'."; } leaf dropped-ipv4-fragments { type yang:zero-based-counter64; description "Number of fragmented IPv4 packets dropped. 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'."; } leaf dropped-ipv4-fragment-bytes { type yang:zero-based-counter64; description "Fragmented IPv4 traffic dropped, in bytes. 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'."; } leaf ipv6-fragments-reassembled { type yang:zero-based-counter64; description "Number of IPv6 fragments successfully reassembled. 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'."; } leaf ipv6-fragments-bytes-reassembled { type yang:zero-based-counter64; description "IPv6 fragments successfully reassembled, in bytes. 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'."; } leaf out-icmpv4-error-packets { type yang:zero-based-counter64; description "Internally generated ICMPv4 error packets. 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'."; } leaf out-icmpv4-error-bytes { type yang:zero-based-counter64; description "Internally generated ICMPv4 error messages, in bytes. 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'."; } leaf out-icmpv6-error-packets { type yang:zero-based-counter64; description "Internally generated ICMPv6 error packets. 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'."; } leaf out-icmpv6-error-bytes { type yang:zero-based-counter64; description "Internally generated ICMPv6 error messages, in bytes. 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'."; } } // 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 leaf bind-ni-name { type leafref { path "/network-instances/network-instance/name"; } description "Network instance to which IPv4 interface is bound."; } container vrrp { description "Configures VRRP version 2 or 3 for IPv4."; list vrrp-instance { key "vrid"; description "Defines a virtual router, identified by a VRID, within the IPv4 address space."; leaf vrid { type uint8 { range "1..255"; } description "Virtual Router ID (i.e., VRID)."; } leaf version { type identityref { base vrrp:vrrp-version; } mandatory true; description "Version 2 or 3 of VRRP."; } leaf log-state-change { type boolean; default "false"; description "Generates VRRP state change messages each time the VRRP instance changes state (from 'up' to 'down' or 'down' to 'up')."; } container preempt { description "Enables a higher-priority VRRP backup router to preempt a lower-priority VRRP master."; leaf enabled { type boolean; default "true"; description "'true' if preemption is enabled."; } leaf hold-time { type uint16; units "seconds"; default "0"; description "Hold time, in seconds, for which a higher-priority VRRP backup router must wait before preempting a lower-priority VRRP master."; } } // container preempt leaf priority { type uint8 { range "1..254"; } default "100"; description "Configures the VRRP election priority for the backup virtual router."; } leaf accept-mode { when "derived-from-or-self(current()/../version, 'vrrp-v3')" { description "Applicable only to version 3."; } type boolean; default "false"; description "Controls whether a virtual router in master state will accept packets addressed to the address owner's IPvX address as its own if it is not the IPvX address owner. The default is 'false'. Deployments that rely on, for example, pinging the address owner's IPvX address may wish to configure accept-mode to 'true'. Note: IPv6 Neighbor Solicitations and Neighbor Advertisements MUST NOT be dropped when accept-mode is 'false'."; } choice advertise-interval-choice { description "The options for the advertisement interval at which VRRPv2 or VRRPv3 advertisements are sent from the specified interface."; case v2 { when "derived-from-or-self(version, 'vrrp-v2')" { description "Applicable only to version 2."; } leaf advertise-interval-sec { type uint8 { range "1..254"; } units "seconds"; default "1"; description "Configures the interval that VRRPv2 advertisements are sent from the specified interface."; } } // case v2 case v3 { when "derived-from-or-self(version, 'vrrp-v3')" { description "Applicable only to version 3."; } leaf advertise-interval-centi-sec { type uint16 { range "1..4095"; } units "centiseconds"; default "100"; description "Configures the interval that VRRPv3 advertisements are sent from the specified interface."; } } // case v3 } // choice advertise-interval-choice container track { description "Enables the specified VRRP instance to track interfaces or networks."; container interfaces { description "Enables the specified VRRPv2 or VRRPv3 instance to track interfaces. Interface tracking prevents traffic loss by detecting the availability of interfaces. The operational states of other interfaces are associated with the priority of a VRRP router. When a tracked interface becomes unavailable (or 'operational down'), the priority of the VRRP router decrements. When an unavailable interface becomes available again, the priority of the VRRP router is incremented by the same amount."; list interface { key "interface"; description "Interface to track."; leaf interface { type interface-ref; must "/if:interfaces/if:interface[if:name=current()]/ip:ipv4" { description "Interface is IPv4."; } description "Interface to track."; } leaf priority-decrement { type uint8 { range "1..254"; } default "10"; description "Specifies how much to decrement the priority of the VRRP instance if the interface goes down."; } } // list interface } // container interfaces container networks { description "Enables the VRRPv2 or VRRPv3 router instance to track the specified networks through their IPv4 network prefixes. Network tracking prevents traffic loss by detecting network connectivity failure. The states of connectivity to some networks are associated with the priority of a VRRP router. When connectivity to a tracked network represented by its prefix is lost, the priority of the VRRP router decrements. When an unavailable network is again reachable, the priority of the VRRP router is incremented by the same amount."; list network { key "prefix"; description "Enables the specified VRRPv2 or VRRPv3 instance to track an IPv4 network by specifying the prefix of the IPv4 network."; leaf prefix { type inet:ipv4-prefix; description "The IPv4 prefix of the network to track."; } leaf priority-decrement { type uint8 { range "1..254"; } default "10"; description "Specifies how much to decrement the priority of the VRRP router if there is a failure in the IPv4 network."; } } // list network } // container networks } // container track container virtual-ipv4-addresses { description "Configures the virtual IPv4 address for the VRRP interface."; list virtual-ipv4-address { key "ipv4-address"; max-elements 16; description "Virtual IPv4 addresses for a single VRRP instance. For a VRRP owner router, the virtual address must match one of the IPv4 addresses configured on the interface corresponding to the virtual router."; leaf ipv4-address { type inet:ipv4-address; description "An IPv4 address associated with a virtual router."; reference "RFC 5798: Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6. Section 1.2"; } } // list virtual-ipv4-address } // container virtual-ipv4-addresses leaf state { type identityref { base vrrp:vrrp-state-type; } config false; description "Operational state."; } leaf is-owner { type boolean; config false; description "Set to 'true' if this virtual router is the owner."; } leaf last-adv-source { type inet:ip-address; config false; description "Last advertised IPv4/IPv6 source address."; } leaf up-datetime { type yang:date-and-time; config false; description "The date and time when this virtual router transitioned out of 'init' state."; } leaf master-down-interval { type uint32; units "centiseconds"; config false; description "Time interval for the backup virtual router to declare 'master down'."; } leaf skew-time { type uint32; units "microseconds"; config false; description "Calculated based on the priority and advertisement interval configuration command parameters. See RFC 3768."; } leaf last-event { type identityref { base vrrp:vrrp-event-type; } config false; description "Last reported event."; } leaf new-master-reason { type new-master-reason-type; config false; description "Indicates why the virtual router has transitioned to master state."; } container statistics { config false; description "VRRP statistics."; leaf discontinuity-datetime { type yang:date-and-time; description "The time on the most recent occasion at which any one or more of the VRRP statistics 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 that the local management subsystem re-initialized itself."; } leaf master-transitions { type yang:counter32; description "The total number of times that this virtual router's state has transitioned to 'master'."; } leaf advertisement-rcvd { type yang:counter64; description "The total number of VRRP advertisements received by this virtual router."; } leaf advertisement-sent { type yang:counter64; description "The total number of VRRP advertisements sent by this virtual router."; } leaf interval-errors { if-feature validate-interval-errors; type yang:counter64; description "The total number of VRRP advertisement packets received with an advertisement interval different than the interval configured for the local virtual router."; } leaf priority-zero-pkts-rcvd { type yang:counter64; description "The total number of VRRP packets received by the virtual router with a priority of 0."; } leaf priority-zero-pkts-sent { type yang:counter64; description "The total number of VRRP packets sent by the virtual router with a priority of 0."; } leaf invalid-type-pkts-rcvd { type yang:counter64; description "The number of VRRP packets received by the virtual router with an invalid value in the 'type' field."; } leaf address-list-errors { if-feature validate-address-list-errors; type yang:counter64; description "The total number of packets received with an address list that does not match the locally configured address list for the virtual router."; } leaf packet-length-errors { type yang:counter64; description "The total number of packets received with a packet length less than the length of the VRRP header."; } } // container statistics } // list vrrp-instance } // container vrrp } // 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 leaf bind-ni-name { type leafref { path "/network-instances/network-instance/name"; } description "Network instance to which IPv6 interface is bound."; } container ipv6-router-advertisements { description "Configuration of IPv6 Router Advertisements."; leaf send-advertisements { type boolean; default "false"; description "A flag indicating whether or not the router sends periodic Router Advertisements and responds to Router Solicitations."; reference "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) - AdvSendAdvertisements."; } leaf max-rtr-adv-interval { type uint16 { range "4..1800"; } units "seconds"; default "600"; description "The maximum time allowed between sending unsolicited multicast Router Advertisements from the interface."; reference "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) - MaxRtrAdvInterval."; } leaf min-rtr-adv-interval { type uint16 { range "3..1350"; } units "seconds"; must ". <= 0.75 * ../max-rtr-adv-interval" { description "The value MUST NOT be greater than 75% of 'max-rtr-adv-interval'."; } description "The minimum time allowed between sending unsolicited multicast Router Advertisements from the interface. The default value to be used operationally if this leaf is not configured is determined as follows: - if max-rtr-adv-interval >= 9 seconds, the default value is 0.33 * max-rtr-adv-interval; - otherwise, it is 0.75 * max-rtr-adv-interval."; reference "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) - MinRtrAdvInterval."; } leaf managed-flag { type boolean; default "false"; description "The value to be placed in the 'Managed address configuration' flag field in the Router Advertisement."; reference "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) - AdvManagedFlag."; } leaf other-config-flag { type boolean; default "false"; description "The value to be placed in the 'Other configuration' flag field in the Router Advertisement."; reference "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) - AdvOtherConfigFlag."; } leaf link-mtu { type uint32; default "0"; description "The value to be placed in MTU options sent by the router. A value of zero indicates that no MTU options are sent."; reference "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) - AdvLinkMTU."; } leaf reachable-time { type uint32 { range "0..3600000"; } units "milliseconds"; default "0"; description "The value to be placed in the Reachable Time field in the Router Advertisement messages sent by the router. A value of zero means unspecified (by this router)."; reference "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) - AdvReachableTime."; } leaf retrans-timer { type uint32; units "milliseconds"; default "0"; description "The value to be placed in the Retrans Timer field in the Router Advertisement messages sent by the router. A value of zero means unspecified (by this router)."; reference "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) - AdvRetransTimer."; } leaf cur-hop-limit { type uint8; description "The value to be placed in the Cur Hop Limit field in the Router Advertisement messages sent by the router. A value of zero means unspecified (by this router). If this parameter is not configured, the device SHOULD use the value specified in IANA Assigned Numbers that was in effect at the time of implementation."; reference "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) - AdvCurHopLimit. IANA: IP Parameters, http://www.iana.org/assignments/ip-parameters"; } leaf default-lifetime { type uint16 { range "0..9000"; } units "seconds"; description "The value to be placed in the Router Lifetime field of Router Advertisements sent from the interface, in seconds. It MUST be either zero or between max-rtr-adv-interval and 9000 seconds. A value of zero indicates that the router is not to be used as a default router. These limits may be overridden by specific documents that describe how IPv6 operates over different link layers. If this parameter is not configured, the device SHOULD use a value of 3 * max-rtr-adv-interval."; reference "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) - AdvDefaultLifeTime."; } container prefix-list { description "Configuration of prefixes to be placed in Prefix Information options in Router Advertisement messages sent from the interface. Prefixes that are advertised by default but do not have their entries in the child 'prefix' list are advertised with the default values of all parameters. The link-local prefix SHOULD NOT be included in the list of advertised prefixes."; reference "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) - AdvPrefixList."; list prefix { key "prefix-spec"; description "Configuration of an advertised prefix entry."; leaf prefix-spec { type inet:ipv6-prefix; description "IPv6 address prefix."; } choice control-adv-prefixes { default "advertise"; description "Either the prefix is explicitly removed from the set of advertised prefixes, or the parameters with which it is advertised are specified (default case)."; leaf no-advertise { type empty; description "The prefix will not be advertised. This can be used for removing the prefix from the default set of advertised prefixes."; } case advertise { leaf valid-lifetime { type uint32; units "seconds"; default "2592000"; description "The value to be placed in the Valid Lifetime in the Prefix Information option. The designated value of all 1's (0xffffffff) represents infinity."; reference "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) - AdvValidLifetime."; } leaf on-link-flag { type boolean; default "true"; description "The value to be placed in the on-link flag ('L-bit') field in the Prefix Information option."; reference "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) - AdvOnLinkFlag."; } leaf preferred-lifetime { type uint32; units "seconds"; must ". <= ../valid-lifetime" { description "This value MUST NOT be greater than valid-lifetime."; } default "604800"; description "The value to be placed in the Preferred Lifetime in the Prefix Information option. The designated value of all 1's (0xffffffff) represents infinity."; reference "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) - AdvPreferredLifetime."; } leaf autonomous-flag { type boolean; default "true"; description "The value to be placed in the Autonomous Flag field in the Prefix Information option."; reference "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) - AdvAutonomousFlag."; } } // case advertise } // choice control-adv-prefixes } // list prefix } // container prefix-list } // container ipv6-router-advertisements container vrrp { description "Configures VRRP version 3 for IPv6."; list vrrp-instance { must "derived-from-or-self(version, 'vrrp-v3')" { description "IPv6 is only supported by version 3."; } key "vrid"; description "Defines a virtual router, identified by a VRID, within the IPv6 address space."; leaf vrid { type uint8 { range "1..255"; } description "Virtual Router ID (i.e., VRID)."; } leaf version { type identityref { base vrrp:vrrp-version; } mandatory true; description "Version 2 or 3 of VRRP."; } leaf log-state-change { type boolean; default "false"; description "Generates VRRP state change messages each time the VRRP instance changes state (from 'up' to 'down' or 'down' to 'up')."; } container preempt { description "Enables a higher-priority VRRP backup router to preempt a lower-priority VRRP master."; leaf enabled { type boolean; default "true"; description "'true' if preemption is enabled."; } leaf hold-time { type uint16; units "seconds"; default "0"; description "Hold time, in seconds, for which a higher-priority VRRP backup router must wait before preempting a lower-priority VRRP master."; } } // container preempt leaf priority { type uint8 { range "1..254"; } default "100"; description "Configures the VRRP election priority for the backup virtual router."; } leaf accept-mode { when "derived-from-or-self(current()/../version, 'vrrp-v3')" { description "Applicable only to version 3."; } type boolean; default "false"; description "Controls whether a virtual router in master state will accept packets addressed to the address owner's IPvX address as its own if it is not the IPvX address owner. The default is 'false'. Deployments that rely on, for example, pinging the address owner's IPvX address may wish to configure accept-mode to 'true'. Note: IPv6 Neighbor Solicitations and Neighbor Advertisements MUST NOT be dropped when accept-mode is 'false'."; } leaf advertise-interval-centi-sec { type uint16 { range "1..4095"; } units "centiseconds"; default "100"; description "Configures the interval that VRRPv3 advertisements are sent from the specified interface."; } container track { description "Enables the specified VRRP instance to track interfaces or networks."; container interfaces { description "Enables the specified VRRPv2 or VRRPv3 instance to track interfaces. Interface tracking prevents traffic loss by detecting the availability of interfaces. The operational states of other interfaces are associated with the priority of a VRRP router. When a tracked interface becomes unavailable (or 'operational down'), the priority of the VRRP router decrements. When an unavailable interface becomes available again, the priority of the VRRP router is incremented by the same amount."; list interface { key "interface"; description "Interface to track."; leaf interface { type interface-ref; must "/if:interfaces/if:interface[if:name=current()]/ip:ipv6" { description "Interface is IPv6."; } description "Interface to track."; } leaf priority-decrement { type uint8 { range "1..254"; } default "10"; description "Specifies how much to decrement the priority of the VRRP instance if the interface goes down."; } } // list interface } // container interfaces container networks { description "Enables the VRRPv2 or VRRPv3 router instance to track the specified networks through their IPv6 network prefixes. Network tracking prevents traffic loss by detecting network connectivity failure. The states of connectivity to some networks are associated with the priority of a VRRP router. When connectivity to a tracked network represented by its prefix is lost, the priority of the VRRP router decrements. When an unavailable network is again reachable, the priority of the VRRP router is incremented by the same amount."; list network { key "prefix"; description "Enables the specified VRRPv2 or VRRPv3 instance to track an IPv6 network by specifying the prefix of the IPv6 network."; leaf prefix { type inet:ipv6-prefix; description "The IPv6 prefix of the network to track."; } leaf priority-decrement { type uint8 { range "1..254"; } default "10"; description "Specifies how much to decrement the priority of the VRRP router if there is a failure in the IPv6 network."; } } // list network } // container networks } // container track container virtual-ipv6-addresses { description "Configures the virtual IPv6 address for the VRRP interface."; list virtual-ipv6-address { key "ipv6-address"; max-elements 2; description "Two IPv6 addresses are allowed. The first address must be a link-local address. The second address can be a link-local or global address."; leaf ipv6-address { type inet:ipv6-address; description "An IPv6 address associated with a virtual router."; reference "RFC 5798: Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6. Section 1.3"; } } // list virtual-ipv6-address } // container virtual-ipv6-addresses leaf state { type identityref { base vrrp:vrrp-state-type; } config false; description "Operational state."; } leaf is-owner { type boolean; config false; description "Set to 'true' if this virtual router is the owner."; } leaf last-adv-source { type inet:ip-address; config false; description "Last advertised IPv4/IPv6 source address."; } leaf up-datetime { type yang:date-and-time; config false; description "The date and time when this virtual router transitioned out of 'init' state."; } leaf master-down-interval { type uint32; units "centiseconds"; config false; description "Time interval for the backup virtual router to declare 'master down'."; } leaf skew-time { type uint32; units "microseconds"; config false; description "Calculated based on the priority and advertisement interval configuration command parameters. See RFC 3768."; } leaf last-event { type identityref { base vrrp:vrrp-event-type; } config false; description "Last reported event."; } leaf new-master-reason { type new-master-reason-type; config false; description "Indicates why the virtual router has transitioned to master state."; } container statistics { config false; description "VRRP statistics."; leaf discontinuity-datetime { type yang:date-and-time; description "The time on the most recent occasion at which any one or more of the VRRP statistics 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 that the local management subsystem re-initialized itself."; } leaf master-transitions { type yang:counter32; description "The total number of times that this virtual router's state has transitioned to 'master'."; } leaf advertisement-rcvd { type yang:counter64; description "The total number of VRRP advertisements received by this virtual router."; } leaf advertisement-sent { type yang:counter64; description "The total number of VRRP advertisements sent by this virtual router."; } leaf interval-errors { if-feature validate-interval-errors; type yang:counter64; description "The total number of VRRP advertisement packets received with an advertisement interval different than the interval configured for the local virtual router."; } leaf priority-zero-pkts-rcvd { type yang:counter64; description "The total number of VRRP packets received by the virtual router with a priority of 0."; } leaf priority-zero-pkts-sent { type yang:counter64; description "The total number of VRRP packets sent by the virtual router with a priority of 0."; } leaf invalid-type-pkts-rcvd { type yang:counter64; description "The number of VRRP packets received by the virtual router with an invalid value in the 'type' field."; } leaf address-list-errors { if-feature validate-address-list-errors; type yang:counter64; description "The total number of packets received with an address list that does not match the locally configured address list for the virtual router."; } leaf packet-length-errors { type yang:counter64; description "The total number of packets received with a packet length less than the length of the VRRP header."; } } // container statistics } // list vrrp-instance } // container vrrp } // container ipv6 leaf bind-ni-name { type leafref { path "/network-instances/network-instance/name"; } description "Network instance to which an interface is bound."; } leaf ipv6-address { type inet:ipv6-address; description "IPv6 address of the local DS-Lite endpoint (AFTR or B4)."; reference "RFC 6333: Dual-Stack Lite Broadband Deployments Following IPv4 Exhaustion"; } leaf ipv4-address { type inet:ipv4-address; description "IPv4 address of the local DS-Lite AFTR or B4. 192.0.0.1 is reserved for the AFTR element, while 192.0.0.0/29 is reserved for the B4 element. This address can be used to report ICMP problems and will appear in traceroute outputs."; reference "RFC 6333: Dual-Stack Lite Broadband Deployments Following IPv4 Exhaustion"; } leaf aftr-ipv6-addr { if-feature b4; type inet:ipv6-address; description "Indicates the AFTR's IPv6 address to be used by a B4 element."; reference "RFC 6333: Dual-Stack Lite Broadband Deployments Following IPv4 Exhaustion"; } leaf tunnel-mtu { type uint16; description "Configures a tunnel MTU. RFC 6908 specifies that since fragmentation and reassembly are not optimal, the operator should do everything possible to eliminate the need for them. If the operator uses simple IPv4-in-IPv6 softwire, it is recommended that the MTU size of the IPv6 network between the B4 and the AFTR account for the additional overhead (40 bytes)."; reference "RFC 6908: Deployment Considerations for Dual-Stack Lite"; } leaf v6-v4-dscp-preservation { type boolean; description "Copies the DSCP value from the IPv6 header, and vice versa. According to Section 2.10 of RFC 6908, operators should use the uniform model by provisioning the network such that the AFTR/B4 copies the DSCP value in the IPv4 header to the Traffic Class field in the IPv6 header, after the IPv4-in-IPv6 encapsulation."; reference "Section 2.10 of RFC 6908"; } leaf id { type string; description "Descriptive identity of the radio link terminal used by far-end RLT to check that it's connected to the correct near-end RLT. Does not need to be configured if this check is not used."; } leaf mode { type identityref { base mw-types:rlt-mode; } mandatory true; description "A description of the mode in which the radio link terminal is configured. The format is X plus Y. X represents the number of bonded carrier terminations. Y represents the number of protecting carrier terminations."; } leaf-list carrier-terminations { type interface-ref; must "derived-from-or-self(/if:interfaces/if:interface[if:name = current()]/if:type, 'ianaift:microwaveCarrierTermination')" { description "The type of interface must be 'microwaveCarrierTermination'."; } min-elements 1; description "A list of references to carrier terminations included in the radio link terminal."; } leaf-list rlp-groups { type leafref { path "/mrl:radio-link-protection-groups/mrl:protection-group/mrl:name"; } description "A list of references to the carrier termination groups configured for radio link protection in this radio link terminal."; } leaf-list xpic-pairs { if-feature xpic; type leafref { path "/mrl:xpic-pairs/mrl:xpic-pair/mrl:name"; } description "A list of references to the XPIC pairs used in this radio link terminal. One pair can be used by two terminals."; reference "ETSI TR 102 311"; } leaf-list mimo-groups { if-feature mimo; type leafref { path "/mrl:mimo-groups/mrl:mimo-group/mrl:name"; } description "A reference to the MIMO group used in this radio link terminal. One group can be used by more than one terminal."; reference "ETSI TR 102 311"; } list tdm-connections { if-feature tdm; key "tdm-type"; description "A list stating the number of active TDM connections of a specified tdm-type that is configured to be supported by the RLT."; leaf tdm-type { type identityref { base mw-types:tdm-type; } description "The type of TDM connection, which also indicates the supported capacity."; } leaf tdm-connections { type uint16; mandatory true; description "Number of connections of the specified type."; } } // list tdm-connections leaf carrier-id { type string; default "A"; description "ID of the carrier (e.g., A, B, C, or D). Used in XPIC and MIMO configurations to check that the carrier termination is connected to the correct far-end carrier termination. Should be the same carrier ID on both sides of the hop. Left as default value when MIMO and XPIC are not in use."; } leaf tx-enabled { type boolean; default "false"; description "Disables (false) or enables (true) the transmitter. Only applicable when the interface is enabled (interface:enabled = true); otherwise, it's always disabled."; } leaf tx-oper-status { type enumeration { enum "off" { value 0; description "Transmitter is off."; } enum "on" { value 1; description "Transmitter is on."; } enum "standby" { value 2; description "Transmitter is in standby."; } } config false; description "Shows the operative status of the transmitter."; } leaf tx-frequency { type uint32; units "kHz"; mandatory true; description "Selected transmitter frequency."; } choice freq-or-distance { mandatory true; description "A choice to configure rx-frequency directly or compute it as duplex-distance subtracted from tx-frequency."; leaf rx-frequency { type uint32; units "kHz"; description "Selected receiver frequency."; } leaf duplex-distance { type int32; units "kHz"; description "Distance between transmitter and receiver frequencies."; } } // choice freq-or-distance leaf actual-rx-frequency { type uint32; units "kHz"; config false; description "Computed receiver frequency."; } leaf actual-duplex-distance { type uint32; units "kHz"; config false; description "Computed distance between Tx and Rx frequencies."; } leaf channel-separation { type uint32; units "kHz"; mandatory true; description "The amount of bandwidth allocated to a carrier. The distance between adjacent channels in a radio frequency channels arrangement"; reference "ETSI EN 302 217-1"; } leaf polarization { type enumeration { enum "horizontal" { value 0; description "Horizontal polarization."; } enum "vertical" { value 1; description "Vertical polarization."; } enum "not-specified" { value 2; description "Polarization not specified."; } } default "not-specified"; description "Polarization - a textual description for info only."; } choice power-mode { mandatory true; description "A choice of RTPC or ATPC."; container rtpc { description "Remote Transmit Power Control (RTPC)."; reference "ETSI EN 302 217-1"; leaf maximum-nominal-power { type power { fraction-digits 0; range "-99..99"; } units "dBm"; mandatory true; description "Selected output power."; reference "ETSI EN 302 217-1"; } } // container rtpc container atpc { description "Automatic Transmitter Power Control (ATPC)."; reference "ETSI EN 302 217-1"; leaf maximum-nominal-power { type power { fraction-digits 0; range "-99..99"; } units "dBm"; mandatory true; description "Selected maximum output power. Minimum output power is the same as the system capability, minimum-power."; reference "ETSI EN 302 217-1"; } leaf atpc-lower-threshold { type power { fraction-digits 0; range "-99..-20"; } units "dBm"; must "current() <= ../atpc-upper-threshold"; mandatory true; description "The lower threshold for the input power at the far end, which is used in the ATPC mode."; reference "ETSI EN 302 217-1"; } leaf atpc-upper-threshold { type power { fraction-digits 0; range "-99..-20"; } units "dBm"; mandatory true; description "The upper threshold for the input power at the far end, which is used in the ATPC mode."; reference "ETSI EN 302 217-1"; } } // container atpc } // choice power-mode leaf actual-transmitted-level { type power { fraction-digits 0; range "-99..99"; } units "dBm"; config false; description "Actual transmitted power level (0.1 dBm resolution)."; reference "ETSI EN 301 129"; } leaf actual-received-level { type power { fraction-digits 0; range "-99..-20"; } units "dBm"; config false; description "Actual received power level (0.1 dBm resolution)."; reference "ETSI EN 301 129"; } choice coding-modulation-mode { mandatory true; description "A selection of single or adaptive coding/modulation mode."; container single { description "A single modulation order only."; reference "ETSI EN 302 217-1"; leaf selected-cm { type identityref { base mw-types:coding-modulation; } mandatory true; description "Selected the single coding/modulation."; } } // container single container adaptive { description "Adaptive coding/modulation."; reference "ETSI EN 302 217-1"; leaf selected-min-acm { type identityref { base mw-types:coding-modulation; } mandatory true; description "Selected minimum coding/modulation. Adaptive coding/modulation shall not go below this value."; } leaf selected-max-acm { type identityref { base mw-types:coding-modulation; } mandatory true; description "Selected maximum coding/modulation. Adaptive coding/modulation shall not go above this value."; } } // container adaptive } // choice coding-modulation-mode leaf actual-tx-cm { type identityref { base mw-types:coding-modulation; } config false; description "Actual coding/modulation in transmitting direction."; } leaf actual-snir { type decimal64 { fraction-digits 1; range "0..99"; } units "dB"; config false; description "Actual signal to noise plus the interference ratio (0.1 dB resolution)."; } leaf actual-xpi { if-feature xpic; type decimal64 { fraction-digits 1; range "0..99"; } units "dB"; config false; description "The actual carrier to cross-polar interference. Only valid if XPIC is enabled (0.1 dB resolution)."; reference "ETSI TR 102 311"; } container ct-performance-thresholds { description "Specification of thresholds for when alarms should be sent and cleared for various performance counters."; leaf received-level-alarm-threshold { type power { fraction-digits 0; range "-99..-20"; } units "dBm"; default "-99"; description "An alarm is sent when the received power level is below the specified threshold."; reference "ETSI EN 301 129"; } leaf transmitted-level-alarm-threshold { type power { fraction-digits 0; range "-99..99"; } units "dBm"; default "-99"; description "An alarm is sent when the transmitted power level is below the specified threshold."; reference "ETSI EN 301 129"; } leaf ber-alarm-threshold { type enumeration { enum "1e-9" { value 0; description "Threshold at 1e-9 (10^-9)."; } enum "1e-8" { value 1; description "Threshold at 1e-8 (10^-8)."; } enum "1e-7" { value 2; description "Threshold at 1e-7 (10^-7)."; } enum "1e-6" { value 3; description "Threshold at 1e-6 (10^-6)."; } enum "1e-5" { value 4; description "Threshold at 1e-5 (10^-5)."; } enum "1e-4" { value 5; description "Threshold at 1e-4 (10^-4)."; } enum "1e-3" { value 6; description "Threshold at 1e-3 (10^-3)."; } enum "1e-2" { value 7; description "Threshold at 1e-2 (10^-2)."; } enum "1e-1" { value 8; description "Threshold at 1e-1 (10^-1)."; } } default "1e-6"; description "Specification of at which BER an alarm should be raised."; reference "ETSI EN 302 217-1"; } } // container ct-performance-thresholds leaf if-loop { type enumeration { enum "disabled" { value 0; description "Disables the IF Loop."; } enum "client" { value 1; description "Loops the signal back to the client side."; } enum "radio" { value 2; description "Loops the signal back to the radio side."; } } default "disabled"; description "Enable (client/radio) or disable (disabled) the IF Loop, which loops the signal back to the client side or the radio side."; } leaf rf-loop { type enumeration { enum "disabled" { value 0; description "Disables the RF Loop."; } enum "client" { value 1; description "Loops the signal back to the client side."; } enum "radio" { value 2; description "Loops the signal back to the radio side."; } } default "disabled"; description "Enable (client/radio) or disable (disabled) the RF loop, which loops the signal back to the client side or the radio side."; } container capabilities { config false; description "Capabilities of the installed equipment and some selected configurations."; leaf min-tx-frequency { type uint32; units "kHz"; description "Minimum Tx frequency possible to use."; } leaf max-tx-frequency { type uint32; units "kHz"; description "Maximum Tx frequency possible to use."; } leaf min-rx-frequency { type uint32; units "kHz"; description "Minimum Rx frequency possible to use."; } leaf max-rx-frequency { type uint32; units "kHz"; description "Maximum Tx frequency possible to use."; } leaf minimum-power { type power; units "dBm"; description "The minimum output power supported."; reference "ETSI EN 302 217-1"; } leaf maximum-available-power { type power; units "dBm"; description "The maximum output power supported."; reference "ETSI EN 302 217-1"; } leaf available-min-acm { type identityref { base mw-types:coding-modulation; } description "Minimum coding-modulation possible to use."; } leaf available-max-acm { type identityref { base mw-types:coding-modulation; } description "Maximum coding-modulation possible to use."; } } // container capabilities container error-performance-statistics { config false; description "ITU-T G.826 error performance statistics relevant for a microwave/millimeter wave carrier."; leaf bbe { type yang:counter32; units "number of block errors"; description "Number of Background Block Errors (BBEs). A BBE is an errored block not occurring as part of Severely Errored Seconds (SES). 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' in ietf-interfaces."; reference "ITU-T G.826"; } leaf es { type yang:counter32; units "seconds"; description "Number of Errored Seconds (ES). An ES is a one-second period with one or more errored blocks or at least one defect. 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' in ietf-interfaces."; reference "ITU-T G.826"; } leaf ses { type yang:counter32; units "seconds"; description "Number of SES. SES is a one-second period that contains equal or more than 30% errored blocks or at least one defect. SES is a subset of ES. 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' in ietf-interfaces."; reference "ITU-T G.826"; } leaf uas { type yang:counter32; units "seconds"; description "Number of Unavailable Seconds (UAS); that is, the total time that the node has been unavailable. 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' in ietf-interfaces."; reference "ITU-T G.826"; } } // container error-performance-statistics container radio-performance-statistics { config false; description "ETSI EN 301 129 radio physical interface statistics relevant for a carrier termination."; leaf min-rltm { type power { fraction-digits 0; range "-99..-20"; } units "dBm"; description "Minimum received power level. 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' in ietf-interfaces."; reference "ETSI EN 301 129"; } leaf max-rltm { type power { fraction-digits 0; range "-99..-20"; } units "dBm"; description "Maximum received power level. 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' in ietf-interfaces."; reference "ETSI EN 301 129"; } leaf min-tltm { type power { fraction-digits 0; range "-99..99"; } units "dBm"; description "Minimum transmitted power level. 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' in ietf-interfaces."; reference "ETSI EN 301 129"; } leaf max-tltm { type power { fraction-digits 0; range "-99..99"; } units "dBm"; description "Maximum transmitted power level. 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' in ietf-interfaces."; reference "ETSI EN 301 129"; } } // container radio-performance-statistics leaf softwire-payload-mtu { type uint16; units "bytes"; description "The payload IPv4 MTU for the softwire tunnel."; } leaf softwire-path-mru { type uint16; units "bytes"; description "The path MRU for the softwire (payload + encapsulation overhead)."; reference "RFC 4213: Basic Transition Mechanisms for IPv6 Hosts and Routers"; } choice ce-type { description "Sets the softwire CE mechanism"; case binding { if-feature binding-mode; description "CE binding configuration"; leaf binding-ipv6info { type union { type inet:ipv6-address; type inet:ipv6-prefix; } description "The IPv6 information for a binding entry. When the IPv6 prefix type is used, the IPv6 source address of the CE is constructed according to the description in RFC 7596. If the IPv6 address type is used, the CE can use any valid /128 address from a prefix assigned to the CE."; reference "RFC 7596: Lightweight 4over6: An Extension to the Dual-Stack Lite Architecture, Section 5.1"; } leaf br-ipv6-addr { type inet:ipv6-address; mandatory true; description "The IPv6 address of the binding BR."; } } // case binding case algo { if-feature map-e or map-t; description "CE algorithm configuration"; container algo-instances { description "Collection of MAP-E/MAP-T parameters"; list algo-instance { key "name"; description "MAP forwarding rule instance for MAP-E/MAP-T"; leaf name { type string; mandatory true; description "The name is used to uniquely identify an algorithm instance. This name can be automatically assigned or explicitly configured."; } leaf enable { type boolean; description "Enable/disable an individual MAP-E or MAP-T rule."; } container algo-versioning { description "Version number for this algorithm instance"; leaf version { type uint64; description "A version number for the mapping algorithm rules provided to the algorithm instance"; } leaf date { type yang:date-and-time; description "Timestamp when the algorithm instance was activated. An algorithm instance may be provided with mapping rules that may change in time (for example, increase the size of the port set). When a party who is the victim of abuse presents an external IP address/port, the version of the algorithm is important because depending on the version, a distinct customer may be identified. The timestamp is used as a key to find the appropriate algorithm that was put into effect when an abuse occurred."; reference "RFC 7422: Deterministic Address Mapping to Reduce Logging in Carrier-Grade NAT Deployments"; } } // container algo-versioning choice data-plane { description "Selects MAP-E (encapsulation) or MAP-T (translation)"; case encapsulation { if-feature map-e; description "encapsulation for MAP-E"; leaf br-ipv6-addr { type inet:ipv6-address; mandatory true; description "The IPv6 address of the MAP-E BR."; } } // case encapsulation case translation { if-feature map-t; description "translation for MAP-T"; leaf dmr-ipv6-prefix { type inet:ipv6-prefix; description "The IPv6 prefix of the MAP-T BR."; } } // case translation } // choice data-plane leaf ea-len { type uint8; mandatory true; description "Embedded Address (EA) bits are the IPv4 EA-bits in the IPv6 address identifying an IPv4 prefix/address (or part thereof) or a shared IPv4 address (or part thereof) and a port-set identifier. The length of the EA-bits is defined as part of a MAP rule for a MAP domain."; } leaf rule-ipv6-prefix { type inet:ipv6-prefix; mandatory true; description "The Rule IPv6 prefix defined in the mapping rule."; } leaf rule-ipv4-prefix { type inet:ipv4-prefix; mandatory true; description "The Rule IPv4 prefix defined in the mapping rule."; } leaf forwarding { type boolean; mandatory true; description "This parameter specifies whether the rule may be used for forwarding; if set, this rule is used as a Forwarding Mapping Rule (FMR); if not set, this rule is a Basic Mapping Rule (BMR) only and must not be used for forwarding."; } } // list algo-instance } // container algo-instances } // case algo } // choice ce-type } // 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-router-advertisements { description "Parameters of IPv6 Router Advertisements."; leaf send-advertisements { type boolean; description "A flag indicating whether or not the router sends periodic Router Advertisements and responds to Router Solicitations."; } leaf max-rtr-adv-interval { type uint16 { range "4..1800"; } units "seconds"; description "The maximum time allowed between sending unsolicited multicast Router Advertisements from the interface."; } leaf min-rtr-adv-interval { type uint16 { range "3..1350"; } units "seconds"; description "The minimum time allowed between sending unsolicited multicast Router Advertisements from the interface."; } leaf managed-flag { type boolean; description "The value that is placed in the 'Managed address configuration' flag field in the Router Advertisement."; } leaf other-config-flag { type boolean; description "The value that is placed in the 'Other configuration' flag field in the Router Advertisement."; } leaf link-mtu { type uint32; description "The value that is placed in MTU options sent by the router. A value of zero indicates that no MTU options are sent."; } leaf reachable-time { type uint32 { range "0..3600000"; } units "milliseconds"; description "The value that is placed in the Reachable Time field in the Router Advertisement messages sent by the router. A value of zero means unspecified (by this router)."; } leaf retrans-timer { type uint32; units "milliseconds"; description "The value that is placed in the Retrans Timer field in the Router Advertisement messages sent by the router. A value of zero means unspecified (by this router)."; } leaf cur-hop-limit { type uint8; description "The value that is placed in the Cur Hop Limit field in the Router Advertisement messages sent by the router. A value of zero means unspecified (by this router)."; } leaf default-lifetime { type uint16 { range "0..9000"; } units "seconds"; description "The value that is placed in the Router Lifetime field of Router Advertisements sent from the interface, in seconds. A value of zero indicates that the router is not to be used as a default router."; } container prefix-list { description "A list of prefixes that are placed in Prefix Information options in Router Advertisement messages sent from the interface. By default, these are all prefixes that the router advertises via routing protocols as being on-link for the interface from which the advertisement is sent."; list prefix { key "prefix-spec"; description "Advertised prefix entry and its parameters."; leaf prefix-spec { type inet:ipv6-prefix; description "IPv6 address prefix."; } leaf valid-lifetime { type uint32; units "seconds"; description "The value that is placed in the Valid Lifetime in the Prefix Information option. The designated value of all 1's (0xffffffff) represents infinity. An implementation SHOULD keep this value constant in consecutive advertisements except when it is explicitly changed in configuration."; } leaf on-link-flag { type boolean; description "The value that is placed in the on-link flag ('L-bit') field in the Prefix Information option."; } leaf preferred-lifetime { type uint32; units "seconds"; description "The value that is placed in the Preferred Lifetime in the Prefix Information option, in seconds. The designated value of all 1's (0xffffffff) represents infinity. An implementation SHOULD keep this value constant in consecutive advertisements except when it is explicitly changed in configuration."; } leaf autonomous-flag { type boolean; description "The value that is placed in the Autonomous Flag field in the Prefix Information option."; } } // list prefix } // container prefix-list } // container ipv6-router-advertisements } // container ipv6 } // list interface } // container interfaces-state } // module ietf-interfaces
© 2023 YumaWorks, Inc. All rights reserved.