blob: 81c48e6098f75753d4877ca3afec3c4758c4df71 [file] [log] [blame]
Thomas Vachuska6655bee2017-08-24 16:12:59 -07001submodule openconfig-isis-lsp {
2
3 belongs-to openconfig-isis {
4 prefix oc-isis;
5 }
6 import openconfig-extensions { prefix "oc-ext"; }
7 import openconfig-inet-types { prefix "inet"; }
8 import openconfig-isis-types { prefix "oc-isis-types"; }
9 import openconfig-isis-lsdb-types { prefix "oc-isis-lsdb-types"; }
10 import openconfig-types { prefix "oc-types"; }
11 import openconfig-mpls-types { prefix "oc-mpls-types"; }
12 // meta
13 organization
14 "OpenConfig working group";
15
16 contact
17 "OpenConfig working group
18 www.openconfig.net ";
19
20 description
21 "This sub-module describes a YANG model for the IS-IS Link State
22 Database (LSDB).
23
24 Portions of this code were derived from IETF RFCs relating to the
25 IS-IS protocol.
26 Please reproduce this note if possible.
27 IETF code is subject to the following copyright and license:
28 Copyright (c) IETF Trust and the persons identified as authors of
29 the code.
30 All rights reserved.
31 Redistribution and use in source and binary forms, with or without
32 modification, is permitted pursuant to, and subject to the license
33 terms contained in, the Simplified BSD License set forth in
34 Section 4.c of the IETF Trust's Legal Provisions Relating
35 to IETF Documents (http://trustee.ietf.org/license-info).";
36
37 oc-ext:openconfig-version "0.3.2";
38
39 revision "2017-07-26" {
40 description
41 "Update LSDB and fix bugs.";
42 reference "0.3.2";
43 }
44
45 revision "2017-05-15" {
46 description
47 "Refactor LSDB.";
48 reference "0.3.0";
49 }
50
51 revision "2017-01-13" {
52 description
53 "Remove top-level /isis container";
54 reference "0.2.1";
55 }
56
57 revision "2016-12-15" {
58 description
59 "Add segment routing to IS-IS module";
60 reference "0.2.0";
61 }
62
63 revision "2016-10-18" {
64 description
65 "Initial revision of IS-IS models.";
66 reference "0.1.0";
67 }
68
69 typedef isis-metric-flags {
70 type enumeration {
71 enum INTERNAL {
72 description
73 "When this flag is not set, internal metrics are in use.";
74 }
75 enum UNSUPPORTED {
76 description
77 "When this flag (referred to as the S-bit) is set, then
78 the metric is unsupported.";
79 }
80 }
81 description
82 "Type definition for flags used in IS-IS metrics";
83 }
84
85 grouping isis-lsdb-link-characteristics-a-bit {
86 description
87 "Definition of the A bit, as used in IS-IS link delay TLVs.";
88
89 leaf a-bit {
90 type boolean;
91 description
92 "The A bit is set when the measured value of this parameter
93 exceeds its configured maximum threshold. The A bit is cleared
94 when the measured value falls below its configured reuse
95 threshold.";
96 }
97 }
98
99 grouping isis-lsdb-tlv-nlpid-state {
100 description
101 "NLP ID parameters for IS-IS.";
102
103 leaf-list nlpid {
104 type enumeration {
105 enum IPV4 {
106 description "IPv4 Address family.";
107 }
108 enum IPV6 {
109 description "IPv6 Address family.";
110 }
111 }
112 description
113 "Protocol supported. IPv4 is defined as (0xcc) and IPv6 -
114 (0x8e)";
115 reference
116 "RFC1195: Use of OSI IS-IS for Routing in TCP/IP and
117 Dual Environments. TLV 129. ";
118 }
119 }
120
121 grouping isis-lsdb-subtlv-type-state {
122 description
123 "Per-subTLV type operational state parameters for ISIS.";
124
125 leaf type {
126 type identityref {
127 base oc-isis-lsdb-types:ISIS_SUBTLV_TYPE;
128 }
129 description
130 "The type of subTLV being described. The type of subTLV is
131 expressed as a canonical name.";
132 }
133 }
134
135 grouping isis-lsdb-tlv-type-state {
136 description
137 "Per-subTLV type operational state parameters for ISIS.";
138
139 leaf type {
140 type identityref {
141 base oc-isis-lsdb-types:ISIS_TLV_TYPE;
142 }
143 description
144 "The type of TLV being described. The type of TLV is
145 expressed as a canonical name.";
146 }
147 }
148
149 grouping is-reachability-neighbor-state {
150 description
151 "This grouping defines is-reachability neighbor.";
152
153 container subtlvs {
154 description
155 "This container describes IS Neighbor sub-TLVs.";
156
157 list subtlv {
158 key "type";
159
160 description
161 "List of subTLV types in the LSDB for the specified TLV.";
162
163 leaf type {
164 type leafref {
165 path "../state/type";
166 }
167 description
168 "Reference to the sub-TLV type.";
169 }
170
171 container state {
172 description
173 "State parameters of IS neighbor state";
174
175 uses isis-lsdb-subtlv-type-state;
176 }
177
178 container admin-group {
179 when "../state/type = " +
180 "'oc-isis-lsdb-types:IS_REACHABILITY_ADMIN_GROUP'" {
181 description
182 "Only include the administrative group container when
183 the sub-TLV is type 3";
184 }
185 description
186 "This container defines sub-TLV 3.";
187
188 container state {
189 description
190 "State parameters of sub-TLV 3.";
191
192 leaf-list admin-group {
193 type uint32;
194 description
195 "The administrative group sub-TLV contains a 4-octet
196 bit mask assigned by the network administrator. Each
197 set bit corresponds to one administrative group
198 assigned to the interface. By convention, the least
199 significant bit is referred to as group 0, and the
200 most significant bit is referred to as group 31.";
201 reference
202 "RFC5305: IS-IS Extensions for Traffic Engineering.
203 sub-TLV 3: TLV 22,23,141,222, 223.";
204 }
205 }
206 }
207
208 container link-id {
209 when "../state/type = " +
210 "'oc-isis-lsdb-types:IS_REACHABILITY_LINK_ID'" {
211 description
212 "Only include the link identifier container when the
213 sub-TLV is type 4";
214 }
215 description
216 "This container defines sub-TLV 4.";
217
218 container state {
219 description
220 "State parameters of sub-TLV 4.";
221
222 leaf local {
223 type uint32;
224 description
225 "The value field of this sub-TLV contains 4 octets of
226 Link Local Identifier followed by 4 octets of Link
227 Remote Identifier.";
228 reference
229 "RFC5307: IS-IS Extensions in Support of Generalized
230 Multi-Protocol Label Switching (GMPLS). sub-TLV 3: TLV
231 22,23,141,222, 223.";
232 }
233
234 leaf remote {
235 type uint32;
236 description
237 "If the Link Remote Identifier is unknown, it is set
238 to 0.";
239 reference
240 "RFC5307: IS-IS Extensions in Support of Generalized
241 Multi-Protocol Label Switching (GMPLS). sub-TLV 3: TLV
242 22,23,141,222, 223.";
243 }
244 }
245 }
246
247 container ipv4-interface-address {
248 when "../state/type = " +
249 "'oc-isis-lsdb-types:IS_REACHABILITY_IPV4_INTERFACE_ADDRESS'" {
250 description
251 "Only include the IPv4 interface address group container
252 when the sub-TLV is type 6";
253 }
254 description
255 "This container defines sub-TLV 6.";
256
257 container state {
258 description
259 "State parameters of sub-TLV 6.";
260
261 leaf-list address {
262 type inet:ipv4-address;
263 description
264 "A 4-octet IPv4 address for the interface described by
265 the (main) TLV. This sub-TLV can occur multiple
266 times.";
267 reference
268 "RFC5305: IS-IS Extensions for Traffic Engineering.
269 sub-TLV 6: TLV 22,23,41,222,223.";
270 }
271 }
272 }
273
274 container ipv4-neighbor-address {
275 when "../state/type = " +
276 "'oc-isis-lsdb-types:IS_REACHABILITY_IPV4_NEIGHBOR_ADDRESS'" {
277 description
278 "Only include the IPv4 neighbor address container when
279 the sub-TLV is type 8.";
280 }
281 description
282 "This container defines sub-TLV 8.";
283
284 container state {
285 description
286 "State parameters of sub-TLV 8.";
287
288 leaf-list address {
289 type inet:ipv4-address;
290 description
291 "A single IPv4 address for a neighboring router on
292 this link. This sub-TLV can occur multiple times.";
293 reference
294 "RFC5305: IS-IS Extensions for Traffic Engineering.
295 sub-TLV 8: TLV 22,23, 141,222,223.";
296 }
297 }
298 }
299
300 container max-link-bandwidth {
301 when "../state/type = " +
302 "'oc-isis-lsdb-types:IS_REACHABILITY_MAX_LINK_BANDWIDTH'" {
303 description
304 "Only include the maximum link bandwidth container when
305 the sub-TLV is type 9.";
306 }
307 description
308 "This container defines sub-TLV 9.";
309
310 container state {
311 description
312 "State parameters of sub-TLV 9.";
313
314 leaf bandwidth {
315 type oc-types:ieeefloat32;
316 units "bytes per second";
317 description
318 "The maximum bandwidth that can be used on this link
319 in this direction (from the system originating the LSP
320 to its neighbors). It is encoded in 32 bits in IEEE
321 floating point format. The units are bytes (not
322 bits!) per second.";
323 reference
324 "RFC5305: IS-IS Extensions for Traffic Engineering.
325 sub-TLV 9: TLV 22,23,141,222,223.";
326 }
327 }
328 }
329
330 container max-reservable-link-bandwidth {
331 when "../state/type = " +
332 "'oc-isis-lsdb-types:IS_REACHABILITY_MAX_RESERVABLE_BANDWIDTH'" {
333 description
334 "Only include the maximum reservable link bandwidth
335 container when the sub-TLV type is 10.";
336 }
337 description
338 "This container defines sub-TLV 10.";
339
340 container state {
341 description
342 "State parameters of sub-TLV 10.";
343
344 leaf bandwidth {
345 type oc-types:ieeefloat32;
346 units "bytes per second";
347 description
348 "The maximum amount of bandwidth that can be reserved
349 in this direction on this link. Note that for
350 oversubscription purposes, this can be greater than
351 the bandwidth of the link. It is encoded in 32 bits
352 in IEEE floating point format. The units are bytes
353 (not bits!) per second.";
354 reference
355 "RFC5305: IS-IS Extensions for Traffic Engineering.
356 Sub-TLV 10: TLV 22,23,141,222,223.";
357 }
358 }
359 }
360
361 container unreserved-bandwidth {
362 when "../state/type = " +
363 "'oc-isis-lsdb-types:IS_REACHABILITY_UNRESERVED_BANDWIDTH'" {
364 description
365 "Only include the unreserved bandwidth container when
366 the sub-TLV type is 11.";
367 }
368 description
369 "This container defines unreserved-bandwidth. The units
370 are bytes per second.";
371
372 reference
373 "RFC5305: IS-IS Extensions for Traffic Engineering. sub-
374 TLV 11: TLV 22,23,141,222,223";
375
376 list setup-priority {
377 key "priority";
378
379 leaf priority {
380 type leafref {
381 path "../state/priority";
382 }
383 description
384 "Reference to the setup priority to which the
385 unreserved bandwidth corresponds.";
386 }
387
388 description
389 "Setup priority (0 through 7) for unreserved
390 bandwidth.";
391
392 container state {
393 description
394 "State parameters of IS Extended Reachability sub-TLV
395 11.";
396
397 leaf priority {
398 type uint8 {
399 range "0..7";
400 }
401 description
402 "Setup priority level of 0 through 7 to be used by
403 Unreserved Bandwidth sub-TLV 11.";
404 }
405
406 leaf bandwidth {
407 type oc-types:ieeefloat32;
408 units "bytes per second";
409 description
410 "The amount of bandwidth reservable in this
411 direction on this link. Note that for
412 oversubscription purposes, this can be greater than
413 the bandwidth of the link. It contains eight 32-bit
414 IEEE floating point numbers(one for each priority).
415 The units are bytes (not bits!) per second. The
416 values correspond to the bandwidth that can be
417 reserved with a setup priority of 0 through 7,
418 arranged in increasing order with priority 0
419 occurring at the start of the sub-TLV, and priority
420 7 at the end of the sub-TLV.";
421 }
422 }
423 }
424 }
425
426 container ipv6-interface-address {
427 when "../state/type = " +
428 "'oc-isis-lsdb-types:IS_REACHABILITY_IPV6_INTERFACE_ADDRESS'" {
429 description
430 "Only include the IPv6 interface address when the
431 sub-TLV type is 12.";
432 }
433 description
434 "This container defines sub-TLV 12.";
435
436 container state {
437 description
438 "State parameters of sub-TLV 12.";
439
440 leaf-list address {
441 type inet:ipv6-address;
442 description
443 "Contains a 16-octet IPv6 address for the interface
444 described by the containing Extended IS Reachability
445 TLV. This sub-TLV can occur multiple times.";
446 reference
447 "RFC6119: IPv6 Traffic Engineering in IS-IS. sub-TLV
448 12: TLV 22,23,141,222,223.";
449 }
450 }
451 }
452
453 container ipv6-neighbor-address {
454 when "../state/type = " +
455 "'oc-isis-lsdb-types:IS_REACHABILITY_IPV6_NEIGHBOR_ADDRESS'" {
456 description
457 "Only include the IPv6 neighbor address when the
458 sub-TLV type is 13.";
459 }
460 description
461 "This container defines sub-TLV 13.";
462
463 container state {
464 description
465 "State parameters of sub-TLV 13.";
466
467 leaf-list address {
468 type inet:ipv6-address;
469 description
470 "Contains a 16-octet IPv6 address for a neighboring
471 router on the link described by the (main) TLV. This
472 sub-TLV can occur multiple times.";
473 reference
474 "RFC6119: IPv6 Traffic Engineering in IS-IS. sub-TLV
475 13: ISIS TLV 22,23,141,222,223.";
476 }
477 }
478 }
479
480 container extended-admin-group {
481 when "../state/type = " +
482 "'oc-isis-lsdb-types:IS_REACHABILITY_EXTENDED_ADMIN_GROUP'" {
483 description
484 "Only include the extended admin group when the
485 sub-TLV type is 14.";
486 }
487 description
488 "This container defines sub-TLV 14.";
489 container state {
490 description
491 "State parameters of sub-TLV 14.";
492
493 leaf-list extended-admin-group {
494 type uint32;
495 description
496 "The extended-admin-group sub-TLV is used in addition
497 to the Administrative Groups when it is desirable to
498 make more than 32 colors available for advertisement
499 in a network.";
500 reference
501 "RFC7308: Extended Administrative Groups in MPLS
502 Traffic Engineering (MPLS-TE). sub-TLV 14: TLV
503 22,23,141,222,223.";
504 }
505 }
506 }
507
508 container te-default-metric {
509 when "../state/type = " +
510 "'oc-isis-lsdb-types:IS_REACHABILITY_TE_DEFAULT_METRIC'" {
511 description
512 "Only include the default traffic engineering metric
513 container when the sub-TLV type is 18.";
514 }
515 description
516 "This container defines sub-TLV 18.";
517 container state {
518 description
519 "State parameters of sub-TLV 18.";
520
521 leaf metric {
522 type uint32;
523 description
524 "This metric is administratively assigned and can be
525 used to present a differently weighted topology to
526 traffic engineering SPF calculations. To preclude
527 overflow within a traffic engineering SPF
528 implementation, all metrics greater than or equal to
529 MAX_PATH_METRIC SHALL be considered to have a metric
530 of MAX_PATH_METRIC.";
531 reference
532 "RFC5305: IS-IS Extensions for Traffic Engineering.
533 sub-TLV 18: TLV 22,23,141,222,223.";
534 }
535 }
536 }
537
538 container link-attributes {
539 when "../state/type = " +
540 "'oc-isis-lsdb-types:IS_REACHABILITY_LINK_ATTRIBUTES'" {
541 description
542 "Only include the link attributes container when the
543 sub-TLV is type 19.";
544 }
545 description
546 "This container defines link-attributes.";
547
548 container state {
549 description
550 "State parameters of IS Extended Reachability sub-TLV
551 19.";
552
553 leaf-list local-protection {
554 type enumeration {
555 enum LOCAL_PROTECTION {
556 description
557 "If set, local protection is available for the
558 link.";
559 }
560 enum LINK_EXCLUDED {
561 description
562 "If set, the link is excluded from local
563 protection.";
564 }
565 }
566 description
567 "Link local-protection attributes.";
568
569 reference
570 "RFC5029: Definition of an IS-IS Link Attribute Sub-
571 TLV. TLV 22, sub-TLV 19.";
572 }
573 }
574 }
575
576 container link-protection-type {
577 when "../state/type = " +
578 "'oc-isis-lsdb-types:IS_REACHABILITY_LINK_PROTECTION_TYPE'" {
579 description
580 "Only include the link protection type container when
581 the sub-TLV type 20.";
582 }
583 description
584 "ISIS LSDB parameters relating to the type of link
585 protection offered.";
586
587 container state {
588 description
589 "State parameters of sub-TLV 20.";
590
591 leaf-list type {
592 type enumeration {
593 enum EXTRA_TRAFFIC {
594 description
595 "If set the link has extra traffic protection. If
596 the link is of type Extra Traffic, it means that
597 the link is protecting another link or links. The
598 LSPs on a link of this type will be lost if any of
599 the links it is protecting fail.";
600 }
601 enum UNPROTECTED {
602 description
603 "If set, the link is unprotected. If the link is
604 of type Unprotected, it means that there is no
605 other link protecting this link. The LSPs on a
606 link of this type will be lost if the link
607 fails.";
608 }
609 enum SHARED {
610 description
611 "If set, the link has shared protection. If the
612 link is of type Shared, it means that there are
613 one or more disjoint links of type Extra Traffic
614 that are protecting this link. These Extra
615 Traffic links are shared between one or more links
616 of type Shared.";
617 }
618 enum ONE_ONE {
619 description
620 "If set, the link has dedicated 1:1 protection. If
621 the link is of type Dedicated 1:1, it means that
622 there is one dedicated disjoint link of type Extra
623 Traffic that is protecting this link.";
624 }
625 enum PLUS_ONE {
626 description
627 "If set, the link has dedicated 1+1 protection. If
628 the link is of type Dedicated 1+1, it means that a
629 dedicated disjoint link is protecting this link.
630 However, the protecting link is not advertised in
631 the link state database and is therefore not
632 available for the routing of LSPs.";
633 }
634 enum ENHANCED {
635 description
636 "If set the link has enhanced protection. If the
637 link is of type Enhanced, it means that a
638 protection scheme that is more reliable than
639 Dedicated 1+1, e.g., 4 fiber BLSR/MS-SPRING, is
640 being used to protect this link.";
641 }
642 }
643 description
644 "Link protection capabilities.";
645 reference
646 "RFC5307: IS-IS Extensions in Support of Generalized
647 Multi-Protocol Label Switching (GMPLS). sub-TLV 20:
648 TLV 22,23,141,222,223.";
649 }
650 }
651 }
652
653 container bandwidth-constraints {
654 when "../state/type =" +
655 "'oc-isis-lsdb-types:IS_REACHABILITY_BANDWIDTH_CONSTRAINTS'" {
656 description
657 "Only include the bandwidth constraints container when
658 the sub-TLV is type 22.";
659 }
660 description
661 "This container defines bandwidth-constraints. For DS-TE,
662 the existing Maximum Reservable link bandwidth parameter
663 is retained, but its semantics is generalized and
664 interpreted as the aggregate bandwidth constraint across
665 all Class-Types";
666
667 reference
668 "RFC4124: Protocol Extensions for Support of Diffserv-
669 aware MPLS Traffic Engineering. sub-TLV 22: TLV 22, 23,
670 141, 222,223";
671
672 list bandwidth-constraint {
673 key "model-id";
674
675 description
676 "List of the Bandwidth Constraints sub-TLV instances
677 present in the TLV.";
678
679 leaf model-id {
680 type leafref {
681 path "../state/model-id";
682 }
683 description
684 "Reference to the model ID associated with the
685 instance of the Bandwidth Constraints sub-TLV.";
686 }
687
688 container state {
689 description
690 "State parameters of IS Extended Reachability sub-TLV
691 22.";
692
693 leaf model-id {
694 type uint8;
695 description
696 "Identifier for the Bandwidth Constraints Model
697 currently in use by the LSR initiating the IGP
698 advertisement.";
699 }
700 }
701
702 container constraints {
703 description
704 "Constraints contained within the Bandwidth
705 Constraints sub-TLV";
706
707 list constraint {
708 key "constraint-id";
709
710 description
711 "List of the constraints within the Bandwidth
712 Constraints sub-TLV. The BC0 level is indicated by
713 the constraint-id leaf being set to 0, with BCN
714 being indicated by constraint-id N.";
715
716 leaf constraint-id {
717 type leafref {
718 path "../state/constraint-id";
719 }
720 description
721 "Reference to the unique ID for the BCN level.";
722 }
723
724 container state {
725 description
726 "Operational state parameters of the BCN level";
727
728 leaf constraint-id {
729 type uint32;
730 description
731 "Unique reference for the bandwidth constraint level. BC0
732 is indicated by this leaf being set to zero, with BCN
733 represented by this leaf being set to N.";
734 }
735
736 leaf bandwidth {
737 type oc-types:ieeefloat32;
738 units "bytes per second";
739 description
740 "The bandwidth constraint, expressed as a 32-bit IEEE
741 floating point number expressed in bytes per second.";
742 }
743 }
744 }
745 }
746 }
747 }
748
749 container unconstrained-lsp {
750 when "../state/type = " +
751 "'oc-isis-lsdb-types:IS_REACHABILITY_UNCONSTRAINED_LSP'" {
752 description
753 "Only include the unconstrained LSP container when the
754 sub-TLV is type 23.";
755 }
756 description
757 "This container defines sub-TLV 23.";
758 container state {
759 description
760 "State parameters of sub-TLV 23.";
761
762 uses isis-lsdb-subtlv-type-state;
763
764 leaf count {
765 type uint16;
766 description
767 "Unconstrained TE LSP count(TE Label Switched Paths
768 (LSPs) signalled with zero bandwidth).";
769 reference
770 "RFC5330: A Link-Type sub-TLV to Convey the Number of
771 Traffic Engineering Label Switched Paths Signalled
772 with Zero Reserved Bandwidth across a Link. sub-TLV
773 23: TLV 22,23,141,222,223";
774 }
775 }
776 }
777
778 container adjacency-sids {
779 when "../state/type = 'oc-isis-lsdb-types:IS_REACHABILITY_ADJ_SID'" {
780 description
781 "Only include the adjacency SIDs container when the
782 sub-TLV type is 31";
783 }
784
785 description
786 "This container defines segment routing adjacency SIDs.";
787
788 list adjacency-sid {
789 key "value";
790
791 description
792 "Adjacency Segment-IDs List. An IGP-Adjacency Segment is
793 an IGP segment attached to a unidirectional adjacency or
794 a set of unidirectional adjacencies. By default, an IGP-
795 Adjacency Segment is local to the node which advertises
796 it.";
797
798 leaf value {
799 type leafref {
800 path "../state/value";
801 }
802 description
803 "Reference to the value of the Adjacency-SID.";
804 }
805
806 container state {
807 description
808 "State parameters of Adjacency-SID.";
809
810 leaf value {
811 type uint32;
812 description
813 "Adjacency-SID value.";
814 }
815
816 leaf-list flags {
817 type enumeration {
818 enum ADDRESS_FAMILY {
819 description
820 "Address-family flag. When unset, the Adj-SID
821 refers to an adjacency with outgoing IPv4
822 encapsulation. If set then the Adj-SID refers to
823 an adjacency with outgoing IPv6 encapsulation.";
824 }
825 enum BACKUP {
826 description
827 "Backup flag. When set, the Adj-SID refers to an
828 adjacency being protected (e.g.: using IPFRR or
829 MPLS-FRR).";
830 }
831 enum VALUE {
832 description
833 "Value flag. When set, the SID carries a value
834 (instead of an index). By default the flag is
835 SET.";
836 }
837 enum LOCAL {
838 description
839 "Local flag. When set, the value/index carried
840 by the SID has local significance. By default
841 the flag is SET.";
842 }
843 enum SET {
844 description
845 "Set flag. When set, the S-Flag indicates that
846 the Adj-SID refers to a set of adjacencies.";
847 }
848 }
849 description
850 "Flags associated with Adj-Segment-ID.";
851 }
852
853 leaf weight {
854 type uint8;
855 description
856 "Value that represents the weight of the Adj-SID for
857 the purpose of load balancing.";
858 }
859 }
860 }
861
862 reference
863 "draft-ietf-isis-segment-routing-extensions. sub-TLV 31:
864 TLV 22, 222, 223, 141. ";
865 }
866
867 container lan-adjacency-sids {
868 when "../state/type = " +
869 "'oc-isis-lsdb-types:IS_REACHABILITY_ADJ_LAN_SID'" {
870 description
871 "Only include the LAN adjacency SID container when
872 the sub-TLV is type 32.";
873 }
874 description
875 "This container defines segment routing LAN adjacency
876 SIDs";
877
878 list lan-adjacency-sid {
879 key "value";
880
881 description
882 "Adjacency Segment-IDs List. An IGP-Adjacency Segment is
883 an IGP segment attached to a unidirectional adjacency or
884 a set of unidirectional adjacencies. By default, an IGP-
885 Adjacency Segment is local to the node which advertises
886 it.";
887
888 leaf value {
889 type leafref {
890 path "../state/value";
891 }
892 description
893 "Reference to the value of the LAN Adjacency-SID.";
894 }
895
896 container state {
897 description
898 "State parameters of LAN Adjacency-SID.";
899
900 leaf value {
901 type uint32;
902 description
903 "LAN Adjacency-SID value.";
904 }
905
906 leaf-list flags {
907 type enumeration {
908 enum ADDRESS_FAMILY {
909 description
910 "Address-family flag. When unset, the Adj-SID
911 refers to an adjacency with outgoing IPv4
912 encapsulation. If set then the Adj-SID refers to
913 an adjacency with outgoing IPv6 encapsulation.";
914 }
915 enum BACKUP {
916 description
917 "Backup flag. When set, the Adj-SID refers to an
918 adjacency being protected (e.g.: using IPFRR or
919 MPLS-FRR).";
920 }
921 enum VALUE {
922 description
923 "Value flag. When set, the SID carries a value
924 (instead of an index). By default the flag is
925 SET.";
926 }
927 enum LOCAL {
928 description
929 "Local flag. When set, the value/index carried
930 by the SID has local significance. By default
931 the flag is SET.";
932 }
933 enum SET {
934 description
935 "Set flag. When set, the S-Flag indicates that
936 the Adj-SID refers to a set of adjacencies.";
937 }
938 }
939 description
940 "Flags associated with LAN-Adj-Segment-ID.";
941 }
942
943 leaf weight {
944 type uint8;
945 description
946 "Value that represents the weight of the Adj-SID
947 for the purpose of load balancing.";
948 }
949
950 leaf neighbor-id {
951 type oc-isis-types:system-id;
952 description
953 "System ID of the neighbor associated with the LAN-
954 Adj-Segment-ID value.";
955 }
956 }
957 }
958
959 reference
960 "draft-ietf-isis-segment-routing-extensions. sub-TLV 32:
961 TLV 22, 222, 223, 141.";
962 }
963
964 container link-delay {
965 when "../state/type = " +
966 "'oc-isis-lsdb-types:IS_REACHABILITY_LINK_DELAY'" {
967 description
968 "Include the link delay container only when the sub-TLV
969 type is type 33.";
970 }
971 description
972 "This container defines unidirectional link delay.";
973
974 reference
975 "RFC7810: IS-IS Traffic Engineering (TE) Metric
976 Extensions. sub-TLV 33: TLV 22, 23, 141, 222, 223.";
977
978 container state {
979 description
980 "State parameters of IS Extended Reachability sub-TLV
981 33.";
982
983 uses isis-lsdb-link-characteristics-a-bit;
984
985 leaf delay {
986 type uint32;
987 units microseconds;
988 description
989 "Average link delay value (in microseconds) between
990 two directly connected IS-IS neighbors over a
991 configurable interval.";
992 }
993 }
994 }
995
996 container min-max-link-delay {
997 when "../state/type = " +
998 "'oc-isis-lsdb-types:IS_REACHABILITY_MIN_MAX_LINK_DELAY'" {
999 description
1000 "Only include the min/max link delay container when the
1001 sub-TLV is type 34.";
1002 }
1003 description
1004 "This container defines min/max link delay.";
1005
1006 reference
1007 "RFC7810: IS-IS Traffic Engineering (TE) Metric
1008 Extensions. sub-TLV 34: TLV 22, 23, 141, 222, 223.";
1009
1010 container state {
1011 description
1012 "State parameters of IS Extended Reachability sub-TLV
1013 34.";
1014
1015 uses isis-lsdb-link-characteristics-a-bit;
1016
1017 leaf min-delay {
1018 type uint32;
1019 units microseconds;
1020 description
1021 "Minimum measured link delay value(in microseconds)
1022 between two directly connected IS-IS neighbors over a
1023 configurable interval.";
1024 }
1025
1026 leaf max-delay {
1027 type uint32;
1028 units microseconds;
1029 description
1030 "Maximum measured link delay value(in microseconds)
1031 between two directly connected IS-IS neighbors over a
1032 configurable interval.";
1033 }
1034 }
1035 }
1036
1037 container link-delay-variation {
1038 when "../state/type = " +
1039 "'oc-isis-lsdb-types:IS_REACHABILITY_LINK_DELAY_VARIATION'" {
1040 description
1041 "Only include the link delay variation container when
1042 the sub-TLV is type 35.";
1043 }
1044 description
1045 "This container defines unidirectional link delay
1046 variation.";
1047
1048 reference
1049 "RFC7810: IS-IS Traffic Engineering (TE) Metric
1050 Extensions. sub-TLV 35: TLV 22,23,141,222,223.";
1051
1052 container state {
1053 description
1054 "State parameters of IS Extended Reachability sub-TLV
1055 35.";
1056
1057 leaf delay {
1058 type uint32;
1059 units microseconds;
1060 description
1061 "Average link delay between two directly connected IS-
1062 IS neighbors over a configurable interval.";
1063 }
1064 }
1065 }
1066
1067 container link-loss {
1068 when "../state/type = " +
1069 "'oc-isis-lsdb-types:IS_REACHABILITY_LINK_LOSS'" {
1070 description
1071 "Only include the link loss container when the sub-TLV
1072 is type 36.";
1073 }
1074 description
1075 "This container defines unidirectional link loss delay.";
1076
1077 reference
1078 "RFC7810: IS-IS Traffic Engineering (TE) Metric
1079 Extensions. sub-TLV 36: TLV 22, 23, 141, 222, 223.";
1080
1081 container state {
1082 description
1083 "State parameters of IS Extended Reachability sub-TLV
1084 36.";
1085
1086 uses isis-lsdb-link-characteristics-a-bit;
1087
1088 leaf link-loss {
1089 type uint32;
1090 description
1091 "Link packet loss as a percentage of the total traffic
1092 sent over a configurable interval. The basic unit is
1093 0.000003%, where (2^24 - 2) is 50.331642%. This value
1094 is the highest packet-loss percentage that can be
1095 expressed (the assumption being that precision is more
1096 important on high-speed links than the ability to
1097 advertise loss rates greater than this, and that high-
1098 speed links with over 50% loss are unusable).
1099 Therefore, measured values that are larger than the
1100 field maximum SHOULD be encoded as the maximum
1101 value.";
1102 }
1103 }
1104 }
1105
1106 container residual-bandwidth {
1107 when "../state/type = " +
1108 "'oc-isis-lsdb-types:IS_REACHABILITY_RESIDUAL_BANDWIDTH'" {
1109 description
1110 "Only include the resdiual bandwidth container when the
1111 sub-TLV is type 37.";
1112 }
1113 description
1114 "This container defines unidirectional residual
1115 bandwidth.";
1116
1117 reference
1118 "RFC7810: IS-IS Traffic Engineering (TE) Metric
1119 Extensions. sub-TLV 37: TLV 22, 23, 141, 222, 223.";
1120
1121 container state {
1122 description
1123 "State parameters of IS Extended Reachability sub-TLV
1124 37.";
1125
1126 leaf bandwidth {
1127 type oc-types:ieeefloat32;
1128 units "bytes per second";
1129 description
1130 "Residual bandwidth on a link,forwarding adjacency
1131 [RFC4206], or bundled link in IEEE floating-point
1132 format with units of bytes per second. For a link or
1133 forwarding adjacency, residual bandwidth is defined to
1134 be the Maximum Bandwidth [RFC5305] minus the bandwidth
1135 currently allocated to RSVP-TE label switched paths.
1136 For a bundled link, residual bandwidth is defined to
1137 be the sum of the component link residual
1138 bandwidths.";
1139 }
1140 }
1141 }
1142
1143 container available-bandwidth {
1144 when "../state/type = " +
1145 "'oc-isis-lsdb-types:IS_REACHABILITY_AVAILABLE_BANDWIDTH'" {
1146 description
1147 "Only include the available bandwdith container when the
1148 sub-TLV is type 38.";
1149 }
1150 description
1151 "This container defines unidirectional lavailable
1152 bandwidth.";
1153
1154 reference
1155 "RFC7810: IS-IS Traffic Engineering (TE) Metric
1156 Extensions. sub-TLV 38: TLV 22, 23, 141, 222, 223.";
1157
1158 container state {
1159 description
1160 "State parameters of IS Extended Reachability sub-TLV
1161 38.";
1162
1163 uses isis-lsdb-subtlv-type-state;
1164
1165 leaf bandwidth {
1166 type oc-types:ieeefloat32;
1167 units "bytes per second";
1168 description
1169 "The available bandwidth on a link, forwarding
1170 adjacency, or bundled link in IEEE floating-point
1171 format with units of bytes per second. For a link or
1172 forwarding adjacency, available bandwidth is defined
1173 to be residual bandwidth minus the measured bandwidth
1174 used for the actual forwarding of non-RSVP-TE label
1175 switched path packets. For a bundled link, available
1176 bandwidth is defined to be the sum of the component
1177 link available bandwidths minus the measured bandwidth
1178 used for the actual forwarding of non-RSVP-TE label
1179 switched path packets. For a bundled link, available
1180 bandwidth is defined to be the sum of the component
1181 link available bandwidths.";
1182 }
1183 }
1184 }
1185
1186 container utilized-bandwidth {
1187 when "../state/type = " +
1188 "'oc-isis-lsdb-types:IS_REACHABILITY_UTILIZED_BANDWIDTH'" {
1189 description
1190 "Only include the utilized bandwidth container when the
1191 TLV is type 39.";
1192 }
1193 description
1194 "This container defines unidirectional utilized
1195 bandwidth.";
1196
1197 reference
1198 "RFC7810: IS-IS Traffic Engineering (TE) Metric
1199 Extensions. sub-TLV 39: TLV 22, 23, 141, 222, 223.";
1200
1201 container state {
1202 description
1203 "State parameters of IS Extended Reachability sub-TLV
1204 39.";
1205
1206 uses isis-lsdb-subtlv-type-state;
1207
1208 leaf bandwidth {
1209 type oc-types:ieeefloat32;
1210 units "bytes per second";
1211 description
1212 "The bandwidth utilization on a link, forwarding
1213 adjacency, or bundled link in IEEE floating-point
1214 format with units of bytes per second. For a link or
1215 forwarding adjacency, bandwidth utilization represents
1216 the actual utilization of the link (i.e., as measured
1217 by the advertising node). For a bundled link,
1218 bandwidth utilization is defined to be the sum of the
1219 component link bandwidth utilizations.";
1220 }
1221 }
1222 }
1223 }
1224 }
1225
1226 uses isis-lsdb-undefined-subtlv;
1227 }
1228
1229 grouping isis-lsdb-undefined-tlv {
1230 description
1231 "Grouping for unknown TLVs in the IS-IS LSDB";
1232
1233 container undefined-tlvs {
1234 description
1235 "Surrounding container for a list of unknown TLVs.";
1236
1237 list undefined-tlv {
1238 key "type";
1239 description
1240 "List of TLVs that are not defined within the model, or are
1241 not recognised by the system.";
1242
1243 leaf type {
1244 type leafref {
1245 path "../state/type";
1246 }
1247 description
1248 "Reference to the undefined TLV's type";
1249 }
1250
1251 container state {
1252 description
1253 "State parameters of the undefined TLV.";
1254
1255 uses undefined-tlv-state;
1256 }
1257 }
1258 }
1259 }
1260
1261 grouping isis-lsdb-undefined-subtlv {
1262 description
1263 "Grouping for unknown Sub-TLVs in the IS-IS LSDB.";
1264
1265 container undefined-subtlvs {
1266 description
1267 "This container describes undefined ISIS TLVs.";
1268
1269 list undefined-subtlv {
1270 key "type";
1271
1272 description
1273 "Sub-TLVs that are not defined in the model or not
1274 recognised by system.";
1275
1276 leaf type {
1277 type leafref {
1278 path "../state/type";
1279 }
1280 description
1281 "Reference to the type of the undefined sub-TLV";
1282 }
1283
1284 container state {
1285 description
1286 "State parameters of the undefined sub-TLV.";
1287
1288 uses undefined-subtlv-state;
1289 }
1290 }
1291 }
1292 }
1293
1294 grouping isis-lsdb-prefix-state {
1295 description
1296 "This grouping defines prefix reachability.";
1297
1298 container subtlvs {
1299 description
1300 "This container describes IS prefix sub-TLVs.";
1301
1302 list subtlv {
1303 key "type";
1304
1305 description
1306 "List of subTLV types in the LSDB for the specified TLV.";
1307
1308 leaf type {
1309 type leafref {
1310 path "../state/type";
1311 }
1312 description
1313 "Reference to the sub-TLV type";
1314 }
1315
1316 container state {
1317 description
1318 "State parameters for a prefix.";
1319
1320 uses isis-lsdb-subtlv-type-state;
1321 }
1322
1323 container tag {
1324 when "../state/type = " +
1325 "'oc-isis-lsdb-types:IP_REACHABILITY_TAG'" {
1326 description
1327 "Only include the tag container when the sub-TLV is type
1328 1.";
1329 }
1330 description
1331 "This container defines sub-TLV 1.";
1332
1333 container state {
1334 description
1335 "State parameters of sub-TLV 1.";
1336
1337 leaf-list tag32 {
1338 type uint32;
1339 description
1340 "List of 32-bit tags associated with the prefix. Example
1341 uses of these tags include carrying BGP standard (or
1342 extended) communities and controlling redistribution
1343 between levels and areas, different routing protocols,
1344 or multiple instances of IS-IS running on the same
1345 router.";
1346 reference
1347 "RFC5130: A Policy Control Mechanism in IS-IS Using
1348 Administrative Tags. sub-TLV 1.";
1349 }
1350 }
1351 }
1352
1353 container tag64 {
1354 when "../state/type = " +
1355 "'oc-isis-lsdb-types:IP_REACHABILITY_TAG64'" {
1356 description
1357 "Only include the tag64 container when the sub-TLV is type
1358 2.";
1359 }
1360 description
1361 "This container defines sub-TLV 2.";
1362
1363 container state {
1364 description
1365 "State parameters of sub-TLV 2.";
1366
1367 leaf-list tag64 {
1368 type uint64;
1369 description
1370 "List of 64-bit tags associated with the prefix. Example
1371 uses of these tags include carrying BGP standard (or
1372 extended) communities and controlling redistribution
1373 between levels and areas, different routing protocols,
1374 or multiple instances of IS-IS running on the same
1375 router.";
1376 reference
1377 "RFC5130: A Policy Control Mechanism in IS-IS Using
1378 Administrative Tags. sub-TLV 2.";
1379 }
1380 }
1381 }
1382
1383 container flags {
1384 when "../state/type = " +
1385 "'oc-isis-lsdb-types:IP_REACHABILITY_PREFIX_FLAGS'" {
1386 description
1387 "Only include the flags container when the sub-TLV is type
1388 4.";
1389 }
1390 description
1391 "This container defines sub-TLV 4.";
1392
1393 container state {
1394 description
1395 "State parameters of sub-TLV 4.";
1396
1397 uses isis-lsdb-subtlv-type-state;
1398
1399 leaf-list flags {
1400 type enumeration {
1401 enum EXTERNAL_FLAG {
1402 description
1403 "External prefix flag. Set if the prefix has been
1404 redistributed from another protocol. This includes
1405 the case where multiple virtual routers are
1406 supported and the source of the redistributed prefix
1407 is another IS-IS instance.";
1408 }
1409 enum READVERTISEMENT_FLAG {
1410 description
1411 "Readvertisement flag. Set when the prefix has been
1412 leaked from one level to another (upwards or
1413 downwards).";
1414 }
1415 enum NODE_FLAG {
1416 description
1417 "Node flag. Set when the prefix identifies the
1418 advertising router, i.e., the prefix is a host
1419 prefix advertising a globally reachable address
1420 typically associated with a loopback address.";
1421 }
1422 }
1423 description
1424 "Additional prefix reachability flags.";
1425
1426 reference
1427 "RFC7794: IS-IS Prefix Attributes for Extended IPv4 and
1428 IPv6 Reachability. sub-TLV 4.";
1429 }
1430 }
1431 }
1432
1433 container ipv4-source-router-id {
1434 when "../state/type = " +
1435 "'oc-isis-lsdb-types:IP_REACHABILITY_IPV4_ROUTER_ID'" {
1436 description
1437 "Only include the IPv4 Source Router ID container when
1438 the sub-TLV is type 11.";
1439 }
1440 description
1441 "This container defines sub-TLV 11.";
1442
1443 container state {
1444 description
1445 "State parameters of sub-TLV 11.";
1446
1447 uses isis-lsdb-subtlv-type-state;
1448
1449 leaf router-id {
1450 type inet:ipv4-address;
1451 description
1452 "IPv4 Source router ID address. In cases where the
1453 advertisement is an identifier for the advertising
1454 router (e.g., with the N-flag set in the Prefix
1455 Attribute Flags sub-TLV), it may be useful for other
1456 routers to know the source of the advertisement. When
1457 reachability advertisement is leaked from one level to
1458 another, Router ID advertised is always the Router ID
1459 of the IS-IS instance that originated the
1460 advertisement. This would be true even if the prefix
1461 had been learned from another protocol.";
1462 reference
1463 "RFC7794: IS-IS Prefix Attributes for Extended IPv4
1464 and IPv6 Reachability. sub-TLV 11";
1465 }
1466 }
1467 }
1468
1469 container ipv6-source-router-id {
1470 when "../state/type = " +
1471 "'oc-isis-lsdb-types:IP_REACHABILITY_IPV6_ROUTER_ID'" {
1472 description
1473 "Only include the IPv6 Source Router ID container when
1474 the sub-TLV is type 12.";
1475 }
1476 description
1477 "This container defines sub-TLV 12.";
1478
1479 container state {
1480 description
1481 "State parameters of sub-TLV 12.";
1482
1483 uses isis-lsdb-subtlv-type-state;
1484
1485 leaf router-id {
1486 type inet:ipv6-address;
1487 description
1488 "IPv6 Source router ID address. In cases where the
1489 advertisement is an identifier for the advertising
1490 router (e.g., with the N-flag set in the Prefix
1491 Attribute Flags sub-TLV), it may be useful for other
1492 routers to know the source of the advertisement. When
1493 reachability advertisement is leaked from one level to
1494 another, Router ID advertised is always the Router ID
1495 of the IS-IS instance that originated the
1496 advertisement. This would be true even if the prefix
1497 had been learned from another protocol.";
1498 reference
1499 "RFC7794: IS-IS Prefix Attributes for Extended IPv4
1500 and IPv6 Reachability. sub-TLV 12.";
1501 }
1502 }
1503 }
1504
1505 uses isis-lsdb-prefix-sid-state;
1506 }
1507 }
1508
1509 uses isis-lsdb-undefined-subtlv;
1510 }
1511
1512 grouping isis-lsdb-prefix-sid-state {
1513 description
1514 "This grouping defines ISIS Prefix SID.";
1515
1516 container prefix-sids {
1517 when "../state/type = " +
1518 "'oc-isis-lsdb-types:IP_REACHABILITY_PREFIX_SID'" {
1519 description
1520 "Only include the Prefix SID container when
1521 the sub-TLV is type 3.";
1522 }
1523 description
1524 "This container defines segment routing extensions for
1525 prefixes.";
1526
1527 reference
1528 "draft-ietf-isis-segment-routing-extensions. sub-TLV 3: TLV
1529 135, 235, 236, 237.";
1530
1531 list prefix-sid {
1532 key "value";
1533
1534 description
1535 "Prefix Segment-ID list. IGP-Prefix Segment is an IGP segment
1536 attached to an IGP prefix. An IGP-Prefix Segment is global
1537 (unless explicitly advertised otherwise) within the SR/IGP
1538 domain.";
1539
1540 leaf value {
1541 type leafref {
1542 path "../state/value";
1543 }
1544 description
1545 "Reference to the value of the prefix SID.";
1546 }
1547
1548 container state {
1549 description
1550 "State parameters for Prefix-SID.";
1551
1552 leaf value {
1553 type uint32;
1554 description
1555 "IGP Prefix-SID value.";
1556 }
1557
1558 leaf-list flags {
1559 type enumeration {
1560 enum READVERTISEMENT {
1561 description
1562 "Readvertisment flag. When set, the prefix to which
1563 this Prefix-SID is attached, has been propagated by
1564 the router either from another level or from
1565 redistribution.";
1566 }
1567 enum NODE {
1568 description
1569 "Node flag. When set, the Prefix-SID refers to the
1570 router identified by the prefix. Typically, the
1571 N-Flag is set on Prefix-SIDs attached to a router
1572 loopback address.";
1573 }
1574 enum NO_PHP {
1575 description
1576 "Penultimate-Hop-Popping flag. When set, then the
1577 penultimate hop MUST NOT pop the Prefix-SID before
1578 delivering the packet to the node that advertised
1579 the Prefix-SID.";
1580 }
1581 enum EXPLICIT_NULL {
1582 description
1583 "Explicit-Null flag. When set, any upstream neighbor
1584 of the Prefix-SID originator MUST replace the
1585 Prefix-SID with a Prefix-SID having an Explicit-NULL
1586 value (0 for IPv4 and 2 for IPv6) before forwarding
1587 the packet.";
1588 }
1589 enum VALUE {
1590 description
1591 "Value flag. When set, the Prefix-SID carries a
1592 value (instead of an index). By default the flag is
1593 UNSET.";
1594 }
1595 enum LOCAL {
1596 description
1597 "Local flag. When set, the value/index carried by
1598 the Prefix-SID has local significance. By default
1599 the flag is UNSET.";
1600 }
1601 }
1602 description
1603 "Flags associated with Prefix Segment-ID.";
1604 }
1605
1606 leaf algorithm {
1607 type uint8;
1608 description
1609 "Prefix-SID algorithm to be used for path computation.";
1610 }
1611 }
1612 }
1613 }
1614 }
1615
1616 grouping isis-lsdb-common-metric-specification {
1617 description
1618 "Common definitions of the metric in IS-IS.";
1619
1620 container default-metric {
1621 description
1622 "This container defines ISIS Default Metric.";
1623
1624 container state {
1625 description
1626 "State parameters for default-metric.";
1627
1628 leaf flags {
1629 type enumeration {
1630 enum INTERNAL {
1631 description
1632 "When set to zero, indicates internal metrics.";
1633 }
1634 }
1635 description
1636 "ISIS Default-Metric Flags.";
1637 }
1638
1639 leaf metric {
1640 type oc-isis-types:narrow-metric;
1641 description
1642 "ISIS default metric value. This is a metric understood by
1643 every Intermediate system in the domain. Each circuit
1644 shall have a positive integral value assigned for this
1645 metric. The value may be associated with any objective
1646 function of the circuit, but by convention is intended to
1647 measure the capacity of the circuit for handling traffic,
1648 for example, its throughput in bits-per-second. Higher
1649 values indicate a lower capacity.";
1650 }
1651 }
1652 }
1653
1654 container delay-metric {
1655 description
1656 "This container defines the ISIS delay metric.";
1657
1658 container state {
1659 description
1660 "State parameters of delay-metric.";
1661
1662 leaf metric {
1663 type oc-isis-types:narrow-metric;
1664 description
1665 "ISIS delay metric value. This metric measures the transit
1666 delay of the associated circuit. It is an optional metric,
1667 which if assigned to a circuit shall have a positive
1668 integral value. Higher values indicate a longer transit
1669 delay.";
1670 }
1671
1672 leaf-list flags {
1673 type isis-metric-flags;
1674 description
1675 "ISIS Delay Metric Flags.";
1676 }
1677 }
1678 }
1679
1680 container expense-metric {
1681 description
1682 "This container defines the ISIS expense metric.";
1683
1684 container state {
1685 description
1686 "State parameters of expense-metric.";
1687
1688 leaf metric {
1689 type oc-isis-types:narrow-metric;
1690 description
1691 "ISIS expense metric value. This metric measures the
1692 monetary cost of utilising the associated circuit. It is
1693 an optional metric, which if assigned to a circuit shall
1694 have a positive integral value1). Higher values indicate a
1695 larger monetary expense.";
1696 }
1697
1698 leaf-list flags {
1699 type isis-metric-flags;
1700 description
1701 "ISIS Expense Metric Flags.";
1702 }
1703 }
1704 }
1705
1706 container error-metric {
1707 description
1708 "This container defines the ISIS error metric.";
1709
1710 container state {
1711 description
1712 "State parameters of error-metric.";
1713
1714 leaf metric {
1715 type oc-isis-types:narrow-metric;
1716 description
1717 "ISIS error metric value. This metric measures the
1718 residual error probability of the associated circuit. It
1719 is an optional metric, which if assigned to a circuit
1720 shall have a non-zero value. Higher values indicate a
1721 larger probability of undetected errors on the circuit.";
1722 }
1723
1724 leaf-list flags {
1725 type isis-metric-flags;
1726 description
1727 "IS-IS error metric flags.";
1728 }
1729 }
1730 }
1731 }
1732
1733 grouping isis-lsdb-neighbor {
1734 description
1735 "This grouping defines attributes of an ISIS standard
1736 neighbor.";
1737
1738 container state {
1739 description
1740 "State parameters of IS standard neighbor.";
1741
1742 leaf system-id {
1743 type oc-isis-types:system-id;
1744 description
1745 "System-ID of IS neighbor.";
1746 }
1747 }
1748
1749 uses isis-lsdb-common-metric-specification;
1750
1751 }
1752
1753 grouping ipv4-prefix-attributes-state {
1754 description
1755 "This group defines attributes of an IPv4 standard prefix.";
1756
1757 container state {
1758 description
1759 "State parameters of IPv4 standard prefix.";
1760
1761 leaf up-down {
1762 type boolean;
1763 description
1764 "The up/down bit. Set if a prefix is advertised from a
1765 higher level to a lower level (e.g., level 2 to level 1),
1766 indicating that the prefix has traveled down the hierarchy.
1767 Prefixes that have the up/down bit set may only be
1768 advertised down the hierarchy, i.e., to lower levels. When a
1769 prefix is first injected into IS-IS, the bit is UNSET.";
1770 }
1771
1772 leaf prefix {
1773 type inet:ipv4-prefix;
1774 description
1775 "IPv4 prefix contained within reachability TLVs.";
1776 }
1777 }
1778
1779 uses isis-lsdb-common-metric-specification;
1780 }
1781
1782 grouping isis-lsdb-common-mt-id {
1783 description
1784 "Common definition of the multi-topology ID";
1785
1786 leaf mt-id {
1787 type uint16 {
1788 range "0..4095";
1789 }
1790 description
1791 "Multi-topology ID";
1792 }
1793 }
1794
1795 grouping ipv4-prefix-extended-state {
1796 description
1797 "This grouping defines attributes of an IPv4 extended prefix.";
1798
1799 container state {
1800 description
1801 "State parameters of an IPv4 extended prefix.";
1802 uses ipv4-prefix-extended-params-state;
1803 }
1804
1805 uses isis-lsdb-prefix-state;
1806 }
1807
1808 grouping ipv4-mt-prefix-extended-state {
1809 description
1810 "State parameters that relate to an IPv4 prefix in a
1811 multi-topology context.";
1812
1813 container state {
1814 description
1815 "State parameters of an IPv4 extended prefix.";
1816 uses ipv4-prefix-extended-params-state;
1817 uses isis-lsdb-common-mt-id;
1818 }
1819
1820 uses isis-lsdb-prefix-state;
1821 }
1822
1823 grouping ipv4-prefix-extended-params-state {
1824 description
1825 "State parameters that relate to an IPv4 prefix";
1826
1827 leaf up-down {
1828 type boolean;
1829 description
1830 "The up/down bit. Set if a prefix is advertised from a
1831 higher level to a lower level (e.g., level 2 to level 1),
1832 indicating that the prefix has traveled down the hierarchy.
1833 Prefixes that have the up/down bit set may only be
1834 advertised down the hierarchy, i.e., to lower levels. When a
1835 prefix is first injected into IS-IS, the bit is UNSET.";
1836 }
1837
1838 leaf s-bit {
1839 type boolean;
1840 description
1841 "The Sub-TLV present bit. If UNSET, the octets of Sub-TLVs
1842 are not present. Otherwise, the bit is set and the octet
1843 following the prefix will contain the length of the Sub-TLV
1844 portion of the structure.";
1845 }
1846
1847 leaf prefix {
1848 type inet:ipv4-prefix;
1849 description
1850 "IPv4 prefix contained within extended reachability TLVs.";
1851 }
1852
1853 leaf metric {
1854 type oc-isis-types:wide-metric;
1855 description
1856 "ISIS metric value.";
1857 }
1858 }
1859
1860 grouping ipv6-prefix-extended-state {
1861 description
1862 "State parameters relating to an IPv6 prefix.";
1863
1864 container state {
1865 description
1866 "State parameters of IPv6 prefix attributes";
1867
1868 uses ipv6-prefix-extended-params-state;
1869 }
1870
1871 uses isis-lsdb-prefix-state;
1872 }
1873
1874 grouping ipv6-mt-prefix-extended-state {
1875 description
1876 "State parameters relating to a multi-topology IPv6
1877 prefix.";
1878
1879 container state {
1880 description
1881 "State parameters relating an IPv6 prefix attribute";
1882 uses ipv6-prefix-extended-params-state;
1883 uses isis-lsdb-common-mt-id;
1884 }
1885
1886 uses isis-lsdb-prefix-state;
1887 }
1888
1889 grouping ipv6-prefix-extended-params-state {
1890 description
1891 "Common parameters of an IPv6 extended prefix.";
1892
1893 leaf up-down {
1894 type boolean;
1895 description
1896 "The up/down bit. Set if a prefix is advertised from a
1897 higher level to a lower level (e.g., level 2 to level 1),
1898 indicating that the prefix has traveled down the hierarchy.
1899 Prefixes that have the up/down bit set may only be
1900 advertised down the hierarchy, i.e., to lower levels. When a
1901 prefix is first injected into IS-IS, the bit is UNSET.";
1902 }
1903
1904 leaf x-bit {
1905 type boolean;
1906 description
1907 "The external bit. Set when the prefix was distributed into
1908 IS-IS from another routing protocol.";
1909 }
1910
1911 leaf s-bit {
1912 type boolean;
1913 description
1914 "The sub-tlv present bit. If UNSET, the octets of Sub-TLVs
1915 are not present. Otherwise, the bit is set and the octet
1916 following the prefix will contain the length of the Sub-TLV
1917 portion of the structure.";
1918 }
1919
1920 leaf prefix {
1921 type inet:ipv6-prefix;
1922 description
1923 "IPv6 prefix contained within extended reachability TLVs.";
1924 }
1925
1926 leaf metric {
1927 type oc-isis-types:wide-metric;
1928 description
1929 "ISIS metric value.";
1930 }
1931 }
1932
1933 grouping mt-isis-neighbor {
1934 description
1935 "This grouping defines list of ISIS multi-topology neighbors for
1936 extended ISIS LSP(multiple system IDs).";
1937
1938 container state {
1939 description
1940 "State parameters of MT neighbor.";
1941
1942 leaf mt-id {
1943 type uint16 {
1944 range "0..4095";
1945 }
1946 description
1947 "Identifier of a topology being announced.";
1948 }
1949
1950 leaf system-id {
1951 type oc-isis-types:system-id;
1952 description
1953 "System-id of the IS neighbor.";
1954 }
1955
1956 leaf metric {
1957 type oc-isis-types:wide-metric;
1958 description
1959 "ISIS metric value.";
1960 }
1961 }
1962 uses is-reachability-neighbor-state;
1963 }
1964
1965 grouping isis-lsdb-generic-tlv {
1966 description
1967 "Generic TLV encoding grouping.";
1968
1969 leaf type {
1970 type uint8;
1971 description
1972 "TLV Type.";
1973 }
1974
1975 leaf length {
1976 type uint8;
1977 description
1978 "TLV length.";
1979 }
1980
1981 leaf value {
1982 type binary;
1983 description
1984 "TLV value.";
1985 }
1986 }
1987
1988 grouping undefined-tlv-state {
1989 description
1990 "Generic grouping defining an unknown TLV.";
1991
1992 uses isis-lsdb-generic-tlv;
1993 }
1994
1995 grouping undefined-subtlv-state {
1996 description
1997 "Generic grouping defining an unknown sub-TLV.";
1998
1999 uses isis-lsdb-generic-tlv;
2000 }
2001
2002 grouping lsp-state {
2003 description
2004 "This grouping defines ISIS LSP state information.";
2005
2006 leaf lsp-id {
2007 type leafref {
2008 path "../state/lsp-id";
2009 }
2010
2011 description
2012 "A reference to the Link State PDU ID.";
2013 }
2014
2015 container state {
2016 description
2017 "State parameters of Link State PDU.";
2018
2019 leaf lsp-id {
2020 type oc-isis-types:lsp-id;
2021 description
2022 "LSP ID of the LSP.";
2023 }
2024
2025 leaf maximum-area-addresses {
2026 type uint8;
2027 description
2028 "Number of area addresses permitted for this ISs area. 0
2029 indicates the IS only supports three area addresses (by
2030 default). Any number inclusive of 1 and 254 indicates the
2031 number of areas allowed.";
2032 }
2033
2034 leaf version {
2035 type uint8;
2036 default 1;
2037 description
2038 "PDU version. This is set to 1.";
2039 }
2040
2041 leaf version2 {
2042 type uint8;
2043 default 1;
2044 description
2045 "PDU version2. This is set to 1";
2046 }
2047
2048 leaf id-length {
2049 type uint8;
2050 description
2051 "Length of the ID field of NSAP addresses and NETs used in
2052 this routing domain.";
2053 }
2054
2055 leaf pdu-type {
2056 type enumeration {
2057 enum LEVEL_1 {
2058 description "This enum describes ISIS level 1 PDU.";
2059 }
2060 enum LEVEL_2 {
2061 description "This enum describes ISIS level 2 PDU.";
2062 }
2063 }
2064 description
2065 "Link State PDU type.";
2066 }
2067
2068 leaf remaining-lifetime {
2069 type uint16;
2070 units "seconds";
2071 description
2072 "Remaining lifetime in seconds before the LSP expiration.";
2073 }
2074
2075 leaf sequence-number {
2076 type uint32;
2077 description
2078 "Sequence number of the LSP.";
2079 }
2080
2081 leaf checksum {
2082 type uint16;
2083 description
2084 "Checksum of the LSP.";
2085 }
2086
2087 leaf pdu-length {
2088 type uint16;
2089 description
2090 "Total length of the LSP.";
2091 }
2092
2093 leaf-list flags {
2094 type enumeration {
2095 enum PARTITION_REPAIR {
2096 description
2097 "When set, the originator supports partition
2098 repair.";
2099 }
2100 enum ATTACHED_ERROR {
2101 description
2102 "When set, the originator is attached to another
2103 area using the referred metric.";
2104 }
2105 enum ATTACHED_EXPENSE {
2106 description
2107 "When set, the originator is attached to another
2108 area using the referred metric.";
2109 }
2110 enum ATTACHED_DELAY {
2111 description
2112 "When set, the originator is attached to another
2113 area using the referred metric.";
2114 }
2115 enum ATTACHED_DEFAULT {
2116 description
2117 "When set, the originator is attached to another
2118 area using the referred metric.";
2119 }
2120 enum OVERLOAD {
2121 description
2122 "When set, the originator is overloaded, and must
2123 be avoided in path calculation.";
2124 }
2125 }
2126 description
2127 "LSP Type-Block flags.";
2128 }
2129
2130 leaf is-type {
2131 type oc-isis-types:level-number;
2132 description
2133 "Type of neighboring system.";
2134 }
2135 }
2136
2137 container tlvs {
2138 description
2139 "This container defines Link State PDU State TLVs.";
2140
2141 list tlv {
2142 key "type";
2143
2144 description
2145 "List of TLV types in the LSDB for the specified LSP.";
2146
2147 leaf type {
2148 type leafref {
2149 path "../state/type";
2150 }
2151 description
2152 "Reference to the TLV's type.";
2153 }
2154
2155 container state {
2156 config false;
2157 description
2158 "Operational state parameters relating to the specified
2159 LSP";
2160
2161 uses isis-lsdb-tlv-type-state;
2162 }
2163
2164 container area-address {
2165 when "../state/type = 'oc-isis-lsdb-types:AREA_ADDRESSES'" {
2166 description
2167 "Include area address parameters only when the TLV type
2168 is TLV 1.";
2169 }
2170
2171 description
2172 "This container defines TLV 1.";
2173
2174 container state {
2175 description
2176 "State parameters of ISIS TLV 1.";
2177
2178 leaf-list address {
2179 type oc-isis-types:area-address;
2180 description
2181 "Area adress(es) of the IS. Set of manual area
2182 addresses of this IS.";
2183 reference
2184 "ISO 10589 Intermediate System to Intermediate System
2185 Intra- Domain Routeing Exchange Protocol for use in
2186 Conjunction with the Protocol for Providing the
2187 Connectionless-mode Network Service (ISO 8473 )
2188 International Standard 10589: 2002, Second Edition,
2189 2002. TLV 1.";
2190 }
2191 }
2192 }
2193
2194 container lsp-buffer-size {
2195 when "../state/type = " +
2196 "'oc-isis-lsdb-types:LSP_BUFFER_SIZE'" {
2197 description
2198 "Include the LSP buffer size parameters only when the
2199 TLV type is TLV 14.";
2200 }
2201
2202 description
2203 "This container defines TLV 14 - the LSP Buffer Size
2204 TLV.";
2205
2206 container state {
2207 description
2208 "State parameters of TLV 14.";
2209
2210 leaf size {
2211 type uint16;
2212 units "bytes";
2213 description
2214 "The maximum MTU that the advertising system can
2215 receive, expressed in bytes.";
2216 reference
2217 "ISO 10589 Intermediate System to Intermediate System
2218 Intra- Domain Routeing Exchange Protocol for use in
2219 Conjunction with the Protocol for Providing the
2220 Connectionless-mode Network Service (ISO 8473 )
2221 International Standard 10589: 2002, Second Edition,
2222 2002. TLV 14.";
2223 }
2224 }
2225 }
2226
2227 container nlpid {
2228 when "../state/type = 'oc-isis-lsdb-types:NLPID'" {
2229 description
2230 "Include NLPID specification only when the TLV type is
2231 TLV 129.";
2232 }
2233
2234 description
2235 "This container defines TLV 129.";
2236
2237 container state {
2238 description
2239 "State parameters of ISIS TLV 129.";
2240
2241 uses isis-lsdb-tlv-nlpid-state;
2242 }
2243 }
2244
2245 container hostname {
2246 when "../state/type = 'oc-isis-lsdb-types:DYNAMIC_NAME'" {
2247 description
2248 "Include the dynamic hostname TLV only when the TLV is
2249 type 137.";
2250 }
2251 description
2252 "This container defines TLV 137.";
2253
2254 container state {
2255 description
2256 "State parameters of ISIS TLV 137.";
2257
2258 leaf-list hostname {
2259 type string;
2260 description
2261 "Name of the node.";
2262
2263 reference
2264 "RFC6233: IS-IS Registry Extension for Purges, RFC
2265 5301: Dynamic Hostname Exchange Mechanism for IS-IS.
2266 TLV 137";
2267 }
2268 }
2269 }
2270
2271 container ipv4-interface-addresses {
2272 when "../state/type = " +
2273 "'oc-isis-lsdb-types:IPV4_INTERFACE_ADDRESSES'" {
2274 description
2275 "Include the IPv4 interface addresses TLV only when the
2276 TLV is type 132.";
2277 }
2278 description
2279 "This container defines TLV 132.";
2280
2281 container state {
2282 description
2283 "State parameters of ISIS TLV 132.";
2284
2285 leaf-list address {
2286 type inet:ipv4-address;
2287 description
2288 "IPv4 address(es) of the interface corresponding to
2289 the SNPA over which this PDU is to be transmitted.";
2290 reference
2291 "RFC1195: Use of OSI IS-IS for Routing in TCP/IP and
2292 Dual Environments. TLV 132.";
2293 }
2294 }
2295 }
2296
2297 container ipv6-interface-addresses {
2298 when "../state/type = " +
2299 "'oc-isis-lsdb-types:IPV6_INTERFACE_ADDRESSES'" {
2300 description
2301 "Include the IPv6 interface addresses TLV only when the
2302 TLV is type 232.";
2303 }
2304 description
2305 "This container defines TLV 232.";
2306
2307 container state {
2308 description
2309 "State parameters of ISIS TLV 232.";
2310
2311 leaf-list address {
2312 type inet:ipv6-address;
2313 description
2314 "IPv6 interface addresses of the node. MUST contain
2315 only the non-link-local IPv6 addresses assigned to the
2316 IS.";
2317 reference
2318 "RFC5308: Routing IPv6 with IS-IS. TLV 232.";
2319 }
2320 }
2321 }
2322
2323 container ipv4-te-router-id {
2324 when "../state/type = " +
2325 "'oc-isis-lsdb-types:IPV4_TE_ROUTER_ID'" {
2326 description
2327 "Include the IPv4 traffic engineering router ID TLV only
2328 when the TLV is type 134.";
2329 }
2330 description
2331 "This container defines TLV 134.";
2332
2333 container state {
2334 description
2335 "State parameters of ISIS TLV 134.";
2336
2337 leaf-list router-id {
2338 type inet:ipv4-address;
2339 description
2340 "IPv4 Traffic Engineering router ID of the node. For
2341 traffic engineering, it guarantees that we have a
2342 single stable address that can always be referenced in
2343 a path that will be reachable from multiple hops away,
2344 regardless of the state of the node's interfaces.";
2345 reference
2346 "RFC5305: IS-IS Extensions for Traffic Engineering. TLV
2347 134.";
2348 }
2349 }
2350 }
2351
2352 container ipv6-te-router-id {
2353 when "../state/type = " +
2354 "'oc-isis-lsdb-types:IPV6_TE_ROUTER_ID'" {
2355 description
2356 "Include the IPv6 traffic engineering router ID TLV only
2357 when the TLV is type 140.";
2358 }
2359 description
2360 "This container defines TLV 140.";
2361
2362 container state {
2363 description
2364 "State parameters of ISIS TLV 140.";
2365
2366 leaf-list router-id {
2367 type inet:ipv6-address;
2368 description
2369 "IPv6 Traffic Engineering router ID of the node. For
2370 traffic engineering, it guarantees that we have a
2371 single stable address that can always be referenced in
2372 a path that will be reachable from multiple hops away,
2373 regardless of the state of the node's interfaces.";
2374 reference
2375 "RFC6119: IPv6 Traffic Engineering in IS-IS. TLV
2376 140.";
2377 }
2378 }
2379 }
2380
2381 container instance-ids {
2382 when "../state/type = 'oc-isis-lsdb-types:INSTANCE_ID'" {
2383 description
2384 "Include the ISIS Instance Identifier TLV only when the
2385 TLV is type 7.";
2386 }
2387 description
2388 "This container defines ISIS Instance Identifier TLV.";
2389 reference "RFC6822: IS-IS Multi-Instance. TLV 7.";
2390
2391 list instance-id {
2392 key "instance-id";
2393
2394 description
2395 "A list of instance IDs received within TLV 7 within an
2396 IS-IS LSP. In the case that more than one instance of
2397 TLV 7 is included in the LSP, the instance IDs specified
2398 within the instances are concatenated within this
2399 list.";
2400
2401 leaf instance-id {
2402 type leafref {
2403 path "../state/instance-id";
2404 }
2405 description
2406 "Reference to the unique instance ID.";
2407 }
2408 container state {
2409 description
2410 "State parameters of ISIS TLV 7.";
2411
2412 leaf instance-id {
2413 type uint16;
2414 description
2415 "An Instance Identifier (IID) to uniquely identify
2416 an IS-IS instance. When the IID = 0, the list of
2417 supported ITIDs MUST NOT be present. An IID-TLV with
2418 IID = 0 MUST NOT appear in an SNP or LSP. When the
2419 TLV appears (with a non-zero IID) in an SNP or LSP,
2420 exactly one ITID. MUST be present indicating the
2421 topology with which the PDU is associated. If no
2422 ITIDs or multiple ITIDs are present or the IID is
2423 zero, then the PDU MUST be ignored.";
2424 }
2425
2426 leaf-list topology-id {
2427 type uint16;
2428 description
2429 "Instance-Specific Topology Identifiers (ITIDs).";
2430 }
2431 }
2432 }
2433 }
2434
2435 container ipv4-srlgs {
2436 when "../state/type = 'oc-isis-lsdb-types:IPV4_SRLG'" {
2437 description
2438 "Include the IPv4 SRLG TLV only when the TLV is type
2439 138.";
2440 }
2441 description
2442 "This container defines ISIS SRLG TLV 138.";
2443
2444 reference
2445 "RFC5307: IS-IS Extensions in Support of Generalized
2446 Multi-Protocol Label Switching (GMPLS). TLV 138.";
2447
2448 list ipv4-srlg {
2449 key "instance-number";
2450
2451 description
2452 "Instance of the IPv4 SRLG TLV";
2453
2454 leaf instance-number {
2455 type leafref {
2456 path "../state/instance-number";
2457 }
2458 description
2459 "Reference to the instance number of TLV 138.";
2460 }
2461
2462 container state {
2463 description
2464 "State parameters of TLV 138.";
2465
2466 leaf instance-number {
2467 type uint32;
2468 description
2469 "An arbitrary unsigned 32-bit integer used to
2470 disambiguate the instance of TLV 138. The instance
2471 identifier is synthesised by the system
2472 and may be renumbered for the same SRLG definition
2473 in subsequent advertised LSPs if (and only if) the
2474 entire list of SRLGs is replaced.";
2475 }
2476
2477 leaf system-id {
2478 type oc-isis-types:system-id;
2479 description
2480 "Neighbor system ID.";
2481 }
2482
2483 leaf psn-number {
2484 type uint8;
2485 description
2486 "Pseudonode number if the neighbor is on a LAN
2487 interface.";
2488 }
2489
2490 leaf-list flags {
2491 type enumeration {
2492 enum NUMBERED {
2493 description
2494 "When set, the interface is numbered, whereas if
2495 unset indicates that the interface is
2496 unnumbered.";
2497 }
2498 }
2499 description
2500 "SRLG flags.";
2501 }
2502
2503 leaf ipv4-interface-address {
2504 type inet:ipv4-address;
2505 description
2506 "IPv4 interface address.";
2507 }
2508
2509 leaf ipv4-neighbor-address {
2510 type inet:ipv4-address;
2511 description
2512 "IPv4 neighbor address.";
2513 }
2514
2515 leaf-list srlg-value {
2516 type uint32;
2517 description
2518 "List of SRLG values.";
2519 }
2520 }
2521 }
2522 }
2523
2524 container ipv6-srlgs {
2525 when "../state/type = 'oc-isis-lsdb-types:IPV6_SRLG'" {
2526 description
2527 "Include the IPv6 SRLG TLV only when the TLV is type
2528 139.";
2529 }
2530 description
2531 "This container defines ISIS SRLG TLV.";
2532
2533 reference
2534 "RFC6119: IPv6 Traffic Engineering in IS-IS. TLV 139.";
2535
2536 list ipv6-srlg {
2537 key "instance-number";
2538
2539 description
2540 "Instance of the IPv6 SRLG TLV.";
2541
2542 leaf instance-number {
2543 type leafref {
2544 path "../state/instance-number";
2545 }
2546 description
2547 "Reference to the instance number of the IPv6 Shared
2548 Risk Link Group (SRLG) TLV.";
2549 }
2550
2551 container state {
2552 description
2553 "State parameters of TLV 139.";
2554
2555 leaf instance-number {
2556 type uint32;
2557 description
2558 "An arbitrary unsigned 32-bit integer used to
2559 disambiguate the instance of TLV 138. The instance
2560 identifier is synthesised by the system
2561 and may be renumbered for the same SRLG definition
2562 in subsequent advertised LSPs if (and only if) the
2563 entire list of SRLGs is replaced.";
2564 }
2565
2566 leaf system-id {
2567 type oc-isis-types:system-id;
2568 description
2569 "Neighbor system ID.";
2570 }
2571
2572 leaf psn-number {
2573 type uint8;
2574 description
2575 "Pseudonode number if the neighbor is on a LAN
2576 interface.";
2577 }
2578
2579 leaf-list flags {
2580 type enumeration {
2581 enum NA {
2582 description
2583 "When set, the IPv6 neighbour address is
2584 included, whereas if unset, it is omitted";
2585 }
2586 }
2587 description
2588 "IPv6 SRLG flags.";
2589 }
2590
2591 leaf ipv6-interface-address {
2592 type inet:ipv6-address;
2593 description
2594 "IPv6 interface address or Link Local Identifier.";
2595 }
2596
2597 leaf ipv6-neighbor-address {
2598 type inet:ipv6-address;
2599 description
2600 "IPv6 neighbor address or Link Remote Identifier.";
2601 }
2602
2603 leaf-list srlg-value {
2604 type uint32;
2605 description
2606 "SRLG values.";
2607 }
2608 }
2609 }
2610 }
2611
2612 container purge-oi {
2613 when "../state/type = 'oc-isis-lsdb-types:PURGE_OI'" {
2614 description
2615 "Only include the purge originator identitication TLV
2616 when the TLV type is 13.";
2617 }
2618 description
2619 "This container defines ISIS purge TLV.";
2620
2621 reference
2622 "RFC6232: Purge Originator Identification TLV for IS-IS.
2623 TLV 13.";
2624
2625 container state {
2626 description
2627 "State parameters of TLV 13.";
2628
2629 leaf system-id-count {
2630 type uint8;
2631 description
2632 "Number of system IDs carried in this TLV.";
2633 }
2634
2635 leaf source-system-id {
2636 type oc-isis-types:system-id;
2637 description
2638 "System ID of the Intermediate System that inserted
2639 this TLV.";
2640 }
2641
2642 leaf received-system-id {
2643 type oc-isis-types:system-id;
2644 description
2645 "System ID of the Intermediate System from which the
2646 purge was received.";
2647 }
2648 }
2649 }
2650
2651 container router-capabilities {
2652 when "../state/type = " +
2653 "'oc-isis-lsdb-types:ROUTER_CAPABILITY'" {
2654 description
2655 "Only include the router capability TLV when the TLV is
2656 type 242.";
2657 }
2658 description
2659 "This container defines router capabilities.";
2660
2661 list capability {
2662 key "instance-number";
2663
2664 description
2665 "This list describes IS Router capabilities.";
2666
2667 reference
2668 "RFC4971: Intermediate System to Intermediate System
2669 (IS-IS) Extensions for Advertising Router Information.
2670 TLV 242.";
2671
2672 leaf instance-number {
2673 type leafref {
2674 path "../state/instance-number";
2675 }
2676 description
2677 "Reference to the instance number of the router
2678 capability TLV.";
2679 }
2680
2681 container state {
2682 description
2683 "State parameters of TLV 242.";
2684
2685 leaf instance-number {
2686 type uint32;
2687 description
2688 "A unique instance number for the instance of the
2689 router capabilities TLV. The instance number should
2690 be autogenerated by the producer of the data and may
2691 be renumbered if the entire LSP contents are
2692 replaced in subsequent advertisements.";
2693 }
2694
2695 leaf router-id {
2696 type inet:ipv4-address;
2697 description
2698 "IPv4 router-id.";
2699 }
2700
2701 leaf-list flags {
2702 type enumeration {
2703 enum FLOOD {
2704 description
2705 "When the S bit is set(1), the IS - IS Router
2706 CAPABILITY TLV MUST be flooded across the entire
2707 routing domain. When the S bit is not set(0),
2708 the TLV MUST NOT be leaked between levels . This
2709 bit MUST NOT be altered during the TLV
2710 leaking.";
2711 }
2712 enum DOWN {
2713 description
2714 "When the IS-IS Router CAPABILITY TLV is leaked
2715 from level - 2 to level-1, the Down bit MUST be
2716 set. Otherwise, this bit MUST be clear. IS - IS
2717 Router capability TLVs with the Down bit set
2718 MUST NOT be leaked from level - 1 to level-2.
2719 This is to prevent TLV looping.";
2720 }
2721 }
2722 description
2723 "Router capability flags.";
2724 }
2725 }
2726
2727 container subtlvs {
2728 description
2729 "This container describes router capability TLV
2730 sub-TLVs";
2731
2732 list subtlv {
2733 key "type";
2734 description
2735 "List of subTLV types in the LSDB for the specified
2736 TLV";
2737
2738 leaf type {
2739 type leafref {
2740 path "../state/type";
2741 }
2742 description
2743 "Reference to the sub-TLV type";
2744 }
2745
2746 container state {
2747 description
2748 "State parameters of IS Router Capabilities";
2749
2750 uses isis-lsdb-subtlv-type-state;
2751 }
2752
2753 container segment-routing-algorithms {
2754 when "../state/type = " +
2755 "'oc-isis-lsdb-types:ROUTER_CAPABILITY_SR_ALGORITHM'" {
2756 description
2757 "Only include segment routing algorithm when the
2758 sub-TLV is type 19.";
2759 }
2760 description
2761 "This container defines SR algorithm sub-TLV 19.";
2762
2763 reference
2764 "draft-ietf-isis-segment-routing-extensions.
2765 TLV 242, sub-TLV 19";
2766
2767 container state {
2768 description
2769 "State parameters of sub-TLV 19 - Segment
2770 Routing Algorithm.";
2771
2772 leaf-list algorithm {
2773 type enumeration {
2774 enum SPF {
2775 value 0;
2776 description
2777 "Shortest Path First (SPF) algorithm
2778 based on link metric. This is the
2779 well-known shortest path algorithm as
2780 computed by the IS-IS Decision process.
2781 Consistent with the deployed practice
2782 for link-state protocols, algorithm 0
2783 permits any node to overwrite the SPF
2784 path with a different path based on
2785 local policy.";
2786 }
2787 enum STRICT_SPF {
2788 value 1;
2789 description
2790 "Strict Shortest Path First (SPF)
2791 algorithm based on link metric. The
2792 algorithm is identical to algorithm 0
2793 but algorithm 1 requires that all nodes
2794 along the path will honor the SPF
2795 routing decision. Local policy MUST NOT
2796 alter the forwarding decision computed
2797 by algorithm 1 at the node claiming to
2798 support algorithm 1.";
2799 }
2800 }
2801 description
2802 "The Segment Routing algorithm that is
2803 described by the TLV.";
2804 }
2805 }
2806 }
2807
2808 container segment-routing-capability {
2809 when "../state/type = " +
2810 "'oc-isis-lsdb-types:ROUTER_CAPABILITY_SR_CAPABILITY'" {
2811 description
2812 "Only include the SR capability sub-TLV when
2813 the sub-TLV type is 2.";
2814 }
2815 description
2816 "This container defines SR Capability sub-TLV 2.";
2817
2818 reference
2819 "draft-ietf-isis-segment-routing-extensions. TLV
2820 242, sub-TLV 2.";
2821
2822 container state {
2823 description
2824 "State parameters of IS SR Router Capability";
2825
2826 leaf-list flags {
2827 type enumeration {
2828 enum IPV4_MPLS {
2829 description
2830 "When set, the router is capable of
2831 processing SR MPLS encapsulated IPv4
2832 packets on all interfaces.";
2833 }
2834 enum IPV6_MPLS {
2835 description
2836 "When set, the router is capable of
2837 processing SR MPLS encapsulated IPv6
2838 packets on all interfaces.";
2839 }
2840 enum IPV6_SR {
2841 description
2842 "When set, the router is capable of
2843 processing the IPv6 Segment Routing Header
2844 on all interfaces.";
2845 }
2846 }
2847 description
2848 "Segment Routing Capability Flags.";
2849 }
2850 }
2851
2852 container srgb-descriptors {
2853 description
2854 "SRGB Descriptors included within the SR
2855 capability sub-TLV";
2856
2857 list srgb-descriptor {
2858 key "range";
2859 description
2860 "Descriptor entry within the SR capabilty
2861 sub-TLV";
2862
2863 leaf range {
2864 type leafref {
2865 path "../state/range";
2866 }
2867 description
2868 "Reference to unique SRGB Descriptor.";
2869 }
2870
2871 container state {
2872 description
2873 "State parameters of the SR range";
2874
2875 leaf range {
2876 type uint32;
2877 description
2878 "Number of SRGB elements. The range
2879 value MUST be greater than 0.";
2880 }
2881
2882 leaf label {
2883 type oc-mpls-types:mpls-label;
2884 description
2885 "The first value of the SRGB when
2886 expressed as an MPLS label.";
2887 }
2888 }
2889 }
2890 }
2891 }
2892 }
2893 }
2894 uses isis-lsdb-undefined-subtlv;
2895 }
2896 }
2897
2898 container is-reachability {
2899 when "../state/type = 'oc-isis-lsdb-types:IIS_NEIGHBORS'" {
2900 description
2901 "Include IIS_NEIGHBORS sub-TLV when the TLV type is 2.";
2902 }
2903 description
2904 "This container describes list of ISIS neighbors and
2905 attributes.";
2906
2907 reference
2908 "ISO 10589, Intermediate System to Intermediate System
2909 Intra- Domain Routeing Exchange Protocol for use in
2910 Conjunction with the Protocol for Providing the
2911 Connectionless-mode Network Service (ISO 8473),
2912 International Standard 10589: 2002, Second Edition,
2913 2002. TLV 2.";
2914
2915 container neighbors {
2916 description
2917 "This container describes IS neighbors.";
2918
2919 list neighbor {
2920 key "system-id";
2921 description
2922 "IS reachability neighbor attributes.";
2923
2924 leaf system-id {
2925 type leafref {
2926 path "../state/system-id";
2927 }
2928 description
2929 "Reference to the system ID of the neighbor.";
2930 }
2931
2932 uses isis-lsdb-neighbor;
2933 }
2934 }
2935 }
2936
2937 container ipv4-internal-reachability {
2938 when "../state/type = " +
2939 "'oc-isis-lsdb-types:IPV4_INTERNAL_REACHABILITY'" {
2940 description
2941 "Include IPv4 internal reachability TLV when the TLV
2942 type is specified as 128.";
2943 }
2944 description
2945 "This container defines list of IPv4 internal reachability
2946 information.";
2947
2948 reference
2949 "RFC1195: OSI ISIS for IP and Dual Environments. RFC5302:
2950 Domain-Wide Prefix Distribution with Two-Level IS-IS. TLV
2951 128";
2952
2953 container prefixes {
2954 description
2955 "This container describes IS prefixes.";
2956
2957 list prefix {
2958 key "prefix";
2959
2960 description
2961 "IPv4 prefixes and internal reachability attributes.";
2962
2963 leaf prefix {
2964 type leafref {
2965 path "../state/prefix";
2966 }
2967 description
2968 "Reference to the IPv4 prefix";
2969 }
2970
2971 uses ipv4-prefix-attributes-state;
2972 }
2973 }
2974 }
2975
2976 container ipv4-external-reachability {
2977 when "../state/type = " +
2978 "'oc-isis-lsdb-types:IPV4_EXTERNAL_REACHABILITY'" {
2979 description
2980 "Include IPv4 external reachability when the TLV type
2981 is set to 130.";
2982 }
2983 description
2984 "This container defines list of IPv4 external reachability
2985 information.";
2986
2987 reference
2988 "RFC1195: OSI ISIS for IP and Dual Environments. RFC5302:
2989 Domain-Wide Prefix Distribution with Two-Level IS-IS. TLV
2990 130";
2991
2992 container prefixes {
2993 description
2994 "This container describes IS neighbors.";
2995
2996 list prefix {
2997 key "prefix";
2998
2999 description
3000 "IPv4 external prefixes and reachability attributes.";
3001
3002 leaf prefix {
3003 type leafref {
3004 path "../state/prefix";
3005 }
3006 description
3007 "Reference to the IPv4 prefix.";
3008 }
3009
3010 uses ipv4-prefix-attributes-state;
3011 }
3012 }
3013 }
3014
3015 container authentication {
3016 when "../state/type = 'oc-isis-lsdb-types:AUTHENTICATION'" {
3017 description
3018 "Only include the authentication TLV when the TLV is
3019 type 10.";
3020 }
3021 description
3022 "This container defines authentication information of the
3023 node.";
3024
3025 reference
3026 "ISO 10589 Intermediate System to Intermediate System
3027 Intra- Domain Routeing Exchange Protocol for use in
3028 Conjunction with the Protocol for Providing the
3029 Connectionless-mode Network Service (ISO 8473)
3030 International Standard 10589: 2002, Second Edition, 2002.
3031 TLV 10.";
3032
3033 container state {
3034 description
3035 "State parameters of TLV 10.";
3036
3037 leaf crypto-type {
3038 type enumeration {
3039 enum HMAC_MD5 {
3040 description
3041 "HMAC-MD5 Authentication type.";
3042 }
3043 enum CLEARTEXT {
3044 description
3045 "Cleartext Authentication type.";
3046 }
3047 }
3048 description
3049 "Authentication type to be used.";
3050 }
3051
3052 leaf authentication-key {
3053 type string;
3054 description
3055 "Authentication key to be used.";
3056 }
3057 }
3058 }
3059
3060 container extended-is-reachability {
3061 when "../state/type = " +
3062 "'oc-isis-lsdb-types:EXTENDED_IS_REACHABILITY'" {
3063 description
3064 "Only included the extended IS reachability TLV when the
3065 TLV is type 22.";
3066 }
3067
3068 description
3069 "This container defines list of ISIS extended reachability
3070 neighbors.";
3071
3072 reference
3073 "RFC5305: IS-IS Extensions for Traffic Engineering. TLV
3074 22.";
3075
3076 container neighbors {
3077 description
3078 "This container describes IS neighbors.";
3079
3080 list neighbor {
3081 key "system-id";
3082 description
3083 "This list describes ISIS extended neigbors and
3084 reachability attributes.";
3085
3086 leaf system-id {
3087 type leafref {
3088 path "../state/system-id";
3089 }
3090 description
3091 "Reference to the neighboring system's system ID.";
3092 }
3093
3094 container state {
3095 description
3096 "State parameters of extended neighbor";
3097
3098 leaf system-id {
3099 type oc-isis-types:system-id;
3100 description
3101 "System-id of the neighbor.";
3102 }
3103 leaf metric {
3104 type oc-isis-types:wide-metric;
3105 description
3106 "Metric value.";
3107 }
3108 }
3109 uses is-reachability-neighbor-state;
3110 }
3111 }
3112 }
3113
3114 container extended-ipv4-reachability {
3115 when "../state/type = " +
3116 "'oc-isis-lsdb-types:EXTENDED_IPV4_REACHABILITY'" {
3117 description
3118 "Only include the extended IPv4 reachability container
3119 when the TLV type is 135.";
3120 }
3121 description
3122 "This container defines list of IPv4 extended reachability
3123 information.";
3124
3125 reference
3126 "RFC5305: IS-IS Extensions for Traffic Engineering. TLV
3127 135";
3128
3129 container prefixes {
3130 description
3131 "This container describes IS prefixes.";
3132
3133 list prefix {
3134 key "prefix";
3135
3136 description
3137 "This list describes IPv4 extended prefixes and
3138 attributes.";
3139
3140 leaf prefix {
3141 type leafref {
3142 path "../state/prefix";
3143 }
3144 description
3145 "Reference to the IPv4 prefix that the TLV describes
3146 the attributes of.";
3147 }
3148
3149 uses ipv4-prefix-extended-state;
3150 }
3151 }
3152 }
3153
3154 container ipv6-reachability {
3155 when "../state/type = " +
3156 "'oc-isis-lsdb-types:IPV6_REACHABILITY'" {
3157 description
3158 "Only include the IPv6 reachability container when the
3159 TLV type is 236.";
3160 }
3161 description
3162 "This container defines list of IPv6 reachability
3163 information.";
3164
3165 reference
3166 "RFC5308: Routing IPv6 with IS-IS. TLV 236";
3167
3168 container prefixes {
3169 description
3170 "This container describes IS prefixes.";
3171
3172 list prefix {
3173 key "prefix";
3174
3175 description
3176 "This list defines IPv6 extended prefix attributes.";
3177
3178 leaf prefix {
3179 type leafref {
3180 path "../state/prefix";
3181 }
3182 description
3183 "Reference to the IPv6 prefix that the TLV
3184 corresponds to.";
3185 }
3186
3187 uses ipv6-prefix-extended-state;
3188 }
3189 }
3190 }
3191
3192 container multi-topology {
3193 when "../state/type = 'oc-isis-lsdb-types:MULTI_TOPOLOGY'" {
3194 description
3195 "Only include the multi-topology container when the TLV
3196 is type 229.";
3197 }
3198
3199 description
3200 "This container defines the topology supported.";
3201
3202 reference
3203 "RFC5120: M-ISIS: Multi Topology (MT) Routing in
3204 Intermediate System to Intermediate Systems (IS-ISs). TLV
3205 229";
3206
3207 container topologies {
3208 description
3209 "This container describes IS topologies.";
3210
3211 list topology {
3212 key "mt-id";
3213
3214 description
3215 "This list describes a topology.";
3216
3217 leaf mt-id {
3218 type leafref {
3219 path "../state/mt-id";
3220 }
3221 description
3222 "Reference to the multi-topology ID being described
3223 by the list entry.";
3224 }
3225
3226 container state {
3227 description
3228 "State parameters of IS multi-topology TLV 229.";
3229
3230 leaf mt-id {
3231 type uint16 {
3232 range "0 .. 4095";
3233 }
3234 description
3235 "Multi-topology ID.";
3236 }
3237
3238 leaf attributes {
3239 type enumeration {
3240 enum OVERLOAD {
3241 description
3242 "When set, node is overloaded, still part of
3243 the topology but cannot be used for transit.";
3244 }
3245 enum ATTACHED {
3246 description
3247 "When set, node is attached to another area
3248 using the referred metric and can be used as
3249 default gateway.";
3250 }
3251 }
3252 description
3253 "Attributes of the LSP for the associated
3254 topology.";
3255 }
3256 }
3257 }
3258 }
3259 }
3260
3261 container isis-neighbor-attribute {
3262 when "../state/type = " +
3263 "'oc-isis-lsdb-types:IS_NEIGHBOR_ATTRIBUTE'" {
3264 description
3265 "Only include the neighbor attribute container when the
3266 TLV is type 23.";
3267 }
3268 description
3269 "This container defines list of ISIS topology neighbors
3270 for extended ISIS LSP (multiple system IDs). ";
3271
3272 reference
3273 "RFC5311: Simplified Extension of Link State PDU (LSP)
3274 Space for IS-IS. TLV 23. It is identical in format to the
3275 extended IS reachability TLV 22.";
3276
3277 container neighbors {
3278 description
3279 "This container describes IS neighbors.";
3280
3281 list neighbor {
3282 key "system-id";
3283
3284 leaf system-id {
3285 type leafref {
3286 path "../state/system-id";
3287 }
3288 description
3289 "Reference to the neighboring IS";
3290 }
3291
3292 container state {
3293 description
3294 "State parameters of extended neighbor.";
3295
3296 leaf system-id {
3297 type oc-isis-types:system-id;
3298 description
3299 "System-id of the neighbor.";
3300 }
3301 leaf metric {
3302 type oc-isis-types:wide-metric;
3303 description
3304 "Metric value.";
3305 }
3306 }
3307 uses is-reachability-neighbor-state;
3308
3309 description
3310 "This list defines ISIS extended reachability neighbor
3311 attributes.";
3312 }
3313 }
3314 }
3315
3316 container is-alias-id {
3317 when "../state/type = 'oc-isis-lsdb-types:ISIS_ALIAS_ID'" {
3318 description
3319 "Only include the ISIS alias ID container when the TLV
3320 is type 24.";
3321 }
3322
3323 description
3324 "This container defines the IS-Alias TLV which allows
3325 extension-capable ISs to recognize the Originating System
3326 of an Extended LSP set. It identifies the Normal system-
3327 id of the Originating System.";
3328
3329 reference
3330 "RFC5311: Simplified Extension of Link State PDU (LSP)
3331 Space for IS-IS TLV 24.";
3332
3333 container state {
3334 config false;
3335 description
3336 "State parameters of alias ID.";
3337
3338 leaf alias-id {
3339 type oc-isis-types:system-id;
3340 description
3341 "List of alias ID(s).";
3342 }
3343 }
3344 }
3345
3346 container mt-isn {
3347 when "../state/type = 'oc-isis-lsdb-types:MT_ISN'" {
3348 description
3349 "Only include the MT ISN container when the TLV is type
3350 222.";
3351 }
3352 description
3353 "This container defines list of ISIS multi-topology
3354 neighbors.";
3355
3356 reference
3357 "RFC5120: M-ISIS: Multi Topology (MT) Routing in
3358 Intermediate System to Intermediate Systems (IS-ISs). TLV
3359 222.";
3360
3361 container neighbors {
3362 description
3363 "MT-IS neigbor attributes.";
3364
3365 list neighbor {
3366 key "mt-id system-id";
3367 description
3368 "This container describes IS neighbors.";
3369
3370 leaf mt-id {
3371 type leafref {
3372 path "../state/mt-id";
3373 }
3374 description
3375 "Reference to the topology that the neighbor is
3376 within.";
3377 }
3378
3379 leaf system-id {
3380 type leafref {
3381 path "../state/system-id";
3382 }
3383 description
3384 "Reference to the System ID of the neighbor.";
3385 }
3386
3387 uses mt-isis-neighbor;
3388 }
3389 }
3390 }
3391
3392 container mt-isis-neighbor-attribute {
3393 when "../state/type = " +
3394 "'oc-isis-lsdb-types:MT_IS_NEIGHBOR_ATTRIBUTE'" {
3395 description
3396 "Only include the MT ISIS neighbor attribute container
3397 when the TLV is type 223.";
3398 }
3399
3400 description
3401 "This container defines list of ISIS multi-topology
3402 neighbors.";
3403
3404 reference
3405 "RFC5311: Simplified Extension of Link State PDU (LSP)
3406 Space for IS-IS. TLV 223. It is identical in format to the
3407 MT-ISN TLV 222.";
3408
3409 container neighbors {
3410 description
3411 "This container describes IS neighbors.";
3412
3413 list neighbor {
3414 key "mt-id system-id";
3415 description
3416 "List of multi-topology neighbors.";
3417
3418 leaf mt-id {
3419 type leafref {
3420 path "../state/mt-id";
3421 }
3422 description
3423 "Reference to the topology that the neighbor is
3424 within.";
3425 }
3426
3427 leaf system-id {
3428 type leafref {
3429 path "../state/system-id";
3430 }
3431 description
3432 "Reference to the system ID of the neighbor";
3433 }
3434
3435 uses mt-isis-neighbor;
3436 }
3437 }
3438 }
3439
3440 container mt-ipv4-reachability {
3441 when "../state/type = " +
3442 "'oc-isis-lsdb-types:MT_IPV4_REACHABILITY'" {
3443 description
3444 "Only include the multi-topology IPv4 reachability
3445 container when the TLV is type 235.";
3446 }
3447 description
3448 "This container defines list of IPv4 reachability
3449 Information in multi-topology environment.";
3450
3451 reference
3452 "RFC5120: M-ISIS: Multi Topology (MT) Routing in
3453 Intermediate System to Intermediate Systems (IS-ISs). TLV
3454 235.";
3455
3456 container prefixes {
3457 description
3458 "This container describes IS prefixes.";
3459
3460 list prefix {
3461 key "mt-id prefix";
3462
3463 leaf mt-id {
3464 type leafref {
3465 path "../state/mt-id";
3466 }
3467 description
3468 "Reference to the topology ID of the topology that
3469 the prefix is within.";
3470 }
3471
3472 leaf prefix {
3473 type leafref {
3474 path "../state/prefix";
3475 }
3476 description
3477 "Reference to the prefix to which reachability is
3478 being advertised.";
3479 }
3480
3481 description
3482 "IPv4 prefixes that are contained within MT
3483 reachability TLV.";
3484
3485 uses ipv4-mt-prefix-extended-state;
3486 }
3487 }
3488 }
3489
3490 container mt-ipv6-reachability {
3491 when "../state/type = " +
3492 "'oc-isis-lsdb-types:MT_IPV6_REACHABILITY'" {
3493 description
3494 "Only include the multi-topology IPv6 reachability
3495 container when the TLV is type 237.";
3496 }
3497 description
3498 "This container defines list of IPv6 reachability
3499 information in multi - topology environment.";
3500
3501 reference
3502 "RFC5120: M-ISIS: Multi Topology (MT) Routing in
3503 Intermediate System to Intermediate Systems (IS-ISs). TLV
3504 237.";
3505
3506 container prefixes {
3507 description
3508 "This container describes IS prefixes.";
3509
3510 list prefix {
3511 key "prefix mt-id";
3512 description
3513 "List of IPv6 prefixes contained within MT
3514 reachability TLV.";
3515
3516 leaf prefix {
3517 type leafref {
3518 path "../state/prefix";
3519 }
3520 description
3521 "Reference to the IPv6 prefix described by the
3522 TLV.";
3523 }
3524
3525 leaf mt-id {
3526 type leafref {
3527 path "../state/mt-id";
3528 }
3529 description
3530 "Reference to the multi-topology ID.";
3531 }
3532
3533 uses ipv6-mt-prefix-extended-state;
3534 }
3535 }
3536 }
3537 }
3538 }
3539
3540 uses isis-lsdb-undefined-tlv;
3541 }
3542}