ietf-isis

This YANG module defines the generic configuration and operational states for the IS-IS protocol common to all vendor implementa...

  • Version: 2022-10-19

    ietf-isis@2022-10-19


    
      module ietf-isis {
    
        yang-version 1.1;
    
        namespace
          "urn:ietf:params:xml:ns:yang:ietf-isis";
    
        prefix isis;
    
        import ietf-routing {
          prefix rt;
          reference
            "RFC 8349: A YANG Data Model for Routing Management
            (NMDA Version)";
    
    
        }
        import ietf-inet-types {
          prefix inet;
          reference
            "RFC 6991: Common YANG Data Types";
    
    
        }
        import ietf-yang-types {
          prefix yang;
          reference
            "RFC 6991: Common YANG Data Types";
    
    
        }
        import ietf-interfaces {
          prefix if;
          reference
            "RFC 8343: A YANG Data Model for Interface Management";
    
    
        }
        import ietf-key-chain {
          prefix key-chain;
          reference
            "RFC 8177: YANG Data Model for Key Chains";
    
    
        }
        import ietf-routing-types {
          prefix rt-types;
          reference
            "RFC 8294: Common YANG Data Types for the Routing Area";
    
    
        }
        import iana-routing-types {
          prefix iana-rt-types;
          reference
            "RFC 8294: Common YANG Data Types for the Routing Area";
    
    
        }
        import ietf-bfd-types {
          prefix bfd-types;
          reference
            "RFC 9314: YANG Data Model for Bidirectional Forwarding
            Detection (BFD)";
    
    
        }
    
        organization "IETF LSR Working Group";
    
        contact
          "WG Web:   <https://datatracker.ietf.org/wg/lsr/>
    WG List:  <mailto:lsr@ietf.org>
    
    Editor:   Stephane Litkowski
    	  <mailto:slitkows.ietf@gmail.com>
    
    Author:   Derek Yeung
    	  <mailto:derek@arrcus.com>
    
    Author:   Acee Lindem
    	  <mailto:acee@cisco.com>
    
    Author:   Jeffrey Zhang
    	  <mailto:zzhang@juniper.net>
    
    Author:   Ladislav Lhotka
    	  <mailto:ladislav.lhotka@nic.cz>";
    
        description
          "This YANG module defines the generic configuration and
    operational states for the IS-IS protocol common to all
    vendor implementations.  It is intended that the module
    will be extended by vendors to define vendor-specific
    IS-IS configuration parameters and policies -
    for example, route maps or route policies.
    
    This YANG data model conforms to the Network Management
    Datastore Architecture (NMDA) as described in RFC 8342.
    
    The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
    NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
    'MAY', and 'OPTIONAL' in this document are to be interpreted as
    described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
    they appear in all capitals, as shown here.
    
    Copyright (c) 2022 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 Revised 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 9130; see the
    RFC itself for full legal notices.";
    
        reference
          "RFC 8342: Network Management Datastore Architecture (NMDA)";
    
    
        revision "2022-10-19" {
          description "Initial revision.";
          reference
            "RFC 9130: YANG Data Model for the IS-IS Protocol";
    
        }
    
    
        identity isis {
          base rt:routing-protocol;
          description
            "Identity for the IS-IS routing protocol.";
        }
    
        identity lsp-log-reason {
          description
            "Base identity for a Link State PDU (LSP)
    change log reason.";
        }
    
        identity refresh {
          base lsp-log-reason;
          description
            "Identity used when the LSP log reason is that an LSP
    refresh was received.";
        }
    
        identity content-change {
          base lsp-log-reason;
          description
            "Identity used when the LSP log reason is
    a change in the contents of the LSP.";
        }
    
        identity frr-protection-method {
          description
            "Base identity for a Fast Reroute protection method.";
        }
    
        identity frr-protection-method-lfa {
          base frr-protection-method;
          description
            "Loop-Free Alternate as defined in RFC 5286.";
          reference
            "RFC 5286: Basic Specification for IP Fast Reroute:
            Loop-Free Alternates";
    
        }
    
        identity frr-protection-method-rlfa {
          base frr-protection-method;
          description
            "Remote Loop-Free Alternate as defined in RFC 7490.";
          reference
            "RFC 7490: Remote Loop-Free Alternate (LFA)
            Fast Reroute (FRR)";
    
        }
    
        identity frr-protection-method-rsvpte {
          base frr-protection-method;
          description
            "RSVP-TE as defined in RFC 4090.";
          reference
            "RFC 4090: Fast Reroute Extensions to RSVP-TE for
            LSP Tunnels";
    
        }
    
        identity frr-protection-available-type {
          description
            "Base identity for Fast Reroute protection types
    provided by an alternate path.";
        }
    
        identity frr-protection-available-node-type {
          base frr-protection-available-type;
          description
            "Node protection is provided by the alternate.";
        }
    
        identity frr-protection-available-link-type {
          base frr-protection-available-type;
          description
            "Link protection is provided by the alternate.";
        }
    
        identity frr-protection-available-srlg-type {
          base frr-protection-available-type;
          description
            "Shared Risk Link Group (SRLG) protection is provided by
    the alternate.";
        }
    
        identity frr-protection-available-downstream-type {
          base frr-protection-available-type;
          description
            "The alternate is downstream of the node in the path.";
        }
    
        identity frr-protection-available-other-type {
          base frr-protection-available-type;
          description
            "The level of protection is unknown.";
        }
    
        identity frr-alternate-type {
          description
            "Base identity for the IP Fast Reroute alternate type.";
        }
    
        identity frr-alternate-type-equal-cost {
          base frr-alternate-type;
          description "ECMP-based alternate.";
        }
    
        identity frr-alternate-type-lfa {
          base frr-alternate-type;
          description "LFA-based alternate.";
        }
    
        identity frr-alternate-type-remote-lfa {
          base frr-alternate-type;
          description
            "Remote-LFA-based alternate.";
        }
    
        identity frr-alternate-type-tunnel {
          base frr-alternate-type;
          description
            "Tunnel-based alternate (such as RSVP-TE or GRE).";
        }
    
        identity frr-alternate-mrt {
          base frr-alternate-type;
          description "MRT-based alternate.";
        }
    
        identity frr-alternate-tilfa {
          base frr-alternate-type;
          description "TI-LFA-based alternate.";
        }
    
        identity frr-alternate-other {
          base frr-alternate-type;
          description "Other type of alternate.";
        }
    
        identity unidirectional-link-delay-subtlv-flag {
          description
            "Base identity for the flag corresponding to the
    Unidirectional Link Delay sub-TLV as defined in RFC 8570.";
          reference
            "RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions";
    
        }
    
        identity unidirectional-link-delay-subtlv-a-flag {
          base unidirectional-link-delay-subtlv-flag;
          description
            "The 'A' bit field represents the Anomalous (A) bit.
    The A bit is set when the measured value of
    this parameter exceeds its configured
    maximum threshold.
    The A bit is cleared when the measured value
    falls below its configured reuse threshold.
    If the A bit is clear,
    the value represents steady-state link performance.";
        }
    
        identity min-max-unidirectional-link-delay-subtlv-flag {
          description
            "Base identity for the flag corresponding to the Min/Max
    Unidirectional Link Delay sub-TLV as defined in RFC 8570.";
          reference
            "RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions";
    
        }
    
        identity min-max-unidirectional-link-delay-subtlv-a-flag {
          base min-max-unidirectional-link-delay-subtlv-flag;
          description
            "The 'A' bit field represents the Anomalous (A) bit.
    The A bit is set when the measured value of
    this parameter exceeds its configured
    maximum threshold.
    The A bit is cleared when the measured value
    falls below its configured reuse threshold.
    If the A bit is clear,
    the value represents steady-state link performance.";
        }
    
        identity unidirectional-link-loss-subtlv-flag {
          description
            "Base identity for the flag corresponding to the
    Unidirectional Link Loss sub-TLV as defined in RFC 8570.";
          reference
            "RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions";
    
        }
    
        identity unidirectional-link-loss-subtlv-a-flag {
          base unidirectional-link-loss-subtlv-flag;
          description
            "The 'A' bit field represents the Anomalous (A) bit.
    The A bit is set when the measured value of
    this parameter exceeds its configured
    maximum threshold.
    The A bit is cleared when the measured value
    falls below its configured reuse threshold.
    If the A bit is clear,
    the value represents steady-state link performance.";
        }
    
        identity tlv229-flag {
          description
            "Base identity for the flag corresponding to TLV 229
    (M-Topologies) as defined in RFC 5120.";
          reference
            "RFC 5120: M-ISIS: Multi Topology (MT) Routing in
            Intermediate System to Intermediate Systems (IS-ISs)";
    
        }
    
        identity tlv229-overload-flag {
          base tlv229-flag;
          description
            "If set, the originator is overloaded
    and must be avoided in the path calculation.";
        }
    
        identity tlv229-attached-flag {
          base tlv229-flag;
          description
            "If set, the originator is attached to
    another area using the referred metric.";
        }
    
        identity router-capability-flag {
          description
            "Base identity for the flag corresponding to the
    Router Capability TLV as defined in RFC 7981.";
          reference
            "RFC 7981: IS-IS Extensions for Advertising Router
            Information";
    
        }
    
        identity router-capability-flooding-flag {
          base router-capability-flag;
          description
            "Quote from RFC 7981:
    'If the S bit is set(1), the IS-IS Router CAPABILITY TLV
    MUST be flooded across the entire routing domain.  If the
    S bit is not set(0), the TLV MUST NOT be leaked between
    levels.  This bit MUST NOT be altered during the TLV
    leaking.'";
        }
    
        identity router-capability-down-flag {
          base router-capability-flag;
          description
            "Quote from RFC 7981:
    'When the IS-IS Router CAPABILITY TLV is leaked from
    Level 2 (L2) to Level 1 (L1), the D bit MUST be set.
    Otherwise, this bit MUST be clear.  IS-IS Router
    CAPABILITY TLVs with the D bit set MUST NOT be leaked from
    Level 1 to Level 2.  This is to prevent TLV looping.'";
        }
    
        identity lsp-flag {
          description
            "Base identity for LSP attributes as defined in ISO 10589.";
          reference
            "ISO 10589: Intermediate System to Intermediate System
            intra-domain routeing information exchange protocol
            for use in conjunction with the protocol for providing
            the connectionless-mode network service (ISO 8473)";
    
        }
    
        identity lsp-partitioned-flag {
          base lsp-flag;
          description
            "Originator partition repair supported.";
        }
    
        identity lsp-attached-error-metric-flag {
          base lsp-flag;
          description
            "Set when the originator is attached to
    another area using the error metric.";
        }
    
        identity lsp-attached-delay-metric-flag {
          base lsp-flag;
          description
            "Set when the originator is attached to
    another area using the delay metric.";
        }
    
        identity lsp-attached-expense-metric-flag {
          base lsp-flag;
          description
            "Set when the originator is attached to
    another area using the expense metric.";
        }
    
        identity lsp-attached-default-metric-flag {
          base lsp-flag;
          description
            "Set when the originator is attached to
    another area using the default metric.";
        }
    
        identity lsp-overload-flag {
          base lsp-flag;
          description
            "If set, the originator is overloaded
    and must be avoided in the path calculation.";
        }
    
        identity lsp-l1-system-flag {
          base lsp-flag;
          description
            "Set when the Intermediate System has an L1 type.";
        }
    
        identity lsp-l2-system-flag {
          base lsp-flag;
          description
            "Set when the Intermediate System has an L2 type.";
        }
    
        feature osi-interface {
          description
            "Support of OSI-specific parameters on an interface.";
        }
    
        feature poi-tlv {
          description
            "Support of the Purge Originator Identification (POI) TLV.";
          reference
            "RFC 6232: Purge Originator Identification TLV for IS-IS";
    
        }
    
        feature ietf-spf-delay {
          description
            "Support for the IETF SPF delay algorithm.";
          reference
            "RFC 8405: Shortest Path First (SPF) Back-Off Delay Algorithm
            for Link-State IGPs";
    
        }
    
        feature bfd {
          description
            "Support for detection of IS-IS neighbor reachability
    via BFD.";
          reference
            "RFC 5880: Bidirectional Forwarding Detection (BFD)
             RFC 5881: Bidirectional Forwarding Detection (BFD)
            for IPv4 and IPv6 (Single Hop)";
    
        }
    
        feature key-chain {
          description
            "Support of key chains for authentication.";
          reference
            "RFC 8177: YANG Data Model for Key Chains";
    
        }
    
        feature node-flag {
          description
            "Support for node flags for IS-IS prefixes.";
          reference
            "RFC 7794: IS-IS Prefix Attributes for Extended IPv4 and IPv6
            Reachability";
    
        }
    
        feature node-tag {
          description
            "Support for node administrative tags for IS-IS
    routing instances.";
          reference
            "RFC 7917: Advertising Node Administrative Tags in IS-IS";
    
        }
    
        feature ldp-igp-sync {
          description
            "Support for LDP IGP synchronization.";
          reference
            "RFC 5443: LDP IGP Synchronization";
    
        }
    
        feature fast-reroute {
          description
            "Support for IP Fast Reroute (IP FRR).";
        }
    
        feature nsr {
          description
            "Support for Non-Stop-Routing (NSR).  The IS-IS NSR feature
    allows a router with redundant control-plane capability
    (e.g., dual Route Processor (RP) cards) to maintain its
    state and adjacencies during planned and unplanned
    IS-IS instance restarts.  It differs from graceful restart
    or Non-Stop Forwarding (NSF) in that no protocol signaling
    or assistance from adjacent IS-IS neighbors is required to
    recover control-plane state.";
        }
    
        feature lfa {
          description
            "Support for Loop-Free Alternates (LFAs).";
          reference
            "RFC 5286: Basic Specification for IP Fast Reroute:
            Loop-Free Alternates";
    
        }
    
        feature remote-lfa {
          description
            "Support for remote LFAs (R-LFAs).";
          reference
            "RFC 7490: Remote Loop-Free Alternate (LFA)
            Fast Reroute (FRR)";
    
        }
    
        feature overload-max-metric {
          description
            "Support of overload by setting all links to the maximum
    link metric.  In IS-IS, the overload bit is usually used to
    signal that a node cannot be used as a transit node.  The
    'overload-max-metric' feature provides similar behavior,
    also setting all the link metrics to MAX_METRIC.";
        }
    
        feature prefix-tag {
          description
            "Support for 32-bit prefix tags.";
          reference
            "RFC 5130: A Policy Control Mechanism in IS-IS Using
            Administrative Tags";
    
        }
    
        feature prefix-tag64 {
          description
            "Support for 64-bit prefix tags.";
          reference
            "RFC 5130: A Policy Control Mechanism in IS-IS Using
            Administrative Tags";
    
        }
    
        feature auto-cost {
          description
            "Support for an IS-IS interface metric computation
    according to a reference bandwidth.";
        }
    
        feature te-rid {
          description
            "Traffic Engineering router ID.";
          reference
            "RFC 5305: IS-IS Extensions for Traffic Engineering
             RFC 6119: IPv6 Traffic Engineering in IS-IS";
    
        }
    
        feature max-ecmp {
          description
            "Sets the maximum number of ECMP paths.";
        }
    
        feature multi-topology {
          description
            "Support for Multi-Topology (MT) Routing.";
          reference
            "RFC 5120: M-ISIS: Multi Topology (MT) Routing in
            Intermediate System to Intermediate Systems (IS-ISs)";
    
        }
    
        feature nlpid-control {
          description
            "Support for the advertisement of a Network Layer
    Protocol Identifier within an IS-IS configuration.";
        }
    
        feature graceful-restart {
          description
            "Support for IS-IS graceful restart.";
          reference
            "RFC 8706: Restart Signaling for IS-IS";
    
        }
    
        feature lsp-refresh {
          description
            "Configuration of the LSP refresh interval.";
        }
    
        feature maximum-area-addresses {
          description
            "Support for 'maximum-area-addresses' configuration.";
        }
    
        feature admin-control {
          description
            "Administrative control of the protocol state.";
        }
    
        typedef circuit-id {
          type uint8;
          description
            "This type defines the circuit ID
    associated with an interface.";
        }
    
        typedef extended-circuit-id {
          type uint32;
          description
            "This type defines the extended circuit ID
    associated with an interface.";
        }
    
        typedef interface-type {
          type enumeration {
            enum "broadcast" {
              value 0;
              description
                "Broadcast interface type.";
            }
            enum "point-to-point" {
              value 1;
              description
                "Point-to-point interface type.";
            }
          }
          description
            "This type defines the type of adjacency
    to be established for the interface.
    'interface-type' determines the type
    of Hello message that is used.";
        }
    
        typedef level {
          type enumeration {
            enum "level-1" {
              value 0;
              description
                "This enum indicates L1-only capability.";
            }
            enum "level-2" {
              value 1;
              description
                "This enum indicates L2-only capability.";
            }
            enum "level-all" {
              value 2;
              description
                "This enum indicates capability for both levels.";
            }
          }
          default "level-all";
          description
            "This type defines the IS-IS level of an object.";
        }
    
        typedef adj-state-type {
          type enumeration {
            enum "up" {
              value 0;
              description
                "This state indicates that the adjacency is established.";
            }
            enum "down" {
              value 1;
              description
                "This state indicates that the adjacency is
    NOT established.";
            }
            enum "init" {
              value 2;
              description
                "This state indicates that the adjacency is being
    established.";
            }
            enum "failed" {
              value 3;
              description
                "This state indicates that the adjacency has failed.";
            }
          }
          description
            "This type defines the states of an adjacency.";
        }
    
        typedef if-state-type {
          type enumeration {
            enum "up" {
              value 0;
              description "'up' state.";
            }
            enum "down" {
              value 1;
              description "'down' state.";
            }
          }
          description
            "This type defines the state of an interface.";
        }
    
        typedef level-number {
          type uint8 {
            range "1 .. 2";
          }
          description
            "This type defines the current IS-IS level.";
        }
    
        typedef lsp-id {
          type string {
            pattern
              '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9][0-9]-[0-9][0-9]';
          }
          description
            "This type defines the IS-IS LSP ID format using a
    pattern.  An example LSP ID is '0143.0438.AEF0.02-01'.";
        }
    
        typedef area-address {
          type string {
            pattern
              '[0-9A-Fa-f]{2}(\.[0-9A-Fa-f]{4}){0,6}';
          }
          description
            "This type defines the area address format.";
        }
    
        typedef snpa {
          type string {
            length "0 .. 20";
          }
          description
            "This type defines the Subnetwork Point of Attachment (SNPA)
    format.  The SNPA should be encoded according to the rules
    specified for the particular type of subnetwork being used.
    As an example, for an Ethernet subnetwork, the SNPA is
    encoded as a Media Access Control (MAC) address, such as
    '00aa.bbcc.ddee'.";
        }
    
        typedef system-id {
          type string {
            pattern
              '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}';
          }
          description
            "This type defines the IS-IS system ID by using a pattern.
    An example system ID is '0143.0438.AEF0'.";
        }
    
        typedef extended-system-id {
          type string {
            pattern
              '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9][0-9]';
          }
          description
            "This type defines the IS-IS system ID using a pattern.
    'extended-system-id' contains the pseudonode number
    in addition to the system ID.
    An example extended system ID is '0143.0438.AEF0.00'.";
        }
    
        typedef wide-metric {
          type uint32 {
            range "0 .. 16777215";
          }
          description
            "This type defines the wide-style format of an IS-IS metric.";
        }
    
        typedef std-metric {
          type uint8 {
            range "0 .. 63";
          }
          description
            "This type defines the old-style format of the IS-IS metric.";
        }
    
        typedef mesh-group-state {
          type enumeration {
            enum "mesh-inactive" {
              value 0;
              description
                "The interface is not part of a mesh group.";
            }
            enum "mesh-set" {
              value 1;
              description
                "The interface is part of a mesh group.";
            }
            enum "mesh-blocked" {
              value 2;
              description
                "LSPs must not be flooded over this interface.";
            }
          }
          description
            "This type describes the mesh group state of an interface.";
        }
    
        rpc clear-adjacency {
          description
            "This RPC request clears a particular set of IS-IS
    adjacencies.  If the operation fails for an internal
    reason, then the 'error-tag' and 'error-app-tag' should be
    set indicating the reason for the failure.";
          reference
            "RFC 6241: Network Configuration Protocol (NETCONF)";
    
          input {
            leaf routing-protocol-instance-name {
              type leafref {
                path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name";
              }
              mandatory true;
              description
                "Name of the IS-IS protocol instance whose IS-IS
    adjacency is being cleared.
    
    If the corresponding IS-IS instance doesn't exist,
    then the operation will fail with an 'error-tag' of
    'data-missing' and an 'error-app-tag' of
    'routing-protocol-instance-not-found'.";
            }
    
            leaf level {
              type level;
              description
                "IS-IS level of the adjacency to be cleared.  If the
    IS-IS level is 'level-all', level-1 and level-2
    adjacencies would both be cleared.
    
    If the value provided is different from the value
    authorized in the enum type, then the operation
    SHALL fail with an 'error-tag' of 'data-missing' and
    an 'error-app-tag' of 'bad-isis-level'.";
            }
    
            leaf interface {
              type if:interface-ref;
              description
                "IS-IS interface name.
    
    If the corresponding IS-IS interface doesn't exist,
    then the operation SHALL fail with an 'error-tag' of
    'data-missing' and an 'error-app-tag' of
    'isis-interface-not-found'.";
            }
          }
        }  // rpc clear-adjacency
    
        rpc clear-database {
          description
            "This RPC request clears a particular IS-IS database.
    Additionally, all neighbor adjacencies will be forced to
    the DOWN state and self-originated LSPs will be
    reoriginated.  If the operation fails for an IS-IS
    internal reason, then the 'error-tag' and 'error-app-tag'
    should be set indicating the reason for the failure.";
          input {
            leaf routing-protocol-instance-name {
              type leafref {
                path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name";
              }
              mandatory true;
              description
                "Name of the IS-IS protocol instance whose IS-IS
    database or databases are being cleared.
    
    If the corresponding IS-IS instance doesn't exist,
    then the operation will fail with an 'error-tag' of
    'data-missing' and an 'error-app-tag' of
    'routing-protocol-instance-not-found'.";
            }
    
            leaf level {
              type level;
              description
                "IS-IS level of the adjacency to be cleared.  If the
    IS-IS level is 'level-all', the databases for both
    level 1 and level 2 would be cleared.
    
    If the value provided is different from the value
    authorized in the enum type, then the operation
    SHALL fail with an 'error-tag' of 'data-missing' and
    an 'error-app-tag' of 'bad-isis-level'.";
            }
          }
        }  // rpc clear-database
    
        notification database-overload {
          description
            "This notification is sent when an IS-IS instance
    overload state changes.";
          leaf routing-protocol-name {
            type leafref {
              path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name";
            }
            description
              "Name of the IS-IS instance.";
          }
    
          leaf isis-level {
            type level;
            description
              "IS-IS level of the instance.";
          }
    
          leaf overload {
            type enumeration {
              enum "off" {
                value 0;
                description
                  "Indicates that the IS-IS instance has left the
    overload state.";
              }
              enum "on" {
                value 1;
                description
                  "Indicates that the IS-IS instance has entered the
    overload state.";
              }
            }
            description
              "New overload state of the IS-IS instance.";
          }
        }  // notification database-overload
    
        notification lsp-too-large {
          description
            "This notification is sent when an attempt to propagate
    an LSP that is larger than the dataLinkBlockSize (ISO 10589)
    for the circuit occurs.  The generation of the notification
    must be throttled with at least 5 seconds between successive
    notifications.";
          reference
            "ISO 10589: Intermediate System to Intermediate System
            intra-domain routeing information exchange protocol
            for use in conjunction with the protocol for providing
            the connectionless-mode network service (ISO 8473)";
    
          leaf routing-protocol-name {
            type leafref {
              path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name";
            }
            description
              "Name of the IS-IS instance.";
          }
    
          leaf isis-level {
            type level;
            description
              "IS-IS level of the instance.";
          }
    
          leaf interface-name {
            type if:interface-ref;
            description "IS-IS interface name.";
          }
    
          leaf interface-level {
            type level;
            description
              "IS-IS level of the interface.";
          }
    
          leaf extended-circuit-id {
            type extended-circuit-id;
            description
              "Extended circuit ID of the interface.";
          }
    
          leaf pdu-size {
            type uint32;
            description "Size of the LSP PDU.";
          }
    
          leaf lsp-id {
            type lsp-id;
            description "LSP ID.";
          }
        }  // notification lsp-too-large
    
        notification if-state-change {
          description
            "This notification is sent when an interface
    state change is detected.";
          leaf routing-protocol-name {
            type leafref {
              path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name";
            }
            description
              "Name of the IS-IS instance.";
          }
    
          leaf isis-level {
            type level;
            description
              "IS-IS level of the instance.";
          }
    
          leaf interface-name {
            type if:interface-ref;
            description "IS-IS interface name.";
          }
    
          leaf interface-level {
            type level;
            description
              "IS-IS level of the interface.";
          }
    
          leaf extended-circuit-id {
            type extended-circuit-id;
            description
              "Extended circuit ID of the interface.";
          }
    
          leaf state {
            type if-state-type;
            description "Interface state.";
          }
        }  // notification if-state-change
    
        notification corrupted-lsp-detected {
          description
            "This notification is sent when an LSP that was stored in
    memory has become corrupted.";
          leaf routing-protocol-name {
            type leafref {
              path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name";
            }
            description
              "Name of the IS-IS instance.";
          }
    
          leaf isis-level {
            type level;
            description
              "IS-IS level of the instance.";
          }
    
          leaf lsp-id {
            type lsp-id;
            description "LSP ID.";
          }
        }  // notification corrupted-lsp-detected
    
        notification attempt-to-exceed-max-sequence {
          description
            "This notification is sent when the system
    wraps the 32-bit sequence counter of an LSP.";
          leaf routing-protocol-name {
            type leafref {
              path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name";
            }
            description
              "Name of the IS-IS instance.";
          }
    
          leaf isis-level {
            type level;
            description
              "IS-IS level of the instance.";
          }
    
          leaf lsp-id {
            type lsp-id;
            description "LSP ID.";
          }
        }  // notification attempt-to-exceed-max-sequence
    
        notification id-len-mismatch {
          description
            "This notification is sent when a PDU with a different value
    for the system ID length is received.  The generation of the
    notification must be throttled with at least 5 seconds
    between successive notifications.";
          leaf routing-protocol-name {
            type leafref {
              path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name";
            }
            description
              "Name of the IS-IS instance.";
          }
    
          leaf isis-level {
            type level;
            description
              "IS-IS level of the instance.";
          }
    
          leaf interface-name {
            type if:interface-ref;
            description "IS-IS interface name.";
          }
    
          leaf interface-level {
            type level;
            description
              "IS-IS level of the interface.";
          }
    
          leaf extended-circuit-id {
            type extended-circuit-id;
            description
              "Extended circuit ID of the interface.";
          }
    
          leaf pdu-field-len {
            type uint8;
            description
              "Value for the system ID length in the received PDU.";
          }
    
          leaf raw-pdu {
            type binary;
            description "Received raw PDU.";
          }
        }  // notification id-len-mismatch
    
        notification max-area-addresses-mismatch {
          description
            "This notification is sent when a PDU with a different value
    for the Maximum Area Addresses has been received.  The
    generation of the notification must be throttled with
    at least 5 seconds between successive notifications.";
          leaf routing-protocol-name {
            type leafref {
              path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name";
            }
            description
              "Name of the IS-IS instance.";
          }
    
          leaf isis-level {
            type level;
            description
              "IS-IS level of the instance.";
          }
    
          leaf interface-name {
            type if:interface-ref;
            description "IS-IS interface name.";
          }
    
          leaf interface-level {
            type level;
            description
              "IS-IS level of the interface.";
          }
    
          leaf extended-circuit-id {
            type extended-circuit-id;
            description
              "Extended circuit ID of the interface.";
          }
    
          leaf max-area-addresses {
            type uint8;
            description
              "Received number of supported areas.";
          }
    
          leaf raw-pdu {
            type binary;
            description "Received raw PDU.";
          }
        }  // notification max-area-addresses-mismatch
    
        notification own-lsp-purge {
          description
            "This notification is sent when the system receives
    a PDU with its own system ID and zero age.";
          leaf routing-protocol-name {
            type leafref {
              path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name";
            }
            description
              "Name of the IS-IS instance.";
          }
    
          leaf isis-level {
            type level;
            description
              "IS-IS level of the instance.";
          }
    
          leaf interface-name {
            type if:interface-ref;
            description "IS-IS interface name.";
          }
    
          leaf interface-level {
            type level;
            description
              "IS-IS level of the interface.";
          }
    
          leaf extended-circuit-id {
            type extended-circuit-id;
            description
              "Extended circuit ID of the interface.";
          }
    
          leaf lsp-id {
            type lsp-id;
            description "LSP ID.";
          }
        }  // notification own-lsp-purge
    
        notification sequence-number-skipped {
          description
            "This notification is sent when the system receives a
    PDU with its own system ID and different contents.  The
    system has to originate the LSP with a higher sequence
    number.";
          leaf routing-protocol-name {
            type leafref {
              path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name";
            }
            description
              "Name of the IS-IS instance.";
          }
    
          leaf isis-level {
            type level;
            description
              "IS-IS level of the instance.";
          }
    
          leaf interface-name {
            type if:interface-ref;
            description "IS-IS interface name.";
          }
    
          leaf interface-level {
            type level;
            description
              "IS-IS level of the interface.";
          }
    
          leaf extended-circuit-id {
            type extended-circuit-id;
            description
              "Extended circuit ID of the interface.";
          }
    
          leaf lsp-id {
            type lsp-id;
            description "LSP ID.";
          }
        }  // notification sequence-number-skipped
    
        notification authentication-type-failure {
          description
            "This notification is sent when the system receives a
    PDU with the wrong authentication type field.
    The generation of the notification must be throttled
    with at least 5 seconds between successive notifications.";
          leaf routing-protocol-name {
            type leafref {
              path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name";
            }
            description
              "Name of the IS-IS instance.";
          }
    
          leaf isis-level {
            type level;
            description
              "IS-IS level of the instance.";
          }
    
          leaf interface-name {
            type if:interface-ref;
            description "IS-IS interface name.";
          }
    
          leaf interface-level {
            type level;
            description
              "IS-IS level of the interface.";
          }
    
          leaf extended-circuit-id {
            type extended-circuit-id;
            description
              "Extended circuit ID of the interface.";
          }
    
          leaf raw-pdu {
            type binary;
            description "Received raw PDU.";
          }
        }  // notification authentication-type-failure
    
        notification authentication-failure {
          description
            "This notification is sent when the system receives
    a PDU on which authentication fails.  The generation of the
    notification must be throttled with at least 5 seconds
    between successive notifications.";
          leaf routing-protocol-name {
            type leafref {
              path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name";
            }
            description
              "Name of the IS-IS instance.";
          }
    
          leaf isis-level {
            type level;
            description
              "IS-IS level of the instance.";
          }
    
          leaf interface-name {
            type if:interface-ref;
            description "IS-IS interface name.";
          }
    
          leaf interface-level {
            type level;
            description
              "IS-IS level of the interface.";
          }
    
          leaf extended-circuit-id {
            type extended-circuit-id;
            description
              "Extended circuit ID of the interface.";
          }
    
          leaf raw-pdu {
            type binary;
            description "Received raw PDU.";
          }
        }  // notification authentication-failure
    
        notification version-skew {
          description
            "This notification is sent when the system receives a
    PDU with a different protocol version number.
    The generation of the notification must be throttled
    with at least 5 seconds between successive notifications.";
          leaf routing-protocol-name {
            type leafref {
              path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name";
            }
            description
              "Name of the IS-IS instance.";
          }
    
          leaf isis-level {
            type level;
            description
              "IS-IS level of the instance.";
          }
    
          leaf interface-name {
            type if:interface-ref;
            description "IS-IS interface name.";
          }
    
          leaf interface-level {
            type level;
            description
              "IS-IS level of the interface.";
          }
    
          leaf extended-circuit-id {
            type extended-circuit-id;
            description
              "Extended circuit ID of the interface.";
          }
    
          leaf protocol-version {
            type uint8;
            description
              "Protocol version received in the PDU.";
          }
    
          leaf raw-pdu {
            type binary;
            description "Received raw PDU.";
          }
        }  // notification version-skew
    
        notification area-mismatch {
          description
            "This notification is sent when the system receives a
    Hello PDU from an IS that does not share any area
    address.  The generation of the notification must be
    throttled with at least 5 seconds between successive
    notifications.";
          leaf routing-protocol-name {
            type leafref {
              path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name";
            }
            description
              "Name of the IS-IS instance.";
          }
    
          leaf isis-level {
            type level;
            description
              "IS-IS level of the instance.";
          }
    
          leaf interface-name {
            type if:interface-ref;
            description "IS-IS interface name.";
          }
    
          leaf interface-level {
            type level;
            description
              "IS-IS level of the interface.";
          }
    
          leaf extended-circuit-id {
            type extended-circuit-id;
            description
              "Extended circuit ID of the interface.";
          }
    
          leaf raw-pdu {
            type binary;
            description "Received raw PDU.";
          }
        }  // notification area-mismatch
    
        notification rejected-adjacency {
          description
            "This notification is sent when the system receives a
    Hello PDU from an IS but does not establish an adjacency
    for some reason.  The generation of the notification
    must be throttled with at least 5 seconds between
    successive notifications.";
          leaf routing-protocol-name {
            type leafref {
              path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name";
            }
            description
              "Name of the IS-IS instance.";
          }
    
          leaf isis-level {
            type level;
            description
              "IS-IS level of the instance.";
          }
    
          leaf interface-name {
            type if:interface-ref;
            description "IS-IS interface name.";
          }
    
          leaf interface-level {
            type level;
            description
              "IS-IS level of the interface.";
          }
    
          leaf extended-circuit-id {
            type extended-circuit-id;
            description
              "Extended circuit ID of the interface.";
          }
    
          leaf raw-pdu {
            type binary;
            description "Received raw PDU.";
          }
    
          leaf reason {
            type string {
              length "0..255";
            }
            description
              "The system may provide a reason to reject the
    adjacency.  If the reason is not available,
    the reason string will not be returned.
    The expected format is a single line of text.";
          }
        }  // notification rejected-adjacency
    
        notification protocols-supported-mismatch {
          description
            "This notification is sent when the system receives a
    non-pseudonode LSP that has no matching protocols
    supported.  The generation of the notification must be
    throttled with at least 5 seconds between successive
    notifications.";
          leaf routing-protocol-name {
            type leafref {
              path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name";
            }
            description
              "Name of the IS-IS instance.";
          }
    
          leaf isis-level {
            type level;
            description
              "IS-IS level of the instance.";
          }
    
          leaf interface-name {
            type if:interface-ref;
            description "IS-IS interface name.";
          }
    
          leaf interface-level {
            type level;
            description
              "IS-IS level of the interface.";
          }
    
          leaf extended-circuit-id {
            type extended-circuit-id;
            description
              "Extended circuit ID of the interface.";
          }
    
          leaf raw-pdu {
            type binary;
            description "Received raw PDU.";
          }
    
          leaf-list protocols {
            type uint8;
            description
              "List of protocols supported by the remote system.";
          }
        }  // notification protocols-supported-mismatch
    
        notification lsp-error-detected {
          description
            "This notification is sent when the system receives an
    LSP with a parse error.  The generation of the notification
    must be throttled with at least 5 seconds between
    successive notifications.";
          leaf routing-protocol-name {
            type leafref {
              path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name";
            }
            description
              "Name of the IS-IS instance.";
          }
    
          leaf isis-level {
            type level;
            description
              "IS-IS level of the instance.";
          }
    
          leaf interface-name {
            type if:interface-ref;
            description "IS-IS interface name.";
          }
    
          leaf interface-level {
            type level;
            description
              "IS-IS level of the interface.";
          }
    
          leaf extended-circuit-id {
            type extended-circuit-id;
            description
              "Extended circuit ID of the interface.";
          }
    
          leaf lsp-id {
            type lsp-id;
            description "LSP ID.";
          }
    
          leaf raw-pdu {
            type binary;
            description "Received raw PDU.";
          }
    
          leaf error-offset {
            type uint32;
            description
              "If the problem is a malformed TLV, the error offset
    points to the start of the TLV.  If the problem is with
    the LSP header, the error offset points to the errant
    byte.";
          }
    
          leaf tlv-type {
            type uint8;
            description
              "If the problem is a malformed TLV, the TLV type is set
    to the type value of the suspicious TLV.  Otherwise,
    this leaf is not present.";
          }
        }  // notification lsp-error-detected
    
        notification adjacency-state-change {
          description
            "This notification is sent when an IS-IS adjacency
    moves to the 'up' state or the 'down' state.";
          leaf routing-protocol-name {
            type leafref {
              path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name";
            }
            description
              "Name of the IS-IS instance.";
          }
    
          leaf isis-level {
            type level;
            description
              "IS-IS level of the instance.";
          }
    
          leaf interface-name {
            type if:interface-ref;
            description "IS-IS interface name.";
          }
    
          leaf interface-level {
            type level;
            description
              "IS-IS level of the interface.";
          }
    
          leaf extended-circuit-id {
            type extended-circuit-id;
            description
              "Extended circuit ID of the interface.";
          }
    
          leaf neighbor {
            type string {
              length "1..255";
            }
            description
              "Name of the neighbor.  It corresponds to the hostname
    associated with the system ID of the neighbor in the
    mapping database (RFC 5301).  If the name of the neighbor
    is not available, it is not returned.";
            reference
              "RFC 5301: Dynamic Hostname Exchange Mechanism for IS-IS";
    
          }
    
          leaf neighbor-system-id {
            type system-id;
            description "Neighbor system ID.";
          }
    
          leaf state {
            type adj-state-type;
            description
              "New state of the IS-IS adjacency.";
          }
    
          leaf reason {
            type string {
              length "1..255";
            }
            description
              "If the adjacency is going to the 'down' state, this leaf
    provides a reason for the adjacency going down.  The reason
    is provided as text.  If the adjacency is going to the 'up'
    state, no reason is provided.  The expected format is a
    single line of text.";
          }
        }  // notification adjacency-state-change
    
        notification lsp-received {
          description
            "This notification is sent when an LSP is received.
    The generation of the notification must be throttled with
    at least 5 seconds between successive notifications.";
          leaf routing-protocol-name {
            type leafref {
              path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name";
            }
            description
              "Name of the IS-IS instance.";
          }
    
          leaf isis-level {
            type level;
            description
              "IS-IS level of the instance.";
          }
    
          leaf interface-name {
            type if:interface-ref;
            description "IS-IS interface name.";
          }
    
          leaf interface-level {
            type level;
            description
              "IS-IS level of the interface.";
          }
    
          leaf extended-circuit-id {
            type extended-circuit-id;
            description
              "Extended circuit ID of the interface.";
          }
    
          leaf lsp-id {
            type lsp-id;
            description "LSP ID.";
          }
    
          leaf sequence {
            type uint32;
            description
              "Sequence number of the received LSP.";
          }
    
          leaf received-timestamp {
            type yang:timestamp;
            description
              "Timestamp when the LSP was received.";
          }
    
          leaf neighbor-system-id {
            type system-id;
            description
              "Neighbor system ID of the LSP sender.";
          }
        }  // notification lsp-received
    
        notification lsp-generation {
          description
            "This notification is sent when an LSP is regenerated.
    The generation of the notification must be throttled with
    at least 5 seconds between successive notifications.";
          leaf routing-protocol-name {
            type leafref {
              path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:name";
            }
            description
              "Name of the IS-IS instance.";
          }
    
          leaf isis-level {
            type level;
            description
              "IS-IS level of the instance.";
          }
    
          leaf lsp-id {
            type lsp-id;
            description "LSP ID.";
          }
    
          leaf sequence {
            type uint32;
            description
              "Sequence number of the received LSP.";
          }
    
          leaf send-timestamp {
            type yang:timestamp;
            description
              "Timestamp when the LSP was regenerated.";
          }
        }  // notification lsp-generation
      }  // module ietf-isis
    

© 2023 YumaWorks, Inc. All rights reserved.