]> git.proxmox.com Git - mirror_frr.git/blob - yang/frr-isisd.yang
ospf6d : Transformation changes for ospf6 vrf support.
[mirror_frr.git] / yang / frr-isisd.yang
1 module frr-isisd {
2 yang-version 1.1;
3 namespace "http://frrouting.org/yang/isisd";
4 prefix frr-isisd;
5
6 import ietf-yang-types {
7 prefix yang;
8 }
9
10 import ietf-inet-types {
11 prefix inet;
12 }
13
14 import frr-interface {
15 prefix frr-interface;
16 }
17
18 import frr-vrf {
19 prefix frr-vrf;
20 }
21
22 import frr-route-map {
23 prefix frr-route-map;
24 }
25
26 import frr-route-types {
27 prefix frr-route-types;
28 }
29
30 organization
31 "FRRouting";
32 contact
33 "FRR Users List: <mailto:frog@lists.frrouting.org> FRR Development
34 List: <mailto:dev@lists.frrouting.org>";
35 description
36 "This module defines a model for managing FRR isisd daemon.
37
38 Copyright 2020 FRRouting
39
40 Redistribution and use in source and binary forms, with or without
41 modification, are permitted provided that the following conditions
42 are met:
43
44 1. Redistributions of source code must retain the above copyright notice,
45 this list of conditions and the following disclaimer.
46
47 2. Redistributions in binary form must reproduce the above copyright
48 notice, this list of conditions and the following disclaimer in the
49 documentation and/or other materials provided with the distribution.
50
51 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
52 \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
53 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
54 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
55 HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
56 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
57 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
58 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
59 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
60 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
61 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.";
62
63 revision 2020-04-06 {
64 description
65 "Group LSP timers in a container so that they can be displayed and
66 configured together";
67 }
68 revision 2019-12-17 {
69 description
70 "Changed default area is-type to level-1-2";
71 }
72 revision 2019-09-09 {
73 description
74 "Changed interface references to use
75 frr-interface:interface-ref typedef";
76 }
77 revision 2018-07-26 {
78 description
79 "Initial revision.";
80 reference
81 "ISO/IEC 10589:2002.";
82 }
83
84 typedef level {
85 type enumeration {
86 enum "level-1" {
87 value 1;
88 description
89 "This enum indicates L1-only capability.";
90 }
91 enum "level-2" {
92 value 2;
93 description
94 "This enum indicates L2-only capability.";
95 }
96 enum "level-1-2" {
97 value 3;
98 description
99 "This enum indicates capability for both levels.";
100 }
101 }
102 description
103 "This type defines IS-IS level of an object.";
104 }
105
106 typedef extended-circuit-id {
107 type uint32;
108 description
109 "This type defines the extended circuit ID
110 associated with an interface.";
111 }
112
113 typedef network-type {
114 type enumeration {
115 enum "unknown" {
116 value 0;
117 description
118 "Unknown network type. Only valid as a state.";
119 }
120 enum "broadcast" {
121 value 1;
122 description
123 "Broadcast circuit network-type.";
124 }
125 enum "point-to-point" {
126 value 2;
127 description
128 "Point-to-point circuit network-type.";
129 }
130 enum "loopback" {
131 value 3;
132 description
133 "Loopback circuit network-type. Only valid as a state.";
134 }
135 }
136 }
137
138 typedef lsp-id {
139 type string {
140 pattern "[0-9A-Fa-f]{4}\\.[0-9A-Fa-f]{4}\\.[0-9A-Fa-f]{4}\\.[0-9][0-9]-[0-9][0-9]";
141 }
142 description
143 "This type defines the IS-IS LSP ID format using a
144 pattern, An example LSP ID is 0143.0438.AeF0.02-01";
145 }
146
147 typedef snpa {
148 type string {
149 length "0 .. 20";
150 }
151 description
152 "This type defines the Subnetwork Point
153 of Attachment (SNPA) format.
154 The SNPA should be encoded according to the rules
155 specified for the particular type of subnetwork
156 being used. As an example, for an ethernet subnetwork,
157 the SNPA is encoded as a MAC address like
158 '00aa.bbcc.ddee'.";
159 }
160
161 typedef system-id {
162 type string {
163 pattern "[0-9A-Fa-f]{4}\\.[0-9A-Fa-f]{4}\\.[0-9A-Fa-f]{4}";
164 }
165 description
166 "This type defines IS-IS system-id using a pattern,
167 An example system-id is 0143.0438.AeF0";
168 }
169
170 typedef net-address {
171 type string {
172 pattern "[a-fA-F0-9]{2}(\\.[a-fA-F0-9]{4}){3,9}\\.[a-fA-F0-9]{2}";
173 }
174 description
175 "This type defines an OSI NET address using a pattern,
176 An example net-address is 49.0123.6452.1972.00";
177 }
178
179 typedef if-state-type {
180 type enumeration {
181 enum "up" {
182 value 0;
183 description
184 "Up state.";
185 }
186 enum "down" {
187 value 1;
188 description
189 "Down state";
190 }
191 }
192 description
193 "This type defines the state of an interface";
194 }
195
196 typedef adj-state-type {
197 type enumeration {
198 enum "up" {
199 value 0;
200 description
201 "State indicates the adjacency is established.";
202 }
203 enum "down" {
204 value 1;
205 description
206 "State indicates the adjacency is NOT established.";
207 }
208 enum "init" {
209 value 2;
210 description
211 "State indicates the adjacency is establishing.";
212 }
213 enum "failed" {
214 value 3;
215 description
216 "State indicates the adjacency is failed.";
217 }
218 }
219 description
220 "This type defines states of an adjacency";
221 }
222
223 typedef metric-style-type {
224 type enumeration {
225 enum "narrow" {
226 value 0;
227 description
228 "This enum describes narrow metric style";
229 reference
230 "RFC1195";
231 }
232 enum "wide" {
233 value 1;
234 description
235 "This enum describes wide metric style";
236 reference
237 "RFC5305";
238 }
239 enum "transition" {
240 value 2;
241 description
242 "This enum describes transition metric style";
243 }
244 }
245 }
246
247 grouping redistribute-attributes {
248 description
249 "Common optional attributes of any redistribute entry.";
250 leaf route-map {
251 type frr-route-map:route-map-ref;
252 description
253 "Applies the conditions of the specified route-map to routes that
254 are redistributed into this routing instance.";
255 }
256
257 leaf metric {
258 type uint32 {
259 range "0..16777215";
260 }
261 default "0";
262 description
263 "Metric used for the redistributed route. If 0,
264 the default-metric attribute is used instead.";
265 }
266 }
267
268 grouping redistribute-default {
269 description
270 "Redistribution of default route within a level.";
271 leaf always {
272 type boolean;
273 default "false";
274 description
275 "Always advertise default route.";
276 }
277
278 uses redistribute-attributes;
279 }
280
281 grouping isis-password {
282 description
283 "Authentication attributes or an IS-IS area or domain.";
284 leaf password {
285 type string {
286 length "1..254";
287 }
288 mandatory true;
289 description
290 "Actual password.";
291 }
292
293 leaf password-type {
294 type enumeration {
295 enum "clear" {
296 value 1;
297 description
298 "Clear-text password type.";
299 }
300 enum "md5" {
301 value 54;
302 description
303 "MD5 password type.";
304 }
305 }
306 mandatory true;
307 description
308 "Type of password used.";
309 }
310 }
311
312 grouping isis-area-password {
313 uses isis-password;
314
315 leaf authenticate-snp {
316 type enumeration {
317 enum "none" {
318 value 0;
319 description
320 "No SNP authentication.";
321 }
322 enum "send-only" {
323 value 1;
324 description
325 "Send authenticated PDUs but do not check on receiving.";
326 }
327 enum "validate" {
328 value 3;
329 description
330 "Send authenticated PDUs and check on receiving.";
331 }
332 }
333 default "none";
334 description
335 "SNP PDUs authentication.";
336 }
337 }
338
339 grouping interface-config-ti-lfa {
340 container ti-lfa {
341 description
342 "TI-LFA configuration.";
343 leaf enable {
344 type boolean;
345 default false;
346 description
347 "Enables TI-LFA computation.";
348 }
349 leaf node-protection {
350 type boolean;
351 must ". = 'false' or ../enable = 'true'";
352 default false;
353 description
354 "Node protection is provided by the alternate.";
355 }
356 }
357 }
358
359 grouping interface-config {
360 description
361 "Interface configuration grouping";
362 leaf area-tag {
363 type string;
364 mandatory true;
365 description
366 "Area-tag associated to this circuit.";
367 }
368
369 leaf vrf {
370 type frr-vrf:vrf-ref;
371 default "default";
372 description
373 "VRF NAME.";
374 }
375
376 leaf ipv4-routing {
377 type boolean;
378 default "false";
379 description
380 "Routing IS-IS IPv4 traffic over this circuit.";
381 }
382
383 leaf ipv6-routing {
384 type boolean;
385 default "false";
386 description
387 "Routing IS-IS IPv6 traffic over this circuit.";
388 }
389
390 leaf circuit-type {
391 type level;
392 default "level-1-2";
393 description
394 "IS-type of this circuit.";
395 }
396
397 container bfd-monitoring {
398 leaf enabled {
399 type boolean;
400 default "false";
401 description
402 "Monitor IS-IS peers on this circuit.";
403 }
404 leaf profile {
405 type string;
406 description
407 "Let BFD use a pre-configured profile.";
408 }
409 }
410
411 container csnp-interval {
412 description
413 "Complete Sequence Number PDU (CSNP) generation interval.";
414 leaf level-1 {
415 type uint16 {
416 range "1..600";
417 }
418 units "seconds";
419 default "10";
420 description
421 "CNSP interval for level-1";
422 }
423
424 leaf level-2 {
425 type uint16 {
426 range "1..600";
427 }
428 units "seconds";
429 default "10";
430 description
431 "CNSP interval for level-2";
432 }
433 }
434
435 container psnp-interval {
436 description
437 "Partial Sequence Number PDU (PSNP) generation interval.";
438 leaf level-1 {
439 type uint16 {
440 range "1..120";
441 }
442 units "seconds";
443 default "2";
444 description
445 "PNSP interval for level-1";
446 }
447
448 leaf level-2 {
449 type uint16 {
450 range "1..120";
451 }
452 units "seconds";
453 default "2";
454 description
455 "PCNSP interval for level-2";
456 }
457 }
458
459 container hello {
460 description
461 "Parameters related to IS-IS hello PDUs.";
462 leaf padding {
463 type boolean;
464 default "true";
465 description
466 "Add padding to IS-IS hello PDUs.";
467 }
468
469 container interval {
470 description
471 "Interval between consecutive hello messages.";
472 leaf level-1 {
473 type uint32 {
474 range "1..600";
475 }
476 units "seconds";
477 default "3";
478 description
479 "Holding time for level-1; interval will depend on multiplier.";
480 }
481
482 leaf level-2 {
483 type uint32 {
484 range "1..600";
485 }
486 units "seconds";
487 default "3";
488 description
489 "Holding time for level-2; interval will depend on multiplier.";
490 }
491 }
492
493 container multiplier {
494 description
495 "Multiplier for the hello messages holding time.";
496 leaf level-1 {
497 type uint16 {
498 range "2..100";
499 }
500 default "10";
501 description
502 "Multiplier for the hello holding time.";
503 }
504
505 leaf level-2 {
506 type uint16 {
507 range "2..100";
508 }
509 default "10";
510 description
511 "Multiplier for the hello holding time.";
512 }
513 }
514 }
515
516 container metric {
517 description
518 "Default metric for this IS-IS circuit.";
519 leaf level-1 {
520 type uint32 {
521 range "0..16777215";
522 }
523 must ". < 64 or /frr-isisd:isis/instance[area-tag = current()/../../area-tag]/metric-style = 'wide'";
524 default "10";
525 description
526 "Default level-1 metric for this IS-IS circuit.";
527 }
528
529 leaf level-2 {
530 type uint32 {
531 range "0..16777215";
532 }
533 must ". < 64 or /frr-isisd:isis/instance[area-tag = current()/../../area-tag]/metric-style = 'wide'";
534 default "10";
535 description
536 "Default level-2 metric for this IS-IS circuit.";
537 }
538 }
539
540 container priority {
541 description
542 "Priority for Designated Router election.";
543 leaf level-1 {
544 type uint8 {
545 range "0..127";
546 }
547 default "64";
548 description
549 "Level-1 priority for this IS-IS circuit.";
550 }
551
552 leaf level-2 {
553 type uint8 {
554 range "0..127";
555 }
556 default "64";
557 description
558 "Level-2 priority for this IS-IS circuit.";
559 }
560 }
561
562 leaf network-type {
563 type network-type;
564 must "(. = \"point-to-point\") or (. = \"broadcast\")";
565 default "broadcast";
566 description
567 "Explicitly configured type of IS-IS circuit (broadcast or point-to-point).";
568 }
569
570 leaf passive {
571 type boolean;
572 default "false";
573 description
574 "Interface is in passive mode.";
575 }
576
577 container password {
578 presence "Present if a password is set for this IS interface.";
579 uses isis-password;
580 }
581
582 leaf disable-three-way-handshake {
583 type boolean;
584 default "false";
585 description
586 "Disables three-way handshake when creating new adjacencies.";
587 }
588
589 container multi-topology {
590 description
591 "IS-IS topologies configured on this circuit.";
592 leaf ipv4-unicast {
593 type boolean;
594 default "true";
595 description
596 "IPv4 unicast topology.";
597 }
598
599 leaf ipv4-multicast {
600 type boolean;
601 default "true";
602 description
603 "IPv4 multicast topology.";
604 }
605
606 leaf ipv4-management {
607 type boolean;
608 default "true";
609 description
610 "IPv4 management topology.";
611 }
612
613 leaf ipv6-unicast {
614 type boolean;
615 default "true";
616 description
617 "IPv6 unicast topology.";
618 }
619
620 leaf ipv6-multicast {
621 type boolean;
622 default "true";
623 description
624 "IPv6 multicast topology.";
625 }
626
627 leaf ipv6-management {
628 type boolean;
629 default "true";
630 description
631 "IPv6 management topology.";
632 }
633
634 leaf ipv6-dstsrc {
635 type boolean;
636 default "true";
637 description
638 "IPv6 destination-source topology.";
639 }
640 }
641
642 container mpls {
643 description
644 "Configuration of MPLS parameters";
645 leaf ldp-sync {
646 type boolean;
647 default "true";
648 description
649 "Enable MPLS LDP-Sync functionality on this circuit.";
650 }
651 leaf holddown {
652 type uint16 {
653 range "0..10000";
654 }
655 units "seconds";
656 description
657 "Time to wait for LDP-Sync to occur before restoring interface metric.";
658 }
659 }
660
661 container fast-reroute {
662 description
663 "Interface IP Fast-reroute configuration.";
664 container level-1 {
665 description
666 "Level-1 IP Fast-reroute configuration.";
667 uses interface-config-ti-lfa;
668 }
669 container level-2 {
670 description
671 "Level-2 IP Fast-reroute configuration.";
672 uses interface-config-ti-lfa;
673 }
674 }
675 }
676
677 grouping adjacency-state {
678 description
679 "Adjacency state";
680 container adjacencies {
681 config false;
682 description
683 "This container lists the adjacencies of
684 the local node.";
685 list adjacency {
686 description
687 "List of operational adjacencies.";
688 leaf neighbor-sys-type {
689 type level;
690 description
691 "Level capability of neighboring system";
692 }
693
694 leaf neighbor-sysid {
695 type system-id;
696 description
697 "The system-id of the neighbor";
698 }
699
700 leaf neighbor-extended-circuit-id {
701 type extended-circuit-id;
702 description
703 "Circuit ID of the neighbor";
704 }
705
706 leaf neighbor-snpa {
707 type snpa;
708 description
709 "SNPA of the neighbor";
710 }
711
712 leaf hold-timer {
713 type uint16;
714 units "seconds";
715 description
716 "The holding time in seconds for this
717 adjacency. This value is based on
718 received hello PDUs and the elapsed
719 time since receipt.";
720 }
721
722 leaf neighbor-priority {
723 type uint8 {
724 range "0 .. 127";
725 }
726 description
727 "Priority of the neighboring IS for becoming
728 the DIS.";
729 }
730
731 leaf state {
732 type adj-state-type;
733 description
734 "This leaf describes the state of the interface.";
735 }
736 }
737 }
738 }
739
740 grouping event-counters {
741 description
742 "Grouping for IS-IS interface event counters";
743 container event-counters {
744 config false;
745 description
746 "IS-IS interface event counters.";
747 leaf adjacency-changes {
748 type uint32;
749 description
750 "The number of times an adjacency state change has
751 occurred on this interface.";
752 }
753
754 leaf adjacency-number {
755 type uint32;
756 description
757 "The number of adjacencies on this interface.";
758 }
759
760 leaf init-fails {
761 type uint32;
762 description
763 "The number of times initialization of this
764 interface has failed. This counts events such
765 as PPP NCP failures. Failures to form an
766 adjacency are counted by adjacency-rejects.";
767 }
768
769 leaf adjacency-rejects {
770 type uint32;
771 description
772 "The number of times an adjacency has been
773 rejected on this interface.";
774 }
775
776 leaf id-len-mismatch {
777 type uint32;
778 description
779 "The number of times an IS-IS PDU with an ID
780 field length different from that for this
781 system has been received on this interface.";
782 }
783
784 leaf max-area-addresses-mismatch {
785 type uint32;
786 description
787 "The number of times an IS-IS PDU has been
788 received on this interface with the
789 max area address field differing from that of
790 this system.";
791 }
792
793 leaf authentication-type-fails {
794 type uint32;
795 description
796 "Number of authentication type mismatches.";
797 }
798
799 leaf authentication-fails {
800 type uint32;
801 description
802 "Number of authentication key failures.";
803 }
804 }
805 }
806
807 grouping interface-state {
808 description
809 "IS-IS interface operational state.";
810 uses adjacency-state;
811
812 uses event-counters;
813 }
814
815 grouping notification-instance-hdr {
816 description
817 "Instance specific IS-IS notification data grouping";
818 leaf routing-instance {
819 type string;
820 description
821 "Name of the routing-instance instance.";
822 }
823
824 leaf routing-protocol-name {
825 type string;
826 description
827 "Name of the IS-IS instance.";
828 }
829
830 leaf isis-level {
831 type level;
832 description
833 "IS-IS level of the instance.";
834 }
835 }
836
837 grouping notification-interface-hdr {
838 description
839 "Interface specific IS-IS notification data grouping";
840 leaf interface-name {
841 type frr-interface:interface-ref;
842 description
843 "IS-IS interface name";
844 }
845
846 leaf interface-level {
847 type level;
848 description
849 "IS-IS level of the interface.";
850 }
851
852 leaf extended-circuit-id {
853 type extended-circuit-id;
854 description
855 "Eextended circuit-id of the interface.";
856 }
857 }
858
859 container isis {
860 description
861 "Configuration of the IS-IS routing daemon.";
862 list instance {
863 key "area-tag vrf";
864 description
865 "IS-IS routing instance.";
866 leaf area-tag {
867 type string;
868 description
869 "Area-tag associated to this routing instance.";
870 }
871
872 leaf vrf {
873 type frr-vrf:vrf-ref;
874 description
875 "VRF NAME.";
876 }
877
878 leaf is-type {
879 type level;
880 default "level-1-2";
881 description
882 "Level of the IS-IS routing instance (OSI only).";
883 }
884
885 leaf-list area-address {
886 type net-address;
887 max-elements 3;
888 description
889 "List of OSI NET addresses for this protocol instance.";
890 }
891
892 leaf dynamic-hostname {
893 type boolean;
894 default "true";
895 description
896 "Dynamic hostname support for IS-IS.";
897 }
898
899 leaf attached {
900 type boolean;
901 default "false";
902 description
903 "If true, identify as L1/L2 router for inter-area traffic.";
904 }
905
906 leaf overload {
907 type boolean;
908 default "false";
909 description
910 "If true, avoid any transit traffic.";
911 }
912
913 leaf metric-style {
914 type metric-style-type;
915 must ". = 'wide' or count(../multi-topology/*) = 0";
916 default "wide";
917 description
918 "Define the style of TLVs metric supported.";
919 }
920
921 leaf purge-originator {
922 type boolean;
923 default "false";
924 description
925 "Use the RFC 6232 purge-originator.";
926 reference
927 "RFC6232";
928 }
929
930 container lsp {
931 description
932 "Configuration of Link-State Packets (LSP) parameters";
933 leaf mtu {
934 type uint16 {
935 range "128..4352";
936 }
937 default "1497";
938 description
939 "MTU of an LSP.";
940 }
941
942 container timers {
943 description
944 "LSP-related timers";
945 container level-1 {
946 description
947 "Level-1 LSP-related timers";
948 leaf refresh-interval {
949 type uint16;
950 units "seconds";
951 default "900";
952 description
953 "LSP refresh interval for level-1.";
954 }
955
956 leaf maximum-lifetime {
957 type uint16 {
958 range "350..65535";
959 }
960 units "seconds";
961 must ". >= ../refresh-interval + 300";
962 default "1200";
963 description
964 "Maximum LSP lifetime for level-1.";
965 }
966
967 leaf generation-interval {
968 type uint16 {
969 range "1..120";
970 }
971 units "seconds";
972 must ". < ../refresh-interval";
973 default "30";
974 description
975 "Minimum time allowed before level-1 LSP retransmissions.";
976 }
977 }
978
979 container level-2 {
980 description
981 "Level-2 LSP-related timers";
982 leaf refresh-interval {
983 type uint16;
984 units "seconds";
985 default "900";
986 description
987 "LSP refresh interval for level-2.";
988 }
989
990 leaf maximum-lifetime {
991 type uint16 {
992 range "350..65535";
993 }
994 units "seconds";
995 must ". >= ../refresh-interval + 300";
996 default "1200";
997 description
998 "Maximum LSP lifetime for level-2.";
999 }
1000
1001 leaf generation-interval {
1002 type uint16 {
1003 range "1..120";
1004 }
1005 units "seconds";
1006 must ". < ../refresh-interval";
1007 default "30";
1008 description
1009 "Minimum time allowed before level-2 LSP retransmissions.";
1010 }
1011 }
1012 }
1013 }
1014
1015 container spf {
1016 description
1017 "Parameters related to the Shortest Path First algorithm.";
1018 container ietf-backoff-delay {
1019 presence "Present if IETF SPF back-off delay is enabled.";
1020 description
1021 "SPF back-off delay algorithm parameters (see RFC 8405).";
1022 leaf init-delay {
1023 type uint16 {
1024 range "0..60000";
1025 }
1026 units "msec";
1027 mandatory true;
1028 description
1029 "Delay used while in QUIET state";
1030 }
1031
1032 leaf short-delay {
1033 type uint16 {
1034 range "0..60000";
1035 }
1036 units "msec";
1037 mandatory true;
1038 description
1039 "Delay used while in SHORT_WAIT state";
1040 }
1041
1042 leaf long-delay {
1043 type uint16 {
1044 range "0..60000";
1045 }
1046 units "msec";
1047 mandatory true;
1048 description
1049 "Delay used while in LONG_WAIT state";
1050 }
1051
1052 leaf hold-down {
1053 type uint16 {
1054 range "0..60000";
1055 }
1056 units "msec";
1057 mandatory true;
1058 description
1059 "Time with no received IGP events before considering IGP stable";
1060 }
1061
1062 leaf time-to-learn {
1063 type uint16 {
1064 range "0..60000";
1065 }
1066 units "msec";
1067 mandatory true;
1068 description
1069 "Maximum duration needed to learn all the events related to a
1070 single failure";
1071 }
1072 }
1073
1074 container minimum-interval {
1075 description
1076 "Minimum interval between consecutive executions of the
1077 SPF algorithm.";
1078 leaf level-1 {
1079 type uint16 {
1080 range "1..120";
1081 }
1082 units "seconds";
1083 default "1";
1084 description
1085 "Minimum time between consecutive level-1 SPFs.";
1086 }
1087
1088 leaf level-2 {
1089 type uint16 {
1090 range "1..120";
1091 }
1092 units "seconds";
1093 default "1";
1094 description
1095 "Minimum time between consecutive level-2 SPFs.";
1096 }
1097 }
1098 }
1099
1100 container area-password {
1101 presence "Present if authentication is required for IS level-1.";
1102 description
1103 "Authentication password for an IS-IS area.";
1104 uses isis-area-password;
1105 }
1106
1107 container domain-password {
1108 presence "Present if authentication is required for IS level-2.";
1109 description
1110 "Authentication password for an IS-IS domain.";
1111 uses isis-area-password;
1112 }
1113
1114 container default-information-originate {
1115 description
1116 "Distribution of default information.";
1117 list ipv4 {
1118 key "level";
1119 description
1120 "Distribute default route for IPv4.";
1121 leaf level {
1122 type level;
1123 must "(. != \"level-1-2\") and ((../../../is-type = \"level-1-2\") or (. = ../../../is-type))";
1124 }
1125
1126 uses redistribute-default;
1127 }
1128
1129 list ipv6 {
1130 key "level";
1131 description
1132 "Distribute default route for IPv6.";
1133 leaf level {
1134 type level;
1135 must "(. != \"level-1-2\") and ((../../../is-type = \"level-1-2\") or (. = ../../../is-type))";
1136 }
1137
1138 uses redistribute-default;
1139 }
1140 }
1141
1142 container redistribute {
1143 description
1144 "Redistributes routes learned from other routing protocols.";
1145 list ipv4 {
1146 key "protocol level";
1147 description
1148 "IPv4 route redistribution.";
1149 leaf protocol {
1150 type frr-route-types:frr-route-types-v4;
1151 must ". != \"isis\"";
1152 description
1153 "Originating routing protocol for the IPv4 routes.";
1154 }
1155
1156 leaf level {
1157 type level;
1158 must "(. != \"level-1-2\") and ((../../../is-type = \"level-1-2\") or (. = ../../../is-type))";
1159 description
1160 "IS-IS level into which the routes should be redistributed.";
1161 }
1162
1163 uses redistribute-attributes;
1164 }
1165
1166 list ipv6 {
1167 key "protocol level";
1168 description
1169 "IPv6 route redistribution.";
1170 leaf protocol {
1171 type frr-route-types:frr-route-types-v6;
1172 must ". != \"isis\"";
1173 description
1174 "Originating routing protocol for the IPv6 routes.";
1175 }
1176
1177 leaf level {
1178 type level;
1179 must "(. != \"level-1-2\") and ((../../../is-type = \"level-1-2\") or (. = ../../../is-type))";
1180 description
1181 "IS-IS level into which the routes should be redistributed.";
1182 }
1183
1184 uses redistribute-attributes;
1185 }
1186 }
1187
1188 container multi-topology {
1189 description
1190 "IS-IS topologies configured for this area.";
1191 container ipv4-multicast {
1192 presence "Present if a separate IPv4-multicast topology is configured for this area.";
1193 description
1194 "IPv4 multicast topology.";
1195 leaf overload {
1196 type boolean;
1197 default "false";
1198 }
1199 }
1200
1201 container ipv4-management {
1202 presence "Present if a separate IPv4-management topology is configured for this area.";
1203 description
1204 "IPv4 management topology.";
1205 leaf overload {
1206 type boolean;
1207 default "false";
1208 }
1209 }
1210
1211 container ipv6-unicast {
1212 presence "Present if a separate IPv6-unicast topology is configured for this area.";
1213 description
1214 "IPv6 unicast topology.";
1215 leaf overload {
1216 type boolean;
1217 default "false";
1218 }
1219 }
1220
1221 container ipv6-multicast {
1222 presence "Present if a separate IPv6-multicast topology is configured for this area.";
1223 description
1224 "IPv6 multicast topology.";
1225 leaf overload {
1226 type boolean;
1227 default "false";
1228 }
1229 }
1230
1231 container ipv6-management {
1232 presence "Present if a separate IPv6-management topology is configured for this area.";
1233 description
1234 "IPv6 management topology.";
1235 leaf overload {
1236 type boolean;
1237 default "false";
1238 }
1239 }
1240
1241 container ipv6-dstsrc {
1242 presence "Present if a separate IPv6 destination-source topology is configured for this area.";
1243 description
1244 "IPv6 destination-source topology.";
1245 leaf overload {
1246 type boolean;
1247 default "false";
1248 }
1249 }
1250 }
1251
1252 leaf log-adjacency-changes {
1253 type boolean;
1254 default "false";
1255 description
1256 "Log changes to the IS-IS adjacencies in this area.";
1257 }
1258
1259 container mpls-te {
1260 presence "Present if MPLS-TE is enabled.";
1261 description
1262 "Enable MPLS-TE functionality.";
1263 leaf router-address {
1264 type inet:ipv4-address;
1265 description
1266 "Stable IP address of the advertising router.";
1267 }
1268 }
1269
1270 container segment-routing {
1271 description
1272 "Segment Routing global configuration.";
1273 leaf enabled {
1274 type boolean;
1275 default "false";
1276 description
1277 "Enables segment-routing protocol extensions.";
1278 }
1279 container srgb {
1280 description
1281 "Global blocks to be advertised.";
1282 must "./upper-bound > ./lower-bound";
1283 leaf lower-bound {
1284 type uint32;
1285 default "16000";
1286 description
1287 "Lower value in the label range.";
1288 }
1289 leaf upper-bound {
1290 type uint32;
1291 default "23999";
1292 description
1293 "Upper value in the label range.";
1294 }
1295 }
1296 container srlb {
1297 description
1298 "Local blocks to be advertised.";
1299 must "./upper-bound > ./lower-bound";
1300 leaf lower-bound {
1301 type uint32;
1302 default "15000";
1303 description
1304 "Lower value in the label range.";
1305 }
1306 leaf upper-bound {
1307 type uint32;
1308 default "15999";
1309 description
1310 "Upper value in the label range.";
1311 }
1312 }
1313 container msd {
1314 description
1315 "MSD configuration.";
1316 leaf node-msd {
1317 type uint8;
1318 description
1319 "Node MSD is the lowest MSD supported by the node.";
1320 }
1321 }
1322 container prefix-sid-map {
1323 description
1324 "Prefix SID configuration.";
1325 list prefix-sid {
1326 key "prefix";
1327 unique "sid-value-type sid-value";
1328 description
1329 "List of prefix SID mapped to IPv4/IPv6
1330 local prefixes.";
1331 leaf prefix {
1332 type inet:ip-prefix;
1333 description
1334 "Connected prefix sid.";
1335 }
1336 leaf sid-value-type {
1337 type enumeration {
1338 enum "index" {
1339 value 0;
1340 description
1341 "The value will be interpreted as an index.";
1342 }
1343 enum "absolute" {
1344 value 1;
1345 description
1346 "The value will become interpreted as an absolute
1347 value.";
1348 }
1349 }
1350 default "index";
1351 description
1352 "This leaf defines how value must be interpreted.";
1353 }
1354 leaf sid-value {
1355 type uint32;
1356 mandatory true;
1357 description
1358 "Value associated with prefix. The value must be
1359 interpreted in the context of sid-value-type.";
1360 }
1361 leaf last-hop-behavior {
1362 type enumeration {
1363 enum "explicit-null" {
1364 value 0;
1365 description
1366 "Use explicit-null for the SID.";
1367 }
1368 enum "no-php" {
1369 value 1;
1370 description
1371 "Do not use Penultimate Hop Popping (PHP)
1372 for the SID.";
1373 }
1374 enum "php" {
1375 value 2;
1376 description
1377 "Use PHP for the SID.";
1378 }
1379 }
1380 default "php";
1381 description
1382 "Configure last hop behavior.";
1383 }
1384 }
1385 }
1386 }
1387
1388 container mpls {
1389 description
1390 "Configuration of MPLS parameters";
1391 container ldp-sync {
1392 presence "Present if MPLS LDP-Sync is enabled.";
1393 description
1394 "Enable MPLS LDP-Sync functionality.";
1395 leaf holddown {
1396 type uint16 {
1397 range "0..10000";
1398 }
1399 units "seconds";
1400 default "0";
1401 description
1402 "Time to wait for LDP-Sync to occur before restoring interface metric.";
1403 }
1404 }
1405 }
1406
1407 }
1408 }
1409
1410 augment "/frr-interface:lib/frr-interface:interface" {
1411 description
1412 "Extends interface model with IS-IS related parameters.";
1413 container isis {
1414 presence "Present if an IS-IS circuit is defined for this interface.";
1415 description
1416 "IS-IS interface parameters.";
1417 uses interface-config;
1418 }
1419 }
1420
1421 augment "/frr-interface:lib/frr-interface:interface/frr-interface:state" {
1422 description
1423 "Extends interface model with IS-IS operational data.";
1424 container isis {
1425 presence "Present if an IS-IS circuit is defined for this interface.";
1426 description
1427 "IS-IS interface operational data.";
1428
1429 uses interface-state;
1430 }
1431 }
1432
1433 notification database-overload {
1434 description
1435 "This notification is sent when an IS-IS instance
1436 overload state changes.";
1437 uses notification-instance-hdr;
1438
1439 leaf overload {
1440 type enumeration {
1441 enum "off" {
1442 value 0;
1443 description
1444 "Indicates IS-IS instance has left overload state";
1445 }
1446 enum "on" {
1447 value 1;
1448 description
1449 "Indicates IS-IS instance has entered overload state";
1450 }
1451 }
1452 description
1453 "New overload state of the IS-IS instance";
1454 }
1455 }
1456
1457 notification lsp-too-large {
1458 description
1459 "This notification is sent when we attempt to propagate
1460 an LSP that is larger than the dataLinkBlockSize for the
1461 circuit. The notification generation must be throttled
1462 with at least 5 seconds between successive
1463 notifications.";
1464 uses notification-instance-hdr;
1465
1466 uses notification-interface-hdr;
1467
1468 leaf pdu-size {
1469 type uint32;
1470 description
1471 "Size of the LSP PDU";
1472 }
1473
1474 leaf lsp-id {
1475 type lsp-id;
1476 description
1477 "LSP ID";
1478 }
1479 }
1480
1481 notification if-state-change {
1482 description
1483 "This notification is sent when an interface
1484 state change is detected.";
1485 uses notification-instance-hdr;
1486
1487 uses notification-interface-hdr;
1488
1489 leaf state {
1490 type if-state-type;
1491 description
1492 "Interface state.";
1493 }
1494 }
1495
1496 notification corrupted-lsp-detected {
1497 description
1498 "This notification is sent when we find that
1499 an LSP that was stored in memory has become
1500 corrupted.";
1501 uses notification-instance-hdr;
1502
1503 leaf lsp-id {
1504 type lsp-id;
1505 description
1506 "LSP ID";
1507 }
1508 }
1509
1510 notification attempt-to-exceed-max-sequence {
1511 description
1512 "This notification is sent when the system
1513 wraps the 32-bit sequence counter of an LSP.";
1514 uses notification-instance-hdr;
1515
1516 leaf lsp-id {
1517 type lsp-id;
1518 description
1519 "LSP ID";
1520 }
1521 }
1522
1523 notification id-len-mismatch {
1524 description
1525 "This notification is sent when we receive a PDU
1526 with a different value for the System ID length.
1527 The notification generation must be throttled
1528 with at least 5 seconds between successive
1529 notifications.";
1530 uses notification-instance-hdr;
1531
1532 uses notification-interface-hdr;
1533
1534 leaf pdu-field-len {
1535 type uint8;
1536 description
1537 "Size of the ID length in the received PDU";
1538 }
1539
1540 leaf raw-pdu {
1541 type binary;
1542 description
1543 "Received raw PDU.";
1544 }
1545 }
1546
1547 notification max-area-addresses-mismatch {
1548 description
1549 "This notification is sent when we receive a PDU
1550 with a different value for the Maximum Area Addresses.
1551 The notification generation must be throttled
1552 with at least 5 seconds between successive
1553 notifications.";
1554 uses notification-instance-hdr;
1555
1556 uses notification-interface-hdr;
1557
1558 leaf max-area-addresses {
1559 type uint8;
1560 description
1561 "Received number of supported areas";
1562 }
1563
1564 leaf raw-pdu {
1565 type binary;
1566 description
1567 "Received raw PDU.";
1568 }
1569 }
1570
1571 notification own-lsp-purge {
1572 description
1573 "This notification is sent when the system receives
1574 a PDU with its own system ID and zero age.";
1575 uses notification-instance-hdr;
1576
1577 uses notification-interface-hdr;
1578
1579 leaf lsp-id {
1580 type lsp-id;
1581 description
1582 "LSP ID";
1583 }
1584 }
1585
1586 notification sequence-number-skipped {
1587 description
1588 "This notification is sent when the system receives a
1589 PDU with its own system ID and different contents. The
1590 system has to reoriginate the LSP with a higher sequence
1591 number.";
1592 uses notification-instance-hdr;
1593
1594 uses notification-interface-hdr;
1595
1596 leaf lsp-id {
1597 type lsp-id;
1598 description
1599 "LSP ID";
1600 }
1601 }
1602
1603 notification authentication-type-failure {
1604 description
1605 "This notification is sent when the system receives a
1606 PDU with the wrong authentication type field.
1607 The notification generation must be throttled
1608 with at least 5 seconds between successive
1609 notifications.";
1610 uses notification-instance-hdr;
1611
1612 uses notification-interface-hdr;
1613
1614 leaf raw-pdu {
1615 type binary;
1616 description
1617 "Received raw PDU.";
1618 }
1619 }
1620
1621 notification authentication-failure {
1622 description
1623 "This notification is sent when the system receives
1624 a PDU with the wrong authentication information.
1625 The notification generation must be throttled with
1626 with at least 5 seconds between successive
1627 notifications.";
1628 uses notification-instance-hdr;
1629
1630 uses notification-interface-hdr;
1631
1632 leaf raw-pdu {
1633 type binary;
1634 description
1635 "Received raw PDU.";
1636 }
1637 }
1638
1639 notification version-skew {
1640 description
1641 "This notification is sent when the system receives a
1642 PDU with a different protocol version number.
1643 The notification generation must be throttled
1644 with at least 5 seconds between successive
1645 notifications.";
1646 uses notification-instance-hdr;
1647
1648 uses notification-interface-hdr;
1649
1650 leaf protocol-version {
1651 type uint8;
1652 description
1653 "Protocol version received in the PDU.";
1654 }
1655
1656 leaf raw-pdu {
1657 type binary;
1658 description
1659 "Received raw PDU.";
1660 }
1661 }
1662
1663 notification area-mismatch {
1664 description
1665 "This notification is sent when the system receives a
1666 Hello PDU from an IS that does not share any area
1667 address. The notification generation must be throttled
1668 with at least 5 seconds between successive
1669 notifications.";
1670 uses notification-instance-hdr;
1671
1672 uses notification-interface-hdr;
1673
1674 leaf raw-pdu {
1675 type binary;
1676 description
1677 "Received raw PDU.";
1678 }
1679 }
1680
1681 notification rejected-adjacency {
1682 description
1683 "This notification is sent when the system receives a
1684 Hello PDU from an IS but does not establish an adjacency
1685 for some reason. The notification generation must be
1686 throttled with at least 5 seconds between successive
1687 notifications.";
1688 uses notification-instance-hdr;
1689
1690 uses notification-interface-hdr;
1691
1692 leaf raw-pdu {
1693 type binary;
1694 description
1695 "Received raw PDU.";
1696 }
1697
1698 leaf reason {
1699 type string;
1700 description
1701 "The system may provide a reason to reject the
1702 adjacency. If the reason is not available,
1703 an empty string will be returned.";
1704 }
1705 }
1706
1707 notification lsp-error-detected {
1708 description
1709 "This notification is sent when the system receives an
1710 LSP with a parse error. The notification generation must
1711 be throttled with at least 5 seconds between successive
1712 notifications.";
1713 uses notification-instance-hdr;
1714
1715 uses notification-interface-hdr;
1716
1717 leaf lsp-id {
1718 type lsp-id;
1719 description
1720 "LSP ID.";
1721 }
1722
1723 leaf raw-pdu {
1724 type binary;
1725 description
1726 "Received raw PDU.";
1727 }
1728
1729 leaf error-offset {
1730 type uint32;
1731 description
1732 "If the problem is a malformed TLV, the error-offset
1733 points to the start of the TLV. If the problem is with
1734 the LSP header, the error-offset points to the errant
1735 byte";
1736 }
1737
1738 leaf tlv-type {
1739 type uint8;
1740 description
1741 "If the problem is a malformed TLV, the tlv-type is set
1742 to the type value of the suspicious TLV. Otherwise,
1743 this leaf is not present.";
1744 }
1745 }
1746
1747 notification adjacency-state-change {
1748 description
1749 "This notification is sent when an IS-IS adjacency
1750 moves to Up state or to Down state.";
1751 uses notification-instance-hdr;
1752
1753 uses notification-interface-hdr;
1754
1755 leaf neighbor {
1756 type string;
1757 description
1758 "Name of the neighbor. If the name of the neighbor is
1759 not available, it is not returned.";
1760 }
1761
1762 leaf neighbor-system-id {
1763 type system-id;
1764 description
1765 "Neighbor system-id";
1766 }
1767
1768 leaf state {
1769 type adj-state-type;
1770 description
1771 "New state of the IS-IS adjacency.";
1772 }
1773
1774 leaf reason {
1775 type string;
1776 description
1777 "If the adjacency is going to DOWN, this leaf provides
1778 a reason for the adjacency going down. The reason is
1779 provided as a text. If the adjacency is going to UP, no
1780 reason is provided.";
1781 }
1782 }
1783
1784 notification lsp-received {
1785 description
1786 "This notification is sent when an LSP is received.
1787 The notification generation must be throttled with at
1788 least 5 seconds between successive notifications.";
1789 uses notification-instance-hdr;
1790
1791 uses notification-interface-hdr;
1792
1793 leaf lsp-id {
1794 type lsp-id;
1795 description
1796 "LSP ID";
1797 }
1798
1799 leaf sequence {
1800 type uint32;
1801 description
1802 "Sequence number of the received LSP.";
1803 }
1804
1805 leaf received-timestamp {
1806 type yang:timestamp;
1807 description
1808 "Timestamp when the LSP was received.";
1809 }
1810
1811 leaf neighbor-system-id {
1812 type system-id;
1813 description
1814 "Neighbor system-id of LSP sender";
1815 }
1816 }
1817
1818 notification lsp-generation {
1819 description
1820 "This notification is sent when an LSP is regenerated.
1821 The notification generation must be throttled with at
1822 least 5 seconds between successive notifications.";
1823 uses notification-instance-hdr;
1824
1825 leaf lsp-id {
1826 type lsp-id;
1827 description
1828 "LSP ID";
1829 }
1830
1831 leaf sequence {
1832 type uint32;
1833 description
1834 "Sequence number of the received LSP.";
1835 }
1836
1837 leaf send-timestamp {
1838 type yang:timestamp;
1839 description
1840 "Timestamp when our LSP was regenerated.";
1841 }
1842 }
1843 }