blob: 582ba9e1039732adfee7cb5f7429e351c5c70ec0 [file] [log] [blame]
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +05301 module ietf-te-topology {
2 yang-version 1;
3 namespace "urn:ietf:params:xml:ns:yang:ietf-te-topology";
4 // replace with IANA namespace when assigned
5
6 prefix "tet";
7
8 import ietf-inet-types {
9 prefix "inet";
10 }
11
12 import ietf-schedule {
13 prefix "sch";
14 }
15
16 import ietf-te-types {
17 prefix "te-types";
18 }
19
20 import ietf-network {
21 prefix "nw";
22 }
23
24 import ietf-network-topology {
25 prefix "nt";
26 }
27
28 organization
29 "Traffic Engineering Architecture and Signaling (TEAS)
30 Working Group";
31
32 contact
33 "WG Web: <http://tools.ietf.org/wg/teas/>
34 WG List: <mailto:teas@ietf.org>
35
36 WG Chair: Lou Berger
37 <mailto:lberger@labn.net>
38
39 WG Chair: Vishnu Pavan Beeram
40 <mailto:vbeeram@juniper.net>
41
42 Editor: Xufeng Liu
43 <mailto:xliu@kuatrotech.com>
44
45 Editor: Igor Bryskin
46 <mailto:Igor.Bryskin@huawei.com>
47
48 Editor: Vishnu Pavan Beeram
49 <mailto:vbeeram@juniper.net>
50
51 Editor: Tarek Saad
52 <mailto:tsaad@cisco.com>
53
54 Editor: Himanshu Shah
55 <mailto:hshah@ciena.com>
56
57 Editor: Oscar Gonzalez De Dios
58 <mailto:oscar.gonzalezdedios@telefonica.com>";
59
60 description "TE topology model";
61
62 revision "2016-03-17" {
63 description "Initial revision";
64 reference "TBD";
65 }
66
67 /*
68 * Features
69 */
70
Vidyashree Rama13b4c552016-06-20 15:12:43 +053071 feature configuration-schedule {
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +053072 description
73 "This feature indicates that the system supports
74 configuration scheduling.";
75 }
76
77 feature te-topology-hierarchy {
78 description
79 "This feature indicates that the system allows underlay
80 and/or overlay TE topology hierarchy.";
81 }
82
83 feature te-performance-metric {
84 description
85 "This feature indicates that the system supports
86 TE performance metric defined in
87 RFC7471: OSPF Traffic Engineering (TE) Metric Extensions.";
88 }
89
90 feature template {
91 description
92 "This feature indicates that the system supports
93 template configuration.";
Vidyashree Rama13b4c552016-06-20 15:12:43 +053094 }
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +053095
96 /*
97 * Typedefs
98 */
99 typedef performance-metric-normality {
100 type enumeration {
101 enum "unknown" {
102 value 0;
103 description
104 "Unknown.";
105 }
106 enum "normal" {
107 value 1;
108 description
109 "Normal.";
110 }
111 enum "abnormal" {
112 value 2;
113 description
114 "Abnormal. The anomalous bit is set.";
115 }
116 }
117 description
118 "Indicates whether a performance metric is normal, abnormal, or
119 unknown.";
120 reference
121 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions.";
122 }
123
124 typedef te-admin-status {
125 type enumeration {
126 enum up {
127 description
128 "Enabled.";
129 }
130 enum down {
131 description
132 "Disabled.";
133 }
134 enum testing {
135 description
136 "In some test mode.";
137 }
138 enum preparing-maintenance {
139 description
140 "Resource is disabled in the control plane to prepare for
141 graceful shutdown for maintenance purposes.";
142 reference
143 "RFC5817: Graceful Shutdown in MPLS and Generalized MPLS
144 Traffic Engineering Networks";
145 }
146 enum maintenance {
147 description
148 "Resource is disabled in the data plane for maintenance
149 purposes.";
150 }
151 }
152 description
153 "Defines a type representing the administrative status of
154 a TE resource.";
155 }
156 typedef te-global-id {
157 type uint32;
158 description
159 "An identifier to uniquely identify an operator, which can be
160 either a provider or a client.
161 The definition of this type is taken from RFC6370 and RFC5003.
162 This attribute type is used solely to provide a globally
163 unique context for TE topologies.";
164 }
165
166 typedef te-link-access-type {
167 type enumeration {
168 enum point-to-point {
169 description
170 "The link is point-to-point.";
171 }
172 enum multi-access {
173 description
174 "The link is multi-access, including broacast and NBMA.";
175 }
176 }
177 description
178 "Defines a type representing the access type of a TE link.";
179 reference
180 "RFC3630: Traffic Engineering (TE) Extensions to OSPF
181 Version 2.";
182 }
183
184 typedef te-node-id {
185 type inet:ip-address;
186 description
187 "An identifier for a node in a topology.
188 The identifier is represented as an IPv4 or IPv6 address.
189 This attribute is mapped to Router ID in
190 RFC3630, RFC5329, RFC5305, and RFC 6119.";
191 }
192
193 typedef te-oper-status {
194 type enumeration {
195 enum up {
196 description
197 "Operational up.";
198 }
199 enum down {
200 description
201 "Operational down.";
202 }
203 enum testing {
204 description
205 "In some test mode.";
206 }
207 enum unknown {
208 description
209 "Status cannot be determined for some reason.";
210 }
211 enum preparing-maintenance {
212 description
213 "Resource is disabled in the control plane to prepare for
214 graceful shutdown for maintenance purposes.";
215 reference
216 "RFC5817: Graceful Shutdown in MPLS and Generalized MPLS
217 Traffic Engineering Networks";
218 }
219 enum maintenance {
220 description
221 "Resource is disabled in the data plane for maintenance
222 purposes.";
223 }
224 }
225 description
226 "Defines a type representing the operational status of
227 a TE resource.";
228 }
229
230 typedef te-recovery-status {
231 type enumeration {
232 enum normal {
233 description
234 "Both the recovery and working spans are fully
235 allocated and active, data traffic is being
236 transported over (or selected from) the working
237 span, and no trigger events are reported.";
238 }
239 enum recovery-started {
240 description
241 "The recovery action has been started, but not completed.";
242 }
243 enum recovery-succeeded {
244 description
245 "The recovery action has succeeded. The working span has
246 reported a failure/degrade condition and the user traffic
247 is being transported (or selected) on the recovery span.";
248 }
249 enum recovery-failed {
250 description
251 "The recovery action has failed.";
252 }
253 enum reversion-started {
254 description
255 "The reversion has started.";
256 }
257 enum reversion-failed {
258 description
259 "The reversion has failed.";
260 }
261 enum recovery-unavailable {
262 description
263 "The recovery is unavailable -- either as a result of an
264 operator Lockout command or a failure condition detected
265 on the recovery span.";
266 }
267 enum recovery-admin {
268 description
269 "The operator has issued a command switching the user
270 traffic to the recovery span.";
271 }
272 enum wait-to-restore {
273 description
274 "The recovery domain is recovering from a failuer/degrade
275 condition on the working span that is being controlled by
276 the Wait-to-Restore (WTR) timer.";
277 }
278 }
279 description
280 "Defines the status of a recovery action.";
281 reference
282 "RFC4427: Recovery (Protection and Restoration) Terminology
283 for Generalized Multi-Protocol Label Switching (GMPLS).
284 RFC6378: MPLS Transport Profile (MPLS-TP) Linear Protection";
285 }
286
287 typedef te-template-name {
288 type string {
289 pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*';
290 }
291 description
292 "A type for the name of a TE node template or TE link
293 template.";
294 }
295
296 typedef te-topology-event-type {
297 type enumeration {
298 enum "add" {
299 value 0;
300 description
301 "A TE node or te-link has been added.";
302 }
303 enum "remove" {
304 value 1;
305 description
306 "A TE node or te-link has been removed.";
307 }
308 enum "update" {
309 value 2;
310 description
311 "A TE node or te-link has been updated.";
312 }
313 }
314 description "TE Event type for notifications";
315 } // te-topology-event-type
316 typedef te-topology-id {
317 type string {
318 pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*';
319 }
320 description
321 "An identifier for a topology.";
322 }
323
324 typedef te-tp-id {
325 type union {
326 type uint32; // Unnumbered
327 type inet:ip-address; // IPv4 or IPv6 address
328 }
329 description
330 "An identifier for a TE link endpoint on a node.
331 This attribute is mapped to local or remote link identifier in
332 RFC3630 and RFC5305.";
333 }
334
335 /*
336 * Identities
337 */
338
339 /*
340 * Groupings
341 */
342 grouping information-source-attributes {
343 description
344 "The attributes identifying source that has provided the
345 related information, and the source credibility.";
346 leaf information-source {
347 type enumeration {
348 enum "unknown" {
349 description "The source is unknown.";
350 }
351 enum "locally-configured" {
352 description "Configured entity.";
353 }
354 enum "ospfv2" {
355 description "OSPFv2.";
356 }
357 enum "ospfv3" {
358 description "OSPFv3.";
359 }
360 enum "isis" {
361 description "ISIS.";
362 }
363 enum "system-processed" {
364 description "System processed entity.";
365 }
366 enum "other" {
367 description "Other source.";
368 }
369 }
370 description
371 "Indicates the source of the information.";
372 }
373 container information-source-state {
374 description
375 "The container contains state attributes related to
376 the information source.";
377 leaf credibility-preference {
378 type uint16;
379 description
380 "The preference value to calculate the traffic
381 engineering database credibility value used for
382 tie-break selection between different
383 information-source values.
384 Higher value is more preferable.";
385 }
386 container topology {
387 description
388 "When the information is processed by the system,
389 the attributes in this container indicate which topology
390 is used to process to generate the result information.";
391 uses te-topology-ref;
392 } // topology
393 leaf routing-instance {
394 type string;
395 description
396 "When applicable, this is the name of a routing instance
397 from which the information is learned.";
398 } // routing-information
399 }
400 } // information-source-attributes
401
402 grouping performance-metric-attributes {
403 description
404 "Link performance information in real time.";
405 reference
406 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions.";
407 leaf unidirectional-delay {
408 type uint32 {
409 range 0..16777215;
410 }
411 description "Delay or latency in micro seconds.";
412 }
413 leaf unidirectional-min-delay {
414 type uint32 {
415 range 0..16777215;
416 }
417 description "Minimum delay or latency in micro seconds.";
418 }
419 leaf unidirectional-max-delay {
420 type uint32 {
421 range 0..16777215;
422 }
423 description "Maximum delay or latency in micro seconds.";
424 }
425 leaf unidirectional-delay-variation {
426 type uint32 {
427 range 0..16777215;
428 }
429 description "Delay variation in micro seconds.";
430 }
431 leaf unidirectional-packet-loss {
432 type decimal64 {
Mahesh Poojary Huawei2cd44332016-07-14 12:38:17 +0530433 fraction-digits 6;
434 range "0 .. 50.331642";
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +0530435 }
436 description
437 "Packet loss as a percentage of the total traffic sent
438 over a configurable interval. The finest precision is
439 0.000003%.";
440 }
441 leaf unidirectional-residual-bandwidth {
442 type decimal64 {
Mahesh Poojary Huawei2cd44332016-07-14 12:38:17 +0530443 fraction-digits 2;
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +0530444 }
445 description
446 "Residual bandwidth that subtracts tunnel
447 reservations from Maximum Bandwidth (or link capacity)
448 [RFC3630] and provides an aggregated remainder across QoS
449 classes.";
450 }
451 leaf unidirectional-available-bandwidth {
452 type decimal64 {
Mahesh Poojary Huawei2cd44332016-07-14 12:38:17 +0530453 fraction-digits 2;
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +0530454 }
455 description
456 "Available bandwidth that is defined to be residual
457 bandwidth minus the measured bandwidth used for the
458 actual forwarding of non-RSVP-TE LSP packets. For a
459 bundled link, available bandwidth is defined to be the
460 sum of the component link available bandwidths.";
461 }
462 leaf unidirectional-utilized-bandwidth {
463 type decimal64 {
Mahesh Poojary Huawei2cd44332016-07-14 12:38:17 +0530464 fraction-digits 2;
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +0530465 }
466 description
467 "Bandwidth utilization that represents the actual
468 utilization of the link (i.e. as measured in the router).
469 For a bundled link, bandwidth utilization is defined to
470 be the sum of the component link bandwidth
471 utilizations.";
472 }
473 } // performance-metric-attributes
474 grouping performance-metric-normality-attributes {
475 description
476 "Link performance metric normality attributes.";
477 reference
478 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions.";
479 leaf unidirectional-delay {
480 type performance-metric-normality;
481 description "Delay normality.";
482 }
483 leaf unidirectional-min-delay {
484 type performance-metric-normality;
485 description "Minimum delay or latency normality.";
486 }
487 leaf unidirectional-max-delay {
488 type performance-metric-normality;
489 description "Maximum delay or latency normality.";
490 }
491 leaf unidirectional-delay-variation {
492 type performance-metric-normality;
493 description "Delay variation normality.";
494 }
495 leaf unidirectional-packet-loss {
496 type performance-metric-normality;
497 description "Packet loss normality.";
498 }
499 leaf unidirectional-residual-bandwidth {
500 type performance-metric-normality;
501 description "Residual bandwidth normality.";
502 }
503 leaf unidirectional-available-bandwidth {
504 type performance-metric-normality;
505 description "Available bandwidth normality.";
506 }
507 leaf unidirectional-utilized-bandwidth {
508 type performance-metric-normality;
509 description "Bandwidth utilization normality.";
510 }
511 } // performance-metric-normality-attributes
512
513 grouping performance-metric-throttle-container {
514 description
515 "A container controlling performance metric throttle.";
516 container performance-metric-throttle {
517 if-feature te-performance-metric;
janani bebb143d2016-07-14 19:35:22 +0530518 must "suppression-interval >= measure-interval" {
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +0530519 error-message
520 "suppression-interval cannot be less then
521 measure-interval.";
522 description
523 "Constraint on suppression-interval and
524 measure-interval.";
janani bebb143d2016-07-14 19:35:22 +0530525 }
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +0530526 description
527 "Link performance information in real time.";
528 reference
529 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions.";
530 leaf unidirectional-delay-offset {
531 type uint32 {
532 range 0..16777215;
533 }
534 description
535 "Offset value to be added to the measured delay value.";
536 }
537 leaf measure-interval {
538 type uint32;
539 default 30;
540 description
541 "Interval in seconds to measure the extended metric
542 values.";
543 }
544 leaf advertisement-interval {
545 type uint32;
546 description
547 "Interval in seconds to advertise the extended metric
548 values.";
549 }
550 leaf suppression-interval {
551 type uint32 {
janani bebb143d2016-07-14 19:35:22 +0530552 range "1 .. max";
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +0530553 }
554 default 120;
555 description
556 "Interval in seconds to suppress advertising the extended
557 metric values.";
558 }
559 container threshold-out {
560 uses performance-metric-attributes;
561 description
562 "If the measured parameter falls outside an upper bound
563 for all but the min delay metric (or lower bound for
564 min-delay metric only) and the advertised value is not
565 already outside that bound, anomalous announcement will be
566 triggered.";
567 }
568 container threshold-in {
569 uses performance-metric-attributes;
570 description
571 "If the measured parameter falls inside an upper bound
572 for all but the min delay metric (or lower bound for
573 min-delay metric only) and the advertised value is not
574 already inside that bound, normal (anomalous-flag cleared)
575 announcement will be triggered.";
576 }
577 container threshold-accelerated-advertisement {
578 description
579 "When the difference between the last advertised value and
580 current measured value exceed this threshold, anomalous
581 announcement will be triggered.";
582 uses performance-metric-attributes;
583 }
584 }
585 } // performance-metric-throttle-container
586
587 grouping te-link-augment {
588 description
589 "Augmentation for TE link.";
590
591 container te {
592 presence "TE support.";
593 description
594 "Indicates TE support.";
595
596 container config {
597 description
598 "Configuration data.";
599 uses te-link-config;
600 } // config
601 container state {
602 config false;
603 description
604 "Operational state data.";
605 uses te-link-config;
606 uses te-link-state-derived;
607 } // state
608 } // te
609 } // te-link-augment
610
611 grouping te-link-config {
612 description
613 "TE link configuration grouping.";
614 choice bundle-stack-level {
615 description
616 "The TE link can be partitioned into bundled
617 links, or component links.";
618 case bundle {
619 container bundled-links {
620 description
621 "A set of bundled links.";
622 reference
623 "RFC4201: Link Bundling in MPLS Traffic Engineering
624 (TE).";
625 list bundled-link {
626 key "sequence";
627 description
628 "Specify a bundled interface that is
629 further partitioned.";
630 leaf sequence {
631 type uint32;
632 description
633 "Identify the sequence in the bundle.";
634 }
635 leaf src-tp-ref {
janani bebb143d2016-07-14 19:35:22 +0530636 type leafref {
637 path "../../../../../../nw:node[nw:node-id = "
638 + "current()/../../../../../nt:source/"
639 + "nt:source-node]/"
640 + "nt:termination-point/nt:tp-id";
641 require-instance true;
642 }
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +0530643 description
644 "Reference to another TE termination point on the
645 same souruce node.";
646 }
647 leaf des-tp-ref {
janani bebb143d2016-07-14 19:35:22 +0530648 type leafref {
649 path "../../../../../../nw:node[nw:node-id = "
650 + "current()/../../../../../nt:destination/"
651 + "nt:dest-node]/"
652 + "nt:termination-point/nt:tp-id";
653 require-instance true;
654 }
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +0530655 description
656 "Reference to another TE termination point on the
657 same destination node.";
658 }
659 } // list bundled-link
660 }
661 }
662 case component {
663 container component-links {
664 description
665 "A set of component links";
666 list component-link {
667 key "sequence";
668 description
669 "Specify a component interface that is
670 sufficient to unambiguously identify the
671 appropriate resources";
672
673 leaf sequence {
674 type uint32;
675 description
676 "Identify the sequence in the bundle.";
677 }
678 leaf src-interface-ref {
679 type string;
680 description
681 "Reference to component link interface on the
682 source node.";
683 }
684 leaf des-interface-ref {
685 type string;
686 description
687 "Reference to component link interface on the
688 destinatioin node.";
689 }
690 }
691 }
692 }
693 } // bundle-stack-level
694
695 leaf-list te-link-template {
696 if-feature template;
janani bebb143d2016-07-14 19:35:22 +0530697 type leafref {
698 path "../../../../../te/templates/link-template/name";
699 }
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +0530700 description
701 "The reference to a TE link template.";
702 }
703 uses te-link-config-attributes;
704 } // te-link-config
705
706 grouping te-link-config-attributes {
707 description
708 "Link configuration attributes in a TE topology.";
709 container te-link-attributes {
710 description "Link attributes in a TE topology.";
711 uses sch:schedules;
712 leaf access-type {
713 type te-link-access-type;
714 description
715 "Link access type, which can be point-to-point or
716 multi-access.";
717 }
718 leaf is-abstract {
719 type empty;
720 description "Present if the link is abstract.";
721 }
722 leaf name {
723 type string;
724 description "Link Name.";
725 }
726 container underlay {
727 if-feature te-topology-hierarchy;
728 presence
729 "Indicates the underlay exists for this link.";
730 description "Attributes of the te-link underlay.";
731 reference
732 "RFC4206: Label Switched Paths (LSP) Hierarchy with
733 Generalized Multi-Protocol Label Switching (GMPLS)
734 Traffic Engineering (TE)";
735
736 uses te-link-underlay-attributes;
737 } // underlay
738 leaf admin-status {
739 type te-admin-status;
740 description
741 "The administrative state of the link.";
742 }
743
744 uses performance-metric-throttle-container;
745 uses te-link-info-attributes;
746 } // te-link-attributes
747 } // te-link-config-attributes
748
749 grouping te-link-info-attributes {
750 description
751 "Advertised TE information attributes.";
752 leaf link-index {
753 type uint64;
754 description
755 "The link identifier. If OSPF is used, this represents an
756 ospfLsdbID. If IS-IS is used, this represents an isisLSPID.
757 If a locally configured link is used, this object represents
758 a unique value, which is locally defined in a router.";
759 }
760 leaf administrative-group {
761 type te-types:admin-groups;
762 description
763 "Administrative group or color of the link.
764 This attribute covers both administrative group (defined in
765 RFC3630, RFC5329, and RFC5305), and extended administrative
766 group (defined in RFC7308).";
767 }
768 leaf max-link-bandwidth {
769 type decimal64 {
Mahesh Poojary Huawei2cd44332016-07-14 12:38:17 +0530770 fraction-digits 2;
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +0530771 }
772 description
773 "Maximum bandwidth that can be seen on this link in this
774 direction. Units in bytes per second.";
775 reference
776 "RFC3630: Traffic Engineering (TE) Extensions to OSPF
777 Version 2.
778 RFC5305: IS-IS Extensions for Traffic Engineering.";
779 }
780 leaf max-resv-link-bandwidth {
781 type decimal64 {
Mahesh Poojary Huawei2cd44332016-07-14 12:38:17 +0530782 fraction-digits 2;
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +0530783 }
784 description
785 "Maximum amount of bandwidth that can be reserved in this
786 direction in this link. Units in bytes per second.";
787 reference
788 "RFC3630: Traffic Engineering (TE) Extensions to OSPF
789 Version 2.
790 RFC5305: IS-IS Extensions for Traffic Engineering.";
791 }
792 list unreserved-bandwidth {
793 key "priority";
794 max-elements "8";
795 description
796 "Unreserved bandwidth for 0-7 priority levels. Units in
797 bytes per second.";
798 reference
799 "RFC3630: Traffic Engineering (TE) Extensions to OSPF
800 Version 2.
801 RFC5305: IS-IS Extensions for Traffic Engineering.";
802 leaf priority {
803 type uint8 {
804 range "0..7";
805 }
806 description "Priority.";
807 }
808 leaf bandwidth {
809 type decimal64 {
Mahesh Poojary Huawei2cd44332016-07-14 12:38:17 +0530810 fraction-digits 2;
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +0530811 }
812 description
813 "Unreserved bandwidth for this level.";
814 }
815 }
816 leaf te-default-metric {
817 type uint32;
818 description
819 "Traffic Engineering Metric.";
820 }
821 container performance-metric {
822 if-feature te-performance-metric;
823 description
824 "Link performance information in real time.";
825 reference
826 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions.";
827 container measurement {
828 description
829 "Measured performance metric values. Static configuration
830 and manual overrides of these measurements are also
831 allowed.";
832 uses performance-metric-attributes;
833 }
834 container normality
835 {
836 description
837 "Performance metric normality values.";
838 uses performance-metric-normality-attributes;
839 }
840 }
841 leaf link-protection-type {
842 type enumeration {
843 enum "unprotected" {
844 description "Unprotected.";
845 }
846 enum "extra-traffic" {
847 description "Extra traffic.";
848 }
849 enum "shared" {
850 description "Shared.";
851 }
852 enum "1-for-1" {
853 description "One for one protection.";
854 }
855 enum "1-plus-1" {
856 description "One plus one protection.";
857 }
858 enum "enhanced" {
859 description "Enhanced protection.";
860 }
861 }
862 description
863 "Link Protection Type desired for this link.";
864 reference
865 "RFC4202: Routing Extensions in Support of
866 Generalized Multi-Protocol Label Switching (GMPLS).";
867 }
868 list interface-switching-capability {
869 key "switching-capability";
870 description
871 "List of Interface Switching Capabilities Descriptors (ISCD)
872 for this link.";
873 reference
874 "RFC3471: Generalized Multi-Protocol Label Switching (GMPLS)
875 Signaling Functional Description.
876 RFC4203: OSPF Extensions in Support of Generalized
877 Multi-Protocol Label Switching (GMPLS).";
878 leaf switching-capability {
janani bebb143d2016-07-14 19:35:22 +0530879 type identityref {
880 base te-types:switching-capabilities;
881 }
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +0530882 description
883 "Switching Capability for this interface.";
884 }
885 leaf encoding {
janani bebb143d2016-07-14 19:35:22 +0530886 type identityref {
887 base te-types:lsp-encoding-types;
888 }
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +0530889 description
890 "Encoding supported by this interface.";
891 }
892 list max-lsp-bandwidth {
893 key "priority";
894 max-elements "8";
895 description
896 "Maximum LSP Bandwidth at priorities 0-7.";
897 leaf priority {
898 type uint8 {
899 range "0..7";
900 }
901 description "Priority.";
902 }
903 leaf bandwidth {
904 type decimal64 {
Mahesh Poojary Huawei2cd44332016-07-14 12:38:17 +0530905 fraction-digits 2;
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +0530906 }
907 description
908 "Max LSP Bandwidth for this level";
909 }
910 }
911 container time-division-multiplex-capable {
912 when "../switching-capability = 'TDM'" {
913 description "Valid only for TDM";
914 }
915 description
916 "Interface has time-division multiplex capabilities.";
917
918 leaf minimum-lsp-bandwidth {
919 type decimal64 {
Mahesh Poojary Huawei2cd44332016-07-14 12:38:17 +0530920 fraction-digits 2;
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +0530921 }
922 description
923 "Minimum LSP Bandwidth. Units in bytes per second.";
924 }
925 leaf indication {
926 type enumeration {
927 enum "standard" {
928 description
929 "Indicates support of standard SONET/SDH.";
930 }
931 enum "arbitrary" {
932 description
933 "Indicates support of arbitrary SONET/SDH.";
934 }
935 }
936 description
937 "Indication whether the interface supports Standard or
938 Arbitrary SONET/SDH";
939 }
940 }
941 list interface-adjustment-capability {
942 key "upper-sc";
943 description
944 "List of Interface Adjustment Capability Descriptors (IACD)
945 for this link.";
946 reference
947 "RFC6001: Generalized MPLS (GMPLS) Protocol Extensions
948 for Multi-Layer and Multi-Region Networks (MLN/MRN).";
949 leaf upper-sc {
janani bebb143d2016-07-14 19:35:22 +0530950 type identityref {
951 base te-types:switching-capabilities;
952 }
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +0530953 description
954 "Switching Capability for this interface.";
955 }
956 leaf upper-encoding {
janani bebb143d2016-07-14 19:35:22 +0530957 type identityref {
958 base te-types:lsp-encoding-types;
959 }
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +0530960 description
961 "Encoding supported by this interface.";
962 }
963 list max-lsp-bandwidth {
964 key "priority";
965 max-elements "8";
966 description
967 "Maximum LSP Bandwidth at priorities 0-7.";
968 leaf priority {
969 type uint8 {
970 range "0..7";
971 }
972 description "Priority.";
973 }
974 leaf bandwidth {
975 type decimal64 {
Mahesh Poojary Huawei2cd44332016-07-14 12:38:17 +0530976 fraction-digits 2;
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +0530977 }
978 description
979 "Max LSP Bandwidth for this level.";
980 }
981 }
982 } // interface-adjustment-capability
983 } // interface-switching-capability
984 container te-srlgs {
985 description
986 "A list of SLRGs.";
987 leaf-list values {
988 type te-types:srlg;
989 description "SRLG value.";
990 reference
991 "RFC4202: Routing Extensions in Support of
992 Generalized Multi-Protocol Label Switching (GMPLS).";
993 }
994 }
995 } // te-link-info-attributes
996
997 grouping te-link-state-derived {
998 description
999 "Link state attributes in a TE topology.";
1000 leaf oper-status {
1001 type te-oper-status;
1002 description
1003 "The current operational state of the link.";
1004 }
1005 uses information-source-attributes;
1006 list alt-information-sources {
1007 key "information-source";
1008 description
1009 "A list of information sources learned but not used.";
1010 uses information-source-attributes;
1011 uses te-link-info-attributes;
1012 }
1013 container recovery {
1014 description
1015 "Status of the recovery process.";
1016 leaf restoration-status {
1017 type te-recovery-status;
1018 description
1019 "Restoration status.";
1020 }
1021 leaf protection-status {
1022 type te-recovery-status;
1023 description
1024 "Protection status.";
1025 }
1026 }
1027 container underlay {
1028 if-feature te-topology-hierarchy;
1029 description "State attributes for te-link underlay.";
1030 uses te-link-state-underlay-attributes;
1031 }
1032 } // te-link-state-derived
1033 grouping te-link-state-underlay-attributes {
1034 description "State attributes for te-link underlay.";
1035 leaf dynamic {
1036 type boolean;
1037 description
1038 "true if the underlay is dynamically created.";
1039 }
1040 leaf committed {
1041 type boolean;
1042 description
1043 "true if the underlay is committed.";
1044 }
1045 } // te-link-state-underlay-attributes
1046
1047 grouping te-link-underlay-attributes {
1048 description "Attributes for te-link underlay.";
1049 reference
1050 "RFC4206: Label Switched Paths (LSP) Hierarchy with
1051 Generalized Multi-Protocol Label Switching (GMPLS)
1052 Traffic Engineering (TE)";
1053 container underlay-primary-path {
1054 description
1055 "The service path on the underlay topology that
1056 supports this link.";
1057 uses te-topology-ref;
1058 list path-element {
1059 key "path-element-id";
1060 description
1061 "A list of path elements describing the service path.";
1062 leaf path-element-id {
1063 type uint32;
1064 description "To identify the element in a path.";
1065 }
1066 uses te-path-element;
1067 }
1068 } // underlay-primary-path
1069 list underlay-backup-path {
1070 key "index";
1071 description
1072 "A list of backup service paths on the underlay topology that
1073 protect the underlay primary path. If the primary path is
1074 not protected, the list contains zero elements. If the
1075 primary path is protected, the list contains one or more
1076 elements.";
1077 leaf index {
1078 type uint32;
1079 description
1080 "A sequence number to identify a backup path.";
1081 }
1082 uses te-topology-ref;
1083 list path-element {
1084 key "path-element-id";
1085 description
1086 "A list of path elements describing the backup service
1087 path";
1088 leaf path-element-id {
1089 type uint32;
1090 description "To identify the element in a path.";
1091 }
1092 uses te-path-element;
1093 }
1094 } // underlay-backup-path
1095 leaf underlay-protection-type {
1096 type uint16;
1097 description
1098 "Underlay protection type desired for this link";
1099 }
1100 container underlay-trail-src {
1101 uses nt:tp-ref;
1102 description
1103 "Source TE link of the underlay trail.";
1104 }
1105 container underlay-trail-des {
1106 uses nt:tp-ref;
1107 description
1108 "Destination TE link of the underlay trail.";
1109 }
1110 } // te-link-underlay-attributes
1111
1112 grouping te-node-augment {
1113 description
1114 "Augmentation for TE node.";
1115
1116 container te {
1117 presence "TE support.";
1118 description
1119 "Indicates TE support.";
1120
1121 leaf te-node-id {
1122 type te-node-id;
1123 mandatory true;
1124 description
1125 "The identifier of a node in the TE topology.
1126 A node is specific to a topology to which it belongs.";
1127 }
1128
1129 container config {
1130 description
1131 "Configuration data.";
1132 uses te-node-config;
1133 } // config
1134 container state {
1135 config false;
1136 description
1137 "Operational state data.";
1138
1139 uses te-node-config;
1140 uses te-node-state-derived;
1141 } // state
1142
1143 list tunnel-termination-point {
1144 key "tunnel-tp-id";
1145 description
1146 "A termination point can terminate a tunnel.";
1147 leaf tunnel-tp-id {
1148 type binary;
1149 description
1150 "Tunnel termination point identifier.";
1151 }
1152 container config {
1153 description
1154 "Configuration data.";
1155 uses te-node-tunnel-termination-capability;
1156 }
1157
1158 container state {
1159 config false;
1160 description
1161 "Operational state data.";
1162
1163 uses te-node-tunnel-termination-capability;
1164 leaf switching-capability {
janani bebb143d2016-07-14 19:35:22 +05301165 type identityref {
1166 base te-types:switching-capabilities;
1167 }
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +05301168 mandatory true;
1169 description
1170 "Switching Capability.";
1171 }
1172 leaf encoding {
janani bebb143d2016-07-14 19:35:22 +05301173 type identityref {
1174 base te-types:lsp-encoding-types;
1175 }
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +05301176 mandatory true;
1177 description
1178 "Encoding type.";
1179 }
1180 } // state
1181
1182 } // tunnel-termination-point
1183 } // te
1184 } // te-node-augment
1185
1186 grouping te-node-config {
1187 description "TE node configuration grouping.";
1188
1189 leaf-list te-node-template {
1190 if-feature template;
janani bebb143d2016-07-14 19:35:22 +05301191 type leafref {
1192 path "../../../../../te/templates/node-template/name";
1193 }
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +05301194 description
1195 "The reference to a TE node template.";
1196 }
1197 uses te-node-config-attributes;
1198 } // te-node-config
1199
1200 grouping te-node-config-attributes {
1201 description "Configuration node attributes in a TE topology.";
1202 container te-node-attributes {
1203 description "Containing node attributes in a TE topology.";
1204 uses sch:schedules;
1205 leaf admin-status {
1206 type te-admin-status;
1207 description
1208 "The administrative state of the link.";
1209 }
1210 uses te-node-connectivity-matrix;
1211 uses te-node-info-attributes;
1212 } // te-node-attributes
1213 } // te-node-config-attributes
1214
1215 grouping te-node-config-attributes-notification {
1216 description
1217 "Configuration node attributes for template in a TE topology.";
1218 container te-node-attributes {
1219 description "Containing node attributes in a TE topology.";
1220 uses sch:schedules;
1221 leaf admin-status {
1222 type te-admin-status;
1223 description
1224 "The administrative state of the link.";
1225 }
1226 uses te-node-connectivity-matrix-abs;
1227 uses te-node-info-attributes;
1228 } // te-node-attributes
1229 } // te-node-config-attributes-notification
1230
1231 grouping te-node-config-attributes-template {
1232 description
1233 "Configuration node attributes for template in a TE topology.";
1234 container te-node-attributes {
1235 description "Containing node attributes in a TE topology.";
1236 uses sch:schedules;
1237 leaf admin-status {
1238 type te-admin-status;
1239 description
1240 "The administrative state of the link.";
1241 }
1242 uses te-node-info-attributes;
1243 } // te-node-attributes
1244 } // te-node-config-attributes-template
1245
1246 grouping te-node-connectivity-matrix {
1247 description "Connectivity matrix on a TE node.";
1248 list connectivity-matrix {
1249 key "id";
1250 description
1251 "Represents node's switching limitations, i.e. limitations
1252 in interconnecting network TE links across the node.";
1253 reference
1254 "RFC7579: General Network Element Constraint Encoding
1255 for GMPLS-Controlled Networks.";
1256 leaf id {
1257 type uint32;
1258 description "Identifies the connectivity-matrix entry.";
1259 }
1260 container from {
1261 leaf tp-ref {
janani bebb143d2016-07-14 19:35:22 +05301262 type leafref {
1263 path "../../../../../../nt:termination-point/nt:tp-id";
1264 }
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +05301265 description
1266 "Relative reference to source termination point.";
1267 }
1268 description
1269 "Reference to source NTP.";
1270 }
1271 container to {
1272 leaf tp-ref {
janani bebb143d2016-07-14 19:35:22 +05301273 type leafref {
1274 path "../../../../../../nt:termination-point/nt:tp-id";
1275 }
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +05301276 description
1277 "Relative reference to destination termination point.";
1278 }
1279 description
1280 "Reference to destination NTP.";
1281 }
1282 leaf is-allowed {
1283 type boolean;
1284 description
1285 "true - switching is allowed,
1286 false - switching is disallowed.";
1287 }
1288 }
1289 } // te-node-connectivity-matrix
1290
1291 grouping te-node-connectivity-matrix-abs {
1292 description
1293 "Connectivity matrix on a TE node, using absolute
1294 paths to reference termination points.";
1295 list connectivity-matrix {
1296 key "id";
1297 description
1298 "Represents node's switching limitations, i.e. limitations
1299 in interconnecting network TE links across the node.";
1300 reference
1301 "RFC7579: General Network Element Constraint Encoding
1302 for GMPLS-Controlled Networks.";
1303 leaf id {
1304 type uint32;
1305 description "Identifies the connectivity-matrix entry.";
1306 }
1307 container from {
1308 uses nt:tp-ref;
1309 description
1310 "Reference to source NTP.";
1311 }
1312 container to {
1313 uses nt:tp-ref;
1314 description
1315 "Reference to destination NTP.";
1316 }
1317 leaf is-allowed {
1318 type boolean;
1319 description
1320 "true - switching is allowed,
1321 false - switching is disallowed.";
1322 }
1323 }
1324 } // te-node-connectivity-matrix-abs
1325
1326 grouping te-node-info-attributes {
1327 description
1328 "Advertised TE information attributes.";
1329 leaf domain-id {
1330 type uint32;
1331 description
1332 "Identifies the domain that this node belongs.
1333 This attribute is used to support inter-domain links.";
1334 reference
1335 "RFC5152: A Per-Domain Path Computation Method for
1336 Establishing Inter-Domain Traffic Engineering (TE)
1337 Label Switched Paths (LSPs).
1338 RFC5392: OSPF Extensions in Support of Inter-Autonomous
1339 System (AS) MPLS and GMPLS Traffic Engineering.
1340 RFC5316: ISIS Extensions in Support of Inter-Autonomous
1341 System (AS) MPLS and GMPLS Traffic Engineering.";
1342 }
1343 leaf is-abstract {
1344 type empty;
1345 description
1346 "Present if the node is abstract, not present if the node
1347 is actual.";
1348 }
1349 leaf name {
1350 type inet:domain-name;
1351 description "Node name.";
1352 }
1353 leaf-list signaling-address {
1354 type inet:ip-address;
1355 description "Node signaling address.";
1356 }
1357 container underlay-topology {
1358 if-feature te-topology-hierarchy;
1359 description
1360 "When an abstract node encapsulates a topology,
1361 the attributes in this container point to said topology.";
1362 uses te-topology-ref;
1363 }
1364 } // te-node-info-attributes
1365
1366 grouping te-node-state-derived {
1367 description "Node state attributes in a TE topology.";
1368 leaf oper-status {
1369 type te-oper-status;
1370 description
1371 "The current operational state of the node.";
1372 }
1373 leaf is-multi-access-dr {
1374 type empty;
1375 description
1376 "The presence of this attribute indicates that this TE node
1377 is a pseudonode elected as a designated router.";
1378 reference
1379 "RFC3630: Traffic Engineering (TE) Extensions to OSPF
1380 Version 2.
1381 RFC1195: Use of OSI IS-IS for Routing in TCP/IP and Dual
1382 Environments.";
1383 }
1384 uses information-source-attributes;
1385 list alt-information-sources {
1386 key "information-source";
1387 description
1388 "A list of information sources learned but not used.";
1389 uses information-source-attributes;
1390 uses te-node-connectivity-matrix;
1391 uses te-node-info-attributes;
1392 }
1393 } // te-node-state-derived
1394
1395 grouping te-node-state-derived-notification {
1396 description "Node state attributes in a TE topology.";
1397 leaf oper-status {
1398 type te-oper-status;
1399 description
1400 "The current operational state of the node.";
1401 }
1402 leaf is-multi-access-dr {
1403 type empty;
1404 description
1405 "The presence of this attribute indicates that this TE node
1406 is a pseudonode elected as a designated router.";
1407 reference
1408 "RFC3630: Traffic Engineering (TE) Extensions to OSPF
1409 Version 2.
1410 RFC1195: Use of OSI IS-IS for Routing in TCP/IP and Dual
1411 Environments.";
1412 }
1413 uses information-source-attributes;
1414 list alt-information-sources {
1415 key "information-source";
1416 description
1417 "A list of information sources learned but not used.";
1418 uses information-source-attributes;
1419 uses te-node-connectivity-matrix-abs;
1420 uses te-node-info-attributes;
1421 }
1422 } // te-node-state-derived-notification
1423
1424 grouping te-node-tunnel-termination-capability {
1425 description
1426 "Termination capability of a tunnel termination point on a
1427 TE node.";
1428
1429 list termination-capability {
1430 key "link-tp";
1431 description
1432 "The termination capabilities between
1433 tunnel-termination-point and link termination-point.
1434 The capability information can be used to compute
1435 the tunnel path.";
1436 leaf link-tp {
janani bebb143d2016-07-14 19:35:22 +05301437 type leafref {
1438 path "../../../../../nt:termination-point/nt:tp-id";
1439 }
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +05301440 description
1441 "Link termination point.";
1442 }
1443 } // termination-capability
1444 } // te-node-tunnel-termination-capability
1445
1446 grouping te-path-element {
1447 description
1448 "A group of attributes defining an element in a TE path
1449 such as TE node, TE link, TE atomic resource or label.";
1450 uses te-types:explicit-route-subobject;
1451 } // te-path-element
1452
1453 grouping te-termination-point-augment {
1454 description
1455 "Augmentation for TE termination point.";
1456
1457 container te {
1458 presence "TE support.";
1459 description
1460 "Indicates TE support.";
1461
1462 leaf te-tp-id {
1463 type te-tp-id;
1464 mandatory true;
1465 description
1466 "An identifier to uniquely identify a TE termination
1467 point.";
1468 }
1469
1470 container config {
1471 description
1472 "Configuration data.";
1473 uses te-termination-point-config;
1474 } // config
1475 container state {
1476 config false;
1477 description
1478 "Operational state data.";
1479 uses te-termination-point-config;
1480 } // state
1481 } // te
1482 } // te-termination-point-augment
1483
1484 grouping te-termination-point-config {
1485 description
1486 "TE termination point configuration grouping.";
1487 uses sch:schedules;
1488 } // te-termination-point-config
1489
1490 grouping te-topologies-augment {
1491 description
1492 "Augmentation for TE topologies.";
1493
1494 container te {
1495 presence "TE support.";
1496 description
1497 "Indicates TE support.";
1498
1499 container templates {
1500 description
1501 "Configuration parameters for templates used for TE
1502 topology.";
1503
1504 list node-template {
1505 if-feature template;
1506 key "name";
1507 leaf name {
1508 type te-template-name;
1509 description
1510 "The name to identify a TE node template.";
1511 }
1512 description
1513 "The list of TE node templates used to define sharable
1514 and reusable TE node attributes.";
1515 uses template-attributes;
1516 uses te-node-config-attributes-template;
1517 } // node-template
1518
1519 list link-template {
1520 if-feature template;
1521 key "name";
1522 leaf name {
1523 type te-template-name;
1524 description
1525 "The name to identify a TE link template.";
1526 }
1527 description
1528 "The list of TE link templates used to define sharable
1529 and reusable TE link attributes.";
1530 uses template-attributes;
1531 uses te-link-config-attributes;
1532 } // link-template
1533 } // templates
1534 } // te
1535 } // te-topologies-augment
1536
1537 grouping te-topology-augment {
1538 description
1539 "Augmentation for TE topology.";
1540
1541 container te {
1542 presence "TE support.";
1543 description
1544 "Indicates TE support.";
1545
1546 leaf provider-id {
1547 type te-global-id;
1548 mandatory true;
1549 description
1550 "An identifier to uniquely identify a provider.";
1551 }
1552 leaf client-id {
1553 type te-global-id;
1554 mandatory true;
1555 description
1556 "An identifier to uniquely identify a client.";
1557 }
1558 leaf te-topology-id {
1559 type te-topology-id;
1560 mandatory true;
1561 description
1562 "It is presumed that a datastore will contain many
1563 topologies. To distinguish between topologies it is
1564 vital to have UNIQUE topology identifiers.";
1565 }
1566
1567 container config {
1568 description
1569 "Configuration data.";
1570 uses te-topology-config;
1571 } // config
1572 container state {
1573 config false;
1574 description
1575 "Operational state data.";
1576 uses te-topology-config;
1577 } // state
1578 } // te
1579 } // te-topology-augment
1580
1581 grouping te-topology-config {
1582 description
1583 "TE topology configuration grouping.";
1584 uses sch:schedules;
1585 leaf preference {
1586 type uint8 {
1587 range "1..255";
1588 }
1589 description
1590 "Specifies a preference for this topology. A lower number
1591 indicates a higher preference.";
1592 }
1593 } // te-topology-config
1594
1595 grouping te-topology-ref {
1596 description
1597 "References a TE topology.";
1598 leaf provider-id-ref {
janani bebb143d2016-07-14 19:35:22 +05301599 type leafref {
1600 path "/nw:networks/nw:network[nw:network-id = "
1601 + "current()/../network-id-ref]/tet:te/tet:provider-id";
1602 require-instance false;
1603 }
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +05301604 description
1605 "A reference to a provider-id.";
1606 }
1607 leaf client-id-ref {
janani bebb143d2016-07-14 19:35:22 +05301608 type leafref {
1609 path "/nw:networks/nw:network[nw:network-id = "
1610 + "current()/../network-id-ref]/tet:te/tet:client-id";
1611 require-instance false;
1612 }
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +05301613 description
1614 "A reference to a client-id.";
1615 }
1616 leaf te-topology-id-ref {
janani bebb143d2016-07-14 19:35:22 +05301617 type leafref {
1618 path "/nw:networks/nw:network[nw:network-id = "
1619 + "current()/../network-id-ref]/tet:te/tet:te-topology-id";
1620 require-instance false;
1621 }
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +05301622 description
1623 "A reference to a te-topology-id.";
1624 }
1625 leaf network-id-ref {
janani bebb143d2016-07-14 19:35:22 +05301626 type leafref {
1627 path "/nw:networks/nw:network/nw:network-id";
1628 require-instance false;
1629 }
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +05301630 description
1631 "A reference to a network-id in base ietf-network module.";
1632 }
1633 } // te-topology-ref
1634
1635 grouping te-topology-type {
1636 description
1637 "Identifies the TE topology type.";
1638 container te-topology {
1639 presence "Indicates TE topology.";
1640 description
1641 "Its presence identifies the TE topology type.";
1642 }
1643 } // te-topology-type
1644
1645 grouping template-attributes {
1646 description
1647 "Common attributes for all templates.";
1648
1649 leaf priority {
1650 type uint16;
1651 description
1652 "The preference value to resolve conflicts between different
1653 templates. When two or more templates specify values for
1654 one configuration attribute, the value from the template
1655 with the highest priority is used.";
1656 }
1657 leaf reference-change-policy {
1658 type enumeration {
1659 enum no-action {
1660 description
1661 "When an attribute changes in this template, the
1662 configuration node referring to this template does
1663 not take any action.";
1664 }
1665 enum not-allowed {
1666 description
1667 "When any configuration object has a reference to this
1668 template, changing this template is not allowed.";
1669 }
1670 enum cascade {
1671 description
1672 "When an attribute changes in this template, the
1673 configuration object referring to this template applies
1674 the new attribute value to the corresponding
1675 configuration.";
1676 }
1677 }
1678 description
1679 "This attribute specifies the action taken to a configuration
1680 node that has a reference to this template.";
1681 }
1682 } // template-attributes
1683
1684 /*
1685 * Configuration data nodes
1686 */
1687 augment "/nw:networks/nw:network/nw:network-types" {
1688 description
1689 "Introduce new network type for TE topology.";
1690 uses te-topology-type;
1691 }
1692
1693 augment "/nw:networks" {
1694 description
1695 "Augmentation parameters for TE topologies.";
1696 uses te-topologies-augment;
1697 }
1698
1699 augment "/nw:networks/nw:network" {
1700 when "nw:network-types/te-topology" {
1701 description
1702 "Augmentation parameters apply only for networks with
1703 TE topology type.";
1704 }
1705 description
1706 "Configuration parameters for TE topology.";
1707 uses te-topology-augment;
1708 }
1709
1710 augment "/nw:networks/nw:network/nw:node" {
1711 when "../nw:network-types/te-topology" {
1712 description
1713 "Augmentation parameters apply only for networks with
1714 TE topology type.";
1715 }
1716 description
1717 "Configuration parameters for TE at node level.";
1718 uses te-node-augment;
1719 }
1720
1721 augment "/nw:networks/nw:network/nt:link" {
1722 when "../nw:network-types/te-topology" {
1723 description
1724 "Augmentation parameters apply only for networks with
1725 TE topology type.";
1726 }
1727 description
1728 "Configuration parameters for TE at link level";
1729 uses te-link-augment;
1730 }
1731
1732 augment "/nw:networks/nw:network/nw:node/"
1733 + "nt:termination-point" {
1734 when "../../nw:network-types/te-topology" {
1735 description
1736 "Augmentation parameters apply only for networks with
1737 TE topology type.";
1738 }
1739 description
1740 "Configuration parameters for TE at termination point level";
1741 uses te-termination-point-augment;
1742 }
1743
1744 /*
1745 * Operational state data nodes
1746 */
1747
1748 /*
1749 * Notifications
1750 */
1751 notification te-node-event {
1752 description "Notification event for TE node.";
1753 leaf event-type {
1754 type te-topology-event-type;
1755 description "Event type.";
1756 }
1757 uses nw:node-ref;
1758 uses te-topology-type;
1759 uses tet:te-node-config-attributes-notification;
1760 uses tet:te-node-state-derived-notification;
1761 }
1762
1763 notification te-link-event {
1764 description "Notification event for TE link.";
1765 leaf event-type {
1766 type te-topology-event-type;
1767 description "Event type";
1768 }
1769 uses nt:link-ref;
1770 uses te-topology-type;
1771 uses tet:te-link-config-attributes;
1772 uses tet:te-link-state-derived;
1773 }
1774
1775 augment "/te-link-event/te-link-attributes/underlay" {
1776 description "Add state attributes to te-link underlay.";
1777 uses te-link-state-underlay-attributes;
Bharat saraswalaf413b82016-07-14 15:18:20 +05301778 }
VinodKumarS-Huaweid81eccb2016-06-01 14:30:22 +05301779 }