diff options
author | Emanuele Di Pascale <emanuele@voltanet.io> | 2018-11-13 16:35:07 +0100 |
---|---|---|
committer | Emanuele Di Pascale <emanuele@voltanet.io> | 2018-12-18 15:15:55 +0100 |
commit | 20bd27e2aaaed49b7ce85172199f25198b16736d (patch) | |
tree | 2fea45bfcee638438f84e7fde27f75a55d9a4c3f /yang | |
parent | lib: fix issue with yang_str2enum (diff) | |
download | frr-20bd27e2aaaed49b7ce85172199f25198b16736d.tar.xz frr-20bd27e2aaaed49b7ce85172199f25198b16736d.zip |
isisd, yang: add configuration model and callback stubs
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
Diffstat (limited to 'yang')
-rw-r--r-- | yang/frr-isisd.yang | 1388 | ||||
-rw-r--r-- | yang/subdir.am | 4 |
2 files changed, 1392 insertions, 0 deletions
diff --git a/yang/frr-isisd.yang b/yang/frr-isisd.yang new file mode 100644 index 000000000..ab7da8300 --- /dev/null +++ b/yang/frr-isisd.yang @@ -0,0 +1,1388 @@ +module frr-isisd { + yang-version 1.1; + namespace "http://frrouting.org/yang/isisd"; + prefix frr-isisd; + + import ietf-yang-types { + prefix yang; + } + + import ietf-inet-types { + prefix inet; + } + + import frr-interface { + prefix frr-interface; + } + + import frr-route-types { + prefix frr-route-types; + } + + organization + "Free Range Routing"; + contact + "FRR Users List: <mailto:frog@lists.frrouting.org> FRR Development + List: <mailto:dev@lists.frrouting.org>"; + description + "This module defines a model for managing FRR isisd daemon."; + + revision 2018-07-26 { + description + "Initial revision."; + reference + "ISO/IEC 10589:2002."; + } + + typedef level { + type enumeration { + enum "level-1" { + value 1; + description + "This enum indicates L1-only capability."; + } + enum "level-2" { + value 2; + description + "This enum indicates L2-only capability."; + } + enum "level-1-2" { + value 3; + description + "This enum indicates capability for both levels."; + } + } + description + "This type defines IS-IS level of an object."; + } + + typedef network-type { + type enumeration { + enum "unknown" { + value 0; + description + "Unknown network type. Only valid as a state."; + } + enum "broadcast" { + value 1; + description + "Broadcast circuit network-type."; + } + enum "point-to-point" { + value 2; + description + "Point-to-point circuit network-type."; + } + enum "loopback" { + value 3; + description + "Loopback circuit network-type. Only valid as a state."; + } + } + } + + typedef lsp-id { + type string { + pattern "[0-9A-Fa-f]{4}\\.[0-9A-Fa-f]{4}\\.[0-9A-Fa-f]{4}\\.[0-9][0-9]-[0-9][0-9]"; + } + description + "This type defines the IS-IS LSP ID format using a + pattern, An example LSP ID is 0143.0438.AeF0.02-01"; + } + + typedef system-id { + type string { + pattern "[0-9A-Fa-f]{4}\\.[0-9A-Fa-f]{4}\\.[0-9A-Fa-f]{4}"; + } + description + "This type defines IS-IS system-id using a pattern, + An example system-id is 0143.0438.AeF0"; + } + + typedef net-address { + type string { + pattern "[a-fA-F0-9]{2}(\\.[a-fA-F0-9]{4}){3,9}\\.[a-fA-F0-9]{2}"; + } + description + "This type defines an OSI NET address using a pattern, + An example net-address is 49.0123.6452.1972.00"; + } + + typedef if-state-type { + type enumeration { + enum "up" { + value 0; + description + "Up state."; + } + enum "down" { + value 1; + description + "Down state"; + } + } + description + "This type defines the state of an interface"; + } + + typedef adj-state-type { + type enumeration { + enum "up" { + value 0; + description + "State indicates the adjacency is established."; + } + enum "down" { + value 1; + description + "State indicates the adjacency is NOT established."; + } + enum "init" { + value 2; + description + "State indicates the adjacency is establishing."; + } + enum "failed" { + value 3; + description + "State indicates the adjacency is failed."; + } + } + description + "This type defines states of an adjacency"; + } + + typedef metric-style-type { + type enumeration { + enum "narrow" { + value 0; + description + "This enum describes narrow metric style"; + reference + "RFC1195"; + } + enum "wide" { + value 1; + description + "This enum describes wide metric style"; + reference + "RFC5305"; + } + enum "transition" { + value 2; + description + "This enum describes transition metric style"; + } + } + } + + grouping redistribute-attributes { + description + "Common optional attributes of any redistribute entry."; + choice attribute { + leaf route-map { + type string { + length "1..max"; + } + description + "Applies the conditions of the specified route-map to routes that + are redistributed into this routing instance."; + } + + leaf metric { + type uint32 { + range "0..16777215"; + } + default "0"; + description + "Metric used for the redistributed route. If 0, + the default-metric attribute is used instead."; + } + } + } + + grouping redistribute-default { + description + "Redistribution of default route within a level."; + leaf always { + type empty; + description + "Always advertise default route."; + } + + uses redistribute-attributes; + } + + grouping isis-password { + description + "Authentication attributes or an IS-IS area or domain."; + leaf password { + type string { + length "1..254"; + } + mandatory true; + description + "Actual password."; + } + + leaf password-type { + type enumeration { + enum "clear" { + value 1; + description + "Clear-text password type."; + } + enum "md5" { + value 54; + description + "MD5 password type."; + } + } + mandatory true; + description + "Type of password used."; + } + } + + grouping isis-area-password { + uses isis-password; + + leaf authenticate-snp { + type enumeration { + enum "none" { + value 0; + description + "No SNP authentication."; + } + enum "send-only" { + value 1; + description + "Send authenticated PDUs but do not check on receiving."; + } + enum "validate" { + value 3; + description + "Send authenticated PDUs and check on receiving."; + } + } + default "none"; + description + "SNP PDUs authentication."; + } + } + + grouping notification-instance-hdr { + description + "Instance specific IS-IS notification data grouping"; + leaf routing-instance { + type string; + description + "Name of the routing-instance instance."; + } + + leaf routing-protocol-name { + type string; + description + "Name of the IS-IS instance."; + } + + leaf isis-level { + type level; + description + "IS-IS level of the instance."; + } + } + + grouping notification-interface-hdr { + description + "Interface specific IS-IS notification data grouping"; + leaf interface-name { + type string; + description + "IS-IS interface name"; + } + + leaf interface-level { + type level; + description + "IS-IS level of the interface."; + } + + leaf extended-circuit-id { + type uint32; + description + "Eextended circuit-id of the interface."; + } + } + + container isis { + description + "Configuration of the IS-IS routing daemon."; + list instance { + key "area-tag"; + description + "IS-IS routing instance."; + leaf area-tag { + type string; + description + "Area-tag associated to this routing instance."; + } + + leaf is-type { + type level; + default "level-1"; + description + "Level of the IS-IS routing instance (OSI only)."; + } + + leaf-list area-address { + type net-address; + max-elements 3; + description + "List of OSI NET addresses for this protocol instance."; + } + + leaf dynamic-hostname { + type boolean; + default "true"; + description + "Dynamic hostname support for IS-IS."; + } + + leaf attached { + type empty; + description + "If present, identify as L1/L2 router for inter-area traffic."; + } + + leaf overload { + type empty; + description + "If present, avoid any transit traffic."; + } + + leaf metric-style { + type metric-style-type; + must ". = 'wide' or count(../multi-topology/*) = 0"; + default "wide"; + description + "Define the style of TLVs metric supported."; + } + + leaf purge-originator { + type empty; + description + "Use the RFC 6232 purge-originator."; + reference + "RFC6232"; + } + + container lsp { + description + "Configuration of Link-State Packets (LSP) parameters"; + leaf mtu { + type uint16 { + range "128..4352"; + } + default "1497"; + description + "MTU of an LSP."; + } + + container refresh-interval { + description + ""; + leaf level-1 { + type uint16; + units "seconds"; + default "900"; + description + "LSP refresh interval for level-1."; + } + + leaf level-2 { + type uint16; + units "seconds"; + default "900"; + description + "LSP refresh interval for level-2."; + } + } + + container maximum-lifetime { + description + "Maximum LSP lifetime."; + leaf level-1 { + type uint16 { + range "350..65535"; + } + units "seconds"; + must ". >= ../../refresh-interval/level-1 + 300"; + default "1200"; + description + "Maximum LSP lifetime for level-1."; + } + + leaf level-2 { + type uint16 { + range "350..65535"; + } + units "seconds"; + must ". >= ../../refresh-interval/level-2 + 300"; + default "1200"; + description + "Maximum LSP lifetime for level-2."; + } + } + + container generation-interval { + description + "Minimum LSP regeneration interval."; + leaf level-1 { + type uint16 { + range "1..120"; + } + units "seconds"; + must ". < ../../refresh-interval/level-1"; + default "30"; + description + "Minimum time allowed before level-1 LSP retransmissions."; + } + + leaf level-2 { + type uint16 { + range "1..120"; + } + units "seconds"; + must ". < ../../refresh-interval/level-2"; + default "30"; + description + "Minimum time allowed before level-2 LSP retransmissions."; + } + } + } + + container spf { + description + "Parameters related to the Shortest Path First algorithm."; + container ietf-backoff-delay { + presence "Present if IETF SPF back-off delay is enabled."; + description + "SPF back-off delay algorithm parameters (see RFC 8405)."; + leaf init-delay { + type uint16 { + range "0..60000"; + } + units "msec"; + mandatory true; + description + "Delay used while in QUIET state"; + } + + leaf short-delay { + type uint16 { + range "0..60000"; + } + units "msec"; + mandatory true; + description + "Delay used while in SHORT_WAIT state"; + } + + leaf long-delay { + type uint16 { + range "0..60000"; + } + units "msec"; + mandatory true; + description + "Delay used while in LONG_WAIT state"; + } + + leaf hold-down { + type uint16 { + range "0..60000"; + } + units "msec"; + mandatory true; + description + "Time with no received IGP events before considering IGP stable"; + } + + leaf time-to-learn { + type uint16 { + range "0..60000"; + } + units "msec"; + mandatory true; + description + "Maximum duration needed to learn all the events related to a + single failure"; + } + } + + container minimum-interval { + description + "Minimum interval between consecutive executions of the + SPF algorithm."; + leaf level-1 { + type uint16 { + range "1..120"; + } + units "seconds"; + default "1"; + description + "Minimum time between consecutive level-1 SPFs."; + } + + leaf level-2 { + type uint16 { + range "1..120"; + } + units "seconds"; + default "1"; + description + "Minimum time between consecutive level-2 SPFs."; + } + } + } + + container area-password { + presence "Present if authentication is required for IS level-1."; + description + "Authentication password for an IS-IS area."; + uses isis-area-password; + } + + container domain-password { + presence "Present if authentication is required for IS level-2."; + description + "Authentication password for an IS-IS domain."; + uses isis-area-password; + } + + container default-information-originate { + description + "Distribution of default information."; + list ipv4 { + key "level"; + description + "Distribute default route for IPv4."; + leaf level { + type level; + must "(. != \"level-1-2\") and ((../../../is-type = \"level-1-2\") or (. = ../../../is-type))"; + } + + uses redistribute-default; + } + + list ipv6 { + key "level"; + description + "Distribute default route for IPv6."; + leaf level { + type level; + must "(. != \"level-1-2\") and ((../../../is-type = \"level-1-2\") or (. = ../../../is-type))"; + } + + uses redistribute-default; + } + } + + container redistribute { + description + "Redistributes routes learned from other routing protocols."; + list ipv4 { + key "protocol level"; + description + "IPv4 route redistribution."; + leaf protocol { + type frr-route-types:frr-route-types-v4; + must ". != \"isis\""; + description + "Originating routing protocol for the IPv4 routes."; + } + + leaf level { + type level; + must "(. != \"level-1-2\") and ((../../../is-type = \"level-1-2\") or (. = ../../../is-type))"; + description + "IS-IS level into which the routes should be redistributed."; + } + + uses redistribute-attributes; + } + + list ipv6 { + key "protocol level"; + description + "IPv6 route redistribution."; + leaf protocol { + type frr-route-types:frr-route-types-v6; + must ". != \"isis\""; + description + "Originating routing protocol for the IPv6 routes."; + } + + leaf level { + type level; + must "(. != \"level-1-2\") and ((../../../is-type = \"level-1-2\") or (. = ../../../is-type))"; + description + "IS-IS level into which the routes should be redistributed."; + } + + uses redistribute-attributes; + } + } + + container multi-topology { + description + "IS-IS topologies configured for this area."; + container ipv4-multicast { + presence "Present if a separate IPv4-multicast topology is configured for this area."; + description + "IPv4 multicast topology."; + leaf overload { + type empty; + } + } + + container ipv4-management { + presence "Present if a separate IPv4-management topology is configured for this area."; + description + "IPv4 management topology."; + leaf overload { + type empty; + } + } + + container ipv6-unicast { + presence "Present if a separate IPv6-unicast topology is configured for this area."; + description + "IPv6 unicast topology."; + leaf overload { + type empty; + } + } + + container ipv6-multicast { + presence "Present if a separate IPv6-multicast topology is configured for this area."; + description + "IPv6 multicast topology."; + leaf overload { + type empty; + } + } + + container ipv6-management { + presence "Present if a separate IPv6-management topology is configured for this area."; + description + "IPv6 management topology."; + leaf overload { + type empty; + } + } + + container ipv6-dstsrc { + presence "Present if a separate IPv6 destination-source topology is configured for this area."; + description + "IPv6 destination-source topology."; + leaf overload { + type empty; + } + } + } + + leaf log-adjacency-changes { + type empty; + description + "Log changes to the IS-IS adjacencies in this area."; + } + } + + container mpls-te { + presence "Present if MPLS-TE is enabled."; + description + "Enable MPLS-TE functionality."; + leaf router-address { + type inet:ipv4-address; + description + "Stable IP address of the advertising router."; + } + } + } + + augment "/frr-interface:lib/frr-interface:interface" { + description + "Extends interface model with IS-IS related parameters."; + container isis { + presence "Present if an IS-IS circuit is defined for this interface."; + description + "IS-IS interface parameters."; + leaf area-tag { + type string; + mandatory true; + description + "Area-tag associated to this circuit."; + } + + leaf circuit-type { + type level; + default "level-1-2"; + description + "IS-type of this circuit."; + } + + leaf ipv4-routing { + type empty; + description + "Routing IS-IS IPv4 traffic over this circuit."; + } + + leaf ipv6-routing { + type empty; + description + "Routing IS-IS IPv6 traffic over this circuit."; + } + + container csnp-interval { + description + "Complete Sequence Number PDU (CSNP) generation interval."; + leaf level-1 { + type uint16 { + range "1..600"; + } + units "seconds"; + default "10"; + description + "CNSP interval for level-1"; + } + + leaf level-2 { + type uint16 { + range "1..600"; + } + units "seconds"; + default "10"; + description + "CNSP interval for level-2"; + } + } + + container psnp-interval { + description + "Partial Sequence Number PDU (PSNP) generation interval."; + leaf level-1 { + type uint16 { + range "1..120"; + } + units "seconds"; + default "2"; + description + "PNSP interval for level-1"; + } + + leaf level-2 { + type uint16 { + range "1..120"; + } + units "seconds"; + default "2"; + description + "PCNSP interval for level-2"; + } + } + + container hello { + description + "Parameters related to IS-IS hello PDUs."; + leaf padding { + type boolean; + default "true"; + description + "Add padding to IS-IS hello PDUs."; + } + + container interval { + description + "Interval between consecutive hello messages."; + leaf level-1 { + type uint32 { + range "1..600"; + } + units "seconds"; + default "3"; + description + "Holding time for level-1; interval will depend on multiplier."; + } + + leaf level-2 { + type uint32 { + range "1..600"; + } + units "seconds"; + default "3"; + description + "Holding time for level-2; interval will depend on multiplier."; + } + } + + container multiplier { + description + "Multiplier for the hello messages holding time."; + leaf level-1 { + type uint16 { + range "2..100"; + } + default "10"; + description + "Multiplier for the hello holding time."; + } + + leaf level-2 { + type uint16 { + range "2..100"; + } + default "10"; + description + "Multiplier for the hello holding time."; + } + } + } + + container metric { + description + "Default metric for this IS-IS circuit."; + leaf level-1 { + type uint32 { + range "0..16777215"; + } + must ". < 64 or /frr-isisd:isis/instance[area-tag = current()/../../area-tag]/metric-style = 'wide'"; + default "10"; + description + "Default level-1 metric for this IS-IS circuit."; + } + + leaf level-2 { + type uint32 { + range "0..16777215"; + } + must ". < 64 or /frr-isisd:isis/instance[area-tag = current()/../../area-tag]/metric-style = 'wide'"; + default "10"; + description + "Default level-2 metric for this IS-IS circuit."; + } + } + + container priority { + description + "Priority for Designated Router election."; + leaf level-1 { + type uint8 { + range "0..127"; + } + default "64"; + description + "Level-1 priority for this IS-IS circuit."; + } + + leaf level-2 { + type uint8 { + range "0..127"; + } + default "64"; + description + "Level-2 priority for this IS-IS circuit."; + } + } + + leaf network-type { + type network-type; + must "(. = \"point-to-point\") or (. = \"broadcast\")"; + description + "Explicitly configured type of IS-IS circuit (broadcast or point-to-point)."; + } + + leaf passive { + type empty; + description + "Interface is in passive mode."; + } + + container password { + presence "Present if a password is set for this IS interface."; + uses isis-password; + } + + leaf disable-three-way-handshake { + type empty; + description + "Disables three-way handshake when creating new adjacencies."; + } + + container multi-topology { + description + "IS-IS topologies configured on this circuit."; + leaf ipv4-unicast { + type boolean; + default "true"; + description + "IPv4 unicast topology."; + } + + leaf ipv4-multicast { + type boolean; + default "true"; + description + "IPv4 multicast topology."; + } + + leaf ipv4-management { + type boolean; + default "true"; + description + "IPv4 management topology."; + } + + leaf ipv6-unicast { + type boolean; + default "true"; + description + "IPv6 unicast topology."; + } + + leaf ipv6-multicast { + type boolean; + default "true"; + description + "IPv6 multicast topology."; + } + + leaf ipv6-management { + type boolean; + default "true"; + description + "IPv6 management topology."; + } + + leaf ipv6-dstsrc { + type boolean; + default "true"; + description + "IPv6 destination-source topology."; + } + } + } + } + + notification database-overload { + description + "This notification is sent when an IS-IS instance + overload state changes."; + uses notification-instance-hdr; + + leaf overload { + type enumeration { + enum "off" { + value 0; + description + "Indicates IS-IS instance has left overload state"; + } + enum "on" { + value 1; + description + "Indicates IS-IS instance has entered overload state"; + } + } + description + "New overload state of the IS-IS instance"; + } + } + + notification lsp-too-large { + description + "This notification is sent when we attempt to propagate + an LSP that is larger than the dataLinkBlockSize for the + circuit. The notification generation must be throttled + with at least 5 seconds betweeen successive + notifications."; + uses notification-instance-hdr; + + uses notification-interface-hdr; + + leaf pdu-size { + type uint32; + description + "Size of the LSP PDU"; + } + + leaf lsp-id { + type lsp-id; + description + "LSP ID"; + } + } + + notification if-state-change { + description + "This notification is sent when an interface + state change is detected."; + uses notification-instance-hdr; + + uses notification-interface-hdr; + + leaf state { + type if-state-type; + description + "Interface state."; + } + } + + notification corrupted-lsp-detected { + description + "This notification is sent when we find that + an LSP that was stored in memory has become + corrupted."; + uses notification-instance-hdr; + + leaf lsp-id { + type lsp-id; + description + "LSP ID"; + } + } + + notification attempt-to-exceed-max-sequence { + description + "This notification is sent when the system + wraps the 32-bit sequence counter of an LSP."; + uses notification-instance-hdr; + + leaf lsp-id { + type lsp-id; + description + "LSP ID"; + } + } + + notification id-len-mismatch { + description + "This notification is sent when we receive a PDU + with a different value for the System ID length. + The notification generation must be throttled + with at least 5 seconds betweeen successive + notifications."; + uses notification-instance-hdr; + + uses notification-interface-hdr; + + leaf pdu-field-len { + type uint8; + description + "Size of the ID length in the received PDU"; + } + + leaf raw-pdu { + type binary; + description + "Received raw PDU."; + } + } + + notification max-area-addresses-mismatch { + description + "This notification is sent when we receive a PDU + with a different value for the Maximum Area Addresses. + The notification generation must be throttled + with at least 5 seconds betweeen successive + notifications."; + uses notification-instance-hdr; + + uses notification-interface-hdr; + + leaf max-area-addresses { + type uint8; + description + "Received number of supported areas"; + } + + leaf raw-pdu { + type binary; + description + "Received raw PDU."; + } + } + + notification own-lsp-purge { + description + "This notification is sent when the system receives + a PDU with its own system ID and zero age."; + uses notification-instance-hdr; + + uses notification-interface-hdr; + + leaf lsp-id { + type lsp-id; + description + "LSP ID"; + } + } + + notification sequence-number-skipped { + description + "This notification is sent when the system receives a + PDU with its own system ID and different contents. The + system has to reoriginate the LSP with a higher sequence + number."; + uses notification-instance-hdr; + + uses notification-interface-hdr; + + leaf lsp-id { + type lsp-id; + description + "LSP ID"; + } + } + + notification authentication-type-failure { + description + "This notification is sent when the system receives a + PDU with the wrong authentication type field. + The notification generation must be throttled + with at least 5 seconds betweeen successive + notifications."; + uses notification-instance-hdr; + + uses notification-interface-hdr; + + leaf raw-pdu { + type binary; + description + "Received raw PDU."; + } + } + + notification authentication-failure { + description + "This notification is sent when the system receives + a PDU with the wrong authentication information. + The notification generation must be throttled with + with at least 5 seconds betweeen successive + notifications."; + uses notification-instance-hdr; + + uses notification-interface-hdr; + + leaf raw-pdu { + type binary; + description + "Received raw PDU."; + } + } + + notification version-skew { + description + "This notification is sent when the system receives a + PDU with a different protocol version number. + The notification generation must be throttled + with at least 5 seconds betweeen successive + notifications."; + uses notification-instance-hdr; + + uses notification-interface-hdr; + + leaf protocol-version { + type uint8; + description + "Protocol version received in the PDU."; + } + + leaf raw-pdu { + type binary; + description + "Received raw PDU."; + } + } + + notification area-mismatch { + description + "This notification is sent when the system receives a + Hello PDU from an IS that does not share any area + address. The notification generation must be throttled + with at least 5 seconds betweeen successive + notifications."; + uses notification-instance-hdr; + + uses notification-interface-hdr; + + leaf raw-pdu { + type binary; + description + "Received raw PDU."; + } + } + + notification rejected-adjacency { + description + "This notification is sent when the system receives a + Hello PDU from an IS but does not establish an adjacency + for some reason. The notification generation must be + throttled with at least 5 seconds betweeen successive + notifications."; + uses notification-instance-hdr; + + uses notification-interface-hdr; + + leaf raw-pdu { + type binary; + description + "Received raw PDU."; + } + + leaf reason { + type string; + description + "The system may provide a reason to reject the + adjacency. If the reason is not available, + an empty string will be returned."; + } + } + + notification lsp-error-detected { + description + "This notification is sent when the system receives an + LSP with a parse error. The notification generation must + be throttled with at least 5 seconds betweeen successive + notifications."; + uses notification-instance-hdr; + + uses notification-interface-hdr; + + leaf lsp-id { + type lsp-id; + description + "LSP ID."; + } + + leaf raw-pdu { + type binary; + description + "Received raw PDU."; + } + + leaf error-offset { + type uint32; + description + "If the problem is a malformed TLV, the error-offset + points to the start of the TLV. If the problem is with + the LSP header, the error-offset points to the errant + byte"; + } + + leaf tlv-type { + type uint8; + description + "If the problem is a malformed TLV, the tlv-type is set + to the type value of the suspicious TLV. Otherwise, + this leaf is not present."; + } + } + + notification adjacency-state-change { + description + "This notification is sent when an IS-IS adjacency + moves to Up state or to Down state."; + uses notification-instance-hdr; + + uses notification-interface-hdr; + + leaf neighbor { + type string; + description + "Name of the neighbor. If the name of the neighbor is + not available, it is not returned."; + } + + leaf neighbor-system-id { + type system-id; + description + "Neighbor system-id"; + } + + leaf state { + type adj-state-type; + description + "New state of the IS-IS adjacency."; + } + + leaf reason { + type string; + description + "If the adjacency is going to DOWN, this leaf provides + a reason for the adjacency going down. The reason is + provided as a text. If the adjacency is going to UP, no + reason is provided."; + } + } + + notification lsp-received { + description + "This notification is sent when an LSP is received. + The notification generation must be throttled with at + least 5 seconds betweeen successive notifications."; + uses notification-instance-hdr; + + uses notification-interface-hdr; + + leaf lsp-id { + type lsp-id; + description + "LSP ID"; + } + + leaf sequence { + type uint32; + description + "Sequence number of the received LSP."; + } + + leaf received-timestamp { + type yang:timestamp; + description + "Timestamp when the LSP was received."; + } + + leaf neighbor-system-id { + type system-id; + description + "Neighbor system-id of LSP sender"; + } + } + + notification lsp-generation { + description + "This notification is sent when an LSP is regenerated. + The notification generation must be throttled with at + least 5 seconds betweeen successive notifications."; + uses notification-instance-hdr; + + leaf lsp-id { + type lsp-id; + description + "LSP ID"; + } + + leaf sequence { + type uint32; + description + "Sequence number of the received LSP."; + } + + leaf send-timestamp { + type yang:timestamp; + description + "Timestamp when our LSP was regenerated."; + } + } +} diff --git a/yang/subdir.am b/yang/subdir.am index 6484e1181..c95ec4dbf 100644 --- a/yang/subdir.am +++ b/yang/subdir.am @@ -31,3 +31,7 @@ endif if RIPNGD dist_yangmodels_DATA += yang/frr-ripngd.yang endif + +if ISISD +dist_yangmodels_DATA += yang/frr-isisd.yang +endif |