-
Notifications
You must be signed in to change notification settings - Fork 0
/
draft-dhody-pce-pcep-srv6-yang-00.xml
538 lines (457 loc) · 18.5 KB
/
draft-dhody-pce-pcep-srv6-yang-00.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
<?xml version="1.0" encoding="us-ascii"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"[]>
<?rfc toc="yes" ?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="4"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="no"?>
<?rfc rfcedstyle="yes"?>
<?rfc subcompact="no"?>
<?rfc compact="yes" ?>
<?rfc iprnotified="Yes" ?>
<?rfc strict="no" ?>
<rfc ipr="trust200902" category="std" docName="draft-dhody-pce-pcep-srv6-yang-00" obsoletes="" updates="" submissionType="IETF" xml:lang="en">
<front>
<title abbrev="PCE-YANG">A YANG Data Model for Segment Routing in IPv6 (SRv6) support in Path Computation Element Communications Protocol (PCEP)</title>
<author initials="D" surname="Dhody" fullname="Dhruv Dhody" role="editor">
<organization>Huawei Technologies</organization>
<address>
<postal>
<street>Divyashree Techno Park, Whitefield</street>
<city>Bangalore</city>
<region>Karnataka</region>
<code>560066</code>
<country>India</country>
</postal>
<email>dhruv.ietf@gmail.com</email>
</address>
</author>
<author fullname="Siva Sivabalan" initials="S." surname="Sivabalan">
<organization>Cisco Systems, Inc.</organization>
<address>
<postal>
<street>2000 Innovation Drive</street>
<city>Kanata</city>
<region>Ontario</region>
<code>K2K 3E8</code>
<country>Canada</country>
</postal>
<email>msiva@cisco.com</email>
</address>
</author>
<date year="2018" />
<area>Routing</area>
<workgroup>PCE Working Group</workgroup>
<abstract>
<t>This document augments a YANG data model for the management of
Path Computation Element communications Protocol (PCEP) for
communications between a Path Computation Client (PCC) and a Path
Computation Element (PCE), or between two PCEs in support for Segment Routing in IPv6. The data model
includes configuration data and state data (status information and
counters for the collection of statistics).</t>
</abstract>
</front>
<middle>
<section title="Introduction" toc="default">
<t>The Path Computation Element (PCE) defined in <xref target="RFC4655"/>
is an entity that is capable of computing a network path or route
based on a network graph, and applying computational constraints.
A Path Computation Client (PCC) may make requests to a PCE for paths
to be computed.</t>
<t>PCEP is the communication protocol between a PCC and PCE and is
defined in <xref target="RFC5440"/>. PCEP interactions include path
computation requests and path computation replies as well as
notifications of specific states related to the use of a PCE in the
context of Multiprotocol Label Switching (MPLS) and Generalized MPLS
(GMPLS) Traffic Engineering (TE). <xref target='RFC8231'/>
specifies extensions to PCEP to enable stateful control of MPLS TE LSPs. </t>
<t>
<xref target="I-D.negi-pce-segment-routing-ipv6"/> extends
<xref target="I-D.ietf-pce-segment-routing"/> to support SR for IPv6 data plane.</t>
<t><xref target="I-D.ietf-pce-pcep-yang"/> defines a YANG <xref target="RFC7950"/> data model
for the management of PCEP speakers. This document contains a specification of the PCEP-SRv6 YANG module,
"ietf-pcep-srv6" which provides the PCEP-SRv6 <xref target="I-D.negi-pce-segment-routing-ipv6"/> data
model.</t>
<t>The PCEP operational state is included in the same tree as the PCEP
configuration consistent with Network Management Datastore
Architecture <xref target="RFC8342"/>.
The origin of the data is indicated as per the origin metadata
annotation.</t>
</section>
<section title="Requirements Language" toc="default">
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119" /> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
</section>
<section title="Terminology and Notation" toc="default">
<t>
This document also uses the following terms defined in
<xref target="RFC7420"/>:
<list style='symbols'>
<t>
PCEP entity: a local PCEP speaker.
</t>
<t>
PCEP peer: to refer to a remote PCEP speaker.
</t>
<t>PCEP speaker: where it is not necessary to distinguish between local
and remote.
</t>
</list>
</t>
<t>
Further, this document also uses the following terms defined in
<xref target='RFC8231'/> :
<list style='symbols'>
<t>
Stateful PCE, Passive Stateful PCE, Active Stateful PCE
</t>
<t>
Delegation, Revocation, Redelegation
</t>
<t>LSP State Report, Path Computation Report message (PCRpt).</t>
<t>LSP State Update, Path Computation Update message (PCUpd).</t>
</list>
</t>
<t>
<xref target='RFC8281'/> :
<list style='symbols'>
<t>PCE-initiated LSP, Path Computation LSP Initiate Message (PCInitiate).</t>
</list>
</t>
<t>
<xref target='RFC8408'/> :
<list style='symbols'>
<t>Path Setup Type (PST).</t>
</list>
</t>
<t>
<xref target='I-D.ietf-pce-segment-routing'/> :
<list style='symbols'>
<t>Segment Routing (SR).</t>
</list>
</t>
<t>
<xref target='I-D.negi-pce-segment-routing-ipv6'/> :
<list style='symbols'>
<t>Segment Routing in IPv6 (SRv6).</t>
</list>
</t>
<section anchor="sec.tree-symbols" title="Tree Diagrams" toc="default">
<t>A simplified graphical representation of the data model is used in this
document. The meaning of the symbols in these diagrams is defined in <xref target="RFC8340"/>.
</t>
<!--
<list style="symbols">
<t>Brackets "[" and "]" enclose list keys.</t>
<t>Abbreviations before data node names: "rw" means
configuration (read-write) and "ro" state data
(read-only).</t>
<t>Symbols after data node names: "?" means an optional node, "!"
means a presence container, and "*" denotes a list and leaf-list.</t>
<t>Parentheses enclose choice and case nodes, and case nodes
are also marked with a colon (":").</t>
<t>Ellipsis ("...") stands for contents of subtrees that are
not shown.</t>
</list></t>-->
</section>
<section title="Prefixes in Data Node Names" toc="default">
<t>In this document, names of data nodes and other data
model objects are often used without a prefix, as long as it is clear
from the context in which YANG module each name is defined.
Otherwise, names are prefixed using the standard prefix associated
with the corresponding YANG module, as shown in <xref target="tab.prefixes" pageno="false" format="default"/>.</t>
<texttable anchor="tab.prefixes" title="Prefixes and corresponding YANG modules" suppress-title="false" align="center" style="full">
<ttcol align="left">Prefix</ttcol>
<ttcol align="left">YANG module</ttcol>
<ttcol align="left">Reference</ttcol>
<c>te-types</c><c>ietf-te-types</c><c><xref target="I-D.ietf-teas-yang-te" pageno="false" format="default"/></c>
<c>p</c><c>ietf-pcep</c><c><xref target="I-D.ietf-pce-pcep-yang" pageno="false" format="default"/></c>
<c>st</c><c>ietf-srv6-types</c><c><xref target="I-D.raza-spring-srv6-yang" pageno="false" format="default"/></c>
</texttable>
</section>
</section>
<section title="The Design of PCEP-SRv6 Data Model" toc="default" anchor="sec.data-tree">
<section title="The Overview of PCEP SRv6 Data Model" toc="default" anchor="sec.overview.data-tree">
<t>The PCEP-SRv6 YANG module defined in this document has all the common
building blocks for the PCEP-SRv6 extention.
<figure title="" suppress-title="false" align="left" alt="" width="" height="">
<artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[
module: ietf-pcep-srv6
augment /p:pcep/p:entity/p:capability:
+--rw srv6 {srv6}?
+--rw enabled? boolean
+--rw max-sl? uint8
+--rw sl-limit? boolean
augment /p:pcep/p:entity/p:peers/p:peer/p:capability:
+--rw srv6 {srv6}?
+--rw enabled? boolean
+--rw max-sl? uint8
+--rw sl-limit? boolean
augment /p:pcep/p:entity/p:lsp-db/p:lsp:
+--ro srv6 {srv6}?
+--ro segment-list
+--ro segment* [index]
+--ro index uint32
+--ro sid-value? st:srv6-sid
groupings:
segment-list
+---- segment-list
+---- segment* [index]
+---- index? uint32
+---- sid-value? st:srv6-sid
segment-properties
+---- index? uint32
+---- sid-value? st:srv6-sid
srv6
+---- srv6 {srv6}?
+---- enabled? boolean
+---- max-sl? uint8
+---- sl-limit? boolean
]]></artwork>
</figure>
</t>
</section>
</section>
<section title="PCEP-SRv6 YANG Modules" toc="default">
<section title="ietf-pcep-srv6 module" toc="default">
<t>RFC Ed.: In this section, replace all occurrences of 'XXXX' with the
actual RFC number and all occurrences of the revision date below with
the date of RFC publication (and remove this note).</t>
<figure title="" suppress-title="false" align="left" alt="" width="" height="">
<artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height="">
<![CDATA[
<CODE BEGINS> file "ietf-pcep-srv6@2018-10-19.yang"
module ietf-pcep-srv6 {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-pcep-srv6";
prefix ps;
import ietf-srv6-types {
prefix "st";
reference "RFC XXXX";
}
import ietf-te-types {
prefix "te-types";
reference "RFC XXXX";
}
import ietf-pcep {
prefix "p";
reference "RFC XXXX";
}
organization
"IETF PCE (Path Computation Element) Working Group";
contact
"WG Web: <http://tools.ietf.org/wg/pce/>
WG List: <mailto:pce@ietf.org>
Editor: Dhruv Dhody
<mailto:dhruv.ietf@gmail.com>";
description
"The YANG module augments the PCEP yang operational
model with SRv6";
revision 2018-10-19 {
description "Initial revision.";
reference
"RFC XXXX: A YANG Data Model for Path Computation
Element Communications Protocol
(PCEP) - Segement Routing in IPv6
(SRv6)";
}
/* Identity */
identity path-setup-srv6 {
base te-types:path-signaling-type;
description
"SRv6 path setup type";
}
/* Features */
feature srv6 {
description
"Support Segment Routing in IPv6 (SRv6) for PCE.";
}
/* Groupings */
grouping srv6 {
description
"SRv6";
container srv6 {
if-feature srv6;
description
"If SRv6 is supported";
leaf enabled{
type boolean;
description
"Enabled or Disabled";
}
leaf max-sl {
type uint8;
description
"Max value of the segment left field in SRH";
}
leaf sl-limit{
type boolean;
default false;
description
"True indicates no limit on SL, the
leaf max-sl is ignored";
}
}
}
grouping segment-list {
description
"Segment list grouping";
container segment-list {
description
"Segments for given segment list";
list segment {
key "index";
description "Configure Segment/hop at the index";
uses segment-properties;
}
}
}
grouping segment-properties {
description "Segment properties grouping";
leaf index {
type uint32;
description "Segment index";
}
leaf sid-value {
type st:srv6-sid;
description "SRv6 SID value";
}
}
/*
* Augment modules to add SRv6
*/
augment "/p:pcep/p:entity/p:capability"{
description
"Augmenting SRv6";
uses srv6;
}
augment "/p:pcep/p:entity/p:peers/p:peer/p:capability"{
description
"Augmenting SRv6";
uses srv6;
}
augment "/p:pcep/p:entity/p:lsp-db/p:lsp"{
description
"Augmenting SRv6";
container srv6 {
when "/p:pcep/p:entity/p:lsp-db/p:lsp/p:pst
= 'path-setup-srv6'" {
description
"For SRv6 path";
}
if-feature srv6;
uses segment-list;
description
"SRv6";
}
}
}//module
<CODE ENDS>
]]></artwork>
</figure>
</section>
</section>
<section title="Security Considerations" toc="default">
<t>The YANG module defined in this document is designed to be accessed via
network management protocol such as NETCONF <xref target="RFC6241"/>
or RESTCONF <xref target="RFC8040"/>. The lowest NETCONF layer is the secure
transport layer and the mandatory-to-implement secure transport is
SSH <xref target="RFC6242"/>. The lowest RESTCONF layer is HTTPS, and the
mandatory-to-implement secure transport is TLS <xref target="RFC8446"/></t>
<t>The NETCONF access control model <xref target="RFC8341"/> provides
the means to restrict access for particular NETCONF or RESTCONF users to a
pre-configured subset of all available NETCONF or RESTCONF protocol
operations and content.</t>
<t>There are a number of data nodes defined in the YANG module which are
writable/creatable/deletable (i.e., config true, which is the
default). These data nodes may be considered sensitive or vulnerable
in some network environments. Write operations (e.g., <edit-config>)
to these data nodes without proper protection can have a negative
effect on network operations. These are the subtrees and data nodes and
their sensitivity/vulnerability:
<list>
<t>/p:pcep/p:entity/p:capability/ps:srv6 - configure local SRv6 capability and parameters.</t>
<t>/p:pcep/p:entity/p:peers/p:peer/p:capability/ps:srv6 - configure peer's SRv6 capability and parameters.</t>
</list></t>
<t>Unauthorized access to above list can adversely affect the
PCEP session between the local entity and the peers. This may
lead to inability to compute new paths, stateful operations on
the delegated as well as PCE-initiated LSPs.</t>
<t>Some of the readable data nodes in this YANG module may be considered
sensitive or vulnerable in some network environments. It is thus important
to control read access (e.g., via get, get-config, or notification) to
these data nodes. These are the subtrees and data nodes and their
sensitivity/vulnerability:
<list>
<t>/p:pcep/p:entity/p:lsp-db/p:lsp/ps:srv6 - The SRv6 SID in the network. Unauthorized access to
this could provide the all path and network usage information.</t>
</list></t>
<!--<t>Some of the RPC operations in this YANG module may be considered sensitive
or vulnerable in some network environments. It is thus important to control
access to these operations. These are the operations and their
sensitivity/vulnerability:
<list>
<t>trigger-resync - trigger resynchronization with the PCE. Unauthorized access to
this could force a PCEP session into continuous state synchronization. </t>
</list></t>-->
</section>
<section title="IANA Considerations" toc="default">
<t>This document registers a URI in the "IETF XML Registry"
<xref target="RFC3688"/>.
Following the format in RFC 3688, the following registration has been
made.
<list style="hanging">
<t hangText="URI:">urn:ietf:params:xml:ns:yang:ietf-pcep-srv6</t>
<t hangText="Registrant Contact:">The PCE WG of the IETF.</t>
<t hangText="XML:">N/A; the requested URI is an XML namespace.</t>
</list>
</t>
<t>This document registers a YANG module in the "YANG Module Names"
registry <xref target="RFC6020"/>.
<figure title="" suppress-title="false" align="left" alt="" width="" height="">
<artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[
Name: ietf-pcep
Namespace: urn:ietf:params:xml:ns:yang:ietf-pcep-srv6
Prefix: ps
Reference: This I-D
]]></artwork>
</figure>
</t>
</section>
<section title="Acknowledgements" toc="default">
</section>
</middle>
<back>
<references title="Normative References">
<?rfc include="reference.RFC.2119.xml" ?>
<?rfc include="reference.RFC.3688.xml" ?>
<?rfc include="reference.RFC.5440.xml" ?>
<?rfc include="reference.RFC.6020.xml" ?>
<?rfc include="reference.RFC.6241.xml" ?>
<?rfc include="reference.RFC.6242.xml" ?>
<?rfc include="reference.RFC.7950.xml" ?>
<?rfc include="reference.RFC.8040.xml" ?>
<?rfc include="reference.RFC.8174.xml"?>
<?rfc include="reference.RFC.8231.xml"?>
<?rfc include="reference.RFC.8281.xml"?>
<?rfc include="reference.RFC.8340.xml"?>
<?rfc include="reference.RFC.8341.xml" ?>
<?rfc include="reference.RFC.8408.xml" ?>
<?rfc include="reference.RFC.8446.xml" ?>
<?rfc include="reference.I-D.ietf-teas-yang-te"?>
<?rfc include="reference.I-D.ietf-pce-segment-routing"?>
<?rfc include="reference.I-D.raza-spring-srv6-yang"?>
<?rfc include="reference.I-D.ietf-pce-pcep-yang"?>
<?rfc include="reference.I-D.negi-pce-segment-routing-ipv6"?>
</references>
<references title="Informative References">
<?rfc include="reference.RFC.4655.xml" ?>
<?rfc include="reference.RFC.7420.xml" ?>
<?rfc include="reference.RFC.8342.xml"?>
</references>
</back>
</rfc>