1 module odl-pcep-segment-routing {
3 namespace "urn:opendaylight:params:xml:ns:yang:pcep:segment:routing";
6 import pcep-types { prefix pcep; revision-date 2013-10-05; }
7 import pcep-message { prefix msg; revision-date 2013-10-07; }
8 import odl-pcep-ietf-stateful07 { prefix stateful; revision-date 2013-12-22; }
9 import odl-pcep-ietf-initiated00 { prefix crabbe; revision-date 2013-11-26; }
10 import ietf-inet-types { prefix inet; revision-date 2010-09-24; }
11 import network-topology { prefix nt; revision-date 2013-10-21; }
12 import network-topology-pcep { prefix pn; revision-date 2013-10-24; }
14 organization "Cisco Systems, Inc.";
15 contact "Milos Fabian <milfabia@cisco.com>";
18 "This module contains the data model of PCEP Extensions for Segment Routing,
19 draft-ietf-pce-segment-routing-01.
21 Copyright (c)2015 Cisco Systems, Inc. All rights reserved.
23 This program and the accompanying materials are made available
24 under the terms of the Eclipse Public License v1.0 which
25 accompanies this distribution, and is available at
26 http://www.eclipse.org/legal/epl-v10.html";
28 revision "2015-01-12" {
30 "Upgrade from draft-sivabalan-pce-segment-routing-02.";
31 reference "http://tools.ietf.org/html/draft-ietf-pce-segment-routing-01";
34 grouping sr-pce-capability-tlv {
35 description "SR-PCE-CAPABILITY TLV";
36 reference "http://tools.ietf.org/html/draft-ietf-pce-segment-routing-01#section-5.1.1";
38 container sr-pce-capability {
41 description "Maximum SID Depth";
48 augment "/msg:open/msg:open-message/msg:open/msg:tlvs" {
49 reference "http://tools.ietf.org/html/draft-ietf-pce-segment-routing-01#section-5.1";
50 uses sr-pce-capability-tlv;
53 augment "/msg:pcerr/msg:pcerr-message/msg:error-type/msg:session-case/msg:session/msg:open/msg:tlvs" {
54 reference "http://tools.ietf.org/html/draft-ietf-pce-segment-routing-01#section-5.1";
55 uses sr-pce-capability-tlv;
59 reference "http://tools.ietf.org/html/draft-ietf-pce-segment-routing-01#section-5.3.1";
79 grouping sr-subobject {
80 description "Common grouping for both SR-ERO and SR-RRO subobjects as they share the same content representation.";
93 description "Segment Identifier";
97 reference "http://tools.ietf.org/html/draft-ietf-pce-segment-routing-01#section-5.3.2";
98 description "Node or Adjacency Identifier";
100 when "../sid-type = 'ipv4-node-id' or ../sid-type = 'ipv6-node-id'";
101 description "IP Node ID";
103 type inet:ip-address;
108 when "../sid-type = 'ipv4-adjacency' or ../sid-type = 'ipv6-adjacency'";
109 description "IP Adjacency";
110 leaf local-ip-address {
111 type inet:ip-address;
114 leaf remote-ip-address {
115 type inet:ip-address;
119 case unnumbered-adjacency {
120 when "../sid-type = 'unnumbered'";
121 description "Unnumbered Adjacency with IPv4 NodeIDs";
126 leaf local-interface-id {
130 leaf remote-node-id {
134 leaf remote-interface-id {
142 // kept both groupings in case draft changes and they won't be equal
143 grouping sr-ero-subobject {
144 reference "http://tools.ietf.org/html/draft-ietf-pce-segment-routing-01#section-5.3.1";
148 grouping sr-rro-subobject {
149 reference "http://tools.ietf.org/html/draft-ietf-pce-segment-routing-01#section-5.4";
154 augment "/msg:pcrep/msg:pcrep-message/msg:replies/msg:result/msg:success-case/msg:success/msg:paths/msg:ero/msg:subobject/msg:subobject-type" {
156 uses sr-ero-subobject;
161 augment "/crabbe:pcinitiate/crabbe:pcinitiate-message/crabbe:requests/crabbe:ero/crabbe:subobject/crabbe:subobject-type" {
163 uses sr-ero-subobject;
167 augment "/stateful:pcrpt/stateful:pcrpt-message/stateful:reports/stateful:path/stateful:ero/stateful:subobject/stateful:subobject-type" {
169 uses sr-ero-subobject;
173 augment "/stateful:pcupd/stateful:pcupd-message/stateful:updates/stateful:path/stateful:ero/stateful:subobject/stateful:subobject-type" {
175 uses sr-ero-subobject;
180 augment "/pn:add-lsp/pn:input/pn:arguments/pn:ero/pn:subobject/pn:subobject-type" {
182 uses sr-ero-subobject;
186 augment "/pn:update-lsp/pn:input/pn:arguments/pn:ero/pn:subobject/pn:subobject-type" {
188 uses sr-ero-subobject;
192 augment "/nt:network-topology/nt:topology/nt:node/pn:path-computation-client/pn:reported-lsp/pn:path/pn:ero/pn:subobject/pn:subobject-type" {
194 uses sr-ero-subobject;
199 augment "/msg:pcreq/msg:pcreq-message/msg:requests/msg:segment-computation/msg:p2p/msg:reported-route/msg:rro/msg:subobject/msg:subobject-type" {
201 uses sr-rro-subobject;
205 augment "/msg:pcreq/msg:pcreq-message/msg:requests/msg:segment-computation/msg:p2p/msg:rro/msg:subobject/msg:subobject-type" {
207 uses sr-rro-subobject;
211 augment "/msg:pcrep/msg:pcrep-message/msg:replies/msg:result/msg:failure-case/msg:rro/msg:subobject/msg:subobject-type" {
213 uses sr-rro-subobject;
217 augment "/msg:pcrep/msg:pcrep-message/msg:replies/msg:result/msg:success-case/msg:success/msg:paths/msg:rro/msg:subobject/msg:subobject-type" {
219 uses sr-rro-subobject;
224 augment "/crabbe:pcinitiate/crabbe:pcinitiate-message/crabbe:requests/crabbe:rro/crabbe:subobject/crabbe:subobject-type" {
226 uses sr-rro-subobject;
230 augment "/stateful:pcrpt/stateful:pcrpt-message/stateful:reports/stateful:path/stateful:rro/stateful:subobject/stateful:subobject-type" {
232 uses sr-rro-subobject;
236 augment "/stateful:pcupd/stateful:pcupd-message/stateful:updates/stateful:path/stateful:rro/stateful:subobject/stateful:subobject-type" {
238 uses sr-rro-subobject;
243 augment "/pn:add-lsp/pn:input/pn:arguments/pn:rro/pn:subobject/pn:subobject-type" {
245 uses sr-rro-subobject;
249 augment "/pn:update-lsp/pn:input/pn:arguments/pn:rro/pn:subobject/pn:subobject-type" {
251 uses sr-rro-subobject;
255 augment "/nt:network-topology/nt:topology/nt:node/pn:path-computation-client/pn:reported-lsp/pn:path/pn:rro/pn:subobject/pn:subobject-type" {
257 uses sr-rro-subobject;