netconfcentral logo

ietf-isis-reverse-metric

HTML

ietf-isis-reverse-metric@2020-07-28



  module ietf-isis-reverse-metric {

    yang-version 1.1;

    namespace
      "urn:ietf:params:xml:ns:yang:ietf-isis-reverse-metric";

    prefix isis-rmetric;

    import ietf-routing {
      prefix rt;
      reference
        "RFC8349: A YANG Data Model for Routing Management (NMDA Version)";


    }
    import ietf-isis {
      prefix isis;
      reference
        "draft-ietf-isis-yang-isis-cfg-42:
        YANG Data Model for IS-IS Protocol";


    }

    organization
      "IETF LSR Working Group (LSR)";

    contact
      "WG Web:  <https://tools.ietf.org/wg/lsr/>
     WG List: <mailto:lsr@ietf.org>

     Author: Christian Hopps
             <mailto:chopps@chopps.org>";

    description
      "This module defines the configuration and operational state for
     managing the IS-IS reverse metric functionality [RFC8500].

     Copyright (c) 2019 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 XXXX
     (https://tools.ietf.org/html/rfcXXXX); see the RFC itself for
     full legal notices.";

    revision "2020-07-28" {
      description "Initial Revision";
      reference
        "RFC XXXX: YANG IS-IS Reverse Metric";

    }


    grouping reverse-metric-data {
      description
        "IS-IS reverse metric data.";
      leaf metric {
        type isis:wide-metric;
        description
          "The reverse metric value.";
        reference
          "RFC8500, Section 2";

      }

      container flags {
        description
          "The reverse metric flag values.";
        leaf whole-lan {
          type boolean;
          description
            "The 'whole LAN' or W-bit. If true then a DIS processing this
            reverse metric will add the metric value to all the nodes it
            advertises in the pseudo-node LSP for this interface.
            Otherwise it will only increment the metric for the
            advertising node in the pseudo-node LSP for this interface.";
          reference
            "RFC8500, Section 2";

        }

        leaf allow-unreachable {
          type boolean;
          description
            "The 'allow-unreachable' or U-bit. If true it allows the
            neighbor to increment the overall metric up to 2^24-1 rather
            than the lesser maximum of 2^24-2, and if done will cause
            traffic to stop using rather than avoid using the interface.";
          reference
            "RFC8500, Section 2";

        }
      }  // container flags
    }  // grouping reverse-metric-data

    grouping reverse-metric-if-config-data {
      description
        "IS-IS reverse metric config data.";
      container reverse-metric {
        description
          "IS-IS reverse metric data.";
        uses reverse-metric-data;

        leaf exclude-te-metric {
          type boolean;
          default 'false';
          description
            "If true and there is a TE metric defined for this
           interface then do not send the TE metric sub-TLV in the
           reverse metric TLV.";
          reference
            "RFC8500, Section 3.5";

        }
      }  // container reverse-metric
    }  // grouping reverse-metric-if-config-data

    grouping tlv16-reverse-metric {
      description
        "IS-IS reverse metric TLV data.";
      container reverse-metric {
        description
          "IS-IS reverse metric TLV data.";
        uses reverse-metric-data;

        leaf te-metric {
          type uint32;
          description
            "The TE metric value from the sub-TLV if present.";
          reference
            "RFC8500, Section 3.5";

        }
      }  // container reverse-metric
    }  // grouping tlv16-reverse-metric

    augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis {
      when "../rt:type = 'isis:isis'" {
        description
          "This augment is only valid when routing protocol instance
         type is 'isis'.";
      }
      description
        "The reverse metric configuration for an IS-IS instance.";
      container reverse-metric {
        description
          "Global reverse metric configuration.";
        leaf enable-receive {
          type boolean;
          default 'false';
          description
            "Enable handling of reverse metric announcements from
           neighbors. By default reverse metric handling is disabled
           and must be explicitly enabled through this configuration.";
        }
      }  // container reverse-metric
    }

    augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis/isis:interfaces/isis:interface {
      when "../../../rt:type = 'isis:isis'" {
        description
          "This augment is only valid when routing protocol instance
         type is 'isis'.";
      }
      description
        "The reverse metric configuration for an interface.";
      container reverse-metric {
        description
          "Announce a reverse metric to neighbors.";
        uses reverse-metric-if-config-data;

        container level-1 {
          description
            "Announce a reverse metric to level-1 neighbors.";
          uses reverse-metric-if-config-data;
        }  // container level-1

        container level-2 {
          description
            "Announce a reverse metric to level-2 neighbors.";
          uses reverse-metric-if-config-data;
        }  // container level-2
      }  // container reverse-metric
    }

    augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis/isis:interfaces/isis:interface/isis:adjacencies/isis:adjacency {
      when
        "../../../../../rt:type = 'isis:isis'" {
        description
          "This augment is only valid when routing protocol instance
         type is 'isis'";
      }
      description
        "The reverse metric state advertised by an adjacency.";
      uses tlv16-reverse-metric;
    }
  }  // module ietf-isis-reverse-metric

Summary

  
  
Organization IETF LSR Working Group (LSR)
  
Module ietf-isis-reverse-metric
Version 2020-07-28
File ietf-isis-reverse-metric@2020-07-28.yang
  
Prefix isis-rmetric
Namespace urn:ietf:params:xml:ns:yang:ietf-isis-reverse-metric
  
Cooked /cookedmodules/ietf-isis-reverse-metric/2020-07-28
YANG /src/ietf-isis-reverse-metric@2020-07-28.yang
XSD /xsd/ietf-isis-reverse-metric@2020-07-28.xsd
  
Abstract This module defines the configuration and operational state for managing the IS-IS reverse metric functionality [RFC8500]. Copy...
  
Contact
WG Web:  <https://tools.ietf.org/wg/lsr/>
WG List: <mailto:lsr@ietf.org>

Author: Christian Hopps
	<mailto:chopps@chopps.org>

Description

 
This module defines the configuration and operational state for
managing the IS-IS reverse metric functionality [RFC8500].

Copyright (c) 2019 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 XXXX
(https://tools.ietf.org/html/rfcXXXX); see the RFC itself for
full legal notices.

Groupings

Grouping Objects Abstract
reverse-metric-data metric flags IS-IS reverse metric data.
reverse-metric-if-config-data reverse-metric IS-IS reverse metric config data.
tlv16-reverse-metric reverse-metric IS-IS reverse metric TLV data.