module org-openroadm-otsi-group-interfaces { yang-version 1.1; namespace "http://org/openroadm/otsi-group-interfaces"; prefix org-openroadm-otsi-group-interfaces; import org-openroadm-device { prefix org-openroadm-device; revision-date 2023-05-26; } import org-openroadm-interfaces { prefix openROADM-if; revision-date 2022-09-30; } import org-openroadm-common-optical-channel-types { prefix org-openroadm-common-optical-channel-types; revision-date 2023-05-26; } import org-openroadm-otn-common-types { prefix org-openroadm-otn-common-types; revision-date 2021-09-24; } import org-openroadm-maintenance-testsignal { prefix org-openroadm-maint-testsignal; revision-date 2023-05-26; } import org-openroadm-maintenance-loopback { prefix org-openroadm-maint-loopback; revision-date 2020-09-25; } organization "Open ROADM MSA"; contact "OpenROADM.org"; description "YANG definitions for device flexible optical transport network group interfaces. Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2018, 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 2023-05-26 { description "Version 13.1"; } revision 2023-03-31 { description "Version 13.0"; } revision 2022-12-09 { description "Version 12.1"; } 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"; } grouping msi-group { description "MSI Group grouping"; leaf index { type uint16; description "The FlexO multiplexed structure (G.709.3 Annex F (2020-12)) G.798 15.3.5.1 (FlexO-n/OTUCni_A_So), 15.3.5.2 (FlexO-n/OTUCni_A_Sk) (2021-01)"; } leaf instance-id { type uint16; description "FlexO instance id (G.709.1 2020-12)"; } leaf occupation { type boolean; description "occupied"; } leaf trib-port { type uint16; description "The tributary port identifier in FlexO multiplexed structure (G.709.3 Annex F (2020-12)) G.798 15.3.5.1 (FlexO-n/OTUCni_A_So)(2021-01)"; } } grouping otsi-group-container { description "OTSI group container group"; container otsi-group { description "OTSI group container"; leaf group-rate { type identityref { base org-openroadm-common-optical-channel-types:otsi-rate-identity; } description "Supported group rate"; } leaf group-id { type uint32; description "Mandatory for FlexO B100G. Not required for Non-FlexO B100G."; } container flexo-group-container { presence "flexo group"; leaf payload-id { type org-openroadm-otn-common-types:flexo-payload-type-def; description "Payload type PT (Section 9.2.6.2, G.709.1 2020-12)"; } list tx-msi { key "index"; config false; description "The transmitted FlexO multiplexed structure (G.709.3 Annex F (2020-12)) G.798 15.3.5.1 (FlexO-n/OTUCni_A_So)(2021-01) Instance id in TX MSI shall reflect programmed."; uses msi-group; } list rx-msi { key "index"; config false; description "The accepted FlexO multiplexed structure (G.709.3 Annex F (2020-12)) G.798 15.3.5.2 (FlexO-n/OTUCni_A_Sk)(2021-01) Instance id in RX MSI shall reflect accepted."; uses msi-group; } list exp-msi { key "index"; config false; description "The expected FlexO multiplexed structure (G.709.3 Annex F (2020-12)) G.798 15.3.5.2 (FlexO-n/OTUCni_A_Sk)(2021-01) Instance id in EXP MSI shall reflect programmed."; uses msi-group; } } uses org-openroadm-maint-testsignal:maint-testsignal; uses org-openroadm-maint-loopback:maint-loopback; } } augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" { when "org-openroadm-device:type = 'openROADM-if:otsi-group'"; description "augment for otsi group"; uses org-openroadm-otsi-group-interfaces:otsi-group-container; } }