跳到主要内容

附录 A. 供应商特定的 subservice augmentation: "example-service-assurance-device-acme" YANG Module

附录 A. 供应商特定的 subservice augmentation: "example-service-assurance-device-acme" YANG Module

A.1. 树视图

以下树图 [RFC8340] 概述了 "example-service-assurance-device-acme" module.

module: example-service-assurance-device-acme

augment /sain:subservices/sain:subservice/sain:parameter:
+--rw parameters
+--rw device string
+--rw acme-specific-parameter string

基础 module 以及本文档中所有 augmenting module 的完整树视图见附录 B.3.

A.2. 概念

在某些情况下, 可能需要供应商特定的 subservice 类型. 作为这种供应商特定实现的示例, 本节展示如何 augment "ietf-service-assurance-device" module, 以便为 Acme Corporation 特定的 device subservice 添加定制支持. 这个特定版本新增了一个名为 "acme-specific-parameter" 的参数. 实现可以选择从 "ietf-service-assurance" module 中定义的 "subservice-base" identity 派生新的特定 identity, 也可以 augment "ietf-service-assurance-device" module 中的参数; 此处选择创建一个新的 identity.

A.3. YANG Module

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

import ietf-service-assurance {
prefix sain;
reference
"RFC 9418: YANG Modules for Service Assurance";
}
import ietf-service-assurance-device {
prefix sain-device;
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 extends the ietf-service-assurance-device
module to add specific support for devices of the Acme
Corporation. ";

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

identity device-acme-type {
base sain-device:device-type;
description
"Network device is healthy.";
}

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