Passa al contenuto principale

Appendix B. Further Augmentations: IP Connectivity and IS-IS Subservices (Appendice B. Ulteriori Aumenti: Sottoservizi Connettività IP e IS-IS)

Appendix B. Further Augmentations: IP Connectivity and IS-IS Subservices (Appendice B. Ulteriori Aumenti: Sottoservizi Connettività IP e IS-IS)

In this section, we provide two additional YANG modules to completely cover the example in Figure 2 from Section 3.1 of [RFC9417]. The two missing subservice types are IP connectivity and the Intermediate System to Intermediate System (IS-IS) routing protocol. These modules are presented as examples; some future work is needed to propose a more complete version.

In questa sezione, forniamo due moduli YANG aggiuntivi per coprire completamente l'esempio in Figura 2 dalla Sezione 3.1 di [RFC9417]. I due tipi di sottoservizi mancanti sono la connettività IP e il protocollo di routing Intermediate System to Intermediate System (IS-IS). Questi moduli sono presentati come esempi; è necessario un lavoro futuro per proporre una versione più completa.

B.1. IP Connectivity Module Tree View (B.1. Visualizzazione ad Albero del Modulo Connettività IP)

That subservice represents the unicast connectivity between two IP addresses located on two different devices. Such a subservice could report symptoms such as "No route found". The following tree diagram [RFC8340] provides an overview of the "example-service-assurance-ip-connectivity" module.

Quel sottoservizio rappresenta la connettività unicast tra due indirizzi IP situati su due dispositivi diversi. Tale sottoservizio potrebbe riportare sintomi come "No route found". Il seguente diagramma ad albero [RFC8340] fornisce una panoramica del modulo "example-service-assurance-ip-connectivity".

module: example-service-assurance-ip-connectivity

augment /sain:subservices/sain:subservice/sain:parameter:
+--rw parameters
+--rw device1 string
+--rw address1 inet:ip-address
+--rw device2 string
+--rw address2 inet:ip-address

To specify the connectivity that we are interested in, we specify two IP addresses and two devices. The subservice assures that the connectivity between IP address 1 on device 1 and IP address 2 on device 2 is healthy.

Per specificare la connettività che ci interessa, specifichiamo due indirizzi IP e due dispositivi. Il sottoservizio assicura che la connettività tra l'indirizzo IP 1 sul dispositivo 1 e l'indirizzo IP 2 sul dispositivo 2 sia sana.

B.2. IS-IS Module Tree View (B.2. Visualizzazione ad Albero del Modulo IS-IS)

The following tree diagram [RFC8340] provides an overview of the "example-service-assurance-is-is" module.

Il seguente diagramma ad albero [RFC8340] fornisce una panoramica del modulo "example-service-assurance-is-is".

module: example-service-assurance-is-is

augment /sain:subservices/sain:subservice/sain:parameter:
+--rw parameters
+--rw instance-name string

The parameter of this subservice is the name of the IS-IS instance to assure.

Il parametro di questo sottoservizio è il nome dell'istanza IS-IS da assicurare.

B.3. Global Tree View (B.3. Visualizzazione ad Albero Globale)

The following tree diagram [RFC8340] provides an overview of the "ietf-service-assurance", "ietf-service-assurance-device", "example-service-assurance-device-acme", "example-service-assurance-ip-connectivity", and "example-service-assurance-is-is" modules.

Il seguente diagramma ad albero [RFC8340] fornisce una panoramica dei moduli "ietf-service-assurance", "ietf-service-assurance-device", "example-service-assurance-device-acme", "example-service-assurance-ip-connectivity" e "example-service-assurance-is-is".

module: ietf-service-assurance
+--ro assurance-graph-last-change yang:date-and-time
+--rw subservices
| +--rw subservice* [type id]
| +--rw type identityref
| +--rw id string
| +--ro last-change?
| | yang:date-and-time
| +--ro label? string
| +--rw under-maintenance!
| | +--rw contact string
| +--rw (parameter)
| | +--:(service-instance-parameter)
| | | +--rw service-instance-parameter
| | | +--rw service string
| | | +--rw instance-name string
| | +--:(example-ip-connectivity:parameters)
| | | +--rw example-ip-connectivity:parameters
| | | +--rw example-ip-connectivity:device1 string
| | | +--rw example-ip-connectivity:address1
| | | | inet:ip-address
| | | +--rw example-ip-connectivity:device2 string
| | | +--rw example-ip-connectivity:address2
| | | inet:ip-address
| | +--:(example-is-is:parameters)
| | | +--rw example-is-is:parameters
| | | +--rw example-is-is:instance-name string
| | +--:(sain-device:parameters)
| | | +--rw sain-device:parameters
| | | +--rw sain-device:device string
| | +--:(example-device-acme:parameters)
| | | +--rw example-device-acme:parameters
| | | +--rw example-device-acme:device
| | | | string
| | | +--rw example-device-acme:acme-specific-parameter
| | | string
| | +--:(sain-interface:parameters)
| | +--rw sain-interface:parameters
| | +--rw sain-interface:device string
| | +--rw sain-interface:interface string
| +--ro health-score int8
| +--ro symptoms-history-start?
| | yang:date-and-time
| +--ro symptoms
| | +--ro symptom* [start-date-time agent-id symptom-id]
| | +--ro symptom-id leafref
| | +--ro agent-id -> /agents/agent/id
| | +--ro health-score-weight? uint8
| | +--ro start-date-time yang:date-and-time
| | +--ro stop-date-time? yang:date-and-time
| +--rw dependencies
| +--rw dependency* [type id]
| +--rw type
| | -> /subservices/subservice/type
| +--rw id leafref
| +--rw dependency-type? identityref
+--ro agents
| +--ro agent* [id]
| +--ro id string
| +--ro symptoms* [id]
| +--ro id string
| +--ro description string
+--ro assured-services
+--ro assured-service* [service]
+--ro service leafref
+--ro instances* [name]
+--ro name leafref
+--ro subservices* [type id]
+--ro type -> /subservices/subservice/type
+--ro id leafref

B.4. IP Connectivity YANG Module (B.4. Modulo YANG Connettività IP)

module example-service-assurance-ip-connectivity {
yang-version 1.1;
namespace "urn:example:example-service-assurance-ip-connectivity";
prefix example-ip-connectivity;

import ietf-inet-types {
prefix inet;
reference
"RFC 6991: Common YANG Data Types";
}
import ietf-service-assurance {
prefix sain;
reference
"RFC 9418: YANG Modules for Service Assurance";
}

organization
"IETF OPSAWG Working Group";
contact
"WG Web: <https://datatracker.ietf.org/wg/opsawg/>
WG List: <mailto:[email protected]>
Author: Benoit Claise <mailto:[email protected]>
Author: Jean Quilbeuf <mailto:[email protected]>";
description
"This example module augments the ietf-service-assurance module
to add support for the subservice ip-connectivity.

It checks whether the IP connectivity between two IP addresses
belonging to two network devices is healthy.";

revision 2023-07-11 {
description
"Initial version.";
reference
"RFC 9418: YANG Modules for Service Assurance";
}

identity ip-connectivity-type {
base sain:subservice-base;
description
"Checks connectivity between two IP addresses.";
}

augment "/sain:subservices/sain:subservice/sain:parameter" {
when "derived-from-or-self(sain:type, 'ip-connectivity-type')";
description
"Augments the parameter choice from the ietf-service-assurance
module with a case specific to the ip-connectivity
subservice.";
container parameters {
description
"Parameters for the ip-connectivity subservice type.";
leaf device1 {
type string;
mandatory true;
description
"Device at the first end of the connection.";
}
leaf address1 {
type inet:ip-address;
mandatory true;
description
"Address at the first end of the connection.";
}
leaf device2 {
type string;
mandatory true;
description
"Device at the second end of the connection.";
}
leaf address2 {
type inet:ip-address;
mandatory true;
description
"Address at the second end of the connection.";
}
}
}
}

B.5. IS-IS YANG Module (B.5. Modulo YANG IS-IS)

module example-service-assurance-is-is {
yang-version 1.1;
namespace "urn:example:example-service-assurance-is-is";
prefix example-is-is;

import ietf-service-assurance {
prefix sain;
reference
"RFC 9418: YANG Modules for Service Assurance";
}

organization
"IETF OPSAWG Working Group";
contact
"WG Web: <https://datatracker.ietf.org/wg/opsawg/>
WG List: <mailto:[email protected]>
Author: Benoit Claise <mailto:[email protected]>
Author: Jean Quilbeuf <mailto:[email protected]>";
description
"This example module augments the ietf-service-assurance module
to add support for the subservice is-is.

It checks whether an IS-IS instance is healthy.";

revision 2023-07-11 {
description
"Initial version.";
reference
"RFC 9418: YANG Modules for Service Assurance";
}

identity is-is-type {
base sain:subservice-base;
description
"Health of IS-IS routing protocol.";
}

augment "/sain:subservices/sain:subservice/sain:parameter" {
when "derived-from-or-self(sain:type, 'is-is-type')";
description
"Augments the parameter choice from the ietf-service-assurance
module with a case specific to the is-is subservice.";
container parameters {
description
"Parameters for the is-is subservice type.";
leaf instance-name {
type string;
mandatory true;
description
"The instance to monitor.";
}
}
}
}