module tapi-odu { namespace "urn:onf:otcc:yang:tapi-odu"; prefix tapi-odu; import tapi-common { prefix tapi-common; revision-date 2018-12-10; } import tapi-connectivity { prefix tapi-connectivity; revision-date 2018-12-10; } import tapi-topology { prefix tapi-topology; revision-date 2018-12-10; } import tapi-oam { prefix tapi-oam; revision-date 2018-12-10; } import tapi-dsr { prefix tapi-dsr; revision-date 2018-12-10; } organization "ONF OTCC (Open Transport Configuration & Control) Project"; contact " Project Web: Project List: Editor: Karthik Sethuraman "; description " This module contains TAPI Odu Model definitions. Source: TapiOdu.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] and further edited manually to comply with the [ONF IISOMI UML2YANG mapping 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 . 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 "; reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model "; } revision 2018-10-16 { description "ONF Transport API version 2.1.0. Changes included in this TAPI release (v2.1.0) are listed in "; reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, 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/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point" { container odu-node-edge-point-spec { uses odu-node-edge-point-spec; description "Augments the base LayerProtocol information in NodeEdgePoint with ODU-specific information"; } description "Augments the base LayerProtocol information in NodeEdgePoint with ODU-specific 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 odu-connection-end-point-spec { uses odu-connection-end-point-spec; description "none"; } description "none"; } augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:meg/tapi-oam:mep" { container odu-connection-end-point-spec { uses odu-connection-end-point-spec; description "none"; } description "none"; } augment "/tapi-common:context/tapi-oam:oam-context/tapi-oam:meg/tapi-oam:mip" { container odu-mip-spec { uses odu-mip-spec; description "none"; } description "none"; } /************************** * package object-classes **************************/ grouping odu-termination-and-client-adaptation-pac { leaf opu-tributary-slot-size { type odu-slot-size; config false; description "This attribute is applicable for ODU2 and ODU3 CTP only. It indicates the slot size of the ODU CTP."; } leaf auto-payload-type { type boolean; config false; description "This attribute is applicable when the ODU CTP object instance represents a lower order ODU CTP Source at the client layer of the ODUP/ODUj-21 adaptation function. The value of true of this attribute configures that the adaptation source function shall fall back to the payload type PT=20 if the conditions specified in 14.3.10.1/G.798 are satisfied. "; } leaf configured-client-type { type tapi-dsr:digital-signal-type; config false; description "This attribute configures the type of the client CTP of the server ODU TTP."; } leaf configured-mapping-type { type mapping-type; config false; description "This attributes indicates the configured mapping type."; } container accepted-payload-type { config false; uses odu-payload-type; description "This attribute is applicable when the ODU CTP object instance represents a lower order ODU CTP Sink at the client layer of the ODUP/ODU[i]j or ODUP/ODUj-21 adaptation function. This attribute is a 2-digit Hex code that indicates the new accepted payload type. Valid values are defined in Table 15-8 of ITU-T Recommendation G.709 with one additional value UN_INTERPRETABLE."; } description "This Pac contains the attributes associated with the client adaptation function of the server layer TTP It is present only if the CEP contains a TTP"; } grouping odu-connection-end-point-spec { container odu-common { uses odu-common-pac; description "none"; } container odu-term-and-adapter { config false; uses odu-termination-and-client-adaptation-pac; description "none"; } container odu-ctp { config false; uses odu-ctp-pac; description "none"; } container odu-protection { config false; uses odu-protection-pac; description "none"; } description "none"; } grouping odu-pool-pac { leaf client-capacity { type uint64; description "none"; } leaf max-client-instances { type uint64; config false; description "none"; } leaf max-client-size { type uint64; config false; description "none"; } description "none"; } grouping odu-node-edge-point-spec { container odu-pool { config false; uses odu-pool-pac; description "none"; } description "none"; } grouping odu-ctp-pac { leaf-list tributary-slot-list { type uint64; config false; description "This attribute contains a set of distinct (i.e. unique) integers (e.g. 2, 3, 5, 9, 15 representing the tributary slots TS2, TS3, TS5, TS9 and TS15) which represents the resources occupied by the Low Order ODU Link Connection (e.g. carrying an ODUflex with a bit rate of 6.25G). This attribute applies when the LO ODU_ ConnectionTerminationPoint connects with an HO ODU_TrailTerminationPoint object. It will not apply if this ODU_ ConnectionTerminationPoint object directly connects to an OTU_TrailTerminationPoint object (i.e. OTU has no trib slots). The upper bound of the integer allowed in this set is a function of the HO-ODU server layer to which the ODU connection has been mapped (adapted). Thus, for example, M=8/32/80 for ODU2/ODU3/ODU4 server layers (respectively). Note that the value of this attribute can be changed only in the case of ODUflex and has to be through specific operations (i.e. not be changing the attribute tributarySlotList directly)."; } leaf tributary-port-number { type uint64; config false; description "This attribute identifies the tributary port number that is associated with the ODU CTP. range of type : The value range depends on the size of the Tributary Port Number (TPN) field used which depends on th server-layer ODU or OTU. In case of ODUk mapping into OTUk, there is no TPN field, so the tributaryPortNumber shall be zero. In case of LO ODUj mapping over ODU1, ODU2 or ODU3, the TPN is encoded in a 6-bit field so the value range is 0-63. See clause 14.4.1/G.709-2016. In case of LO ODUj mapping over ODU4, the TPN is encoded in a 7-bit field so the value range is 0-127. See clause 14.4.1.4/G.709-2016. In case of ODUk mapping over ODUCn, the TPN is encoded in a 14-bit field so the value range is 0-16383. See clause 20.4.1.1/G.709-2016. "; } leaf accepted-msi { type string; config false; description "This attribute is applicable when the ODU CTP object instance represents a lower order ODU1 or ODU2 CTP Sink at the client layer of the ODU3P/ODU12 adaptation function or represents a lower order ODUj CTP Sink at the client layer of the ODUP/ODUj-21 adaptation function. This attribute is a 1-byte field that represents the accepted multiplex structure of the adaptation function. "; } description "This Pac contains the attributes associated with the CTP It is present only if the CEP contains a CTP"; } grouping odu-mep-spec { container odu-mep { uses odu-mep-pac; description "none"; } container odu-ncm { config false; uses odu-ncm-pac; description "none"; } container odu-tcm { config false; uses odu-tcm-mep-pac; description "none"; } container odu-defect { uses odu-defect-pac; description "none"; } container odu-pm { uses odu-pm-pac; description "none"; } description "none"; } grouping odu-protection-pac { leaf aps-enable { type boolean; default "true"; description "This attribute is for enabling/disabling the automatic protection switching (APS) capability at the transport adaptation function that is represented by the ODU_ConnectionTerminationPoint object class. It triggers the MI_APS_EN signal to the transport adaptation function."; } leaf aps-level { type uint64; description "This attribute is for configuring the automatic protection switching (APS) level that should operate at the transport adaptation function that is represented by the ODU_ConnectionTerminationPoint object class. It triggers the MI_APS_LVL signal to the transport adaptation function. The value 0 means path and the values 1 through 6 mean TCM level 1 through 6 respectively."; } description "none"; } grouping odu-ncm-pac { leaf-list tcm-fields-in-use { type uint64; config false; description "This attribute indicates the used TCM fields of the ODU OH."; } description "none"; } grouping odu-tcm-mep-pac { leaf tcm-extension { type tcm-extension; description "none"; } leaf tcm-mode { type tcm-mode; description "This attribute specifies the TCM mode at the entity. Valid values are: Operational, Monitor, and Transparent."; } leaf codirectional { type boolean; config false; description "This attribute specifies the directionality of the ODUT MEP with respect to the associated ODU CEP. The value of TRUE means that the sink part of the ODUT MEP terminates the same signal direction as the sink part of the ODU CEP. The Source part behaves similarly. This attribute is meaningful only on objects instantiated under ODU CEP, and at least one among ODU CEP and the subordinate object is bidirectional."; } leaf ac-status-source { type tcm-status; config false; description "This attribute indicates the status of the accepted TCM. "; } leaf ac-status-sink { type tcm-status; config false; description "This attribute indicates the status of the accepted TCM. "; } leaf admin-state-source { type tapi-common:administrative-state; description "This attribute provides the capability to provision the LOCK signal at the source, which is one of the ODU maintenance signals. When a Tandem Connection endpoint is set to admin state locked, it will insert the ODU-LCK signal in the source direction."; } leaf admin-state-sink { type tapi-common:administrative-state; description "This attribute provides the capability to provision the LOCK signal at the sink, which is one of the ODU maintenance signals. When a Tandem Connection endpoint is set to admin state locked, it will insert the ODU-LCK signal in the downstream direction."; } uses odu-tcm-mip-pac; description "none"; } grouping odu-mip-spec { container odu-mip { config false; uses odu-mip-pac; description "none"; } container odu-ncm { config false; uses odu-ncm-pac; description "none"; } container odu-tcm { config false; uses odu-tcm-mip-pac; description "none"; } container odu-pm { uses odu-pm-pac; description "none"; } container odu-defect { uses odu-defect-pac; description "none"; } description "none"; } grouping odu-mip-pac { leaf acti { type string; config false; description "The Trail Trace Identifier (TTI) information recovered (Accepted) from the TTI overhead position at the sink of a trail."; } leaf ex-dapi { type string; description "The Expected Destination Access Point Identifier (ExDAPI), provisioned by the managing system, to be compared with the TTI accepted at the overhead position of the sink for the purpose of checking the integrity of connectivity."; } leaf ex-sapi { type string; description "The Expected Source Access Point Identifier (ExSAPI), provisioned by the managing system, to be compared with the TTI accepted at the overhead position of the sink for the purpose of checking the integrity of connectivity. "; } leaf tim-act-disabled { type boolean; default "true"; description "This attribute provides the control capability for the managing system to enable or disable the Consequent Action function when detecting Trace Identifier Mismatch (TIM) at the trail termination sink."; } leaf tim-det-mode { type tim-det-mo; description "This attribute indicates the mode of the Trace Identifier Mismatch (TIM) Detection function allowed values: OFF, SAPIonly, DAPIonly, SAPIandDAPI"; } leaf deg-m { type uint64; description "This attribute indicates the threshold level for declaring a Degraded Signal defect (dDEG). A dDEG shall be declared if DegM consecutive bad PM Seconds are detected."; } container deg-thr { uses deg-thr; description "This attribute indicates the threshold level for declaring a performance monitoring (PM) Second to be bad. The value of the threshold can be provisioned in terms of number of errored blocks or in terms of percentage of errored blocks. For percentage-based specification, in order to support provision of less than 1%, the specification consists of two fields. The first field indicates the granularity of percentage. For examples, in 1%, in 0.1%, or in 0.01%, etc. The second field indicates the multiple of the granularity. For number of errored block based, the value is a positive integer."; } description "none"; } grouping odu-tcm-mip-pac { leaf tcm-field { type uint64; config false; description "This attribute indicates the tandem connection monitoring field of the ODU OH."; } description "none"; } grouping odu-mep-pac { leaf dm-source { type boolean; description "This attribute is for configuring the delay measurement process at the trail termination function represented by the subject TTP object class. It models the MI_DM_Source MI signal. If MI_DM_Source is false, then the value of the DMp bit is determined by the RI_DM. If MI_DM_Source is true, then the value of the DMp bit is set to MI_DMValue."; } leaf dm-value { type boolean; description "This attribute is for setting the DMp and DMti bits of the delay measurement process. The value of 'true' sets the DMp and DMti bits to 0 and the value of 'false' to 1."; } leaf txti { type string; description "The Trail Trace Identifier (TTI) information, provisioned by the managing system at the termination source, to be placed in the TTI overhead position of the source of a trail for transmission. "; } uses odu-mip-pac; description "none"; } grouping odu-common-pac { leaf odu-type { type odu-type; config false; description "This attribute specifies the type of the ODU termination point."; } leaf odu-rate { type uint64; config false; description "This attribute indicates the rate of the ODU terminatino point. This attribute is Set at create; i.e., once created it cannot be changed directly. In case of resizable ODU flex, its value can be changed via HAO (not directly on the attribute). "; } leaf odu-rate-tolerance { type uint64; config false; description "This attribute indicates the rate tolerance of the ODU termination point. Valid values are real value in the unit of ppm. Standardized values are defined in Table 7-2/G.709."; } description "none"; } grouping odu-pm-pac { leaf n-bbe { type uint64; description "Near-end Background Block Error"; } leaf f-bbe { type uint64; config false; description "Far-end Background Block Error"; } leaf n-ses { type uint64; description "Near-end Severely Errored Second"; } leaf f-ses { type uint64; description "Far-end Severely Errored Second"; } container uas { uses uas-choice; description "UnAvailable Second"; } description "Instance of this object class contains the ODUP layer-specific Current Data. This object class is a subclass of the OTN_CurrentData object class. PM data attributes: fBbe, fSes, nBbe, nSes. uas"; } grouping odu-defect-pac { leaf bdi { type boolean; config false; description "Backward Defect Indication"; } leaf deg { type boolean; config false; description "Signal Degraded"; } leaf lck { type boolean; config false; description "Locked"; } leaf oci { type boolean; config false; description "Open Connection Indicator"; } leaf ssf { type boolean; config false; description "Server Signal Failure"; } leaf tim { type boolean; config false; description "Trail Trace Identifier Mismatch"; } description "The valid list of defects raised on the entity. If the value of any attribute is true, then the corresponding defect is raised."; } /************************** * package type-definitions **************************/ identity ODU_TYPE { base tapi-common:LAYER_PROTOCOL_QUALIFIER; description "none"; } identity ODU_TYPE_ODU0 { base ODU_TYPE; description "none"; } identity ODU_TYPE_ODU1 { base ODU_TYPE; description "none"; } identity ODU_TYPE_ODU2 { base ODU_TYPE; description "none"; } identity ODU_TYPE_ODU2E { base ODU_TYPE; description "none"; } identity ODU_TYPE_ODU3 { base ODU_TYPE; description "none"; } identity ODU_TYPE_ODU4 { base ODU_TYPE; description "none"; } identity ODU_TYPE_ODU_FLEX { base ODU_TYPE; description "none"; } identity ODU_TYPE_ODU_CN { base ODU_TYPE; description "none"; } typedef odu-type { type identityref { base ODU_TYPE; } description "none"; } typedef mapping-type { type enumeration { enum AMP { description "none"; } enum BMP { description "none"; } enum GFP-F { description "none"; } enum GMP { description "none"; } enum TTP_GFP_BMP { description "none"; } enum NULL { description "none"; } } description "none"; } typedef tim-det-mo { type enumeration { enum DAPI { description "none"; } enum SAPI { description "none"; } enum BOTH { description "none"; } enum OFF { description "none"; } } description "List of modes for trace identifier mismatch detection."; } typedef odu-slot-size { type enumeration { enum 1G25 { description "none"; } enum 2G5 { description "none"; } } description "none"; } grouping odu-payload-type { leaf named-payload-type { type odu-named-payload-type; description "none"; } leaf hex-payload-type { type uint64; description "none"; } description "none"; } typedef odu-named-payload-type { type enumeration { enum UNKNOWN { description "none"; } enum UNINTERPRETABLE { description "none"; } } description "none"; } grouping deg-thr { leaf deg-thr-value { type uint64; description "Percentage of detected errored blocks"; } leaf deg-thr-type { type deg-thr-type; description "Number of errored blocks"; } leaf percentage-granularity { type percentage-granularity; description "none"; } description "Degraded Threshold, specify either the percentage or the number of Errored Blocks in the defined interval. degThrValue when type is PERCENTAGE: percentageGranularity is used to indicate the number of decimal points So if percentageGranularity is ones, a value of 1 in degThrValue would indicate 1%, a value of 10 = 10%, a value of 100 = 100% So if percentageGranularity is thousandths a value of 1 in degThrValue would indicate 0.001%, a value of 1000 = 1%, a value of 1000000 = 100% degThrValue when type is NUMBER_ERROR_BLOCKS: Number of Errored Blocks is captured in an integer value."; } typedef deg-thr-type { type enumeration { enum PERCENTAGE { description "Choice of % or Number of errored blocks"; } enum NUMBER_ERRORED_BLOCKS { description "Number of % or blocks"; } } description "The value of the threshold can be provisioned in terms of number of errored blocks or in terms of percentage of errored blocks. For percentage-based specification, in order to support provision of less than 1%, the specification consists of two fields. The first field indicates the granularity of percentage. For examples, in 1%, in 0.1%, or in 0.01%, etc. The second field indicates the multiple of the granularity. For number of errored block based, the value is a positive integer."; } typedef tcm-status { type enumeration { enum NO_SOURCE_TC { description "TCM byte 3 (bits 6 7 8) -- 0 0 0, No source Tandem Connection"; } enum IN_USE_WITHOUT_IAE { description "TCM byte 3 (bits 6 7 8) -- 0 0 1, In use without IAE (Incoming Alignment Error)"; } enum IN_USE_WITH_IAE { description "TCM byte 3 (bits 6 7 8) -- 0 1 0, In use with IAE (Incoming Alignment Error)"; } enum RESERVED_1 { description "TCM byte 3 (bits 6 7 8) -- 0 1 1, Reserved for future international standardization"; } enum RESERVED_2 { description "TCM byte 3 (bits 6 7 8) -- 1 0 0, Reserved for future international standardization"; } enum LCK { description "TCM byte 3 (bits 6 7 8) -- 1 0 1, Maintenance signal: ODU-LCK"; } enum OCI { description "TCM byte 3 (bits 6 7 8) -- 1 1 0, Maintenance signal: ODU-OCI"; } enum AIS { description "TCM byte 3 (bits 6 7 8) -- 1 1 1, Maintenance signal: ODU-AIS"; } } description "See Table 15-5/G.709/Y.1331 "; } typedef tcm-mode { type enumeration { enum OPERATIONAL { description "none"; } enum TRANSPARENT { description "none"; } enum MONITOR { description "none"; } } description "List of value modes for the sink side of the tandem connection monitoring function."; } typedef tcm-monitoring { type enumeration { enum INTRUSIVE { description "none"; } enum NON-INTRUSIVE { description "none"; } } description "Monitoring types for the tandem connection monitoring function."; } typedef tcm-extension { type enumeration { enum NORMAL { description "none"; } enum PASS-THROUGH { description "none"; } enum ERASE { description "none"; } } description "none"; } typedef percentage-granularity { type enumeration { enum ONES { description "none"; } enum ONE_TENTHS { description "value * (1/10)"; } enum ONE_HUNDREDTHS { description "value * (1/100)"; } enum ONE_THOUSANDTHS { description "value * (1/1000)"; } } description "none"; } grouping uas-choice { leaf bidirectional { type boolean; default "true"; description "none"; } leaf uas { type uint64; description "none"; } leaf nuas { type uint64; description "none"; } leaf fuas { type uint64; description "none"; } description "If bidirectional is TRUE then use the uas attribute, if bidirectional is FALSE use the nuas, and fuas attributes"; } }