-
Notifications
You must be signed in to change notification settings - Fork 0
/
ietf-pcep-srv6@2018-10-15.yang
143 lines (122 loc) · 3.37 KB
/
ietf-pcep-srv6@2018-10-15.yang
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
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-15 {
description "Initial revision.";
reference
"RFC XXXX: A YANG Data Model for Path Computation
Element Communications Protocol
(PCEP) - Segement Routing in IPv6
(SRv6)";
}
identity path-setup-srv6 {
base te-types:path-signaling-type;
description
"SRv6 path setup type";
}
feature srv6 {
description
"Support Segment Routing in IPv6 (SRv6) for PCE.";
}
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