module openconfig-isis-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/isis-types"; prefix "oc-isis-types"; import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains general data definitions for use in ISIS YANG model."; oc-ext:openconfig-version "0.4.0"; revision "2018-05-14" { description "Update LSDB model to correct Extended IS reach TLV bug. This change is backwards incompatible due to adding an additional level of hierarchy to support multiple instances of the TLV."; reference "0.4.0"; } 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"; } // identity statements identity OVERLOAD_RESET_TRIGGER_TYPE { 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 { description "Base identify type for multi-topology"; } identity SAFI_TYPE { description "Base identify type for SAFI"; } identity AFI_TYPE { description "Base identify type for AFI"; } identity AFI_SAFI_TYPE { 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 statements typedef level-type { type enumeration { enum LEVEL_1 { description "This enum describes ISIS level 1"; } enum LEVEL_2 { description "This enum describes ISIS level 2"; } enum LEVEL_1_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 { description "This enum describes linear algorithm timer"; } enum EXPONENTIAL { description "This enum describes exponential algorithm timer"; } } description "This type defines ISIS adaptive timer types"; } typedef hello-padding-type { type enumeration { enum STRICT { description "This enum describes strict padding"; } enum LOOSE { description "This enum describes loose padding"; } enum ADAPTIVE { description "This enum describes adaptive padding"; } enum DISABLE { description "This enum disables padding"; } } description "This type defines ISIS hello padding type"; } typedef circuit-type { type enumeration { enum POINT_TO_POINT { description "This enum describes a point-to-point interface"; } enum BROADCAST { description "This enum describes a broadcast interface"; } } description "This type defines ISIS interface types "; } typedef metric-type { type enumeration { enum INTERNAL { description "This enum describes internal route type"; } enum EXTERNAL { 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 { description "This enum describes narrow metric style"; reference "RFC1195"; } enum WIDE_METRIC { 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 { description "This state describes that adjacency is established."; } enum DOWN { description "This state describes that adjacency is NOT established."; } enum INIT { description "This state describes that adjacency is establishing."; } enum FAILED { 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."; } }