blob: 5c3efb1462698ace3f1b65b59d5cb05a3d13fc84 [file] [log] [blame]
Yixiao Chen39828a62016-09-14 14:37:06 -04001module ietf-te-topology {
2 //yang-version 1.1;
3 namespace "urn:ietf:params:xml:ns:yang:ietf-te-topology";
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05004
Yixiao Chen39828a62016-09-14 14:37:06 -04005 prefix "tet";
6
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05007 import ietf-yang-types {
8 prefix "yang";
9 }
10
Yixiao Chen39828a62016-09-14 14:37:06 -040011 import ietf-inet-types {
12 prefix "inet";
13 }
14
Yixiao Chen39828a62016-09-14 14:37:06 -040015 import ietf-te-types {
16 prefix "te-types";
17 }
18
19 import ietf-network {
20 prefix "nw";
21 }
22
23 import ietf-network-topology {
24 prefix "nt";
25 }
26
27 organization
28 "Traffic Engineering Architecture and Signaling (TEAS)
29 Working Group";
30
31 contact
32 "WG Web: <http://tools.ietf.org/wg/teas/>
33 WG List: <mailto:teas@ietf.org>
34
35 WG Chair: Lou Berger
36 <mailto:lberger@labn.net>
37
38 WG Chair: Vishnu Pavan Beeram
39 <mailto:vbeeram@juniper.net>
40
41 Editor: Xufeng Liu
42 <mailto:xliu@kuatrotech.com>
43
44 Editor: Igor Bryskin
45 <mailto:Igor.Bryskin@huawei.com>
46
47 Editor: Vishnu Pavan Beeram
48 <mailto:vbeeram@juniper.net>
49
50 Editor: Tarek Saad
51 <mailto:tsaad@cisco.com>
52
53 Editor: Himanshu Shah
54 <mailto:hshah@ciena.com>
55
56 Editor: Oscar Gonzalez De Dios
57 <mailto:oscar.gonzalezdedios@telefonica.com>";
58
59 description "TE topology model";
Hesam Rahimi01f6ae02017-02-01 13:57:00 -050060
61 revision "2017-01-10" {
Yixiao Chen39828a62016-09-14 14:37:06 -040062 description "Initial revision";
63 reference "TBD";
64 }
65
66 /*
67 * Features
68 */
Hesam Rahimi01f6ae02017-02-01 13:57:00 -050069 feature nsrlg {
Yixiao Chen39828a62016-09-14 14:37:06 -040070 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -050071 "This feature indicates that the system supports NSRLG
72 (Not Sharing Risk Link Group).";
Yixiao Chen39828a62016-09-14 14:37:06 -040073 }
74
75 feature te-topology-hierarchy {
76 description
77 "This feature indicates that the system allows underlay
78 and/or overlay TE topology hierarchy.";
79 }
80
Yixiao Chen39828a62016-09-14 14:37:06 -040081 feature template {
82 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -050083 "This feature indicates that the system supports
Yixiao Chen39828a62016-09-14 14:37:06 -040084 template configuration.";
85 }
86
87 /*
88 * Typedefs
89 */
Hesam Rahimi01f6ae02017-02-01 13:57:00 -050090 typedef geographic-coordinate-degree {
91 type decimal64 {
92 fraction-digits 8;
93 }
94 description
95 "Decimal degree (DD) used to express latitude and longitude
96 geographic coordinates.";
97 } // geographic-coordinate-degree
Yixiao Chen39828a62016-09-14 14:37:06 -040098
Hesam Rahimi01f6ae02017-02-01 13:57:00 -050099 typedef te-bandwidth {
100 type string {
101 pattern
102 '0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|'
103 + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?[pP](\+)?(12[0-7]|'
104 + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+'
105 + '(,(0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|'
106 + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?[pP](\+)?(12[0-7]|'
107 + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+))*';
108 }
109 description
110 "This is the generic bandwidth type that is a string containing
111 a list of numbers separated by commas, with each of these
112 number can be non-negative decimal, hex integer, or hex float:
113 (dec | hex | float)[*(','(dec | hex | float))]
114 For packet switching type, a float number is used, such as
115 0x1p10.
116 For OTN switching type, a list of integers can be used, such
117 as '0,2,3,1', indicating 2 odu0's and 1 odu3.
118 For DWDM, a list of pairs of slot number and width can be
119 used, such as '0, 2, 3, 3', indicating a frequency slot 0 with
120 slot width 2 and a frequency slot 3 with slot width 3.";
121 } // te-bandwidth
122
123 typedef te-info-source {
124 type enumeration {
125 enum "unknown" {
126 description "The source is unknown.";
127 }
128 enum "locally-configured" {
129 description "Configured entity.";
130 }
131 enum "ospfv2" {
132 description "OSPFv2.";
133 }
134 enum "ospfv3" {
135 description "OSPFv3.";
136 }
137 enum "isis" {
138 description "ISIS.";
139 }
140 enum "bgp-ls" {
141 description "BGP-LS.";
142 reference
143 "RFC7752: North-Bound Distribution of Link-State and
144 Traffic Engineering (TE) Information Using BGP";
145 }
146 enum "system-processed" {
147 description "System processed entity.";
148 }
149 enum "other" {
150 description "Other source.";
151 }
152 }
153 description
154 "Describining the type of source that has provided the
155 related information, and the source credibility.";
156 } // te-info-source
157
158 typedef te-path-disjointness {
159 type bits {
160 bit node {
161 position 0;
162 description "Node disjoint.";
163 }
164 bit link {
165 position 1;
166 description "Link disjoint.";
167 }
168 bit srlg {
169 position 2;
170 description "SRLG (Shared Risk Link Group) disjoint.";
171 }
172 }
173 description
174 "Type of the resource disjointness for a TE tunnel path.";
175 reference
176 "RFC4872: RSVP-TE Extensions in Support of End-to-End
177 Generalized Multi-Protocol Label Switching (GMPLS)
178 Recovery";
179 } // te-path-disjointness
Yixiao Chen39828a62016-09-14 14:37:06 -0400180
181 /*
182 * Groupings
183 */
184 grouping connectivity-label-restriction-list {
185 description
186 "List of abel restrictions specifying what labels may or may
187 not be used on a link connectivity.";
188 list label-restriction {
189 key "inclusive-exclusive label-start";
190 description
191 "List of abel restrictions specifying what labels may or may
192 not be used on a link connectivity.";
193 reference
194 "RFC7579: General Network Element Constraint Encoding
195 for GMPLS-Controlled Networks";
196 leaf inclusive-exclusive {
197 type enumeration {
198 enum inclusive {
199 description "The label or label range is inclusive.";
200 }
201 enum exclusive {
202 description "The label or label range is exclusive.";
203 }
204 }
205 description
206 "Whether the list item is inclusive or exclusive.";
207 }
208 leaf label-start {
209 type te-types:generalized-label;
210 description
211 "This is the starting lable if a lable range is specified.
212 This is the lable value if a single lable is specified,
213 in which case, attribute 'label-end' is not set.";
214 }
215 leaf label-end {
216 type te-types:generalized-label;
217 description
218 "The ending lable if a lable range is specified;
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500219 This attribute is not set, If a single lable is
220 specified.";
Yixiao Chen39828a62016-09-14 14:37:06 -0400221 }
222 leaf range-bitmap {
223 type binary;
224 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500225 "When there are gaps between label-start and label-end,
Yixiao Chen39828a62016-09-14 14:37:06 -0400226 this attribute is used to specified the possitions
227 of the used labels.";
228 }
229 }
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500230 } // connectivity-label-restrictions
Yixiao Chen39828a62016-09-14 14:37:06 -0400231
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500232 grouping connectivity-matrix-entry-attributes {
Yixiao Chen39828a62016-09-14 14:37:06 -0400233 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500234 "Attributes of connectivity matrix entry.";
235 leaf is-allowed {
236 type boolean;
237 description
238 "true - switching is allowed,
239 false - switching is disallowed.";
240 }
241 uses connectivity-label-restriction-list;
242 container underlay {
243 if-feature te-topology-hierarchy;
244 presence
245 "Indicates the underlay exists for this link.";
246 description "Attributes of the te-link underlay.";
247 reference
248 "RFC4206: Label Switched Paths (LSP) Hierarchy with
249 Generalized Multi-Protocol Label Switching (GMPLS)
250 Traffic Engineering (TE)";
251
252 uses te-link-underlay-attributes;
253 } // underlay
254 uses te-link-iscd-attributes;
255 uses te-link-connectivity-attributes;
256 } // connectivity-matrix-entry-attributes
257
258 grouping geolocation-container {
259 description
260 "A container containing a GPS location.";
261 container geolocation{
262 description
263 "A container containing a GPS location.";
264 leaf altitude {
265 type int64;
266 units millimeter;
267 description
268 "Distance above the sea level.";
Yixiao Chen39828a62016-09-14 14:37:06 -0400269 }
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500270 leaf latitude {
271 type geographic-coordinate-degree {
272 range "-90..90";
273 }
274 description
275 "Relative position north or south on the Earth's surface.";
276 }
277 leaf longitude {
278 type geographic-coordinate-degree {
279 range "-180..180";
280 }
281 description
282 "Angular distance east or west on the Earth's surface.";
283 }
284 } // gps-location
285 } // geolocation-container
286
287 grouping information-source-state-attributes {
288 description
289 "The attributes identifying source that has provided the
290 related information, and the source credibility.";
291 leaf credibility-preference {
292 type uint16;
293 description
294 "The preference value to calculate the traffic
295 engineering database credibility value used for
296 tie-break selection between different
297 information-source values.
298 Higher value is more preferable.";
299 }
300 leaf logical-network-element {
301 type string;
302 description
303 "When applicable, this is the name of a logical network
304 element from which the information is learned.";
305 } // logical-network-element
306 leaf network-instance {
307 type string;
308 description
309 "When applicable, this is the name of a network-instance
310 from which the information is learned.";
311 } // network-instance
312 } // information-source-state-attributes
313
314 grouping information-source-per-link-attributes {
315 description
316 "Per node container of the attributes identifying source that
317 has provided the related information, and the source
318 credibility.";
319 leaf information-source {
320 type te-info-source;
321 description
Yixiao Chen39828a62016-09-14 14:37:06 -0400322 "Indicates the source of the information.";
323 }
324 container information-source-state {
325 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500326 "The container contains state attributes related to
Yixiao Chen39828a62016-09-14 14:37:06 -0400327 the information source.";
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500328 uses information-source-state-attributes;
Yixiao Chen39828a62016-09-14 14:37:06 -0400329 container topology {
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500330 description
Yixiao Chen39828a62016-09-14 14:37:06 -0400331 "When the information is processed by the system,
332 the attributes in this container indicate which topology
333 is used to process to generate the result information.";
334 uses te-topology-ref;
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500335 leaf link-ref {
336 type leafref {
337 path "/nw:networks/nw:network[nw:network-id = "
338 + "current()/../network-ref]/nt:link/nt:link-id";
339 require-instance false;
340 }
341 description
342 "A reference to a link-id.";
343 }
Yixiao Chen39828a62016-09-14 14:37:06 -0400344 } // topology
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500345 } // information-source-state
346 } // information-source-per-link-attributes
347
348 grouping information-source-per-node-attributes {
349 description
350 "Per node container of the attributes identifying source that
351 has provided the related information, and the source
352 credibility.";
353 leaf information-source {
354 type te-info-source;
355 description
356 "Indicates the source of the information.";
Yixiao Chen39828a62016-09-14 14:37:06 -0400357 }
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500358 container information-source-state {
359 description
360 "The container contains state attributes related to
361 the information source.";
362 uses information-source-state-attributes;
363 container topology {
364 description
365 "When the information is processed by the system,
366 the attributes in this container indicate which topology
367 is used to process to generate the result information.";
368 uses te-topology-ref;
369 leaf node-ref {
370 type leafref {
371 path "/nw:networks/nw:network[nw:network-id = "
372 + "current()/../network-ref]/nw:node/nw:node-id";
373 require-instance false;
374 }
375 description
376 "A reference to a node-id.";
377 }
378 } // topology
379 } // information-source-state
380 } // information-source-per-node-attributes
Yixiao Chen39828a62016-09-14 14:37:06 -0400381
382 grouping interface-switching-capability-list {
383 description
384 "List of Interface Switching Capabilities Descriptors (ISCD)";
385
386 list interface-switching-capability {
387 key "switching-capability";
388 description
389 "List of Interface Switching Capabilities Descriptors (ISCD)
390 for this link.";
391 reference
392 "RFC3471: Generalized Multi-Protocol Label Switching (GMPLS)
393 Signaling Functional Description.
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500394 RFC4203: OSPF Extensions in Support of Generalized
Yixiao Chen39828a62016-09-14 14:37:06 -0400395 Multi-Protocol Label Switching (GMPLS).";
396 leaf switching-capability {
397 type identityref {
398 base te-types:switching-capabilities;
399 }
400 description
401 "Switching Capability for this interface.";
402 }
403 leaf encoding {
404 type identityref {
405 base te-types:lsp-encoding-types;
406 }
407 description
408 "Encoding supported by this interface.";
409 }
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500410 uses te-link-iscd-attributes;
Yixiao Chen39828a62016-09-14 14:37:06 -0400411 } // interface-switching-capability
412 } // interface-switching-capability-list
413
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500414 grouping statistics-per-link {
Yixiao Chen39828a62016-09-14 14:37:06 -0400415 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500416 "Statistics attributes per TE link.";
417 leaf discontinuity-time {
418 type yang:date-and-time;
419 mandatory true;
Yixiao Chen39828a62016-09-14 14:37:06 -0400420 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500421 "The time on the most recent occasion at which any one or
422 more of this interface's counters suffered a
423 discontinuity. If no such discontinuities have occurred
424 since the last re-initialization of the local management
425 subsystem, then this node contains the time the local
426 management subsystem re-initialized itself.";
Yixiao Chen39828a62016-09-14 14:37:06 -0400427 }
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500428 /* Administrative attributes */
429 leaf disables {
430 type yang:counter32;
Yixiao Chen39828a62016-09-14 14:37:06 -0400431 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500432 "Number of times that link was disabled.";
Yixiao Chen39828a62016-09-14 14:37:06 -0400433 }
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500434 leaf enables {
435 type yang:counter32;
436 description
437 "Number of times that link was enabled.";
438 }
439 leaf maintenance-clears {
440 type yang:counter32;
441 description
442 "Number of times that link was put out of maintenance.";
443 }
444 leaf maintenance-sets {
445 type yang:counter32;
446 description
447 "Number of times that link was put in maintenance.";
448 }
449 leaf modifies {
450 type yang:counter32;
451 description
452 "Number of times that link was modified.";
453 }
454 /* Operational attributes */
455 leaf downs {
456 type yang:counter32;
457 description
458 "Number of times that link was set to operational down.";
459 }
460 leaf ups {
461 type yang:counter32;
462 description
463 "Number of times that link was set to operational up.";
464 }
465 /* Recovery attributes */
466 leaf fault-clears {
467 type yang:counter32;
468 description
469 "Number of times that link experienced fault clear event.";
470 }
471 leaf fault-detects {
472 type yang:counter32;
473 description
474 "Number of times that link experienced fault detection.";
475 }
476 leaf protection-switches {
477 type yang:counter32;
478 description
479 "Number of times that link experienced protection
480 switchover.";
481 }
482 leaf protection-reverts {
483 type yang:counter32;
484 description
485 "Number of times that link experienced protection
486 reversion.";
487 }
488 leaf restoration-failures {
489 type yang:counter32;
490 description
491 "Number of times that link experienced restoration
492 failure.";
493 }
494 leaf restoration-starts {
495 type yang:counter32;
496 description
497 "Number of times that link experienced restoration
498 start.";
499 }
500 leaf restoration-successes {
501 type yang:counter32;
502 description
503 "Number of times that link experienced restoration
504 success.";
505 }
506 leaf restoration-reversion-failures {
507 type yang:counter32;
508 description
509 "Number of times that link experienced restoration reversion
510 failure.";
511 }
512 leaf restoration-reversion-starts {
513 type yang:counter32;
514 description
515 "Number of times that link experienced restoration reversion
516 start.";
517 }
518 leaf restoration-reversion-successes {
519 type yang:counter32;
520 description
521 "Number of times that link experienced restoration reversion
522 success.";
523 }
524 } // statistics-per-link
525
526 grouping statistics-per-node {
527 description
528 "Statistics attributes per TE node.";
529 leaf discontinuity-time {
530 type yang:date-and-time;
531 mandatory true;
532 description
533 "The time on the most recent occasion at which any one or
534 more of this interface's counters suffered a
535 discontinuity. If no such discontinuities have occurred
536 since the last re-initialization of the local management
537 subsystem, then this node contains the time the local
538 management subsystem re-initialized itself.";
539 }
540 container node {
541 description
542 "Containing TE node level statistics attributes.";
543 leaf disables {
544 type yang:counter32;
545 description
546 "Number of times that node was disabled.";
547 }
548 leaf enables {
549 type yang:counter32;
550 description
551 "Number of times that node was enabled.";
552 }
553 leaf maintenance-sets {
554 type yang:counter32;
555 description
556 "Number of times that node was put in maintenance.";
557 }
558 leaf maintenance-clears {
559 type yang:counter32;
560 description
561 "Number of times that node was put out of maintenance.";
562 }
563 leaf modifies {
564 type yang:counter32;
565 description
566 "Number of times that node was modified.";
567 }
568 } // node
569 container connectivity-matrix-entry {
570 description
571 "Containing connectivity matrix entry level statistics
572 attributes.";
573 leaf creates {
574 type yang:counter32;
575 description
576 "Number of times that a connectivity matrix entry was
577 created.";
578 reference
579 "RFC6241. Section 7.2 for 'create' operation. ";
580 }
581 leaf deletes {
582 type yang:counter32;
583 description
584 "Number of times that a connectivity matrix entry was
585 deleted.";
586 reference
587 "RFC6241. Section 7.2 for 'delete' operation. ";
588 }
589 leaf disables {
590 type yang:counter32;
591 description
592 "Number of times that a connectivity matrix entry was
593 disabled.";
594 }
595 leaf enables {
596 type yang:counter32;
597 description
598 "Number of times that a connectivity matrix entry was
599 enabled.";
600 }
601 leaf modifies {
602 type yang:counter32;
603 description
604 "Number of times that a connectivity matrix entry was
605 modified.";
606 }
607 } // connectivity-matrix-entry
608 } // statistics-per-node
609
610 grouping statistics-per-ttp {
611 description
612 "Statistics attributes per TE TTP (Tunnel Termination Point).";
613 leaf discontinuity-time {
614 type yang:date-and-time;
615 mandatory true;
616 description
617 "The time on the most recent occasion at which any one or
618 more of this interface's counters suffered a
619 discontinuity. If no such discontinuities have occurred
620 since the last re-initialization of the local management
621 subsystem, then this node contains the time the local
622 management subsystem re-initialized itself.";
623 }
624 container tunnel-termination-point {
625 description
626 "Containing TE TTP (Tunnel Termination Point) level
627 statistics attributes.";
628 /* Administrative attributes */
629 leaf disables {
630 type yang:counter32;
631 description
632 "Number of times that TTP was disabled.";
633 }
634 leaf enables {
635 type yang:counter32;
636 description
637 "Number of times that TTP was enabled.";
638 }
639 leaf maintenance-clears {
640 type yang:counter32;
641 description
642 "Number of times that TTP was put out of maintenance.";
643 }
644 leaf maintenance-sets {
645 type yang:counter32;
646 description
647 "Number of times that TTP was put in maintenance.";
648 }
649 leaf modifies {
650 type yang:counter32;
651 description
652 "Number of times that TTP was modified.";
653 }
654 /* Operational attributes */
655 leaf downs {
656 type yang:counter32;
657 description
658 "Number of times that TTP was set to operational down.";
659 }
660 leaf ups {
661 type yang:counter32;
662 description
663 "Number of times that TTP was set to operational up.";
664 }
665 leaf in-service-clears {
666 type yang:counter32;
667 description
668 "Number of times that TTP was taken out of service
669 (TE tunnel was released).";
670 }
671 leaf in-service-sets {
672 type yang:counter32;
673 description
674 "Number of times that TTP was put in service by a TE
675 tunnel (TE tunnel was set up).";
676 }
677 } // tunnel-termination-point
678
679 container local-link-connectivity {
680 description
681 "Containing TE LLCL (Local Link Connectivity List) level
682 statistics attributes.";
683 leaf creates {
684 type yang:counter32;
685 description
686 "Number of times that an LLCL entry was created.";
687 reference
688 "RFC6241. Section 7.2 for 'create' operation. ";
689 }
690 leaf deletes {
691 type yang:counter32;
692 description
693 "Number of times that an LLCL entry was deleted.";
694 reference
695 "RFC6241. Section 7.2 for 'delete' operation.";
696 }
697 leaf disables {
698 type yang:counter32;
699 description
700 "Number of times that an LLCL entry was disabled.";
701 }
702 leaf enables {
703 type yang:counter32;
704 description
705 "Number of times that an LLCL entry was enabled.";
706 }
707 leaf modifies {
708 type yang:counter32;
709 description
710 "Number of times that an LLCL entry was modified.";
711 }
712 } // local-link-connectivity
713 } // statistics-per-ttp
Yixiao Chen39828a62016-09-14 14:37:06 -0400714
715 grouping te-link-augment {
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500716 description
Yixiao Chen39828a62016-09-14 14:37:06 -0400717 "Augmentation for TE link.";
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500718
Yixiao Chen39828a62016-09-14 14:37:06 -0400719 container te {
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500720 must "count(../nt:supporting-link)<=1" {
721 description
722 "For a link in a TE topology, there cannot be more
723 than 1 supporting link. If one or more link paths are
724 abstracted, the underlay is used.";
725 }
Yixiao Chen39828a62016-09-14 14:37:06 -0400726 presence "TE support.";
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500727 description
Yixiao Chen39828a62016-09-14 14:37:06 -0400728 "Indicates TE support.";
729
730 container config {
731 description
732 "Configuration data.";
733 uses te-link-config;
734 } // config
735 container state {
736 config false;
737 description
738 "Operational state data.";
739 uses te-link-config;
740 uses te-link-state-derived;
741 } // state
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500742 container statistics {
743 config false;
744 description
745 "Statistics data.";
746 uses statistics-per-link;
747 } // statistics
Yixiao Chen39828a62016-09-14 14:37:06 -0400748 } // te
749 } // te-link-augment
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500750
Yixiao Chen39828a62016-09-14 14:37:06 -0400751 grouping te-link-config {
752 description
753 "TE link configuration grouping.";
754 choice bundle-stack-level {
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500755 description
Yixiao Chen39828a62016-09-14 14:37:06 -0400756 "The TE link can be partitioned into bundled
757 links, or component links.";
758 case bundle {
759 container bundled-links {
760 description
761 "A set of bundled links.";
762 reference
763 "RFC4201: Link Bundling in MPLS Traffic Engineering
764 (TE).";
765 list bundled-link {
766 key "sequence";
767 description
768 "Specify a bundled interface that is
769 further partitioned.";
770 leaf sequence {
771 type uint32;
772 description
773 "Identify the sequence in the bundle.";
774 }
775 leaf src-tp-ref {
776 type leafref {
777 path "../../../../../../nw:node[nw:node-id = "
778 + "current()/../../../../../nt:source/"
779 + "nt:source-node]/"
780 + "nt:termination-point/nt:tp-id";
781 require-instance true;
782 }
783 description
784 "Reference to another TE termination point on the
785 same souruce node.";
786 }
787 leaf des-tp-ref {
788 type leafref {
789 path "../../../../../../nw:node[nw:node-id = "
790 + "current()/../../../../../nt:destination/"
791 + "nt:dest-node]/"
792 + "nt:termination-point/nt:tp-id";
793 require-instance true;
794 }
795 description
796 "Reference to another TE termination point on the
797 same destination node.";
798 }
799 } // list bundled-link
800 }
801 }
802 case component {
803 container component-links {
804 description
805 "A set of component links";
806 list component-link {
807 key "sequence";
808 description
809 "Specify a component interface that is
810 sufficient to unambiguously identify the
811 appropriate resources";
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500812
Yixiao Chen39828a62016-09-14 14:37:06 -0400813 leaf sequence {
814 type uint32;
815 description
816 "Identify the sequence in the bundle.";
817 }
818 leaf src-interface-ref {
819 type string;
820 description
821 "Reference to component link interface on the
822 source node.";
823 }
824 leaf des-interface-ref {
825 type string;
826 description
827 "Reference to component link interface on the
828 destinatioin node.";
829 }
830 }
831 }
832 }
833 } // bundle-stack-level
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500834
Yixiao Chen39828a62016-09-14 14:37:06 -0400835 leaf-list te-link-template {
836 if-feature template;
837 type leafref {
838 path "../../../../../te/templates/link-template/name";
839 }
840 description
841 "The reference to a TE link template.";
842 }
843 uses te-link-config-attributes;
844 } // te-link-config
845
846 grouping te-link-config-attributes {
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500847 description
Yixiao Chen39828a62016-09-14 14:37:06 -0400848 "Link configuration attributes in a TE topology.";
849 container te-link-attributes {
850 description "Link attributes in a TE topology.";
Yixiao Chen39828a62016-09-14 14:37:06 -0400851 leaf access-type {
852 type te-types:te-link-access-type;
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500853 description
Yixiao Chen39828a62016-09-14 14:37:06 -0400854 "Link access type, which can be point-to-point or
855 multi-access.";
856 }
857 container external-domain {
858 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500859 "For an inter-domain link, specify the attributes of
Yixiao Chen39828a62016-09-14 14:37:06 -0400860 the remote end of link, to facilitate the signalling at
861 local end.";
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500862 uses te-topology-ref;
Yixiao Chen39828a62016-09-14 14:37:06 -0400863 leaf remote-te-node-id {
864 type te-types:te-node-id;
865 description
866 "Remote TE node identifier, used together with
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500867 remote-te-link-id to identify the remote link
Yixiao Chen39828a62016-09-14 14:37:06 -0400868 termination point in a different domain.";
869 }
870 leaf remote-te-link-tp-id {
871 type te-types:te-tp-id;
872 description
873 "Remote TE link termination point identifier, used
874 together with remote-te-node-id to identify the remote
875 link termination point in a different domain.";
876 }
877 leaf plug-id {
878 type uint32;
879 description
880 "A topology-wide unique number that identifies on the
881 network a connectivity supporting a given inter-domain
882 TE link. This is more flexible alternative to specifying
883 remote-te-node-id and remote-te-link-tp-id, when the
884 provider does not know remote-te-node-id and
885 remote-te-link-tp-id or need to give client the
886 flexibility to mix-n-match multiple topologies.";
887 }
888 }
889 leaf is-abstract {
890 type empty;
891 description "Present if the link is abstract.";
892 }
893 leaf name {
894 type string;
895 description "Link Name.";
896 }
897 container underlay {
898 if-feature te-topology-hierarchy;
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500899 presence
Yixiao Chen39828a62016-09-14 14:37:06 -0400900 "Indicates the underlay exists for this link.";
901 description "Attributes of the te-link underlay.";
902 reference
903 "RFC4206: Label Switched Paths (LSP) Hierarchy with
904 Generalized Multi-Protocol Label Switching (GMPLS)
905 Traffic Engineering (TE)";
906
907 uses te-link-underlay-attributes;
908 } // underlay
909 leaf admin-status {
910 type te-types:te-admin-status;
911 description
912 "The administrative state of the link.";
913 }
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500914
Yixiao Chen39828a62016-09-14 14:37:06 -0400915 uses te-link-info-attributes;
916 } // te-link-attributes
917 } // te-link-config-attributes
918
919 grouping te-link-connectivity-attributes {
920 description
921 "Advertised TE connectivity attributes.";
922 leaf max-link-bandwidth {
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500923 type te-bandwidth;
Yixiao Chen39828a62016-09-14 14:37:06 -0400924 description
925 "Maximum bandwidth that can be seen on this link in this
926 direction. Units in bytes per second.";
927 reference
928 "RFC3630: Traffic Engineering (TE) Extensions to OSPF
929 Version 2.
930 RFC5305: IS-IS Extensions for Traffic Engineering.";
931 }
932 leaf max-resv-link-bandwidth {
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500933 type te-bandwidth;
Yixiao Chen39828a62016-09-14 14:37:06 -0400934 description
935 "Maximum amount of bandwidth that can be reserved in this
936 direction in this link. Units in bytes per second.";
937 reference
938 "RFC3630: Traffic Engineering (TE) Extensions to OSPF
939 Version 2.
940 RFC5305: IS-IS Extensions for Traffic Engineering.";
941 }
942 list unreserved-bandwidth {
943 key "priority";
944 max-elements "8";
945 description
946 "Unreserved bandwidth for 0-7 priority levels. Units in
947 bytes per second.";
948 reference
949 "RFC3630: Traffic Engineering (TE) Extensions to OSPF
950 Version 2.
951 RFC5305: IS-IS Extensions for Traffic Engineering.";
952 leaf priority {
953 type uint8 {
954 range "0..7";
955 }
956 description "Priority.";
957 }
958 leaf bandwidth {
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500959 type te-bandwidth;
Yixiao Chen39828a62016-09-14 14:37:06 -0400960 description
961 "Unreserved bandwidth for this level.";
962 }
963 }
964 leaf te-default-metric {
965 type uint32;
966 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500967 "Traffic engineering metric.";
Yixiao Chen39828a62016-09-14 14:37:06 -0400968 }
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500969 leaf te-delay-metric {
970 type uint32;
Yixiao Chen39828a62016-09-14 14:37:06 -0400971 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500972 "Traffic engineering delay metric.";
Yixiao Chen39828a62016-09-14 14:37:06 -0400973 }
974 container te-srlgs {
975 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500976 "Containing a list of SLRGs.";
Yixiao Chen39828a62016-09-14 14:37:06 -0400977 leaf-list value {
978 type te-types:srlg;
979 description "SRLG value.";
980 reference
981 "RFC4202: Routing Extensions in Support of
982 Generalized Multi-Protocol Label Switching (GMPLS).";
983 }
984 }
Hesam Rahimi01f6ae02017-02-01 13:57:00 -0500985 container te-nsrlgs {
986 if-feature nsrlg;
987 description
988 "Containing a list of NSRLGs (Not Sharing Risk Link
989 Groups).
990 When an abstract TE link is configured, this list specifies
991 the request that underlay TE paths need to be mutually
992 disjoint with other TE links in the same groups.";
993 leaf-list id {
994 type uint32;
995 description
996 "NSRLG ID, uniquely configured within a topology.";
997 reference
998 "RFC4872: RSVP-TE Extensions in Support of End-to-End
999 Generalized Multi-Protocol Label Switching (GMPLS)
1000 Recovery";
1001 }
1002 }
Yixiao Chen39828a62016-09-14 14:37:06 -04001003 } // te-link-connectivity-attributes
1004
1005 grouping te-link-info-attributes {
1006 description
1007 "Advertised TE information attributes.";
1008 leaf link-index {
1009 type uint64;
1010 description
1011 "The link identifier. If OSPF is used, this represents an
1012 ospfLsdbID. If IS-IS is used, this represents an isisLSPID.
1013 If a locally configured link is used, this object represents
1014 a unique value, which is locally defined in a router.";
1015 }
1016 leaf administrative-group {
1017 type te-types:admin-groups;
1018 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001019 "Administrative group or color of the link.
Yixiao Chen39828a62016-09-14 14:37:06 -04001020 This attribute covers both administrative group (defined in
1021 RFC3630, RFC5329, and RFC5305), and extended administrative
1022 group (defined in RFC7308).";
1023 }
1024 uses interface-switching-capability-list;
1025 leaf link-protection-type {
1026 type enumeration {
1027 enum "unprotected" {
1028 description "Unprotected.";
1029 }
1030 enum "extra-traffic" {
1031 description "Extra traffic.";
1032 }
1033 enum "shared" {
1034 description "Shared.";
1035 }
1036 enum "1-for-1" {
1037 description "One for one protection.";
1038 }
1039 enum "1-plus-1" {
1040 description "One plus one protection.";
1041 }
1042 enum "enhanced" {
1043 description "Enhanced protection.";
1044 }
1045 }
1046 description
1047 "Link Protection Type desired for this link.";
1048 reference
1049 "RFC4202: Routing Extensions in Support of
1050 Generalized Multi-Protocol Label Switching (GMPLS).";
1051 }
1052 uses te-link-connectivity-attributes;
1053 } // te-link-info-attributes
1054
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001055 grouping te-link-iscd-attributes {
1056 description
1057 "TE link ISCD (Interface Switching Capability Descriptor)
1058 attributes.";
1059 reference
1060 "Sec 1.4, RFC4203: OSPF Extensions in Support of Generalized
1061 Multi-Protocol Label Switching (GMPLS). Section 1.4.";
1062 list max-lsp-bandwidth {
1063 key "priority";
1064 max-elements "8";
1065 description
1066 "Maximum LSP Bandwidth at priorities 0-7.";
1067 leaf priority {
1068 type uint8 {
1069 range "0..7";
1070 }
1071 description "Priority.";
1072 }
1073 leaf bandwidth {
1074 type te-bandwidth;
1075 description
1076 "Max LSP Bandwidth for this level";
1077 }
1078 }
1079 } // te-link-iscd-attributes
1080
Yixiao Chen39828a62016-09-14 14:37:06 -04001081 grouping te-link-state-derived {
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001082 description
Yixiao Chen39828a62016-09-14 14:37:06 -04001083 "Link state attributes in a TE topology.";
1084 leaf oper-status {
1085 type te-types:te-oper-status;
1086 description
1087 "The current operational state of the link.";
1088 }
1089 leaf is-transitional {
1090 type empty;
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001091 description
1092 "Present if the link is transitional, used as an
1093 alternative approach in lieu of inter-layer-lock-id
Yixiao Chen39828a62016-09-14 14:37:06 -04001094 for path computation in a TE topology covering multiple
1095 layers or multiple regions.";
1096 reference
1097 "RFC5212: Requirements for GMPLS-Based Multi-Region and
1098 Multi-Layer Networks (MRN/MLN).
1099 RFC6001: Generalized MPLS (GMPLS) Protocol Extensions
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001100 for Multi-Layer and Multi-Region Networks (MLN/MRN).";
Yixiao Chen39828a62016-09-14 14:37:06 -04001101 }
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001102 uses information-source-per-link-attributes;
Yixiao Chen39828a62016-09-14 14:37:06 -04001103 list information-source-entry {
1104 key "information-source";
1105 description
1106 "A list of information sources learned, including the one
1107 used.";
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001108 uses information-source-per-link-attributes;
Yixiao Chen39828a62016-09-14 14:37:06 -04001109 uses te-link-info-attributes;
1110 }
1111 container recovery {
1112 description
1113 "Status of the recovery process.";
1114 leaf restoration-status {
1115 type te-types:te-recovery-status;
1116 description
1117 "Restoration status.";
1118 }
1119 leaf protection-status {
1120 type te-types:te-recovery-status;
1121 description
1122 "Protection status.";
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001123 }
Yixiao Chen39828a62016-09-14 14:37:06 -04001124 }
1125 container underlay {
1126 if-feature te-topology-hierarchy;
1127 description "State attributes for te-link underlay.";
1128 uses te-link-state-underlay-attributes;
1129 }
1130 } // te-link-state-derived
1131
1132 grouping te-link-state-underlay-attributes {
1133 description "State attributes for te-link underlay.";
1134 leaf dynamic {
1135 type boolean;
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001136 description
Yixiao Chen39828a62016-09-14 14:37:06 -04001137 "true if the underlay is dynamically created.";
1138 }
1139 leaf committed {
1140 type boolean;
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001141 description
Yixiao Chen39828a62016-09-14 14:37:06 -04001142 "true if the underlay is committed.";
1143 }
1144 } // te-link-state-underlay-attributes
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001145
Yixiao Chen39828a62016-09-14 14:37:06 -04001146 grouping te-link-underlay-attributes {
1147 description "Attributes for te-link underlay.";
1148 reference
1149 "RFC4206: Label Switched Paths (LSP) Hierarchy with
1150 Generalized Multi-Protocol Label Switching (GMPLS)
1151 Traffic Engineering (TE)";
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001152 container primary-path {
1153 description
Yixiao Chen39828a62016-09-14 14:37:06 -04001154 "The service path on the underlay topology that
1155 supports this link.";
1156 uses te-topology-ref;
1157 list path-element {
1158 key "path-element-id";
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001159 description
Yixiao Chen39828a62016-09-14 14:37:06 -04001160 "A list of path elements describing the service path.";
1161 leaf path-element-id {
1162 type uint32;
1163 description "To identify the element in a path.";
1164 }
1165 uses te-path-element;
1166 }
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001167 } // primary-path
1168 list backup-path {
Yixiao Chen39828a62016-09-14 14:37:06 -04001169 key "index";
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001170 description
Yixiao Chen39828a62016-09-14 14:37:06 -04001171 "A list of backup service paths on the underlay topology that
1172 protect the underlay primary path. If the primary path is
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001173 not protected, the list contains zero elements. If the
Yixiao Chen39828a62016-09-14 14:37:06 -04001174 primary path is protected, the list contains one or more
1175 elements.";
1176 leaf index {
1177 type uint32;
1178 description
1179 "A sequence number to identify a backup path.";
1180 }
1181 uses te-topology-ref;
1182 list path-element {
1183 key "path-element-id";
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001184 description
1185 "A list of path elements describing the backup service
Yixiao Chen39828a62016-09-14 14:37:06 -04001186 path";
1187 leaf path-element-id {
1188 type uint32;
1189 description "To identify the element in a path.";
1190 }
1191 uses te-path-element;
1192 }
1193 } // underlay-backup-path
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001194 leaf protection-type {
Yixiao Chen39828a62016-09-14 14:37:06 -04001195 type uint16;
1196 description
1197 "Underlay protection type desired for this link";
1198 }
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001199 container tunnel-src {
1200 uses te-tunnel-tp-ref;
Yixiao Chen39828a62016-09-14 14:37:06 -04001201 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001202 "Source tunnel termination point of the underlay
1203 tunnel.";
Yixiao Chen39828a62016-09-14 14:37:06 -04001204 }
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001205 container tunnel-des {
1206 uses te-tunnel-tp-ref;
Yixiao Chen39828a62016-09-14 14:37:06 -04001207 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001208 "Destination tunnel termination point of the underlay
1209 tunnel.";
1210 }
1211 leaf tunnel-id {
1212 type uint16;
1213 description
1214 "Tunnel identifier used in the SESSION that remains constant
1215 over the life of the tunnel.
1216 This attribute is used together with underlay tunnel-src
1217 and underlay tunnel-src.
1218 The detailed information of this tunnel can be retrieved
1219 from the ietf-te model.";
1220 reference "RFC3209";
1221 }
1222 leaf tunnel-sharing {
1223 type boolean;
1224 description
1225 "'true' if the underlay tunnel can be shared with other
1226 TE links;
1227 'false' if the underlay tunnel is dedicated to this
1228 TE link.";
Yixiao Chen39828a62016-09-14 14:37:06 -04001229 }
1230 } // te-link-underlay-attributes
1231
1232 grouping te-node-augment {
1233 description
1234 "Augmentation for TE node.";
Yixiao Chen39828a62016-09-14 14:37:06 -04001235
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001236 leaf te-node-id {
1237 type te-types:te-node-id;
1238 description
1239 "The identifier of a node in the TE topology.
1240 A node is specific to a topology to which it belongs.";
1241 }
1242
1243 container te {
1244 must "../te-node-id" {
Yixiao Chen39828a62016-09-14 14:37:06 -04001245 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001246 "te-node-id is mandatory.";
Yixiao Chen39828a62016-09-14 14:37:06 -04001247 }
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001248 must "count(../nw:supporting-node)<=1" {
1249 description
1250 "For a node in a TE topology, there cannot be more
1251 than 1 supporting node. If multiple nodes are abstracted,
1252 the underlay-topology is used.";
1253 }
1254 presence "TE support.";
1255 description
1256 "Indicates TE support.";
Yixiao Chen39828a62016-09-14 14:37:06 -04001257
1258 container config {
1259 description
1260 "Configuration data.";
1261 uses te-node-config;
1262 } // config
1263 container state {
1264 config false;
1265 description
1266 "Operational state data.";
1267
1268 uses te-node-config;
1269 uses te-node-state-derived;
1270 } // state
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001271 container statistics {
1272 config false;
1273 description
1274 "Statistics data.";
1275 uses statistics-per-node;
1276 } // statistics
Yixiao Chen39828a62016-09-14 14:37:06 -04001277
1278 list tunnel-termination-point {
1279 key "tunnel-tp-id";
1280 description
1281 "A termination point can terminate a tunnel.";
1282 leaf tunnel-tp-id {
1283 type binary;
1284 description
1285 "Tunnel termination point identifier.";
1286 }
1287
1288 container config {
1289 description
1290 "Configuration data.";
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001291 uses te-node-tunnel-termination-attributes;
Yixiao Chen39828a62016-09-14 14:37:06 -04001292 }
Yixiao Chen39828a62016-09-14 14:37:06 -04001293 container state {
1294 config false;
1295 description
1296 "Operational state data.";
1297
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001298 uses te-node-tunnel-termination-attributes;
1299 uses geolocation-container;
Yixiao Chen39828a62016-09-14 14:37:06 -04001300 } // state
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001301 container statistics {
1302 config false;
1303 description
1304 "Statistics data.";
1305 uses statistics-per-ttp;
1306 } // statistics
Yixiao Chen39828a62016-09-14 14:37:06 -04001307
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001308 // Relations to other tunnel termination points
1309 list supporting-tunnel-termination-point {
1310// key "node-ref tunnel-tp-ref";
1311 key "network-ref node-ref tunnel-tp-ref";
1312 description
1313 "Identifies the tunnel termination points, that this
1314 tunnel termination point is depending on.";
1315// leaf node-ref {
1316// type leafref {
1317// path "../../../../nw:supporting-node/nw:node-ref";
1318// require-instance false;
1319// }
1320// description
1321// "This leaf identifies in which node the supporting
1322// tunnel termination point is present.";
1323// }
1324 uses nw:node-ref;
1325 leaf tunnel-tp-ref {
1326 type leafref {
1327 path "/nw:networks/nw:network"+
1328 "[nw:network-id="+
1329 "current()/../../../../nw:supporting-node/"+
1330 "nw:network-ref]/"+
1331 "nw:node[nw:node-id=current()/../node-ref]/te/"+
1332 "tunnel-termination-point/tunnel-tp-id";
1333 require-instance false;
1334 }
1335 description
1336 "Reference to the underlay node, must be in a
1337 different topology";
1338 }
1339 } // supporting-tunnel-termination-point
Yixiao Chen39828a62016-09-14 14:37:06 -04001340 } // tunnel-termination-point
1341 } // te
1342 } // te-node-augment
1343
1344 grouping te-node-config {
1345 description "TE node configuration grouping.";
1346
1347 leaf-list te-node-template {
1348 if-feature template;
1349 type leafref {
1350 path "../../../../../te/templates/node-template/name";
1351 }
1352 description
1353 "The reference to a TE node template.";
1354 }
1355 uses te-node-config-attributes;
1356 } // te-node-config
1357
1358 grouping te-node-config-attributes {
1359 description "Configuration node attributes in a TE topology.";
1360 container te-node-attributes {
1361 description "Containing node attributes in a TE topology.";
Yixiao Chen39828a62016-09-14 14:37:06 -04001362 leaf admin-status {
1363 type te-types:te-admin-status;
1364 description
1365 "The administrative state of the link.";
1366 }
1367 uses te-node-connectivity-matrix;
1368 uses te-node-info-attributes;
1369 } // te-node-attributes
1370 } // te-node-config-attributes
Yixiao Chen39828a62016-09-14 14:37:06 -04001371
1372 grouping te-node-config-attributes-template {
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001373 description
Yixiao Chen39828a62016-09-14 14:37:06 -04001374 "Configuration node attributes for template in a TE topology.";
1375 container te-node-attributes {
1376 description "Containing node attributes in a TE topology.";
Yixiao Chen39828a62016-09-14 14:37:06 -04001377 leaf admin-status {
1378 type te-types:te-admin-status;
1379 description
1380 "The administrative state of the link.";
1381 }
1382 uses te-node-info-attributes;
1383 } // te-node-attributes
1384 } // te-node-config-attributes-template
1385
1386 grouping te-node-connectivity-matrix {
1387 description "Connectivity matrix on a TE node.";
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001388 container connectivity-matrices {
Yixiao Chen39828a62016-09-14 14:37:06 -04001389 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001390 "Containing connectivity matrix on a TE node.";
1391 leaf number-of-entries {
1392 type uint16;
Yixiao Chen39828a62016-09-14 14:37:06 -04001393 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001394 "The number of connectivity matrix entries.
1395 If this number is speficied in the configuration request,
1396 the number is requested number of entries, which may not
1397 all be listed in the list;
1398 if this number is reported in the state data,
1399 the number is the current number of operational entries.";
Yixiao Chen39828a62016-09-14 14:37:06 -04001400 }
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001401 uses connectivity-matrix-entry-attributes;
1402 list connectivity-matrix {
1403 key "id";
1404 description
1405 "Represents node's switching limitations, i.e. limitations
1406 in interconnecting network TE links across the node.";
1407 reference
1408 "RFC7579: General Network Element Constraint Encoding
1409 for GMPLS-Controlled Networks.";
1410 leaf id {
1411 type uint32;
1412 description "Identifies the connectivity-matrix entry.";
1413 }
1414 container from {
1415 leaf tp-ref {
1416 type leafref {
1417 path "../../../../../../../nt:termination-point/"+
1418 "nt:tp-id";
1419 }
1420 description
1421 "Relative reference to source termination point.";
1422 }
1423 description
1424 "Reference to source NTP.";
1425 }
1426 container to {
1427 leaf tp-ref {
1428 type leafref {
1429 path "../../../../../../../nt:termination-point/"+
1430 "nt:tp-id";
1431 }
1432 description
1433 "Relative reference to destination termination point.";
1434 }
1435 description
1436 "Reference to destination NTP.";
1437 }
1438 uses connectivity-matrix-entry-attributes;
1439 } // connectivity-matrix
1440 } // connectivity-matrices
Yixiao Chen39828a62016-09-14 14:37:06 -04001441 } // te-node-connectivity-matrix
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001442
Yixiao Chen39828a62016-09-14 14:37:06 -04001443 grouping te-node-connectivity-matrix-abs {
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001444 description
Yixiao Chen39828a62016-09-14 14:37:06 -04001445 "Connectivity matrix on a TE node, using absolute
1446 paths to reference termination points.";
1447 list connectivity-matrix {
1448 key "id";
1449 description
1450 "Represents node's switching limitations, i.e. limitations
1451 in interconnecting network TE links across the node.";
1452 reference
1453 "RFC7579: General Network Element Constraint Encoding
1454 for GMPLS-Controlled Networks.";
1455 leaf id {
1456 type uint32;
1457 description "Identifies the connectivity-matrix entry.";
1458 }
1459 container from {
1460 uses nt:tp-ref;
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001461 description
Yixiao Chen39828a62016-09-14 14:37:06 -04001462 "Reference to source NTP.";
1463 }
1464 container to {
1465 uses nt:tp-ref;
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001466 description
Yixiao Chen39828a62016-09-14 14:37:06 -04001467 "Reference to destination NTP.";
1468 }
1469 leaf is-allowed {
1470 type boolean;
1471 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001472 "true - switching is allowed,
Yixiao Chen39828a62016-09-14 14:37:06 -04001473 false - switching is disallowed.";
1474 }
1475 }
1476 } // te-node-connectivity-matrix-abs
1477
1478 grouping te-node-info-attributes {
1479 description
1480 "Advertised TE information attributes.";
1481 leaf domain-id {
1482 type uint32;
1483 description
1484 "Identifies the domain that this node belongs.
1485 This attribute is used to support inter-domain links.";
1486 reference
1487 "RFC5152: A Per-Domain Path Computation Method for
1488 Establishing Inter-Domain Traffic Engineering (TE)
1489 Label Switched Paths (LSPs).
1490 RFC5392: OSPF Extensions in Support of Inter-Autonomous
1491 System (AS) MPLS and GMPLS Traffic Engineering.
1492 RFC5316: ISIS Extensions in Support of Inter-Autonomous
1493 System (AS) MPLS and GMPLS Traffic Engineering.";
1494 }
1495 leaf is-abstract {
1496 type empty;
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001497 description
Yixiao Chen39828a62016-09-14 14:37:06 -04001498 "Present if the node is abstract, not present if the node
1499 is actual.";
1500 }
1501 leaf name {
1502 type inet:domain-name;
1503 description "Node name.";
1504 }
1505 leaf-list signaling-address {
1506 type inet:ip-address;
1507 description "Node signaling address.";
1508 }
1509 container underlay-topology {
1510 if-feature te-topology-hierarchy;
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001511 description
1512 "When an abstract node encapsulates a topology,
Yixiao Chen39828a62016-09-14 14:37:06 -04001513 the attributes in this container point to said topology.";
1514 uses te-topology-ref;
1515 }
1516 } // te-node-info-attributes
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001517
Yixiao Chen39828a62016-09-14 14:37:06 -04001518 grouping te-node-state-derived {
1519 description "Node state attributes in a TE topology.";
1520 leaf oper-status {
1521 type te-types:te-oper-status;
1522 description
1523 "The current operational state of the node.";
1524 }
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001525 uses geolocation-container;
Yixiao Chen39828a62016-09-14 14:37:06 -04001526 leaf is-multi-access-dr {
1527 type empty;
1528 description
1529 "The presence of this attribute indicates that this TE node
1530 is a pseudonode elected as a designated router.";
1531 reference
1532 "RFC3630: Traffic Engineering (TE) Extensions to OSPF
1533 Version 2.
1534 RFC1195: Use of OSI IS-IS for Routing in TCP/IP and Dual
1535 Environments.";
1536 }
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001537 uses information-source-per-node-attributes;
Yixiao Chen39828a62016-09-14 14:37:06 -04001538 list information-source-entry {
1539 key "information-source";
1540 description
1541 "A list of information sources learned, including the one
1542 used.";
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001543 uses information-source-per-node-attributes;
Yixiao Chen39828a62016-09-14 14:37:06 -04001544 uses te-node-connectivity-matrix;
1545 uses te-node-info-attributes;
1546 }
1547 } // te-node-state-derived
1548
1549 grouping te-node-state-derived-notification {
1550 description "Node state attributes in a TE topology.";
1551 leaf oper-status {
1552 type te-types:te-oper-status;
1553 description
1554 "The current operational state of the node.";
1555 }
1556 leaf is-multi-access-dr {
1557 type empty;
1558 description
1559 "The presence of this attribute indicates that this TE node
1560 is a pseudonode elected as a designated router.";
1561 reference
1562 "RFC3630: Traffic Engineering (TE) Extensions to OSPF
1563 Version 2.
1564 RFC1195: Use of OSI IS-IS for Routing in TCP/IP and Dual
1565 Environments.";
1566 }
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001567 uses information-source-per-node-attributes;
Yixiao Chen39828a62016-09-14 14:37:06 -04001568 list information-source-entry {
1569 key "information-source";
1570 description
1571 "A list of information sources learned, including the one
1572 used.";
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001573 uses information-source-per-node-attributes;
Yixiao Chen39828a62016-09-14 14:37:06 -04001574 uses te-node-connectivity-matrix-abs;
1575 uses te-node-info-attributes;
1576 }
1577 } // te-node-state-derived-notification
1578
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001579 grouping te-node-tunnel-termination-attributes {
1580 description
Yixiao Chen39828a62016-09-14 14:37:06 -04001581 "Termination capability of a tunnel termination point on a
1582 TE node.";
1583
1584 leaf switching-capability {
1585 type identityref {
1586 base te-types:switching-capabilities;
1587 }
1588 description
1589 "Switching Capability for this interface.";
1590 }
1591 leaf encoding {
1592 type identityref {
1593 base te-types:lsp-encoding-types;
1594 }
1595 description
1596 "Encoding supported by this interface.";
1597 }
1598 leaf inter-layer-lock-id {
1599 type uint32;
1600 description
1601 "Inter layer lock ID, used for path computation in a TE
1602 topology covering multiple layers or multiple regions.";
1603 reference
1604 "RFC5212: Requirements for GMPLS-Based Multi-Region and
1605 Multi-Layer Networks (MRN/MLN).
1606 RFC6001: Generalized MPLS (GMPLS) Protocol Extensions
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001607 for Multi-Layer and Multi-Region Networks (MLN/MRN).";
Yixiao Chen39828a62016-09-14 14:37:06 -04001608 }
1609 leaf protection-type {
1610 type identityref {
1611 base te-types:lsp-prot-type;
1612 }
1613 description
1614 "The protection type that this tunnel termination point
1615 is capable of.";
1616 }
1617
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001618 container local-link-connectivities {
Yixiao Chen39828a62016-09-14 14:37:06 -04001619 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001620 "Containing local link connectivity list for
1621 a tunnel termination point on a TE node.";
1622 leaf number-of-entries {
1623 type uint16;
Yixiao Chen39828a62016-09-14 14:37:06 -04001624 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001625 "The number of local link connectivity list entries.
1626 If this number is speficied in the configuration request,
1627 the number is requested number of entries, which may not
1628 all be listed in the list;
1629 if this number is reported in the state data,
1630 the number is the current number of operational entries.";
Yixiao Chen39828a62016-09-14 14:37:06 -04001631 }
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001632 uses connectivity-matrix-entry-attributes;
1633 list local-link-connectivity {
1634 key "link-tp-ref";
Yixiao Chen39828a62016-09-14 14:37:06 -04001635 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001636 "The termination capabilities between
1637 tunnel-termination-point and link termination-point.
1638 The capability information can be used to compute
1639 the tunnel path.
1640 The Interface Adjustment Capability Descriptors (IACD)
1641 [RFC6001] on each link-tp can be derived from this
1642 local-link-connectivity list.";
Yixiao Chen39828a62016-09-14 14:37:06 -04001643 reference
1644 "RFC6001: Generalized MPLS (GMPLS) Protocol Extensions
1645 for Multi-Layer and Multi-Region Networks (MLN/MRN).";
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001646 leaf link-tp-ref {
1647 type leafref {
1648 path "../../../../../../nt:termination-point/nt:tp-id";
Yixiao Chen39828a62016-09-14 14:37:06 -04001649 }
1650 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001651 "Link termination point.";
Yixiao Chen39828a62016-09-14 14:37:06 -04001652 }
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001653
1654 uses connectivity-matrix-entry-attributes;
1655 } // local-link-connectivity
1656 } // local-link-connectivities
1657 } // te-node-tunnel-termination-attributes
Yixiao Chen39828a62016-09-14 14:37:06 -04001658
1659 grouping te-path-element {
1660 description
1661 "A group of attributes defining an element in a TE path
1662 such as TE node, TE link, TE atomic resource or label.";
1663 uses te-types:explicit-route-subobject;
1664 } // te-path-element
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001665
Yixiao Chen39828a62016-09-14 14:37:06 -04001666 grouping te-termination-point-augment {
1667 description
1668 "Augmentation for TE termination point.";
Yixiao Chen39828a62016-09-14 14:37:06 -04001669
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001670 leaf te-tp-id {
1671 type te-types:te-tp-id;
1672 description
1673 "An identifier to uniquely identify a TE termination
1674 point.";
1675 }
1676
1677 container te {
1678 must "../te-tp-id";
1679 presence "TE support.";
1680 description
1681 "Indicates TE support.";
Yixiao Chen39828a62016-09-14 14:37:06 -04001682
1683 container config {
1684 description
1685 "Configuration data.";
1686 uses te-termination-point-config;
1687 } // config
1688 container state {
1689 config false;
1690 description
1691 "Operational state data.";
1692 uses te-termination-point-config;
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001693 uses geolocation-container;
Yixiao Chen39828a62016-09-14 14:37:06 -04001694 } // state
1695 } // te
1696 } // te-termination-point-augment
1697
1698 grouping te-termination-point-config {
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001699 description
Yixiao Chen39828a62016-09-14 14:37:06 -04001700 "TE termination point configuration grouping.";
Yixiao Chen39828a62016-09-14 14:37:06 -04001701 uses interface-switching-capability-list;
1702 leaf inter-layer-lock-id {
1703 type uint32;
1704 description
1705 "Inter layer lock ID, used for path computation in a TE
1706 topology covering multiple layers or multiple regions.";
1707 reference
1708 "RFC5212: Requirements for GMPLS-Based Multi-Region and
1709 Multi-Layer Networks (MRN/MLN).
1710 RFC6001: Generalized MPLS (GMPLS) Protocol Extensions
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001711 for Multi-Layer and Multi-Region Networks (MLN/MRN).";
Yixiao Chen39828a62016-09-14 14:37:06 -04001712 }
1713 } // te-termination-point-config
1714
1715 grouping te-topologies-augment {
1716 description
1717 "Augmentation for TE topologies.";
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001718
Yixiao Chen39828a62016-09-14 14:37:06 -04001719 container te {
1720 presence "TE support.";
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001721 description
Yixiao Chen39828a62016-09-14 14:37:06 -04001722 "Indicates TE support.";
1723
1724 container templates {
1725 description
1726 "Configuration parameters for templates used for TE
1727 topology.";
1728
1729 list node-template {
1730 if-feature template;
1731 key "name";
1732 leaf name {
1733 type te-types:te-template-name;
1734 description
1735 "The name to identify a TE node template.";
1736 }
1737 description
1738 "The list of TE node templates used to define sharable
1739 and reusable TE node attributes.";
1740 uses template-attributes;
1741 uses te-node-config-attributes-template;
1742 } // node-template
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001743
Yixiao Chen39828a62016-09-14 14:37:06 -04001744 list link-template {
1745 if-feature template;
1746 key "name";
1747 leaf name {
1748 type te-types:te-template-name;
1749 description
1750 "The name to identify a TE link template.";
1751 }
1752 description
1753 "The list of TE link templates used to define sharable
1754 and reusable TE link attributes.";
1755 uses template-attributes;
1756 uses te-link-config-attributes;
1757 } // link-template
1758 } // templates
1759 } // te
1760 } // te-topologies-augment
1761
1762 grouping te-topology-augment {
1763 description
1764 "Augmentation for TE topology.";
Yixiao Chen39828a62016-09-14 14:37:06 -04001765
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001766 leaf provider-id {
1767 type te-types:te-global-id;
1768 description
1769 "An identifier to uniquely identify a provider.";
1770 }
1771 leaf client-id {
1772 type te-types:te-global-id;
1773 description
1774 "An identifier to uniquely identify a client.";
1775 }
1776 leaf te-topology-id {
1777 type te-types:te-topology-id;
1778 description
1779 "It is presumed that a datastore will contain many
1780 topologies. To distinguish between topologies it is
1781 vital to have UNIQUE topology identifiers.";
1782 }
1783
1784 container te {
1785 must "../provider-id and ../client-id and ../te-topology-id";
1786 presence "TE support.";
1787 description
1788 "Indicates TE support.";
Yixiao Chen39828a62016-09-14 14:37:06 -04001789
1790 container config {
1791 description
1792 "Configuration data.";
1793 uses te-topology-config;
1794 } // config
1795 container state {
1796 config false;
1797 description
1798 "Operational state data.";
1799 uses te-topology-config;
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001800 uses geolocation-container;
Yixiao Chen39828a62016-09-14 14:37:06 -04001801 } // state
1802 } // te
1803 } // te-topology-augment
1804
1805 grouping te-topology-config {
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001806 description
Yixiao Chen39828a62016-09-14 14:37:06 -04001807 "TE topology configuration grouping.";
Yixiao Chen39828a62016-09-14 14:37:06 -04001808 leaf preference {
1809 type uint8 {
1810 range "1..255";
1811 }
1812 description
1813 "Specifies a preference for this topology. A lower number
1814 indicates a higher preference.";
1815 }
1816 leaf optimization-criterion {
1817 type identityref {
1818 base te-types:te-optimization-criterion;
1819 }
1820 description
1821 "Optimization criterion applied to this topology.";
1822 reference
1823 "RFC3272: Overview and Principles of Internet Traffic
1824 Engineering.";
1825 }
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001826 list nsrlg {
1827 if-feature nsrlg;
1828 key "id";
1829 description
1830 "List of NSRLGs (Not Sharing Risk Link Groups).";
1831 reference
1832 "RFC4872: RSVP-TE Extensions in Support of End-to-End
1833 Generalized Multi-Protocol Label Switching (GMPLS)
1834 Recovery";
1835 leaf id {
1836 type uint32;
1837 description
1838 "Identify the NSRLG entry.";
1839 }
1840 leaf disjointness {
1841 type te-path-disjointness;
1842 description
1843 "The type of resource disjointness.";
1844 }
1845 } // nsrlg
Yixiao Chen39828a62016-09-14 14:37:06 -04001846 } // te-topology-config
1847
1848 grouping te-topology-ref {
1849 description
1850 "References a TE topology.";
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001851 leaf network-ref {
Yixiao Chen39828a62016-09-14 14:37:06 -04001852 type leafref {
1853 path "/nw:networks/nw:network/nw:network-id";
1854 require-instance false;
1855 }
1856 description
1857 "A reference to a network-id in base ietf-network module.";
1858 }
1859 } // te-topology-ref
1860
1861 grouping te-topology-type {
1862 description
1863 "Identifies the TE topology type.";
1864 container te-topology {
1865 presence "Indicates TE topology.";
1866 description
1867 "Its presence identifies the TE topology type.";
1868 }
1869 } // te-topology-type
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001870
1871 grouping te-tunnel-tp-ref {
1872 description
1873 "References a tunnel termination point in a TE topology.";
1874 leaf tunnel-tp-ref {
1875 type leafref {
1876 path "/nw:networks/nw:network[nw:network-id=current()/../"+
1877 "network-ref]/nw:node[nw:node-id=current()/../node-ref]/"+
1878 "te/tunnel-termination-point/tunnel-tp-id";
1879 require-instance false;
1880 }
1881 description
1882 "An absolute reference to a tunnel termination point.
1883 (This should not be used for relative references.
1884 In such a case, a relative path should be used instead.)";
1885 }
1886 uses nw:node-ref;
1887 } // te-tunnel-tp-ref
1888
Yixiao Chen39828a62016-09-14 14:37:06 -04001889 grouping template-attributes {
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001890 description
Yixiao Chen39828a62016-09-14 14:37:06 -04001891 "Common attributes for all templates.";
1892
1893 leaf priority {
1894 type uint16;
1895 description
1896 "The preference value to resolve conflicts between different
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001897 templates. When two or more templates specify values for
Yixiao Chen39828a62016-09-14 14:37:06 -04001898 one configuration attribute, the value from the template
1899 with the highest priority is used.";
1900 }
1901 leaf reference-change-policy {
1902 type enumeration {
1903 enum no-action {
1904 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001905 "When an attribute changes in this template, the
1906 configuration node referring to this template does
Yixiao Chen39828a62016-09-14 14:37:06 -04001907 not take any action.";
1908 }
1909 enum not-allowed {
1910 description
1911 "When any configuration object has a reference to this
1912 template, changing this template is not allowed.";
1913 }
1914 enum cascade {
1915 description
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001916 "When an attribute changes in this template, the
Yixiao Chen39828a62016-09-14 14:37:06 -04001917 configuration object referring to this template applies
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001918 the new attribute value to the corresponding
Yixiao Chen39828a62016-09-14 14:37:06 -04001919 configuration.";
1920 }
1921 }
1922 description
1923 "This attribute specifies the action taken to a configuration
1924 node that has a reference to this template.";
1925 }
1926 } // template-attributes
1927
1928 /*
1929 * Configuration data nodes
1930 */
1931 augment "/nw:networks/nw:network/nw:network-types" {
1932 description
1933 "Introduce new network type for TE topology.";
1934 uses te-topology-type;
1935 }
1936
1937 augment "/nw:networks" {
1938 description
1939 "Augmentation parameters for TE topologies.";
1940 uses te-topologies-augment;
1941 }
1942
1943 augment "/nw:networks/nw:network" {
1944 when "nw:network-types/te-topology" {
1945 description
1946 "Augmentation parameters apply only for networks with
1947 TE topology type.";
1948 }
1949 description
1950 "Configuration parameters for TE topology.";
1951 uses te-topology-augment;
1952 }
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001953
Yixiao Chen39828a62016-09-14 14:37:06 -04001954 augment "/nw:networks/nw:network/nw:node" {
1955 when "../nw:network-types/te-topology" {
1956 description
1957 "Augmentation parameters apply only for networks with
1958 TE topology type.";
1959 }
1960 description
1961 "Configuration parameters for TE at node level.";
1962 uses te-node-augment;
1963 }
1964
1965 augment "/nw:networks/nw:network/nt:link" {
1966 when "../nw:network-types/te-topology" {
1967 description
1968 "Augmentation parameters apply only for networks with
1969 TE topology type.";
1970 }
1971 description
1972 "Configuration parameters for TE at link level";
1973 uses te-link-augment;
1974 }
1975
1976 augment "/nw:networks/nw:network/nw:node/"
1977 + "nt:termination-point" {
1978 when "../../nw:network-types/te-topology" {
1979 description
1980 "Augmentation parameters apply only for networks with
1981 TE topology type.";
1982 }
1983 description
1984 "Configuration parameters for TE at termination point level";
1985 uses te-termination-point-augment;
1986 }
1987
1988 /*
Yixiao Chen39828a62016-09-14 14:37:06 -04001989 * Notifications
1990 */
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05001991 grouping te-node-config-attributes-notification {
1992 description
1993 "Configuration node attributes for template in a TE topology.";
1994 container te-node-attributes {
1995 description "Containing node attributes in a TE topology.";
1996 leaf admin-status {
1997 type te-types:te-admin-status;
1998 description
1999 "The administrative state of the link.";
2000 }
2001 uses te-node-connectivity-matrix-abs;
2002 uses te-node-info-attributes;
2003 } // te-node-attributes
2004 } // te-node-config-attributes-notification
Yixiao Chen39828a62016-09-14 14:37:06 -04002005
2006 notification te-node-event {
2007 description "Notification event for TE node.";
2008 leaf event-type {
2009 type te-types:te-topology-event-type;
2010 description "Event type.";
2011 }
2012 uses nw:node-ref;
2013 uses te-topology-type;
2014 uses tet:te-node-config-attributes-notification;
2015 uses tet:te-node-state-derived-notification;
2016 }
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05002017
Yixiao Chen39828a62016-09-14 14:37:06 -04002018 notification te-link-event {
2019 description "Notification event for TE link.";
2020 leaf event-type {
2021 type te-types:te-topology-event-type;
2022 description "Event type";
2023 }
2024 uses nt:link-ref;
2025 uses te-topology-type;
2026 uses tet:te-link-config-attributes;
2027 uses tet:te-link-state-derived;
2028 }
2029
2030 augment "/te-link-event/te-link-attributes/underlay" {
2031 description "Add state attributes to te-link underlay.";
2032 uses te-link-state-underlay-attributes;
2033 }
Hesam Rahimi01f6ae02017-02-01 13:57:00 -05002034
Yixiao Chen39828a62016-09-14 14:37:06 -04002035}