description "NO-PATH-VECTOR TLV";
reference "https://tools.ietf.org/html/rfc5440#section-7.5";
- uses tlv;
leaf flags {
type bits {
bit p2mp-unreachable {
description "OVERLOAD-DURATION TLV";
reference "https://tools.ietf.org/html/rfc5440#section-7.14";
- uses tlv;
leaf duration {
type uint32;
units seconds;
description "REQ-MISSING TLV";
reference "https://tools.ietf.org/html/rfc5440#section-7.5";
- uses tlv;
leaf request-id {
type request-id;
}
}
-
- grouping p2mp-capable-tlv {
+
+ grouping p2mp-capable-tlv {
description "P2MP CAPABLE TLV";
reference "https://tools.ietf.org/html/rfc6006#section-3.1.2";
mandatory true;
}
}
-
grouping stateful-capability-tlv {
description "Stateful PCE Capability TLV";
reference "https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-05#section-7.1.1";
- uses tlv;
leaf flags {
type bits {
bit lsp-update-capability {
description "LSP State Database Version TLV";
reference "https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-05#section-7.1.2";
- uses tlv;
leaf version {
type uint64;
mandatory true;
description "PCE Redundancy Group Identifier TLV";
reference "https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-05#section-7.1.3";
- uses tlv;
leaf identifier {
type binary;
mandatory true;
description "LSP Identifiers TLV";
reference "https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-05#section-7.3.1";
- uses tlv;
leaf lsp-id {
type rsvp:lsp-id;
mandatory true;
description "Symbolic Path Name TLV";
reference "https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-05#section-7.3.2";
- uses tlv;
leaf path-name {
type binary;
mandatory true;
description "LSP Error Code TLV";
reference "https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-05#section-7.3.3";
- uses tlv;
leaf error-code {
type uint32;
mandatory true;
description "RSVP Error Spec TLV";
reference "https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-05#section-7.3.4";
- uses tlv;
choice error-type {
case rsvp {
container rsvp-error {
description "OF-List TLV";
reference "https://tools.ietf.org/html/rfc5541#section-2.1";
- uses tlv;
leaf-list codes {
type of-id;
}
description "Order TLV";
reference "https://tools.ietf.org/html/rfc5557#section-5.4";
- uses tlv;
leaf delete {
type uint32;
mandatory true;
grouping bandwidth-object {
description "BANDWIDTH Object";
reference "https://tools.ietf.org/html/rfc5440#section-7.7";
-
- uses object;
// No possibility to carry TLVs
+ uses object-header;
+
leaf bandwidth {
type ieee754:float32;
}
}
}
- grouping exclude-route-object {
- description "Exclude Route Object";
- reference "https://tools.ietf.org/html/rfc5521#section-2.1.1";
-
- uses object;
-
- leaf flags {
- type bits {
- bit fail {
- position 31;
- }
- }
- mandatory true;
- }
-
- list subobjects {
- uses rsvp:exclude-route-subobjects;
- }
- }
-
grouping explicit-route-object {
description "Explicit Route Object";
reference "https://tools.ietf.org/html/rfc5440#section-7.9";
// No possibility of TLVs
- uses object;
+ uses object-header;
list subobjects {
leaf loose {
reference "https://tools.ietf.org/html/rfc5440#section-7.12";
// No possibility of TLVs
- uses object;
+ uses object-header;
list subobjects {
- uses rsvp:route-subobjects {
- augment subobject-type {
- case explicit-exclusion-route {
- uses rsvp:exclude-route-subobjects;
- }
- }
- }
+ uses rsvp:route-subobjects;
}
}
reference "https://tools.ietf.org/html/rfc5440#section-7.10";
// No possibility of TLVs
- uses object;
+ uses object-header;
list subobjects {
uses rsvp:record-route-subobjects;
reference "https://tools.ietf.org/html/rfc5440#section-7.13";
// No possibility of TLVs
- uses object;
+ uses object-header;
leaf link-diverse {
type boolean;
reference "https://tools.ietf.org/html/rfc5440#section-7.16";
// No possibility of TLVs
- uses object;
+ uses object-header;
leaf max-lsp {
type uint8;
description "CLOSE Object";
reference "https://tools.ietf.org/html/rfc5440#section-7.17";
+ // No possibility of TLVs
uses object;
leaf reason {
type uint8;
mandatory true;
}
-
- container tlvs {
- }
}
grouping path-key-object {
description "PATH-KEY Object";
reference "https://tools.ietf.org/html/rfc5520#section-3.2.2";
- uses object;
+ uses object-header;
list path-keys {
min-elements 1;
description "CLASSTYPE Object";
reference "https://tools.ietf.org/html/rfc5455#section-3";
- uses object;
+ uses object-header;
leaf class-type {
type class-type;
uses lsp-object;
}
}
+
+ container p2mp {
+ when "../rp/p2mp = true";
+
+ list trees {
+ container endpoints {
+ uses endpoints-object;
+ }
+
+ // FIXME: finish this
+ }
+ }
}
}
grouping close-message {
uses message;
- container c-close-message {
+ container close-message {
description "Close Message";
reference "https://tools.ietf.org/html/rfc5440#section-6.8";
uses message-header;
- container c-close {
+ container close {
uses close-object;
}
}