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: Project List: Editor: Karthik Sethuraman "; description " This module contains TAPI OAM Model definitions. Source: TapiOam.uml Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved. License: This module is distributed under the Apache License 2.0"; revision 2018-08-31 { description "ONF Transport API version 2.1.0 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool. Changes in this revision: "; reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model "; } 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: "; reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model "; } 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: "; reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model "; } 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: "; reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model "; } augment "/tapi-common:context" { uses oam-context-g; description "Augments the base TAPI Context with OamService information"; } augment "/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:connection-end-point" { uses mep-mip-list-g; description "none"; } /************************* * definitions of references *************************/ grouping oam-service-ref-g { leaf oam-service-uuid { type leafref { path '/tapi-common:context/tapi-oam:oam-service/tapi-oam:uuid'; } description "none"; } description "none"; } grouping oam-service-end-point-ref-g { uses oam-service-ref-g; leaf oam-service-end-point-local-id { type leafref { path '/tapi-common:context/tapi-oam:oam-service/tapi-oam:end-point/tapi-oam:local-id'; } description "none"; } description "none"; } grouping meg-ref-g { leaf meg-uuid { type leafref { path '/tapi-common:context/tapi-oam:meg/tapi-oam:uuid'; } description "none"; } description "none"; } grouping maintenance-entity-ref-g { uses meg-ref-g; leaf maintenance-entity-local-id { type leafref { path '/tapi-common:context/tapi-oam:meg/tapi-oam:me/tapi-oam:local-id'; } description "none"; } description "none"; } grouping mep-ref-g { uses meg-ref-g; leaf mep-local-id { type leafref { path '/tapi-common:context/tapi-oam:meg/tapi-oam:mep/tapi-oam:local-id'; } description "none"; } description "none"; } grouping mip-ref-g { uses meg-ref-g; leaf mip-local-id { type leafref { path '/tapi-common:context/tapi-oam:meg/tapi-oam:mip/tapi-oam:local-id'; } description "none"; } description "none"; } grouping oam-job-ref-g { leaf oam-job-uuid { type leafref { path '/tapi-common:context/tapi-oam:oam-job/tapi-oam:uuid'; } description "none"; } description "none"; } grouping pm-current-data-ref-g { uses oam-job-ref-g; leaf pm-current-data-local-id { type leafref { path '/tapi-common:context/tapi-oam:oam-job/tapi-oam:pm-current-data/tapi-oam:local-id'; } description "none"; } description "none"; } grouping pm-history-data-ref-g { uses pm-current-data-ref-g; leaf pm-history-data-local-id { type leafref { path '/tapi-common: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-g { leaf oam-profile-uuid { type leafref { path '/tapi-common:context/tapi-oam:oam-profile/tapi-oam:uuid'; } description "none"; } description "none"; } grouping pm-threshold-data-ref-g { uses oam-profile-ref-g; leaf pm-threshold-data-local-id { type leafref { path '/tapi-common:context/tapi-oam:oam-profile/tapi-oam:pm-threshold-data/tapi-oam:local-id'; } description "none"; } description "none"; } grouping pm-bin-data-ref-g { uses oam-profile-ref-g; leaf pm-bin-data-local-id { type leafref { path '/tapi-common:context/tapi-oam:oam-profile/tapi-oam:pm-bin-data/tapi-oam:local-id'; } description "none"; } description "none"; } /*********************** * package object-classes **********************/ grouping mep-g { container oam-service-end-point { uses oam-service-end-point-ref-g; config false; description "none"; } 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-g; uses tapi-common:operational-state-pac-g; description "none"; } grouping oam-job-g { list oam-service-end-point { uses oam-service-end-point-ref-g; key 'oam-service-uuid oam-service-end-point-local-id'; min-elements 1; max-elements 2; description "none"; } container oam-profile { uses oam-profile-ref-g; description "none"; } list pm-current-data { key 'local-id'; config false; uses pm-current-data-g; 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-g; description "none"; } leaf creation-time { type tapi-common:date-and-time; config false; description "none"; } uses tapi-common:global-class-g; uses tapi-common:admin-state-pac-g; description "none"; } grouping meg-g { list me { key 'local-id'; config false; min-elements 1; uses maintenance-entity-g; description "none"; } list mep { key 'local-id'; config false; uses mep-g; 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-g; 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-g; uses tapi-common:operational-state-pac-g; description "none"; } grouping maintenance-entity-g { list mep { uses mep-ref-g; key 'meg-uuid mep-local-id'; config false; max-elements 2; description "none"; } list mip { uses mip-ref-g; key 'meg-uuid mip-local-id'; config false; description "none"; } container connection-route { uses tapi-connectivity:route-ref-g; config false; description "none"; } uses tapi-common:local-class-g; description "none"; } grouping mip-g { container oam-service-end-point { uses oam-service-end-point-ref-g; description "none"; } leaf layer-protocol-name { type tapi-common:layer-protocol-name; config false; description "none"; } uses tapi-common:local-class-g; description "none"; } grouping oam-service-g { list end-point { key 'local-id'; min-elements 1; uses oam-service-end-point-g; description "none"; } container meg { uses meg-ref-g; config false; description "none"; } container oam-profile { uses oam-profile-ref-g; description "none"; } uses tapi-common:service-spec-g; uses tapi-common:admin-state-pac-g; uses oam-constraint-g; description "none"; } grouping oam-context-g { list oam-service { key 'uuid'; uses oam-service-g; description "none"; } list meg { key 'uuid'; config false; uses meg-g; description "none"; } list oam-job { key 'uuid'; uses oam-job-g; description "none"; } list oam-profile { key 'uuid'; uses oam-profile-g; description "none"; } description "none"; } grouping oam-service-end-point-g { container service-interface-point { uses tapi-common:service-interface-point-ref-g; description "none"; } container connectivity-service-end-point { uses tapi-connectivity:connectivity-service-end-point-ref-g; description "none"; } container mep { uses mep-ref-g; config false; description "none"; } container mip { uses mip-ref-g; 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"; } uses tapi-common:local-class-g; uses tapi-common:admin-state-pac-g; description "none"; } grouping mep-mip-list-g { list mip { uses mip-ref-g; key 'meg-uuid mip-local-id'; description "none"; } list mep { uses mep-ref-g; key 'meg-uuid mep-local-id'; description "none"; } description "none"; } grouping oam-constraint-g { 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-g { list pm-history-data { key 'local-id'; config false; uses pm-history-data-g; 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-g; 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-g; 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-g; description "none"; } grouping pm-history-data-g { container granularity-period { uses tapi-common:time-period-g; 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-g; description "none"; } grouping oam-profile-g { list pm-threshold-data { key 'local-id'; min-elements 1; uses pm-threshold-data-g; description "none"; } list pm-bin-data { key 'local-id'; min-elements 1; uses pm-bin-data-g; description "none"; } uses tapi-common:global-class-g; description "none"; } grouping pm-threshold-data-g { container granularity-period { uses tapi-common:time-period-g; description "none"; } leaf is-transient { type boolean; description "none"; } uses tapi-common:local-class-g; description "none"; } grouping pm-bin-data-g { container granularity-period { uses tapi-common:time-period-g; description "none"; } uses tapi-common:local-class-g; 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 { min-elements 1; uses oam-service-end-point-g; description "none"; } container oam-constraint { uses oam-constraint-g; description "none"; } leaf state { type string; description "none"; } } output { container service { uses oam-service-g; 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-g; description "none"; } } } rpc create-oam-job { description "none"; input { leaf oam-job-type { type oam-job-type; description "none"; } list oam-service-end-point { min-elements 1; max-elements 2; uses oam-service-end-point-g; description "none"; } container oam-profile { uses oam-profile-g; description "none"; } leaf state { type string; description "none"; } leaf schedule { type string; description "none"; } } output { container oam-job { uses oam-job-g; description "none"; } } } rpc get-oam-job { description "none"; input { leaf job-id { type string; description "none"; } } output { container oam-job { uses oam-job-g; description "none"; } } } rpc get-oam-service-list { description "none"; output { list service { uses oam-service-g; description "none"; } } } rpc get-meg { description "none"; input { leaf service-id { type string; description "none"; } } output { container meg { uses meg-g; description "none"; } } } rpc update-oam-service { description "none"; input { leaf service-id { type string; description "none"; } list end-point { uses oam-service-end-point-g; description "none"; } container oam-constraint { uses oam-constraint-g; description "none"; } leaf state { type string; description "none"; } } output { container service { uses oam-service-g; 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-g; description "none"; } leaf state { type string; description "none"; } leaf schedule { type string; description "none"; } } output { container oam-job { uses oam-job-g; 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"; } } output { container end-point { uses oam-service-end-point-g; 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-g; 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-g; description "none"; } } } }