rfc9418v2.txt   rfc9418.txt 
Internet Engineering Task Force (IETF) B. Claise Internet Engineering Task Force (IETF) B. Claise
Request for Comments: 9418 J. Quilbeuf Request for Comments: 9418 J. Quilbeuf
Category: Standards Track Huawei Category: Standards Track Huawei
ISSN: 2070-1721 P. Lucente ISSN: 2070-1721 P. Lucente
NTT NTT
P. Fasano P. Fasano
TIM S.p.A TIM S.p.A
T. Arumugam T. Arumugam
Cisco Systems, Inc. Consultant
June 2023 July 2023
A YANG Data Model for Service Assurance A YANG Data Model for Service Assurance
Abstract Abstract
This document specifies YANG modules for representing assurance This document specifies YANG modules for representing assurance
graphs. These graphs represent the assurance of a given service by graphs. These graphs represent the assurance of a given service by
decomposing it into atomic assurance elements called subservices. decomposing it into atomic assurance elements called subservices.
The companion document, "Service Assurance for Intent-Based The companion document, "Service Assurance for Intent-Based
Networking Architecture" (RFC 9417), presents an architecture for Networking Architecture" (RFC 9417), presents an architecture for
skipping to change at line 198 skipping to change at line 198
* device: Whether a device is healthy, and if not, what are the * device: Whether a device is healthy, and if not, what are the
symptoms? Such a subservice might monitor the device resources, symptoms? Such a subservice might monitor the device resources,
such as CPU, RAM, or Ternary Content-Addressable Memory (TCAM). such as CPU, RAM, or Ternary Content-Addressable Memory (TCAM).
Potential symptoms are "CPU overloaded", "Out of RAM", or "Out of Potential symptoms are "CPU overloaded", "Out of RAM", or "Out of
TCAM". TCAM".
* ip-connectivity: Given two IP addresses bound to two devices, what * ip-connectivity: Given two IP addresses bound to two devices, what
is the quality of the IP connectivity between them? Potential is the quality of the IP connectivity between them? Potential
symptoms are "No route available" or "Equal-Cost Multipaths symptoms are "No route available" or "Equal-Cost Multipaths
(ECMPs) Imbalance". (ECMPs) imbalance".
An instance of the device subservice is representing a subpart of the An instance of the device subservice is representing a subpart of the
network system, namely a specific device. An instance of the ip- network system, namely a specific device. An instance of the ip-
connectivity subservice is representing a feature of the network, connectivity subservice is representing a feature of the network,
namely the connectivity between two specific IP addresses on two namely the connectivity between two specific IP addresses on two
devices. In both cases, these subservices might depend on other devices. In both cases, these subservices might depend on other
subservices, for instance, the connectivity might depend on a subservices, for instance, the connectivity might depend on a
subservice representing the routing system and on a subservice subservice representing the routing system and on a subservice
representing ECMPs. representing ECMPs.
skipping to change at line 244 skipping to change at line 244
expected to appear only once in the global assurance graph even if expected to appear only once in the global assurance graph even if
several service instances depend on it. For example, an instance of several service instances depend on it. For example, an instance of
the device subservice is a dependency of every service instance that the device subservice is a dependency of every service instance that
relies on the corresponding device. The assurance graph of a relies on the corresponding device. The assurance graph of a
specific service instance is the subgraph obtained by traversing the specific service instance is the subgraph obtained by traversing the
global assurance graph through the dependencies, starting from the global assurance graph through the dependencies, starting from the
specific service instance. specific service instance.
An assurance agent configured with such a graph is expected to An assurance agent configured with such a graph is expected to
produce, for each configured subservice, a health status that produce, for each configured subservice, a health status that
indicates how healthy the subservice is. If the the subservice is indicates how healthy the subservice is. If the subservice is not
not healthy, the agent is expected to produce a list of symptoms healthy, the agent is expected to produce a list of symptoms
explaining why the subservice is not healthy. explaining why the subservice is not healthy.
3.2. Tree View 3.2. Tree View
The following tree diagram [RFC8340] provides an overview of the The following tree diagram [RFC8340] provides an overview of the
"ietf-service-assurance" module. "ietf-service-assurance" module.
module: ietf-service-assurance module: ietf-service-assurance
+--ro assurance-graph-last-change yang:date-and-time +--ro assurance-graph-last-change yang:date-and-time
+--rw subservices +--rw subservices
skipping to change at line 450 skipping to change at line 450
Keeping the history of the graph structure is out of scope for this Keeping the history of the graph structure is out of scope for this
YANG module. Only the current version of the assurance graph can be YANG module. Only the current version of the assurance graph can be
fetched. In order to keep the history of the graph structure, some fetched. In order to keep the history of the graph structure, some
time-series database (TSDB) or similar storage must be used. time-series database (TSDB) or similar storage must be used.
3.3. YANG Module 3.3. YANG Module
This model contains references to [RFC6991]. This model contains references to [RFC6991].
<CODE BEGINS> file "ietf-service-assurance@2023-06-02.yang" <CODE BEGINS> file "ietf-service-assurance@2023-07-11.yang"
module ietf-service-assurance { module ietf-service-assurance {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-service-assurance"; namespace "urn:ietf:params:xml:ns:yang:ietf-service-assurance";
prefix sain; prefix sain;
import ietf-yang-types { import ietf-yang-types {
prefix yang; prefix yang;
reference reference
"RFC 6991: Common YANG Data Types"; "RFC 6991: Common YANG Data Types";
} }
skipping to change at line 503 skipping to change at line 503
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Revised BSD License to the license terms contained in, the Revised BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(https://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 9418; see the This version of this YANG module is part of RFC 9418; see the
RFC itself for full legal notices. "; RFC itself for full legal notices. ";
revision 2023-06-02 { revision 2023-07-11 {
description description
"Initial version."; "Initial version.";
reference reference
"RFC 9418: YANG Modules for Service Assurance"; "RFC 9418: YANG Modules for Service Assurance";
} }
identity subservice-base { identity subservice-base {
description description
"Base identity for subservice types."; "Base identity for subservice types.";
} }
skipping to change at line 779 skipping to change at line 779
description description
"List of dependencies of the subservice."; "List of dependencies of the subservice.";
uses subservice-dependency; uses subservice-dependency;
} }
} }
} }
} }
container agents { container agents {
config false; config false;
description description
"Container for the list of agents's symptoms."; "Container for the list of agents' symptoms.";
list agent { list agent {
key "id"; key "id";
description description
"Contains symptoms of each agent involved in computing the "Contains symptoms of each agent involved in computing the
health status of the current graph. This list acts as a health status of the current graph. This list acts as a
glossary for understanding the symptom ids returned by each glossary for understanding the symptom ids returned by each
agent."; agent.";
leaf id { leaf id {
type string; type string;
description description
skipping to change at line 990 skipping to change at line 990
assuring the health of a device. assuring the health of a device.
The typical parameter for the configuration of the device subservice The typical parameter for the configuration of the device subservice
is the name of the device that we want to assure. By augmenting the is the name of the device that we want to assure. By augmenting the
parameter choice from the "ietf-service-assurance" YANG module for parameter choice from the "ietf-service-assurance" YANG module for
the case of the "device-type" subservice type, this new parameter is the case of the "device-type" subservice type, this new parameter is
specified. specified.
5.3. YANG Module 5.3. YANG Module
<CODE BEGINS> file "ietf-service-assurance-device@2023-06-02.yang" <CODE BEGINS> file "ietf-service-assurance-device@2023-07-11.yang"
module ietf-service-assurance-device { module ietf-service-assurance-device {
yang-version 1.1; yang-version 1.1;
namespace namespace
"urn:ietf:params:xml:ns:yang:ietf-service-assurance-device"; "urn:ietf:params:xml:ns:yang:ietf-service-assurance-device";
prefix sain-device; prefix sain-device;
import ietf-service-assurance { import ietf-service-assurance {
prefix sain; prefix sain;
reference reference
"RFC 9418: YANG Modules for Service Assurance"; "RFC 9418: YANG Modules for Service Assurance";
skipping to change at line 1027 skipping to change at line 1027
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Revised BSD License to the license terms contained in, the Revised BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(https://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 9418; see the This version of this YANG module is part of RFC 9418; see the
RFC itself for full legal notices. "; RFC itself for full legal notices. ";
revision 2023-06-02 { revision 2023-07-11 {
description description
"Initial revision."; "Initial revision.";
reference reference
"RFC 9418: YANG Modules for Service Assurance"; "RFC 9418: YANG Modules for Service Assurance";
} }
identity device-type { identity device-type {
base sain:subservice-base; base sain:subservice-base;
description description
"Identity of device subservice."; "Identity of device subservice.";
skipping to change at line 1097 skipping to change at line 1097
the name of the device and, on that specific device, a specific the name of the device and, on that specific device, a specific
interface. These parameters are aligned with the "ietf-interfaces" interface. These parameters are aligned with the "ietf-interfaces"
model described in [RFC8343], where the name of the interface is the model described in [RFC8343], where the name of the interface is the
only key needed to identify an interface on a given device. By only key needed to identify an interface on a given device. By
augmenting the parameter choice from the "ietf-service-assurance" augmenting the parameter choice from the "ietf-service-assurance"
YANG module for the case of the interface-type subservice type, those YANG module for the case of the interface-type subservice type, those
two new parameters are specified. two new parameters are specified.
6.3. YANG Module 6.3. YANG Module
<CODE BEGINS> file "ietf-service-assurance-interface@2023-06-02.yang" <CODE BEGINS> file "ietf-service-assurance-interface@2023-07-11.yang"
module ietf-service-assurance-interface { module ietf-service-assurance-interface {
yang-version 1.1; yang-version 1.1;
namespace namespace
"urn:ietf:params:xml:ns:yang:ietf-service-assurance-interface"; "urn:ietf:params:xml:ns:yang:ietf-service-assurance-interface";
prefix sain-interface; prefix sain-interface;
import ietf-service-assurance { import ietf-service-assurance {
prefix sain; prefix sain;
reference reference
"RFC 9418: YANG Modules for Service Assurance"; "RFC 9418: YANG Modules for Service Assurance";
skipping to change at line 1136 skipping to change at line 1136
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Revised BSD License to the license terms contained in, the Revised BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(https://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 9418; see the This version of this YANG module is part of RFC 9418; see the
RFC itself for full legal notices. "; RFC itself for full legal notices. ";
revision 2023-06-02 { revision 2023-07-11 {
description description
"Initial revision."; "Initial revision.";
reference reference
"RFC 9418: YANG Modules for Service Assurance"; "RFC 9418: YANG Modules for Service Assurance";
} }
identity interface-type { identity interface-type {
base sain:subservice-base; base sain:subservice-base;
description description
"Checks whether an interface is healthy."; "Checks whether an interface is healthy.";
skipping to change at line 1329 skipping to change at line 1329
and R. Wilton, "Network Management Datastore Architecture and R. Wilton, "Network Management Datastore Architecture
(NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
<https://www.rfc-editor.org/info/rfc8342>. <https://www.rfc-editor.org/info/rfc8342>.
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
<https://www.rfc-editor.org/info/rfc8446>. <https://www.rfc-editor.org/info/rfc8446>.
[RFC9417] Claise, B., Quilbeuf, J., Lopez, D., Voyer, D., and T. [RFC9417] Claise, B., Quilbeuf, J., Lopez, D., Voyer, D., and T.
Arumugam, "Service Assurance for Intent-Based Networking Arumugam, "Service Assurance for Intent-Based Networking
Architecture", RFC 9417, DOI 10.17487/RFC9417, June 2023, Architecture", RFC 9417, DOI 10.17487/RFC9417, July 2023,
<https://www.rfc-editor.org/info/rfc9417>. <https://www.rfc-editor.org/info/rfc9417>.
9.2. Informative References 9.2. Informative References
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
<https://www.rfc-editor.org/info/rfc8340>. <https://www.rfc-editor.org/info/rfc8340>.
[RFC8343] Bjorklund, M., "A YANG Data Model for Interface [RFC8343] Bjorklund, M., "A YANG Data Model for Interface
Management", RFC 8343, DOI 10.17487/RFC8343, March 2018, Management", RFC 8343, DOI 10.17487/RFC8343, March 2018,
skipping to change at line 1408 skipping to change at line 1408
contact contact
"WG Web: <https://datatracker.ietf.org/wg/opsawg/> "WG Web: <https://datatracker.ietf.org/wg/opsawg/>
WG List: <mailto:opsawg@ietf.org> WG List: <mailto:opsawg@ietf.org>
Author: Benoit Claise <mailto:benoit.claise@huawei.com> Author: Benoit Claise <mailto:benoit.claise@huawei.com>
Author: Jean Quilbeuf <mailto:jean.quilbeuf@huawei.com>"; Author: Jean Quilbeuf <mailto:jean.quilbeuf@huawei.com>";
description description
"This example module extends the ietf-service-assurance-device "This example module extends the ietf-service-assurance-device
module to add specific support for devices of the Acme module to add specific support for devices of the Acme
Corporation. "; Corporation. ";
revision 2023-06-02 { revision 2023-07-11 {
description description
"Initial revision."; "Initial revision.";
reference reference
"RFC 9418: YANG Modules for Service Assurance"; "RFC 9418: YANG Modules for Service Assurance";
} }
identity device-acme-type { identity device-acme-type {
base sain-device:device-type; base sain-device:device-type;
description description
"Network device is healthy."; "Network device is healthy.";
skipping to change at line 1601 skipping to change at line 1601
WG List: <mailto:opsawg@ietf.org> WG List: <mailto:opsawg@ietf.org>
Author: Benoit Claise <mailto:benoit.claise@huawei.com> Author: Benoit Claise <mailto:benoit.claise@huawei.com>
Author: Jean Quilbeuf <mailto:jean.quilbeuf@huawei.com>"; Author: Jean Quilbeuf <mailto:jean.quilbeuf@huawei.com>";
description description
"This example module augments the ietf-service-assurance module "This example module augments the ietf-service-assurance module
to add support for the subservice ip-connectivity. to add support for the subservice ip-connectivity.
It checks whether the IP connectivity between two IP addresses It checks whether the IP connectivity between two IP addresses
belonging to two network devices is healthy."; belonging to two network devices is healthy.";
revision 2023-06-02 { revision 2023-07-11 {
description description
"Initial version."; "Initial version.";
reference reference
"RFC 9418: YANG Modules for Service Assurance"; "RFC 9418: YANG Modules for Service Assurance";
} }
identity ip-connectivity-type { identity ip-connectivity-type {
base sain:subservice-base; base sain:subservice-base;
description description
"Checks connectivity between two IP addresses."; "Checks connectivity between two IP addresses.";
skipping to change at line 1677 skipping to change at line 1677
"WG Web: <https://datatracker.ietf.org/wg/opsawg/> "WG Web: <https://datatracker.ietf.org/wg/opsawg/>
WG List: <mailto:opsawg@ietf.org> WG List: <mailto:opsawg@ietf.org>
Author: Benoit Claise <mailto:benoit.claise@huawei.com> Author: Benoit Claise <mailto:benoit.claise@huawei.com>
Author: Jean Quilbeuf <mailto:jean.quilbeuf@huawei.com>"; Author: Jean Quilbeuf <mailto:jean.quilbeuf@huawei.com>";
description description
"This example module augments the ietf-service-assurance module "This example module augments the ietf-service-assurance module
to add support for the subservice is-is. to add support for the subservice is-is.
It checks whether an IS-IS instance is healthy."; It checks whether an IS-IS instance is healthy.";
revision 2023-06-02 { revision 2023-07-11 {
description description
"Initial version."; "Initial version.";
reference reference
"RFC 9418: YANG Modules for Service Assurance"; "RFC 9418: YANG Modules for Service Assurance";
} }
identity is-is-type { identity is-is-type {
base sain:subservice-base; base sain:subservice-base;
description description
"Health of IS-IS routing protocol."; "Health of IS-IS routing protocol.";
skipping to change at line 1896 skipping to change at line 1896
Appendix D. YANG Library for Service Assurance Appendix D. YANG Library for Service Assurance
This section provides the JSON encoding of the YANG library [RFC8525] This section provides the JSON encoding of the YANG library [RFC8525]
that lists all modules defined in this document and their that lists all modules defined in this document and their
dependencies. This library can be used to validate data instances dependencies. This library can be used to validate data instances
using yangson, as explained in the previous section. using yangson, as explained in the previous section.
{ {
"ietf-yang-library:modules-state": { "ietf-yang-library:modules-state": {
"module-set-id": "ietf-service-assurance@2023-06-02", "module-set-id": "ietf-service-assurance@2023-07-11",
"module": [ "module": [
{ {
"name": "ietf-service-assurance", "name": "ietf-service-assurance",
"namespace": "namespace":
"urn:ietf:params:xml:ns:yang:ietf-service-assurance", "urn:ietf:params:xml:ns:yang:ietf-service-assurance",
"revision": "2023-06-02", "revision": "2023-07-11",
"conformance-type": "implement" "conformance-type": "implement"
}, },
{ {
"name": "ietf-service-assurance-device", "name": "ietf-service-assurance-device",
"namespace": "namespace":
"urn:ietf:params:xml:ns:yang:ietf-service-assurance-device", "urn:ietf:params:xml:ns:yang:ietf-service-assurance-device",
"revision": "2023-06-02", "revision": "2023-07-11",
"conformance-type": "implement" "conformance-type": "implement"
}, },
{ {
"name": "ietf-service-assurance-interface", "name": "ietf-service-assurance-interface",
"namespace": "namespace":
"urn:ietf:params:xml:ns:yang:ietf-service-assurance-interface", "urn:ietf:params:xml:ns:yang:ietf-service-assurance-interface",
"revision": "2023-06-02", "revision": "2023-07-11",
"conformance-type": "implement" "conformance-type": "implement"
}, },
{ {
"name": "example-service-assurance-device-acme", "name": "example-service-assurance-device-acme",
"namespace": "namespace":
"urn:example:example-service-assurance-device-acme", "urn:example:example-service-assurance-device-acme",
"revision": "2023-06-02", "revision": "2023-07-11",
"conformance-type": "implement" "conformance-type": "implement"
}, },
{ {
"name": "example-service-assurance-is-is", "name": "example-service-assurance-is-is",
"namespace": "urn:example:example-service-assurance-is-is", "namespace": "urn:example:example-service-assurance-is-is",
"revision": "2023-06-02", "revision": "2023-07-11",
"conformance-type": "implement" "conformance-type": "implement"
}, },
{ {
"name": "example-service-assurance-ip-connectivity", "name": "example-service-assurance-ip-connectivity",
"namespace": "namespace":
"urn:example:example-service-assurance-ip-connectivity", "urn:example:example-service-assurance-ip-connectivity",
"revision": "2023-06-02", "revision": "2023-07-11",
"conformance-type": "implement" "conformance-type": "implement"
}, },
{ {
"name": "ietf-yang-types", "name": "ietf-yang-types",
"namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-types", "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-types",
"revision": "2013-07-05", "revision": "2013-07-05",
"conformance-type": "import" "conformance-type": "import"
}, },
{ {
"name": "ietf-inet-types", "name": "ietf-inet-types",
skipping to change at line 1986 skipping to change at line 1986
Netherlands Netherlands
Email: paolo@ntt.net Email: paolo@ntt.net
Paolo Fasano Paolo Fasano
TIM S.p.A TIM S.p.A
via G. Reiss Romoli, 274 via G. Reiss Romoli, 274
10148 Torino 10148 Torino
Italy Italy
Email: paolo2.fasano@telecomitalia.it Email: paolo2.fasano@telecomitalia.it
Thangam Arumugam Thangavelu Arumugam
Cisco Systems, Inc. Consultant
Milpitas, California Milpitas, California
United States of America United States of America
Email: thangavelu@yahoo.com Email: thangavelu@yahoo.com
 End of changes. 22 change blocks. 
25 lines changed or deleted 25 lines changed or added

This html diff was produced by rfcdiff 1.48.