| 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.3.2"; |
| |
| 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."; |
| } |
| } |