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