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 2022-02-11 { description "Add simple authentication key support."; reference "0.6.0"; } revision 2021-08-12 { description "Make pattern regexes conform to RFC7950, remove oc-ext:regexp-posix, and fix broken regex for area address. This change is backwards incompatible because it changes the area address regex."; reference "0.5.0"; } revision 2020-06-30 { description "Add OpenConfig POSIX pattern extensions."; reference "0.4.3"; } revision 2018-11-21 { description "Add OpenConfig module metadata extensions."; reference "0.4.2"; } revision 2018-11-21 { description "Add OpenConfig module metadata extensions."; reference "0.4.1"; } 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"; } oc-ext:openconfig-version "0.6.0"; oc-ext:catalog-organization "openconfig"; oc-ext:origin "openconfig"; 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"; } identity AUTH_MODE { description "Base identify to define the authentication mode"; } identity TEXT { base AUTH_MODE; description "Simple Text Authentication"; reference "RFC1195"; } identity MD5 { base AUTH_MODE; description "HMAC-MD5 Authentication"; reference "RFC5304"; } 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 { oc-ext:posix-pattern "^[a-fA-F0-9]{2}(\\.[a-fA-F0-9]{4}){3,9}\\.[a-fA-F0-9]{2}$"; 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 { oc-ext:posix-pattern "^[0-9A-Fa-f]{2}(\\.[0-9A-Fa-f]{4}){0,3}$"; 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 { oc-ext:posix-pattern "^[0-9A-Fa-f]{4}\\.[0-9A-Fa-f]{4}\\.[0-9A-Fa-f]{4}$"; 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 { oc-ext:posix-pattern "^[0-9A-Fa-f]{4}\\.[0-9A-Fa-f]{4}\\.[0-9A-Fa-f]{4}\\.[0-9][0-9]-[0-9][0-9]$"; 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."; } }