Change-Id: I22afde8d5b6b4ce7a82445695c37b4f1e3d494fe
Signed-off-by: Dana Kutenicsova <dkutenic@cisco.com>
grouping no-path-vector-tlv {
description "NO-PATH-VECTOR TLV";
reference "https://tools.ietf.org/html/rfc5440#section-7.5";
grouping no-path-vector-tlv {
description "NO-PATH-VECTOR TLV";
reference "https://tools.ietf.org/html/rfc5440#section-7.5";
uses tlv;
leaf flags {
type bits {
uses tlv;
leaf flags {
type bits {
type rsvp:lsp-id;
mandatory true;
}
type rsvp:lsp-id;
mandatory true;
}
leaf tunnel-id {
type rsvp:tunnel-id;
mandatory true;
}
leaf tunnel-id {
type rsvp:tunnel-id;
mandatory true;
}
choice address-family {
case ipv4 {
leaf ipv4-tunnel-sender-address {
choice address-family {
case ipv4 {
leaf ipv4-tunnel-sender-address {
- // FIXME: add tunnel endpoint (from stateful-07)
+ // FIXME: add tunnel endpoint (from stateful-07)
type uint32;
mandatory true;
}
type uint32;
mandatory true;
}
leaf setup {
type uint32;
mandatory true;
leaf setup {
type uint32;
mandatory true;
uses object;
container "tlvs" {
uses of-list-tlv;
uses object;
container "tlvs" {
uses of-list-tlv;
uses stateful-capability-tlv;
uses stateful-capability-tlv;
uses predundancy-group-id-tlv;
uses predundancy-group-id-tlv;
uses lsp-db-version-tlv;
}
uses lsp-db-version-tlv;
}
leaf version {
type protocol-version;
default 1;
}
leaf version {
type protocol-version;
default 1;
}
leaf keepalive {
// Note: non-presence is equal to '0'
type uint8 {
leaf keepalive {
// Note: non-presence is equal to '0'
type uint8 {
leaf dead-timer {
// Note: non-presence is equal to '0'
type uint8 {
leaf dead-timer {
// Note: non-presence is equal to '0'
type uint8 {
leaf session-id {
type uint8;
}
leaf session-id {
type uint8;
}
container "tlvs" {
uses order-tlv;
}
container "tlvs" {
uses order-tlv;
}
leaf priority {
type uint8 {
range 1..7;
}
}
leaf priority {
type uint8 {
range 1..7;
}
}
leaf request-id {
type request-id;
mandatory true;
}
leaf request-id {
type request-id;
mandatory true;
}
leaf reoptimization {
type boolean;
default false;
}
leaf reoptimization {
type boolean;
default false;
}
leaf bi-directional {
type boolean;
default false;
}
leaf bi-directional {
type boolean;
default false;
}
leaf loose {
type boolean;
default false;
}
leaf loose {
type boolean;
default false;
}
leaf path-key {
type boolean;
default false;
reference "https://tools.ietf.org/html/rfc5520#section-3.2.1";
}
leaf path-key {
type boolean;
default false;
reference "https://tools.ietf.org/html/rfc5520#section-3.2.1";
}
leaf fragmentation {
type boolean;
default false;
reference "https://tools.ietf.org/html/rfc6006#section-3.3.1";
}
leaf fragmentation {
type boolean;
default false;
reference "https://tools.ietf.org/html/rfc6006#section-3.3.1";
}
leaf p2mp {
type boolean;
default false;
reference "https://tools.ietf.org/html/rfc6006#section-3.3.1";
}
leaf p2mp {
type boolean;
default false;
reference "https://tools.ietf.org/html/rfc6006#section-3.3.1";
}
leaf ero-compression {
type boolean;
default false;
reference "https://tools.ietf.org/html/rfc6006#section-3.3.1";
}
leaf ero-compression {
type boolean;
default false;
reference "https://tools.ietf.org/html/rfc6006#section-3.3.1";
}
leaf supply-of {
type boolean;
default false;
reference "https://tools.ietf.org/html/rfc5541#section-3.3";
}
leaf supply-of {
type boolean;
default false;
reference "https://tools.ietf.org/html/rfc5541#section-3.3";
}
leaf order {
type boolean;
default false;
reference "https://tools.ietf.org/html/rfc5557#section-5.3";
}
leaf order {
type boolean;
default false;
reference "https://tools.ietf.org/html/rfc5557#section-5.3";
}
leaf make-before-break {
type boolean;
default false;
leaf make-before-break {
type boolean;
default false;
reference "https://tools.ietf.org/html/rfc5440#section-7.7";
container bandwidth {
uses object;
reference "https://tools.ietf.org/html/rfc5440#section-7.7";
container bandwidth {
uses object;
// No possibility to carry TLVs
leaf bandwidth {
type nps-c:bandwidth;
// No possibility to carry TLVs
leaf bandwidth {
type nps-c:bandwidth;
reference "https://tools.ietf.org/html/rfc5440#section-7.8";
container metric {
uses object;
reference "https://tools.ietf.org/html/rfc5440#section-7.8";
container metric {
uses object;
leaf metric-type {
type uint8;
mandatory true;
}
leaf metric-type {
type uint8;
mandatory true;
}
leaf bound {
type boolean;
default false;
}
leaf bound {
type boolean;
default false;
}
leaf computed {
type boolean;
default false;
}
leaf computed {
type boolean;
default false;
}
leaf value {
type ieee754:float32;
}
leaf value {
type ieee754:float32;
}
container xro {
uses object;
container xro {
uses object;
leaf flags {
type bits {
bit fail {
leaf flags {
type bits {
bit fail {
list subobjects {
uses rsvp:exclude-route-subobjects;
}
list subobjects {
uses rsvp:exclude-route-subobjects;
}
container ero {
// No possibility of TLVs
uses object;
container ero {
// No possibility of TLVs
uses object;
list subobjects {
leaf loose {
type boolean;
mandatory true;
}
list subobjects {
leaf loose {
type boolean;
mandatory true;
}
uses rsvp:explicit-route-subobjects {
augment "subobject-type" {
case path-key {
uses rsvp:explicit-route-subobjects {
augment "subobject-type" {
case path-key {
container iro {
// No possibility of TLVs
uses object;
container iro {
// No possibility of TLVs
uses object;
list subobjects {
uses rsvp:explicit-route-subobjects;
}
list subobjects {
uses rsvp:explicit-route-subobjects;
}
grouping reported-route-object {
description "Reported Route Object";
reference "https://tools.ietf.org/html/rfc5440#section-7.10";
grouping reported-route-object {
description "Reported Route Object";
reference "https://tools.ietf.org/html/rfc5440#section-7.10";
container rro {
// No possibility of TLVs
uses object;
container rro {
// No possibility of TLVs
uses object;
list subobjects {
uses rsvp:record-route-subobjects {
augment "subobject-type" {
list subobjects {
uses rsvp:record-route-subobjects {
augment "subobject-type" {
container lspa {
uses object;
container lspa {
uses object;
leaf hold-priority {
type uint8;
mandatory true;
}
leaf hold-priority {
type uint8;
mandatory true;
}
leaf setup-priority {
type uint8;
mandatory true;
}
leaf setup-priority {
type uint8;
mandatory true;
}
leaf local-protection-desired {
type boolean;
default false;
}
leaf local-protection-desired {
type boolean;
default false;
}
uses rsvp:attribute-filters;
}
}
uses rsvp:attribute-filters;
}
}
grouping svec-object {
description "Synchronization Vector Object";
reference "https://tools.ietf.org/html/rfc5440#section-7.13";
grouping svec-object {
description "Synchronization Vector Object";
reference "https://tools.ietf.org/html/rfc5440#section-7.13";
container svec {
// No possibility of TLVs
uses object;
container svec {
// No possibility of TLVs
uses object;
leaf link-diverse {
type boolean;
default false;
}
leaf link-diverse {
type boolean;
default false;
}
leaf node-diverse {
type boolean;
default false;
}
leaf node-diverse {
type boolean;
default false;
}
leaf srlg-diverse {
type boolean;
default false;
}
leaf srlg-diverse {
type boolean;
default false;
}
leaf-list requests-ids {
type request-id;
}
leaf-list requests-ids {
type request-id;
}
}
grouping notification-object {
}
grouping notification-object {
uses object;
container "tlvs" {
when "../type = 2 and ../value = 1";
uses object;
container "tlvs" {
when "../type = 2 and ../value = 1";
uses overload-duration-tlv;
}
uses overload-duration-tlv;
}
leaf type {
type uint8;
mandatory true;
}
leaf type {
type uint8;
mandatory true;
}
leaf value {
type uint8;
mandatory true;
leaf value {
type uint8;
mandatory true;
when "../type = 7";
uses req-missing-tlv;
}
when "../type = 7";
uses req-missing-tlv;
}
leaf type {
type uint8;
mandatory true;
}
leaf type {
type uint8;
mandatory true;
}
leaf value {
type uint8;
mandatory true;
leaf value {
type uint8;
mandatory true;
grouping load-balancing-object {
description "LOAD-BALANCING Object";
reference "https://tools.ietf.org/html/rfc5440#section-7.16";
grouping load-balancing-object {
description "LOAD-BALANCING Object";
reference "https://tools.ietf.org/html/rfc5440#section-7.16";
container load-balancing {
// No possibility of TLVs
uses object;
container load-balancing {
// No possibility of TLVs
uses object;
leaf max-lsp {
type uint8;
mandatory true;
}
leaf max-lsp {
type uint8;
mandatory true;
}
leaf min-bandwidth {
type nps-c:bandwidth;
}
leaf min-bandwidth {
type nps-c:bandwidth;
}
container c-close {
uses object;
container c-close {
uses object;
leaf reason {
type uint8;
mandatory true;
}
leaf reason {
type uint8;
mandatory true;
}
reference "https://tools.ietf.org/html/rfc5520#section-3.2.2";
container path-key {
uses object;
reference "https://tools.ietf.org/html/rfc5520#section-3.2.2";
container path-key {
uses object;
list path-keys {
min-elements 1;
list path-keys {
min-elements 1;
leaf loose {
type boolean;
default false;
}
leaf loose {
type boolean;
default false;
}
uses path-key-subobject;
}
}
uses path-key-subobject;
}
}
container srp {
uses object;
container srp {
uses object;
leaf operation-id {
type srp-id-number;
mandatory true;
}
leaf operation-id {
type srp-id-number;
mandatory true;
}
leaf flags {
type bits {
bit lsp-remove {
leaf flags {
type bits {
bit lsp-remove {
uses object;
container "tlvs" {
uses lsp-error-code-tlv;
uses object;
container "tlvs" {
uses lsp-error-code-tlv;
uses lsp-identifiers-tlv;
uses lsp-identifiers-tlv;
uses rsvp-error-spec-tlv;
uses rsvp-error-spec-tlv;
uses symbolic-path-name-tlv;
}
uses symbolic-path-name-tlv;
}
leaf plsp-id {
type plsp-id;
mandatory true;
}
leaf plsp-id {
type plsp-id;
mandatory true;
}
leaf delegate {
type boolean;
default false;
}
leaf delegate {
type boolean;
default false;
}
leaf sync {
type boolean;
default false;
}
leaf sync {
type boolean;
default false;
}
leaf remove {
type boolean;
default false;
}
leaf remove {
type boolean;
default false;
}
leaf administrative {
type boolean;
default false;
}
leaf administrative {
type boolean;
default false;
}
leaf operational {
type operational-status;
mandatory true;
leaf operational {
type operational-status;
mandatory true;
reference "https://tools.ietf.org/html/rfc5541#section-3.1";
container of {
uses object;
reference "https://tools.ietf.org/html/rfc5541#section-3.1";
container of {
uses object;
leaf code {
type of-id;
mandatory true;
leaf code {
type of-id;
mandatory true;
container class-type {
uses object;
container class-type {
uses object;
leaf class-type {
type class-type;
mandatory true;
leaf class-type {
type class-type;
mandatory true;
reference "https://tools.ietf.org/html/rfc5557#section-5.5";
container gc {
uses object;
reference "https://tools.ietf.org/html/rfc5557#section-5.5";
container gc {
uses object;
leaf max-hop {
type uint8;
mandatory true;
}
leaf max-hop {
type uint8;
mandatory true;
}
leaf max-utilization {
type uint8 {
range 0..100;
leaf max-utilization {
type uint8 {
range 0..100;
units percent;
mandatory true;
}
units percent;
mandatory true;
}
leaf min-utilization {
type uint8 {
range 0..100;
leaf min-utilization {
type uint8 {
range 0..100;
units percent;
mandatory true;
}
units percent;
mandatory true;
}
leaf over-booking-factor {
type uint8 {
range 0..100;
leaf over-booking-factor {
type uint8 {
range 0..100;
uses of-object;
uses gc-object;
uses of-object;
uses gc-object;
uses exclude-route-object;
list metric {
uses exclude-route-object;
list metric {