netconfcentral logo

openconfig-isis-types@2017-08-24



  module openconfig-isis-types {

    yang-version 1;

    namespace
      "http://openconfig.net/yang/isis-types";

    prefix oc-isis-types;

    import openconfig-extensions {
      prefix oc-ext;
    }

    organization "OpenConfig working group";

    contact
      "OpenConfig working group
    www.openconfig.net";

    description
      "This module contains general data definitions for use in ISIS YANG
    model.";

    revision "2017-08-24" {
      description "Minor formatting fixes.";
      reference
        "0.3.3";

    }

    revision "2017-07-26" {
      description
        "Update LSDB and fix bugs.";
      reference
        "0.3.2";

    }

    revision "2017-05-15" {
      description "Refactor LSDB.";
      reference
        "0.3.0";

    }

    revision "2017-01-13" {
      description
        "Remove top-level /isis container";
      reference
        "0.2.1";

    }

    revision "2016-12-15" {
      description
        "Add segment routing to IS-IS module";
      reference
        "0.2.0";

    }

    revision "2016-10-18" {
      description
        "Initial revision of IS-IS models.";
      reference
        "0.1.0";

    }

    oc-ext:openconfig-version "0.3.3";

    identity OVERLOAD_RESET_TRIGGER_TYPE {
      base 
      description
        "Base identify type for triggers that reset Overload Bit";
    }

    identity WAIT_FOR_BGP {
      base OVERLOAD_RESET_TRIGGER_TYPE;
      description
        "Base identity type for resetting Overload Bit when BGP has converged. ";
    }

    identity WAIT_FOR_SYSTEM {
      base OVERLOAD_RESET_TRIGGER_TYPE;
      description
        "Base identity type for resetting Overload Bit when system resources have
      been restored. ";
    }

    identity MT_TYPE {
      base 
      description
        "Base identify type for multi-topology";
    }

    identity SAFI_TYPE {
      base 
      description
        "Base identify type for SAFI";
    }

    identity AFI_TYPE {
      base 
      description
        "Base identify type for AFI";
    }

    identity AFI_SAFI_TYPE {
      base 
      description
        "Base identify type for AFI/SAFI";
    }

    identity IPV4_UNICAST {
      base AFI_SAFI_TYPE;
      description
        "Base identify type for IPv4 Unicast address family";
    }

    identity IPV6_MULTICAST {
      base AFI_SAFI_TYPE;
      description
        "Base identify type for IPv6 multicast address family";
    }

    identity IPV4_MULTICAST {
      base AFI_SAFI_TYPE;
      description
        "Base identify type for IPv4 multicast address family";
    }

    identity IPV6_UNICAST {
      base AFI_SAFI_TYPE;
      description
        "Base identify type for IPv6 unicast address family";
    }

    identity UNICAST {
      base SAFI_TYPE;
      description
        "Base identify type for IPv4 Unicast address family";
    }

    identity MULTICAST {
      base SAFI_TYPE;
      description
        "Base identify type for IPv6 multicast address family";
    }

    identity IPV4 {
      base AFI_TYPE;
      description
        "Base identify type for IPv4 address family";
    }

    identity IPV6 {
      base AFI_TYPE;
      description
        "Base identify type for IPv6 address family";
    }

    typedef level-type {
      type enumeration {
        enum "LEVEL_1" {
          value 0;
          description
            "This enum describes ISIS level 1";
        }
        enum "LEVEL_2" {
          value 1;
          description
            "This enum describes ISIS level 2";
        }
        enum "LEVEL_1_2" {
          value 2;
          description
            "This enum describes ISIS level 1-2";
        }
      }
      description
        "This type defines ISIS level types";
    }

    typedef level-number {
      type uint8 {
        range "1..2";
      }
      description
        "This type defines ISIS level.";
    }

    typedef adaptive-timer-type {
      type enumeration {
        enum "LINEAR" {
          value 0;
          description
            "This enum describes linear algorithm timer";
        }
        enum "EXPONENTIAL" {
          value 1;
          description
            "This enum describes exponential algorithm timer";
        }
      }
      description
        "This type defines ISIS adaptive timer types";
    }

    typedef hello-padding-type {
      type enumeration {
        enum "STRICT" {
          value 0;
          description
            "This enum describes strict padding";
        }
        enum "LOOSE" {
          value 1;
          description
            "This enum describes loose padding";
        }
        enum "ADAPTIVE" {
          value 2;
          description
            "This enum describes adaptive padding";
        }
        enum "DISABLE" {
          value 3;
          description
            "This enum disables padding";
        }
      }
      description
        "This type defines ISIS hello padding type";
    }

    typedef circuit-type {
      type enumeration {
        enum "POINT_TO_POINT" {
          value 0;
          description
            "This enum describes a point-to-point interface";
        }
        enum "BROADCAST" {
          value 1;
          description
            "This enum describes a broadcast interface";
        }
      }
      description
        "This type defines ISIS interface types ";
    }

    typedef metric-type {
      type enumeration {
        enum "INTERNAL" {
          value 0;
          description
            "This enum describes internal route type";
        }
        enum "EXTERNAL" {
          value 1;
          description
            "This enum describes external route type";
        }
      }
      description
        "This type defines ISIS metric type";
    }

    typedef wide-metric {
      type uint32 {
        range "1..16777215";
      }
      description
        "This type defines ISIS wide metric.";
    }

    typedef narrow-metric {
      type uint8 {
        range "1..63";
      }
      description
        "This type defines ISIS narrow metric.";
    }

    typedef metric-style {
      type enumeration {
        enum "NARROW_METRIC" {
          value 0;
          description
            "This enum describes narrow metric style";
          reference
            "RFC1195";

        }
        enum "WIDE_METRIC" {
          value 1;
          description
            "This enum describes wide metric style";
          reference
            "RFC5305";

        }
      }
      description
        "This type defines ISIS metric styles";
    }

    typedef isis-interface-adj-state {
      type enumeration {
        enum "UP" {
          value 0;
          description
            "This state describes that adjacency is established.";
        }
        enum "DOWN" {
          value 1;
          description
            "This state describes that adjacency is NOT established.";
        }
        enum "INIT" {
          value 2;
          description
            "This state describes that adjacency is establishing.";
        }
        enum "FAILED" {
          value 3;
          description
            "This state describes that adjacency is failed.";
        }
      }
      description
        "This type defines the state of the interface.";
    }

    typedef net {
      type string {
        pattern
          '^[a-fA-F0-9]{2}(\.[a-fA-F0-9]{4}){3,9}\.[a-fA-F0-9]{2}$';
      }
      description
        "This type defines OSI NET address. A NET should should be in
      the form xx.yyyy.yyyy.yyyy.00 with up to 9 sets of yyyy.";
    }

    typedef area-address {
      type string {
        pattern
          '^[0-9A-Fa-f]{2}\.([0-9A-Fa-f]{4}\.){0,3}$';
      }
      description
        "This type defines the ISIS area address.";
    }

    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 ISIS system id using pattern, system id looks
       like : 0143.0438.AeF0";
    }

    typedef extended-circuit-id {
      type uint32;
      description
        "This type defines interface circuit ID.";
    }

    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 ISIS LSP ID. ISIS LSP ID type should be in
      the form of xxxx.xxxx.xxxx.xx-xx";
    }

    typedef snpa {
      type string {
        length "0 .. 20";
      }
      description
        "This type defines Subnetwork Point of Attachment format.";
    }
  }  // module openconfig-isis-types