1 module odl-pcep-ietf-stateful07 {
3 namespace "urn:opendaylight:params:xml:ns:yang:pcep:ietf:stateful";
6 import ietf-inet-types { prefix inet; revision-date 2010-09-24; }
7 import network-topology { prefix nt; revision-date 2013-10-21; }
8 import network-topology-pcep { prefix topo; revision-date 2013-10-24; }
9 import pcep-types { prefix pcep; revision-date 2013-10-05; }
10 import pcep-message { prefix msg; revision-date 2013-10-07; }
11 import rsvp { prefix rsvp; revision-date 2015-08-20; }
12 import topology-tunnel { prefix tt; revision-date 2013-08-19; }
13 import topology-tunnel-pcep { prefix tun; revision-date 2013-08-20; }
14 import topology-tunnel-pcep-programming { prefix ttpp; revision-date 2013-10-30; }
15 import yang-ext { prefix ext; revision-date 2013-07-09; }
17 organization "Cisco Systems, Inc.";
18 contact "Robert Varga <rovarga@cisco.com>";
21 "This module contains the data model of PCEP extensions defined
22 in draft-ietf-pce-stateful-pce.
24 Copyright (c)2013 Cisco Systems, Inc. All rights reserved.
26 This program and the accompanying materials are made available
27 under the terms of the Eclipse Public License v1.0 which
28 accompanies this distribution, and is available at
29 http://www.eclipse.org/legal/epl-v10.html";
31 revision "2013-12-22" {
34 reference "https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-07";
37 typedef operational-status {
63 typedef srp-id-number {
69 typedef symbolic-path-name {
75 grouping path-binding-tlv {
76 reference "https://tools.ietf.org/html/draft-sivabalan-pce-binding-label-sid-00#section-3";
77 container path-binding {
90 grouping lsp-identifiers-tlv {
91 description "LSP Identifiers TLV";
92 reference "https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-07#section-7.3.1";
93 container lsp-identifiers {
103 choice address-family {
106 leaf ipv4-tunnel-sender-address {
107 type inet:ipv4-address;
110 leaf ipv4-extended-tunnel-id {
111 type rsvp:ipv4-extended-tunnel-id;
114 leaf ipv4-tunnel-endpoint-address {
115 type inet:ipv4-address;
122 leaf ipv6-tunnel-sender-address {
123 type inet:ipv6-address;
126 leaf ipv6-extended-tunnel-id {
127 type rsvp:ipv6-extended-tunnel-id;
130 leaf ipv6-tunnel-endpoint-address {
131 type inet:ipv6-address;
140 grouping lsp-error-code-tlv {
141 description "LSP Error Code TLV";
142 reference "https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-07#section-7.3.3";
143 container lsp-error-code {
151 grouping rsvp-error-spec-tlv {
152 description "RSVP Error Spec TLV";
153 reference "https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-07#section-7.3.4";
154 container rsvp-error-spec {
158 container rsvp-error {
159 uses rsvp:error-spec;
163 container user-error {
164 uses rsvp:user-error-spec;
171 grouping stateful-capability-tlv {
172 description "Stateful PCE Capability TLV";
173 reference "https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-07#section-7.1.1";
178 leaf lsp-update-capability {
185 grouping symbolic-path-name-tlv {
186 description "Symbolic Path Name TLV";
187 reference "https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-07#section-7.3.2";
188 container symbolic-path-name {
191 type symbolic-path-name;
196 grouping lsp-object {
197 description "LSP Object";
198 reference "https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-07#section-7.3";
203 uses lsp-error-code-tlv;
205 uses lsp-identifiers-tlv;
207 uses rsvp-error-spec-tlv;
209 uses symbolic-path-name-tlv;
213 uses pcep:vendor-information-tlvs;
215 uses path-binding-tlv;
237 leaf administrative {
243 type operational-status;
248 grouping srp-object {
249 description "SRP Object";
250 reference "https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-07#section-7.2";
256 uses symbolic-path-name-tlv;
258 uses pcep:vendor-information-tlvs;
260 uses pcep:path-setup-type-tlv;
270 grouping pcupd-message {
273 container pcupd-message {
274 description "State Update Request Message";
275 reference "https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-07#section-6.2";
277 uses pcep:message-header;
285 uses pcep:path-definition;
291 grouping pcrpt-message {
294 container pcrpt-message {
295 description "State Report Message";
296 reference "https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-07#section-6.1";
298 uses pcep:message-header;
306 uses pcep:path-definition;
320 augment "/msg:open/msg:open-message/msg:open/msg:tlvs" {
321 uses stateful-capability-tlv;
322 ext:augment-identifier tlvs-1;
325 augment "/msg:pcrep/msg:pcrep-message/msg:replies/msg:result/msg:failure-case/msg:lspa/msg:tlvs" {
326 uses symbolic-path-name-tlv;
327 ext:augment-identifier tlvs-4;
330 augment "/msg:pcerr/msg:pcerr-message/msg:error-type" {
331 reference "https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-07#section-6.3";
341 augment "/msg:pcreq/msg:pcreq-message/msg:requests/msg:segment-computation/msg:p2p/msg:lspa/msg:tlvs" {
342 uses symbolic-path-name-tlv;
343 ext:augment-identifier tlvs-2;
346 augment "/msg:pcerr/msg:pcerr-message/msg:error-type/msg:session-case/msg:session/msg:open/msg:tlvs" {
347 uses stateful-capability-tlv;
348 ext:augment-identifier tlvs-3;
351 augment "/nt:network-topology/nt:topology/nt:node/topo:path-computation-client/topo:reported-lsp/topo:path" {
353 uses pcep:path-setup-type-tlv;
356 augment "/nt:network-topology/nt:topology/nt:node/topo:path-computation-client/topo:stateful-tlv" {
357 uses stateful-capability-tlv;
360 augment "/topo:ensure-lsp-operational/topo:input/topo:arguments" {
361 ext:augment-identifier arguments-1;
363 type operational-status;
367 augment "/topo:add-lsp/topo:input/topo:arguments" {
368 ext:augment-identifier arguments-2;
370 uses pcep:path-setup-type-tlv;
373 augment "/topo:update-lsp/topo:input/topo:arguments" {
374 ext:augment-identifier arguments-3;
376 uses pcep:path-setup-type-tlv;
379 typedef administrative-status {
384 reference "https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-07#section-7.3";
387 grouping cfg-attributes {
388 leaf administrative-status {
389 type administrative-status;
393 grouping oper-attributes {
394 leaf operational-status {
395 type operational-status;
400 augment "/nt:network-topology/nt:topology/nt:link" {
401 when "../../tunnel-types/pcep-tunnel";
404 uses oper-attributes;
407 augment "/nt:network-topology/nt:topology/tt:paths" {
408 when "../../tunnel-types/pcep-tunnel";
411 uses oper-attributes;
414 augment "/ttpp:pcep-create-p2p-tunnel/ttpp:input" {
418 augment "/ttpp:pcep-update-tunnel/ttpp:input" {