org-openroadm-otn-odu-interfaces

YANG definitions for device facility otnodu interfaces. Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016...

  • Version: 2022-09-30

    org-openroadm-otn-odu-interfaces@2022-09-30


    
      module org-openroadm-otn-odu-interfaces {
    
        yang-version 1.1;
    
        namespace
          "http://org/openroadm/otn-odu-interfaces";
    
        prefix
          org-openroadm-otn-odu-interfaces;
    
        import org-openroadm-device {
          prefix org-openroadm-device;
          revision-date "2022-09-30";
        }
        import org-openroadm-interfaces {
          prefix openROADM-if;
          revision-date "2022-09-30";
        }
        import org-openroadm-maintenance-testsignal {
          prefix
            org-openroadm-maint-testsignal;
          revision-date "2022-09-30";
        }
        import org-openroadm-otn-common {
          prefix org-openroadm-otn-common;
          revision-date "2022-03-25";
        }
        import org-openroadm-otn-common-types {
          prefix
            org-openroadm-otn-common-types;
          revision-date "2021-09-24";
        }
        import org-openroadm-common-attributes {
          prefix
            org-openroadm-common-attributes;
          revision-date "2021-09-24";
        }
    
        organization "Open ROADM MSA";
    
        contact "OpenROADM.org";
    
        description
          "YANG definitions for device facility otnodu interfaces.
    
         Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
         All other rights reserved.
    
         Redistribution and use in source and binary forms, with or without modification,
         are permitted provided that the following conditions are met:
    
         * Redistributions of source code must retain the above copyright notice, this
           list of conditions and the following disclaimer.
         * Redistributions in binary form must reproduce the above copyright notice,
           this list of conditions and the following disclaimer in the documentation and/or
           other materials provided with the distribution.
         * Neither the Members of the Open ROADM MSA Agreement nor the names of its
           contributors may be used to endorse or promote products derived from this software
           without specific prior written permission.
    
         THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
         AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
         WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
         IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
         INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
         NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
         OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
         WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
         ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
         POSSIBILITY OF SUCH DAMAGE.
    
         Also contains code components extracted from IETF Interfaces.  These code components
         are copyrighted and licensed as follows:
    
         Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
         All rights reserved.
    
         This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating
         to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
         publication of this document. Please review these documents carefully, as they
         describe your rights and restrictions with respect to this document. Code Components
         extracted from this document must include Simplified BSD License text as described in
         Section 4.e of the Trust Legal Provisions and are provided without warranty as
         described in the Simplified BSD License.";
    
        revision "2022-09-30" {
          description "Version 12.0";
        }
    
        revision "2022-05-27" {
          description "Version 11.1";
        }
    
        revision "2022-03-25" {
          description "Version 11.0";
        }
    
        revision "2021-12-10" {
          description "Version 10.1";
        }
    
        revision "2021-09-24" {
          description "Version 10.0";
        }
    
        revision "2021-05-28" {
          description "Version 9.1";
        }
    
        revision "2021-03-26" {
          description "Version 9.0";
        }
    
        revision "2020-12-11" {
          description "Version 8.1";
        }
    
        revision "2020-09-25" {
          description "Version 8.0";
        }
    
        revision "2020-05-29" {
          description "Version 7.1.0";
        }
    
        revision "2020-03-27" {
          description "Version 7.0.0";
        }
    
        revision "2019-11-29" {
          description "Version 6.1.0";
        }
    
        revision "2019-09-27" {
          description "Version 6.0.0";
        }
    
        revision "2019-05-31" {
          description "Version 5.1.0";
        }
    
        revision "2019-03-29" {
          description "Version 5.0.0";
        }
    
        revision "2018-11-30" {
          description "Version 4.1.0";
        }
    
        revision "2018-09-28" {
          description "Version 4.0.0";
        }
    
        revision "2018-05-30" {
          description "Version 3.1.0";
        }
    
        revision "2018-03-30" {
          description "Version 3.0.0";
        }
    
        revision "2017-12-15" {
          description "Version 2.2";
        }
    
        revision "2017-09-29" {
          description "Version 2.1";
        }
    
        revision "2017-07-28" {
          description
            "Version 2.0.1 - added revision-date to imports";
        }
    
        revision "2017-06-26" {
          description "Version 2.0";
        }
    
        revision "2016-10-14" {
          description "Version 1.2";
        }
    
    
        grouping msi-entry {
          description
            "OPU Multiplex Structure Identifier (G.709 clause 19.4.1)";
          leaf trib-slot {
            type uint16;
            description "tributary slot (TS)";
          }
    
          leaf odtu-type {
            type identityref {
              base org-openroadm-otn-common-types:odtu-type-identity;
            }
            description
              "ODTU type, part of the MSI (Multiplex Structure Identifier)";
          }
    
          leaf trib-port {
            type uint16;
            description
              "Tributary Port Number (0-based), part of the MSI";
          }
        }  // grouping msi-entry
    
        grouping opucn-msi-entry {
          description
            "OPUCn Multiplex Structure Identifier (G.709 clause 20.4.1)";
          leaf opucn-trib-slot {
            type org-openroadm-otn-common-types:opucn-trib-slot-def;
            description
              "OPUCn tributary slot (TS)";
          }
    
          leaf availability {
            type boolean;
            description "available";
          }
    
          leaf occupation {
            type boolean;
            description "occupied";
          }
    
          leaf trib-port {
            type uint16;
            description
              "OPUCn Tributary Port Number (0-based), part of the MSI";
          }
        }  // grouping opucn-msi-entry
    
        grouping odu-attributes {
          description "ODU attributes";
          leaf rate {
            type identityref {
              base org-openroadm-otn-common-types:odu-rate-identity;
            }
            description
              "rate identity of the ODU. 'identityref' is used
             to allow to extend for future higher rates";
          }
    
          leaf oducn-n-rate {
            when
              "../rate = 'org-openroadm-otn-common-types:ODUCn'";
            type uint16;
            description "ODUCn rate";
          }
    
          leaf oduflex-cbr-service {
            type identityref {
              base org-openroadm-otn-common-types:ODUflex-cbr-identity;
            }
            description
              "ODUflex for CBR client signals (G.709)";
          }
    
          leaf oduflex-gfp-num-ts {
            type uint16;
            description
              "For ODUflex GFP-F mapped client signals (G.709), the number of
             tributary slot as per G.709 Table 7-8";
          }
    
          leaf oduflex-gfp-ts-bandwidth {
            type uint16;
            config false;
            description
              "The tributary slot minimum bit rates in the approximated value [Mbps]
             given ODUflex (GFP) 100 ppm (G.709 Table 7-8) :
               1249 Mbps [1 249 052.312 277 kbps] (n = 1 to 8) (ODU2.ts)
               1254 Mbps [1 254 344.906 9646 kbps] (n = 9 to 32) ODU3.ts)
               1301 Mbps [1 301 336.986 2867 kbps] (n = 33 to 80) (ODU4.ts)";
          }
    
          leaf oduflex-imp-s {
            type uint16;
            description
              "For ODUflex IMP (Idle insertion Mapping Procedure) mapped client signals,
             s = 2, 8, n x 5 with N >= 1 (G.709 12.2.6 & Table 7-3)";
          }
    
          leaf oduflex-flexe-n {
            type uint16;
            description
              "For ODUflex for FlexE-aware client signals, n in the range of 1 to 20*254
             (G.709 17.12)";
          }
    
          leaf odu-function {
            type identityref {
              base org-openroadm-otn-common-types:odu-function-identity;
            }
            description
              "function of the ODU interface";
          }
    
          leaf monitoring-mode {
            type enumeration {
              enum "not-terminated" {
                value 0;
                description
                  "Not Terminated: no detection or generation.
                 Overhead is passed through the interface transparently in receive direction";
              }
              enum "terminated" {
                value 1;
                description
                  "Terminated: detection and generation enabled.
                 Overhead is erased (replaced with all zeros) in receive direction";
              }
              enum "monitored" {
                value 2;
                description
                  "Monitored: detection enabled.
                 Overhead is passed through the interface transparently in receive direction";
              }
            }
            description
              "Monitoring mode of the ODU Overhead";
          }
    
          leaf no-oam-function {
            type empty;
            description
              "No OAM functionality exists for this ODU interface, the entity exists in software only. This entity does not report alarms or PM and does not support TCM, TTI, delay measurement, loopbacks, test signal and other hardware-based functions. This is an optional parameter, only needs to be present when no-oam-function supported for this interface.";
          }
    
          leaf no-maint-testsignal-function {
            type empty;
            description
              "No test signal function exists for this ODU interface. Similar to no-oam-function this entity does not support test signal generation, but all the other functions are available. This is an optional parameter, only needs to be present when test signal generation is not supported by this interface.";
          }
    
          leaf proactive-delay-measurement-enabled {
            type boolean;
            description
              "enable/disable proactive Delay Measurement";
          }
    
          uses org-openroadm-common-attributes:parent-odu-allocation;
    
          uses org-openroadm-otn-common:trail-trace;
    
          uses org-openroadm-common-attributes:deg-threshold;
    
          list tcm {
            key "layer tcm-direction";
            max-elements 12;
            description
              "Tandem Connection Management";
            uses tcm-attributes;
          }  // list tcm
    
          uses opu;
        }  // grouping odu-attributes
    
        grouping opu {
          description "OPU group";
          container opu {
            when
              "../monitoring-mode = 'terminated' or ../monitoring-mode = 'monitored'";
            description
              "Optical Channel Payload Unit (OPU)";
            leaf payload-type {
              type org-openroadm-otn-common-types:payload-type-def;
              description "Payload Type";
            }
    
            leaf rx-payload-type {
              type org-openroadm-otn-common-types:payload-type-def;
              description
                "Received Payload Type";
            }
    
            leaf exp-payload-type {
              type org-openroadm-otn-common-types:payload-type-def;
              description
                "Expected Payload Type";
            }
    
            container msi {
              when
                "../payload-type = '20' or ../payload-type = '21'";
              description
                "Multiple Structure Identifier";
              list tx-msi {
                key "trib-slot";
                description "Transmit MSI";
                uses msi-entry;
              }  // list tx-msi
    
              list rx-msi {
                key "trib-slot";
                description "Received MSI";
                uses msi-entry;
              }  // list rx-msi
    
              list exp-msi {
                key "trib-slot";
                description "Expected MSI";
                uses msi-entry;
              }  // list exp-msi
            }  // container msi
    
            container opucn-msi {
              when "../payload-type = '22'";
              description
                "OPUCn Mutiplex Structure Identifier (G.709 clause 20.4.1)";
              list tx-msi {
                key "opucn-trib-slot";
                description "Transmit MSI";
                uses opucn-msi-entry;
              }  // list tx-msi
    
              list rx-msi {
                key "opucn-trib-slot";
                description "Received MSI";
                uses opucn-msi-entry;
              }  // list rx-msi
    
              list exp-msi {
                key "opucn-trib-slot";
                description "Expected MSI";
                uses opucn-msi-entry;
              }  // list exp-msi
            }  // container opucn-msi
          }  // container opu
        }  // grouping opu
    
        grouping tcm-attributes {
          description
            "Tandem Connection Monitoring (TCM) attributes";
          leaf layer {
            type uint8 {
              range "1..6";
            }
            description "TCM layer";
          }
    
          leaf monitoring-mode {
            type enumeration {
              enum "not-terminated" {
                value 0;
                status obsolete;
                description
                  "Not Terminated: no detection or generation.
                 Overhead is passed through the interface transparently in receive direction
                 unless extension is set for erase";
              }
              enum "terminated" {
                value 1;
                description
                  "Terminated: detection and generation enabled.
                 Overhead is erased (replaced with all zeros) in receive direction, unless
                 extension is set to passthrough";
              }
              enum "monitored" {
                value 2;
                description
                  "Monitored: detection enabled.
                 Overhead is passed through the interface transparently in receive direction
                 unless extension is set for erase";
              }
            }
            description
              "Monitoring mode of the TCM layer";
          }
    
          leaf ltc-act-enabled {
            type boolean;
            description
              "enable/disable alarm transfer on detection of Loss of Tandem Connection (LTC)";
          }
    
          leaf proactive-delay-measurement-enabled {
            type boolean;
            description
              "enable/disable proactive Delay Measurement for TCM";
          }
    
          leaf tcm-direction {
            type org-openroadm-otn-common-types:tcm-direction-enum;
            description "Direction of TCM.";
          }
    
          uses org-openroadm-otn-common:trail-trace;
    
          uses org-openroadm-common-attributes:deg-threshold;
        }  // grouping tcm-attributes
    
        grouping odu-container {
          description "ODU container group";
          container odu {
            presence
              "Attribute Nodes for Optical Data Unit (ODU)";
            description
              "Optical Channel Data Unit (ODU)";
            uses odu-attributes {
              refine 
              refine 
              refine 
              refine 
              refine 
            }
    
            uses org-openroadm-maint-testsignal:maint-testsignal;
          }  // container odu
        }  // grouping odu-container
    
        augment /org-openroadm-device:org-openroadm-device/org-openroadm-device:interface {
          when
            "org-openroadm-device:type = 'openROADM-if:otnOdu'";
          description
            "augment for ODU container";
          uses odu-container;
        }
      }  // module org-openroadm-otn-odu-interfaces
    

© 2023 YumaWorks, Inc. All rights reserved.