blob: fc474c90c00c50b5b817eab5094e47053ff6a4ff [file] [log] [blame]
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.";
}
}