module tapi-oam { | |
namespace "urn:onf:otcc:yang:tapi-oam"; | |
prefix tapi-oam; | |
import tapi-common { | |
prefix tapi-common; | |
} | |
import tapi-connectivity { | |
prefix tapi-connectivity; | |
} | |
import tapi-topology { | |
prefix tapi-topology; | |
} | |
organization "ONF OTCC (Open Transport Configuration & Control) Project"; | |
contact " | |
Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI> | |
Project List: <mailto:transport-api@opennetworking.org> | |
Editor: Karthik Sethuraman | |
<mailto:karthik.sethuraman@necam.com>"; | |
description " | |
This module contains TAPI OAM Model definitions. | |
Source: TapiOam.uml | |
- The TAPI YANG models included in this TAPI release are a *normative* part of the TAPI SDK. | |
- The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool] | |
<https://github.com/OpenNetworkingFoundation/EagleUmlYang> | |
and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines] | |
<https://wiki.opennetworking.org/display/OIMT/UML+-+YANG+Guidelines> | |
- Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts. | |
As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts. | |
- The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases. | |
The YANG model backward compatibility criteria are outlined in section 11 of <https://tools.ietf.org/html/rfc7950>. | |
YANG models included in this release may not be backward compatible with previous TAPI releases. | |
Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved. | |
License: This module is distributed under the Apache License 2.0"; | |
revision 2018-12-10 { | |
description "ONF Transport API version 2.1.1. | |
Changes included in this TAPI release (v2.1.1) are listed in | |
<https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.1.md>"; | |
reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model | |
<https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>"; | |
} | |
revision 2018-10-16 { | |
description "ONF Transport API version 2.1.0. | |
Changes included in this TAPI release (v2.1.0) are listed in | |
<https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.0.md>"; | |
reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model | |
<https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>"; | |
} | |
revision 2018-03-07 { | |
description "ONF Transport API version 2.0.2 | |
This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool. | |
Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.2.md>"; | |
reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model | |
<https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML>"; | |
} | |
revision 2018-02-16 { | |
description "ONF Transport API version 2.0.1 | |
This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool. | |
Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.1.md>"; | |
reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model | |
<https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.1/UML>"; | |
} | |
revision 2018-01-02 { | |
description "ONF Transport API version 2.0.0 | |
This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool. | |
Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.0.md>"; | |
reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model | |
<https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML>"; | |
} | |
augment "/tapi-common:context" { | |
container oam-context { | |
uses oam-context; | |
description "Augments the base TAPI Context with OamService information"; | |
} | |
description "Augments the base TAPI Context with OamService information"; | |
} | |
augment "/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:cep-list/tapi-connectivity:connection-end-point" { | |
container mep-mip-list { | |
uses mep-mip-list; | |
description "none"; | |
} | |
description "none"; | |
} | |
/************************** | |
* definitions of references | |
**************************/ | |
grouping oam-service-ref { | |
leaf oam-service-uuid { | |
type leafref { | |
path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-service/tapi-oam:uuid'; | |
} | |
description "none"; | |
} | |
description "none"; | |
} | |
grouping oam-service-end-point-ref { | |
uses oam-service-ref; | |
leaf oam-service-end-point-local-id { | |
type leafref { | |
path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-service/tapi-oam:end-point/tapi-oam:local-id'; | |
} | |
description "none"; | |
} | |
description "none"; | |
} | |
grouping meg-ref { | |
leaf meg-uuid { | |
type leafref { | |
path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:meg/tapi-oam:uuid'; | |
} | |
description "none"; | |
} | |
description "none"; | |
} | |
grouping maintenance-entity-ref { | |
uses meg-ref; | |
leaf maintenance-entity-local-id { | |
type leafref { | |
path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:meg/tapi-oam:me/tapi-oam:local-id'; | |
} | |
description "none"; | |
} | |
description "none"; | |
} | |
grouping mep-ref { | |
uses meg-ref; | |
leaf mep-local-id { | |
type leafref { | |
path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:meg/tapi-oam:mep/tapi-oam:local-id'; | |
} | |
description "none"; | |
} | |
description "none"; | |
} | |
grouping mip-ref { | |
uses meg-ref; | |
leaf mip-local-id { | |
type leafref { | |
path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:meg/tapi-oam:mip/tapi-oam:local-id'; | |
} | |
description "none"; | |
} | |
description "none"; | |
} | |
grouping oam-job-ref { | |
leaf oam-job-uuid { | |
type leafref { | |
path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:uuid'; | |
} | |
description "none"; | |
} | |
description "none"; | |
} | |
grouping pm-current-data-ref { | |
uses oam-job-ref; | |
leaf pm-current-data-local-id { | |
type leafref { | |
path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data/tapi-oam:local-id'; | |
} | |
description "none"; | |
} | |
description "none"; | |
} | |
grouping pm-history-data-ref { | |
uses pm-current-data-ref; | |
leaf pm-history-data-local-id { | |
type leafref { | |
path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-job/tapi-oam:pm-current-data/tapi-oam:pm-history-data/tapi-oam:local-id'; | |
} | |
description "none"; | |
} | |
description "none"; | |
} | |
grouping oam-profile-ref { | |
leaf oam-profile-uuid { | |
type leafref { | |
path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-profile/tapi-oam:uuid'; | |
} | |
description "none"; | |
} | |
description "none"; | |
} | |
grouping pm-threshold-data-ref { | |
uses oam-profile-ref; | |
leaf pm-threshold-data-local-id { | |
type leafref { | |
path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-profile/tapi-oam:pm-threshold-data/tapi-oam:local-id'; | |
} | |
description "none"; | |
} | |
description "none"; | |
} | |
grouping pm-bin-data-ref { | |
uses oam-profile-ref; | |
leaf pm-bin-data-local-id { | |
type leafref { | |
path '/tapi-common:context/tapi-oam:oam-context/tapi-oam:oam-profile/tapi-oam:pm-bin-data/tapi-oam:local-id'; | |
} | |
description "none"; | |
} | |
description "none"; | |
} | |
/************************** | |
* package object-classes | |
**************************/ | |
grouping mep { | |
leaf layer-protocol-name { | |
type tapi-common:layer-protocol-name; | |
config false; | |
description "none"; | |
} | |
leaf direction { | |
type tapi-common:termination-direction; | |
config false; | |
description "none"; | |
} | |
leaf mep-identifier { | |
type string; | |
config false; | |
description "none"; | |
} | |
leaf-list peer-mep-identifier { | |
type string; | |
config false; | |
min-elements 1; | |
description "none"; | |
} | |
uses tapi-common:local-class; | |
uses tapi-common:operational-state-pac; | |
description "none"; | |
} | |
grouping oam-job { | |
list oam-service-end-point { | |
uses oam-service-end-point-ref; | |
key 'oam-service-uuid oam-service-end-point-local-id'; | |
min-elements 1; | |
description "none"; | |
} | |
container oam-profile { | |
uses oam-profile-ref; | |
description "none"; | |
} | |
list pm-current-data { | |
key 'local-id'; | |
config false; | |
uses pm-current-data; | |
description "Granularity period of the CurrentData identifies the specific CurrentData instance in the scope of this OamJob. | |
For example, typically at least | |
one 15min and | |
one 24hr; | |
optionally one additional configurable (< 15min)"; | |
} | |
leaf oam-job-type { | |
type oam-job-type; | |
description "none"; | |
} | |
container schedule { | |
uses tapi-common:time-range; | |
description "none"; | |
} | |
leaf creation-time { | |
type tapi-common:date-and-time; | |
config false; | |
description "none"; | |
} | |
uses tapi-common:global-class; | |
uses tapi-common:admin-state-pac; | |
description "none"; | |
} | |
grouping meg { | |
list mep { | |
key 'local-id'; | |
config false; | |
uses mep; | |
description "1. ME may have 0 MEPs (case of transit domains where at least 1 MIP is present) | |
2. ME may have 1 MEP (case of edge domaind, where the peer MEP is ouside the managed domain) | |
3. ME may have 2 MEPs"; | |
} | |
list mip { | |
key 'local-id'; | |
config false; | |
uses mip; | |
description "ME may 0, 1, or more MIPs"; | |
} | |
leaf layer-protocol-name { | |
type tapi-common:layer-protocol-name; | |
config false; | |
description "none"; | |
} | |
leaf direction { | |
type tapi-common:forwarding-direction; | |
config false; | |
description "none"; | |
} | |
leaf meg-level { | |
type uint64; | |
config false; | |
description "none"; | |
} | |
leaf meg-identifier { | |
type string; | |
config false; | |
description "none"; | |
} | |
uses tapi-common:resource-spec; | |
uses tapi-common:operational-state-pac; | |
description "none"; | |
} | |
grouping mip { | |
leaf layer-protocol-name { | |
type tapi-common:layer-protocol-name; | |
config false; | |
description "none"; | |
} | |
uses tapi-common:local-class; | |
description "none"; | |
} | |
grouping oam-service { | |
list end-point { | |
key 'local-id'; | |
min-elements 2; | |
uses oam-service-end-point; | |
description "none"; | |
} | |
container meg { | |
uses meg-ref; | |
config false; | |
description "none"; | |
} | |
container oam-profile { | |
uses oam-profile-ref; | |
description "none"; | |
} | |
uses tapi-common:service-spec; | |
uses tapi-common:admin-state-pac; | |
uses oam-constraint; | |
description "none"; | |
} | |
grouping oam-context { | |
list oam-service { | |
key 'uuid'; | |
uses oam-service; | |
description "none"; | |
} | |
list meg { | |
key 'uuid'; | |
config false; | |
uses meg; | |
description "none"; | |
} | |
list oam-job { | |
key 'uuid'; | |
uses oam-job; | |
description "none"; | |
} | |
list oam-profile { | |
key 'uuid'; | |
uses oam-profile; | |
description "none"; | |
} | |
description "none"; | |
} | |
grouping oam-service-end-point { | |
container service-interface-point { | |
uses tapi-common:service-interface-point-ref; | |
description "none"; | |
} | |
container connectivity-service-end-point { | |
uses tapi-connectivity:connectivity-service-end-point-ref; | |
description "none"; | |
} | |
container mep { | |
uses mep-ref; | |
config false; | |
description "none"; | |
} | |
container mip { | |
uses mip-ref; | |
config false; | |
description "none"; | |
} | |
leaf layer-protocol-name { | |
type tapi-common:layer-protocol-name; | |
description "none"; | |
} | |
leaf direction { | |
type tapi-common:port-direction; | |
description "none"; | |
} | |
leaf mep-identifier { | |
type string; | |
description "This attribute contains the identifier of the MEP. | |
This attribute is empty in case the OSEP relates to the provisioing of an MIP. | |
"; | |
} | |
leaf-list peer-mep-identifier { | |
type string; | |
description "This attribute models the MI_PeerMEP_ID[i] defined in G.8021 and configured as specified in G.8051. It provides the identifiers of the MEPs which are peer to the subject MEP. | |
This attribute is not specified in case the OSEP relates to the provisioing of an MIP. | |
In case of P2P, there is only one peer"; | |
} | |
uses tapi-common:local-class; | |
uses tapi-common:admin-state-pac; | |
description "none"; | |
} | |
grouping mep-mip-list { | |
list mip { | |
uses mip-ref; | |
key 'meg-uuid mip-local-id'; | |
description "none"; | |
} | |
list mep { | |
uses mep-ref; | |
key 'meg-uuid mep-local-id'; | |
description "none"; | |
} | |
description "none"; | |
} | |
grouping oam-constraint { | |
leaf layer-protocol-name { | |
type tapi-common:layer-protocol-name; | |
description "none"; | |
} | |
leaf direction { | |
type tapi-common:forwarding-direction; | |
description "none"; | |
} | |
leaf meg-level { | |
type uint64; | |
description "none"; | |
} | |
description "none"; | |
} | |
grouping pm-current-data { | |
list pm-history-data { | |
key 'local-id'; | |
config false; | |
uses pm-history-data; | |
description "in case of 24hr Current Data, at least 1 History Data. | |
In case of 15min Current Data, at least 16 History Data. | |
In case of <15min, the number of History Data shall be able to cover a span of 4 hours."; | |
} | |
container granularity-period { | |
uses tapi-common:time-period; | |
description "none"; | |
} | |
leaf timestamp { | |
type tapi-common:date-and-time; | |
config false; | |
description "This attribute indicates the start of the current monitoring interval. | |
The value is bound to the quarter of an hour in case of a 15 minute interval and bound to the hour in case of a 24 hour interval."; | |
} | |
container elapsed-time { | |
uses tapi-common:time-interval; | |
description "none"; | |
} | |
leaf suspect-interval-flag { | |
type boolean; | |
description "This attribute is used to indicate that the performance data for the current period may not be reliable. Some reasons for this to occur are: | |
– Suspect data were detected by the actual resource doing data collection. | |
– Transition of the administrativeState attribute to/from the 'lock' state. | |
– Transition of the operationalState to/from the 'disabled' state. | |
– Scheduler setting that inhibits the collection function. | |
– The performance counters were reset during the interval. | |
– The currentData (or subclass) object instance was created during the monitoring period."; | |
} | |
uses tapi-common:local-class; | |
description "none"; | |
} | |
grouping pm-history-data { | |
container granularity-period { | |
uses tapi-common:time-period; | |
description "none"; | |
} | |
leaf period-end-time { | |
type tapi-common:date-and-time; | |
description "none"; | |
} | |
leaf suspect-interval-flag { | |
type boolean; | |
config false; | |
description "This attribute indicates that the performance data may not be reliable."; | |
} | |
uses tapi-common:local-class; | |
description "none"; | |
} | |
grouping oam-profile { | |
list pm-threshold-data { | |
key 'local-id'; | |
min-elements 1; | |
uses pm-threshold-data; | |
description "none"; | |
} | |
list pm-bin-data { | |
key 'local-id'; | |
min-elements 1; | |
uses pm-bin-data; | |
description "none"; | |
} | |
uses tapi-common:global-class; | |
description "none"; | |
} | |
grouping pm-threshold-data { | |
container granularity-period { | |
uses tapi-common:time-period; | |
description "none"; | |
} | |
leaf is-transient { | |
type boolean; | |
description "none"; | |
} | |
uses tapi-common:local-class; | |
description "none"; | |
} | |
grouping pm-bin-data { | |
container granularity-period { | |
uses tapi-common:time-period; | |
description "none"; | |
} | |
uses tapi-common:local-class; | |
description "none"; | |
} | |
/************************** | |
* package type-definitions | |
**************************/ | |
identity OAM_JOB_TYPE { | |
description "none"; | |
} | |
typedef oam-job-type { | |
type identityref { | |
base OAM_JOB_TYPE; | |
} | |
description "none"; | |
} | |
/************************** | |
* package interfaces | |
**************************/ | |
rpc create-oam-service { | |
description "none"; | |
input { | |
list end-point { | |
key 'local-id'; | |
min-elements 2; | |
uses oam-service-end-point; | |
description "none"; | |
} | |
container oam-constraint { | |
uses oam-constraint; | |
description "none"; | |
} | |
leaf state { | |
type string; | |
description "none"; | |
} | |
} | |
output { | |
container service { | |
uses oam-service; | |
description "none"; | |
} | |
} | |
} | |
rpc delete-oam-service { | |
description "none"; | |
input { | |
leaf service-id { | |
type string; | |
description "none"; | |
} | |
} | |
} | |
rpc get-oam-service { | |
description "none"; | |
input { | |
leaf service-id { | |
type string; | |
description "none"; | |
} | |
} | |
output { | |
container service { | |
uses oam-service; | |
description "none"; | |
} | |
} | |
} | |
rpc create-oam-job { | |
description "none"; | |
input { | |
leaf oam-job-type { | |
type oam-job-type; | |
description "none"; | |
} | |
list oam-service-end-point { | |
key 'local-id'; | |
min-elements 2; | |
uses oam-service-end-point; | |
description "none"; | |
} | |
container oam-profile { | |
uses oam-profile; | |
description "none"; | |
} | |
leaf state { | |
type string; | |
description "none"; | |
} | |
leaf schedule { | |
type string; | |
description "none"; | |
} | |
} | |
output { | |
container oam-job { | |
uses oam-job; | |
description "none"; | |
} | |
} | |
} | |
rpc get-oam-job { | |
description "none"; | |
input { | |
leaf job-id { | |
type string; | |
description "none"; | |
} | |
} | |
output { | |
container oam-job { | |
uses oam-job; | |
description "none"; | |
} | |
} | |
} | |
rpc get-oam-service-list { | |
description "none"; | |
output { | |
list service { | |
key 'uuid'; | |
uses oam-service; | |
description "none"; | |
} | |
} | |
} | |
rpc get-meg { | |
description "none"; | |
input { | |
leaf service-id { | |
type string; | |
description "none"; | |
} | |
} | |
output { | |
container meg { | |
uses meg; | |
description "none"; | |
} | |
} | |
} | |
rpc update-oam-service { | |
description "none"; | |
input { | |
leaf service-id { | |
type string; | |
description "none"; | |
} | |
list end-point { | |
key 'local-id'; | |
uses oam-service-end-point; | |
description "none"; | |
} | |
container oam-constraint { | |
uses oam-constraint; | |
description "none"; | |
} | |
leaf state { | |
type string; | |
description "none"; | |
} | |
} | |
output { | |
container service { | |
uses oam-service; | |
description "none"; | |
} | |
} | |
} | |
rpc delete-oam-job { | |
description "none"; | |
input { | |
leaf job-id { | |
type string; | |
description "none"; | |
} | |
} | |
} | |
rpc update-oam-job { | |
description "none"; | |
input { | |
leaf job-id { | |
type string; | |
description "none"; | |
} | |
container oam-profile { | |
uses oam-profile; | |
description "none"; | |
} | |
leaf state { | |
type string; | |
description "none"; | |
} | |
leaf schedule { | |
type string; | |
description "none"; | |
} | |
} | |
output { | |
container oam-job { | |
uses oam-job; | |
description "none"; | |
} | |
} | |
} | |
rpc create-oam-service-end-point { | |
description "none"; | |
input { | |
leaf service-id { | |
type string; | |
description "none"; | |
} | |
leaf sip-id { | |
type string; | |
description "none"; | |
} | |
leaf c-sep-id { | |
type string; | |
description "none"; | |
} | |
leaf layer { | |
type string; | |
description "none"; | |
} | |
leaf direction { | |
type string; | |
description "none"; | |
} | |
leaf state { | |
type string; | |
description "none"; | |
} | |
leaf mep-identifier { | |
type string; | |
description "none"; | |
} | |
leaf-list peer-mep-identifier { | |
type string; | |
description "none"; | |
} | |
} | |
output { | |
container end-point { | |
uses oam-service-end-point; | |
description "none"; | |
} | |
} | |
} | |
rpc delete-oam-service-end-point { | |
description "none"; | |
input { | |
leaf service-id { | |
type string; | |
description "none"; | |
} | |
leaf o-sep-id { | |
type string; | |
description "none"; | |
} | |
} | |
} | |
rpc update-oam-service-end-point { | |
description "none"; | |
input { | |
leaf service-id { | |
type string; | |
description "none"; | |
} | |
leaf o-sep-id { | |
type string; | |
description "none"; | |
} | |
leaf state { | |
type string; | |
description "none"; | |
} | |
} | |
output { | |
container end-point { | |
uses oam-service-end-point; | |
description "none"; | |
} | |
} | |
} | |
rpc get-oam-service-end-point { | |
description "none"; | |
input { | |
leaf service-id { | |
type string; | |
description "none"; | |
} | |
leaf o-sep-id { | |
type string; | |
description "none"; | |
} | |
} | |
output { | |
container end-point { | |
uses oam-service-end-point; | |
description "none"; | |
} | |
} | |
} | |
} |