3 namespace "http://frrouting.org/yang/isisd";
6 import ietf-yang-types {
10 import ietf-inet-types {
14 import frr-interface {
18 import frr-route-types {
19 prefix frr-route-types;
25 "FRR Users List: <mailto:frog@lists.frrouting.org> FRR Development
26 List: <mailto:dev@lists.frrouting.org>";
28 "This module defines a model for managing FRR isisd daemon.";
34 "ISO/IEC 10589:2002.";
42 "This enum indicates L1-only capability.";
47 "This enum indicates L2-only capability.";
52 "This enum indicates capability for both levels.";
56 "This type defines IS-IS level of an object.";
59 typedef network-type {
64 "Unknown network type. Only valid as a state.";
69 "Broadcast circuit network-type.";
71 enum "point-to-point" {
74 "Point-to-point circuit network-type.";
79 "Loopback circuit network-type. Only valid as a state.";
86 pattern "[0-9A-Fa-f]{4}\\.[0-9A-Fa-f]{4}\\.[0-9A-Fa-f]{4}\\.[0-9][0-9]-[0-9][0-9]";
89 "This type defines the IS-IS LSP ID format using a
90 pattern, An example LSP ID is 0143.0438.AeF0.02-01";
95 pattern "[0-9A-Fa-f]{4}\\.[0-9A-Fa-f]{4}\\.[0-9A-Fa-f]{4}";
98 "This type defines IS-IS system-id using a pattern,
99 An example system-id is 0143.0438.AeF0";
102 typedef net-address {
104 pattern "[a-fA-F0-9]{2}(\\.[a-fA-F0-9]{4}){3,9}\\.[a-fA-F0-9]{2}";
107 "This type defines an OSI NET address using a pattern,
108 An example net-address is 49.0123.6452.1972.00";
111 typedef if-state-type {
125 "This type defines the state of an interface";
128 typedef adj-state-type {
133 "State indicates the adjacency is established.";
138 "State indicates the adjacency is NOT established.";
143 "State indicates the adjacency is establishing.";
148 "State indicates the adjacency is failed.";
152 "This type defines states of an adjacency";
155 typedef metric-style-type {
160 "This enum describes narrow metric style";
167 "This enum describes wide metric style";
174 "This enum describes transition metric style";
179 grouping redistribute-attributes {
181 "Common optional attributes of any redistribute entry.";
187 "Applies the conditions of the specified route-map to routes that
188 are redistributed into this routing instance.";
197 "Metric used for the redistributed route. If 0,
198 the default-metric attribute is used instead.";
202 grouping redistribute-default {
204 "Redistribution of default route within a level.";
209 "Always advertise default route.";
212 uses redistribute-attributes;
215 grouping isis-password {
217 "Authentication attributes or an IS-IS area or domain.";
232 "Clear-text password type.";
237 "MD5 password type.";
242 "Type of password used.";
246 grouping isis-area-password {
249 leaf authenticate-snp {
254 "No SNP authentication.";
259 "Send authenticated PDUs but do not check on receiving.";
264 "Send authenticated PDUs and check on receiving.";
269 "SNP PDUs authentication.";
273 grouping notification-instance-hdr {
275 "Instance specific IS-IS notification data grouping";
276 leaf routing-instance {
279 "Name of the routing-instance instance.";
282 leaf routing-protocol-name {
285 "Name of the IS-IS instance.";
291 "IS-IS level of the instance.";
295 grouping notification-interface-hdr {
297 "Interface specific IS-IS notification data grouping";
298 leaf interface-name {
301 "IS-IS interface name";
304 leaf interface-level {
307 "IS-IS level of the interface.";
310 leaf extended-circuit-id {
313 "Eextended circuit-id of the interface.";
319 "Configuration of the IS-IS routing daemon.";
323 "IS-IS routing instance.";
327 "Area-tag associated to this routing instance.";
334 "Level of the IS-IS routing instance (OSI only).";
337 leaf-list area-address {
341 "List of OSI NET addresses for this protocol instance.";
344 leaf dynamic-hostname {
348 "Dynamic hostname support for IS-IS.";
355 "If true, identify as L1/L2 router for inter-area traffic.";
362 "If true, avoid any transit traffic.";
366 type metric-style-type;
367 must ". = 'wide' or count(../multi-topology/*) = 0";
370 "Define the style of TLVs metric supported.";
373 leaf purge-originator {
377 "Use the RFC 6232 purge-originator.";
384 "Configuration of Link-State Packets (LSP) parameters";
394 container refresh-interval {
402 "LSP refresh interval for level-1.";
410 "LSP refresh interval for level-2.";
414 container maximum-lifetime {
416 "Maximum LSP lifetime.";
422 must ". >= ../../refresh-interval/level-1 + 300";
425 "Maximum LSP lifetime for level-1.";
433 must ". >= ../../refresh-interval/level-2 + 300";
436 "Maximum LSP lifetime for level-2.";
440 container generation-interval {
442 "Minimum LSP regeneration interval.";
448 must ". < ../../refresh-interval/level-1";
451 "Minimum time allowed before level-1 LSP retransmissions.";
459 must ". < ../../refresh-interval/level-2";
462 "Minimum time allowed before level-2 LSP retransmissions.";
469 "Parameters related to the Shortest Path First algorithm.";
470 container ietf-backoff-delay {
471 presence "Present if IETF SPF back-off delay is enabled.";
473 "SPF back-off delay algorithm parameters (see RFC 8405).";
481 "Delay used while in QUIET state";
491 "Delay used while in SHORT_WAIT state";
501 "Delay used while in LONG_WAIT state";
511 "Time with no received IGP events before considering IGP stable";
521 "Maximum duration needed to learn all the events related to a
526 container minimum-interval {
528 "Minimum interval between consecutive executions of the
537 "Minimum time between consecutive level-1 SPFs.";
547 "Minimum time between consecutive level-2 SPFs.";
552 container area-password {
553 presence "Present if authentication is required for IS level-1.";
555 "Authentication password for an IS-IS area.";
556 uses isis-area-password;
559 container domain-password {
560 presence "Present if authentication is required for IS level-2.";
562 "Authentication password for an IS-IS domain.";
563 uses isis-area-password;
566 container default-information-originate {
568 "Distribution of default information.";
572 "Distribute default route for IPv4.";
575 must "(. != \"level-1-2\") and ((../../../is-type = \"level-1-2\") or (. = ../../../is-type))";
578 uses redistribute-default;
584 "Distribute default route for IPv6.";
587 must "(. != \"level-1-2\") and ((../../../is-type = \"level-1-2\") or (. = ../../../is-type))";
590 uses redistribute-default;
594 container redistribute {
596 "Redistributes routes learned from other routing protocols.";
598 key "protocol level";
600 "IPv4 route redistribution.";
602 type frr-route-types:frr-route-types-v4;
603 must ". != \"isis\"";
605 "Originating routing protocol for the IPv4 routes.";
610 must "(. != \"level-1-2\") and ((../../../is-type = \"level-1-2\") or (. = ../../../is-type))";
612 "IS-IS level into which the routes should be redistributed.";
615 uses redistribute-attributes;
619 key "protocol level";
621 "IPv6 route redistribution.";
623 type frr-route-types:frr-route-types-v6;
624 must ". != \"isis\"";
626 "Originating routing protocol for the IPv6 routes.";
631 must "(. != \"level-1-2\") and ((../../../is-type = \"level-1-2\") or (. = ../../../is-type))";
633 "IS-IS level into which the routes should be redistributed.";
636 uses redistribute-attributes;
640 container multi-topology {
642 "IS-IS topologies configured for this area.";
643 container ipv4-multicast {
644 presence "Present if a separate IPv4-multicast topology is configured for this area.";
646 "IPv4 multicast topology.";
653 container ipv4-management {
654 presence "Present if a separate IPv4-management topology is configured for this area.";
656 "IPv4 management topology.";
663 container ipv6-unicast {
664 presence "Present if a separate IPv6-unicast topology is configured for this area.";
666 "IPv6 unicast topology.";
673 container ipv6-multicast {
674 presence "Present if a separate IPv6-multicast topology is configured for this area.";
676 "IPv6 multicast topology.";
683 container ipv6-management {
684 presence "Present if a separate IPv6-management topology is configured for this area.";
686 "IPv6 management topology.";
693 container ipv6-dstsrc {
694 presence "Present if a separate IPv6 destination-source topology is configured for this area.";
696 "IPv6 destination-source topology.";
704 leaf log-adjacency-changes {
708 "Log changes to the IS-IS adjacencies in this area.";
713 presence "Present if MPLS-TE is enabled.";
715 "Enable MPLS-TE functionality.";
716 leaf router-address {
717 type inet:ipv4-address;
719 "Stable IP address of the advertising router.";
724 augment "/frr-interface:lib/frr-interface:interface" {
726 "Extends interface model with IS-IS related parameters.";
728 presence "Present if an IS-IS circuit is defined for this interface.";
730 "IS-IS interface parameters.";
735 "Area-tag associated to this circuit.";
742 "Routing IS-IS IPv4 traffic over this circuit.";
749 "Routing IS-IS IPv6 traffic over this circuit.";
756 "IS-type of this circuit.";
759 container csnp-interval {
761 "Complete Sequence Number PDU (CSNP) generation interval.";
769 "CNSP interval for level-1";
779 "CNSP interval for level-2";
783 container psnp-interval {
785 "Partial Sequence Number PDU (PSNP) generation interval.";
793 "PNSP interval for level-1";
803 "PCNSP interval for level-2";
809 "Parameters related to IS-IS hello PDUs.";
814 "Add padding to IS-IS hello PDUs.";
819 "Interval between consecutive hello messages.";
827 "Holding time for level-1; interval will depend on multiplier.";
837 "Holding time for level-2; interval will depend on multiplier.";
841 container multiplier {
843 "Multiplier for the hello messages holding time.";
850 "Multiplier for the hello holding time.";
859 "Multiplier for the hello holding time.";
866 "Default metric for this IS-IS circuit.";
871 must ". < 64 or /frr-isisd:isis/instance[area-tag = current()/../../area-tag]/metric-style = 'wide'";
874 "Default level-1 metric for this IS-IS circuit.";
881 must ". < 64 or /frr-isisd:isis/instance[area-tag = current()/../../area-tag]/metric-style = 'wide'";
884 "Default level-2 metric for this IS-IS circuit.";
890 "Priority for Designated Router election.";
897 "Level-1 priority for this IS-IS circuit.";
906 "Level-2 priority for this IS-IS circuit.";
913 must "(. = \"point-to-point\") or (. = \"broadcast\")";
915 "Explicitly configured type of IS-IS circuit (broadcast or point-to-point).";
922 "Interface is in passive mode.";
926 presence "Present if a password is set for this IS interface.";
930 leaf disable-three-way-handshake {
934 "Disables three-way handshake when creating new adjacencies.";
937 container multi-topology {
939 "IS-IS topologies configured on this circuit.";
944 "IPv4 unicast topology.";
947 leaf ipv4-multicast {
951 "IPv4 multicast topology.";
954 leaf ipv4-management {
958 "IPv4 management topology.";
965 "IPv6 unicast topology.";
968 leaf ipv6-multicast {
972 "IPv6 multicast topology.";
975 leaf ipv6-management {
979 "IPv6 management topology.";
986 "IPv6 destination-source topology.";
992 notification database-overload {
994 "This notification is sent when an IS-IS instance
995 overload state changes.";
996 uses notification-instance-hdr;
1003 "Indicates IS-IS instance has left overload state";
1008 "Indicates IS-IS instance has entered overload state";
1012 "New overload state of the IS-IS instance";
1016 notification lsp-too-large {
1018 "This notification is sent when we attempt to propagate
1019 an LSP that is larger than the dataLinkBlockSize for the
1020 circuit. The notification generation must be throttled
1021 with at least 5 seconds betweeen successive
1023 uses notification-instance-hdr;
1025 uses notification-interface-hdr;
1030 "Size of the LSP PDU";
1040 notification if-state-change {
1042 "This notification is sent when an interface
1043 state change is detected.";
1044 uses notification-instance-hdr;
1046 uses notification-interface-hdr;
1055 notification corrupted-lsp-detected {
1057 "This notification is sent when we find that
1058 an LSP that was stored in memory has become
1060 uses notification-instance-hdr;
1069 notification attempt-to-exceed-max-sequence {
1071 "This notification is sent when the system
1072 wraps the 32-bit sequence counter of an LSP.";
1073 uses notification-instance-hdr;
1082 notification id-len-mismatch {
1084 "This notification is sent when we receive a PDU
1085 with a different value for the System ID length.
1086 The notification generation must be throttled
1087 with at least 5 seconds betweeen successive
1089 uses notification-instance-hdr;
1091 uses notification-interface-hdr;
1093 leaf pdu-field-len {
1096 "Size of the ID length in the received PDU";
1102 "Received raw PDU.";
1106 notification max-area-addresses-mismatch {
1108 "This notification is sent when we receive a PDU
1109 with a different value for the Maximum Area Addresses.
1110 The notification generation must be throttled
1111 with at least 5 seconds betweeen successive
1113 uses notification-instance-hdr;
1115 uses notification-interface-hdr;
1117 leaf max-area-addresses {
1120 "Received number of supported areas";
1126 "Received raw PDU.";
1130 notification own-lsp-purge {
1132 "This notification is sent when the system receives
1133 a PDU with its own system ID and zero age.";
1134 uses notification-instance-hdr;
1136 uses notification-interface-hdr;
1145 notification sequence-number-skipped {
1147 "This notification is sent when the system receives a
1148 PDU with its own system ID and different contents. The
1149 system has to reoriginate the LSP with a higher sequence
1151 uses notification-instance-hdr;
1153 uses notification-interface-hdr;
1162 notification authentication-type-failure {
1164 "This notification is sent when the system receives a
1165 PDU with the wrong authentication type field.
1166 The notification generation must be throttled
1167 with at least 5 seconds betweeen successive
1169 uses notification-instance-hdr;
1171 uses notification-interface-hdr;
1176 "Received raw PDU.";
1180 notification authentication-failure {
1182 "This notification is sent when the system receives
1183 a PDU with the wrong authentication information.
1184 The notification generation must be throttled with
1185 with at least 5 seconds betweeen successive
1187 uses notification-instance-hdr;
1189 uses notification-interface-hdr;
1194 "Received raw PDU.";
1198 notification version-skew {
1200 "This notification is sent when the system receives a
1201 PDU with a different protocol version number.
1202 The notification generation must be throttled
1203 with at least 5 seconds betweeen successive
1205 uses notification-instance-hdr;
1207 uses notification-interface-hdr;
1209 leaf protocol-version {
1212 "Protocol version received in the PDU.";
1218 "Received raw PDU.";
1222 notification area-mismatch {
1224 "This notification is sent when the system receives a
1225 Hello PDU from an IS that does not share any area
1226 address. The notification generation must be throttled
1227 with at least 5 seconds betweeen successive
1229 uses notification-instance-hdr;
1231 uses notification-interface-hdr;
1236 "Received raw PDU.";
1240 notification rejected-adjacency {
1242 "This notification is sent when the system receives a
1243 Hello PDU from an IS but does not establish an adjacency
1244 for some reason. The notification generation must be
1245 throttled with at least 5 seconds betweeen successive
1247 uses notification-instance-hdr;
1249 uses notification-interface-hdr;
1254 "Received raw PDU.";
1260 "The system may provide a reason to reject the
1261 adjacency. If the reason is not available,
1262 an empty string will be returned.";
1266 notification lsp-error-detected {
1268 "This notification is sent when the system receives an
1269 LSP with a parse error. The notification generation must
1270 be throttled with at least 5 seconds betweeen successive
1272 uses notification-instance-hdr;
1274 uses notification-interface-hdr;
1285 "Received raw PDU.";
1291 "If the problem is a malformed TLV, the error-offset
1292 points to the start of the TLV. If the problem is with
1293 the LSP header, the error-offset points to the errant
1300 "If the problem is a malformed TLV, the tlv-type is set
1301 to the type value of the suspicious TLV. Otherwise,
1302 this leaf is not present.";
1306 notification adjacency-state-change {
1308 "This notification is sent when an IS-IS adjacency
1309 moves to Up state or to Down state.";
1310 uses notification-instance-hdr;
1312 uses notification-interface-hdr;
1317 "Name of the neighbor. If the name of the neighbor is
1318 not available, it is not returned.";
1321 leaf neighbor-system-id {
1324 "Neighbor system-id";
1328 type adj-state-type;
1330 "New state of the IS-IS adjacency.";
1336 "If the adjacency is going to DOWN, this leaf provides
1337 a reason for the adjacency going down. The reason is
1338 provided as a text. If the adjacency is going to UP, no
1339 reason is provided.";
1343 notification lsp-received {
1345 "This notification is sent when an LSP is received.
1346 The notification generation must be throttled with at
1347 least 5 seconds betweeen successive notifications.";
1348 uses notification-instance-hdr;
1350 uses notification-interface-hdr;
1361 "Sequence number of the received LSP.";
1364 leaf received-timestamp {
1365 type yang:timestamp;
1367 "Timestamp when the LSP was received.";
1370 leaf neighbor-system-id {
1373 "Neighbor system-id of LSP sender";
1377 notification lsp-generation {
1379 "This notification is sent when an LSP is regenerated.
1380 The notification generation must be throttled with at
1381 least 5 seconds betweeen successive notifications.";
1382 uses notification-instance-hdr;
1393 "Sequence number of the received LSP.";
1396 leaf send-timestamp {
1397 type yang:timestamp;
1399 "Timestamp when our LSP was regenerated.";