--- /dev/null
+module o-ran-lbm {
+ yang-version 1.1;
+ namespace "urn:o-ran:lbm:1.0";
+ prefix "o-ran-lbm";
+
+ import ietf-yang-types {
+ prefix yang;
+ revision-date 2013-07-15;
+ }
+
+ import ietf-interfaces {
+ prefix if;
+ }
+
+ import o-ran-interfaces {
+ prefix "o-ran-int";
+ }
+
+ organization "O-RAN Alliance";
+
+ contact
+ "www.o-ran.org";
+
+ description
+ "This module defines the module capabilities for
+ the O-RAN Radio loop-back protocol (IEEE 802.1ag).
+ It is derived from MEF-38 (Service OAM Fault Management YANG Modules, April 2012)
+
+ Copyright 2021 the O-RAN Alliance.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS '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 SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS 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.
+
+ 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 above disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the above disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the Members of the O-RAN Alliance nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.";
+
+ revision "2021-12-01" {
+ description
+ "version 1.2.0
+
+ 1) typographical corrections in descriptions.";
+
+ reference "ORAN-WG4.M.0-v01.00";
+ }
+
+ revision "2021-03-22" {
+ description
+ "version 1.1.0
+
+ 1) typographical corrections in descriptions.";
+
+ reference "ORAN-WG4.M.0-v01.00";
+ }
+
+ revision "2019-02-04" {
+ description
+ "version 1.0.0
+
+ 1) imported model from xRAN
+ 2) changed namespace and reference from xran to o-ran";
+
+ reference "ORAN-WG4.M.0-v01.00";
+ }
+
+ typedef priority-type {
+ type uint32 {
+ range "0..7";
+ }
+ description
+ "A 3 bit priority value to be used in the VLAN tag, if present
+ in the transmitted frame.";
+ reference "[802.1q] 12.14.7.3.2:e";
+ }
+
+ typedef mep-id-type {
+ type uint16 {
+ range "1..8191";
+ }
+ description
+ "Maintenance association End Point Identifier (MEPID): A small integer,
+ unique over a given Maintenance Association, identifying a
+ specific MEP.";
+ reference "[802.1q] 3.19 and 19.2.1";
+ }
+
+ typedef vlan-id-type {
+ type uint16 {
+ range "1..4094";
+ }
+ description
+ "The VLAN-ID that uniquely identifies a VLAN. This is the 12-bit VLAN-ID
+ used in the VLAN Tag header.";
+ reference "[802.1q] 9.6";
+ }
+
+ typedef md-level-type {
+ type int32 {
+ range "0..7";
+ }
+ description
+ "Maintenance Domain Level (MD Level) identifier. Higher numbers
+ correspond to higher Maintenance Domains, those with the greatest
+ physical reach, with the highest values for customers' CFM PDUs.
+ Lower numbers correspond to lower Maintenance Domains, those with
+ more limited physical reach, with the lowest values for CFM PDUs
+ protecting single bridges or physical links.";
+ reference "[802.1q] 18.3, 21.4.1, IEEE8021-CFM-MIB.Dot1agCfmMDLevel";
+ }
+
+ typedef lbm-transaction-id-type {
+ type uint32;
+ description
+ "A loopback transaction identifier";
+ reference "[802.1q] 21.7.3";
+ }
+
+// grouping
+
+ grouping md-group {
+ description "the maintenance domain grouping";
+ list maintenance-domain {
+ key "id";
+ description
+ "A Maintenance Domain managed object is required in order to create an MA
+ with a MAID that includes that Maintenance Domain's Name. From
+ this Maintenance Domain managed object, all Maintenance
+ Association managed objects associated with that Maintenance
+ Domain managed object can be accessed, and thus controlled.";
+ reference "[802.1q] 12.14.5";
+
+ leaf id {
+ type string;
+ description
+ "A unique identifier of a Maintenance Domain";
+ reference "[802.1q] 12.14.5";
+ }
+
+ leaf name {
+ type string;
+ description
+ "The value for the Maintenance Domain Name. Only the name-type
+ 'character-string' is supported";
+ reference "[802.1q] 21.6.5.1 (Table 21-19), 12.14.5.3.2:a";
+ }
+
+ leaf md-level {
+ type md-level-type;
+ default 0;
+ description
+ "Integer identifying the Maintenance Domain Level (MD Level). Higher
+ numbers correspond to higher Maintenance Domains, those with the
+ greatest physical reach, with the highest values for customers'
+ CFM PDUs. Lower numbers correspond to lower Maintenance
+ Domains, those with more limited physical reach, with the lowest
+ values for CFM PDUs protecting single bridges or physical links.";
+ reference "[802.1q] 12.14.5.1.3:b";
+ }
+
+ list maintenance-association {
+ key "id";
+ description
+ "This list represents Maintenance Entity Groups (Y.1731) or
+ Maintenance Associations (802.1ag). MEGs/MAs are sets of
+ MEPs, each configured to the same service inside a common
+ OAM domain.";
+ leaf id {
+ type string;
+ description
+ "A unique identifier of a Maintenance Association";
+ reference "[802.1q] 12.14.6";
+ }
+ leaf name {
+ type string;
+
+ description
+ "The value for the Maintenance Association Name. Only the name-type
+ 'character-string' is supported";
+ reference "[802.1q] 12.14.5.3.2:b, Table 21-20";
+ }
+
+ list component-list {
+ key "component-id";
+ description
+ "A list of components each of which can be managed in a manner
+ essentially equivalent to an 802.1Q bridge.";
+ reference "[802.1q] IEEE8021-CFM-V2-MIB.ieee8021CfmMaCompTable";
+
+ leaf component-id {
+ type uint32;
+ description
+ "The bridge component within the system to which the information
+ in this maintenance-association applies";
+ reference "[802.1q] IEEE8021-CFM-V2-MIB.ieee8021CfmMaComponentId";
+ }
+
+ leaf name {
+ type string;
+
+ description
+ "The value for the Maintenance Association Name. Only the name-type
+ 'character-string' is supported";
+ reference "[802.1q] 12.14.5.3.2:b, Table 21-20";
+ }
+
+ leaf-list vid {
+ type leafref {
+ path "/if:interfaces/if:interface/o-ran-int:vlan-id";
+ }
+ min-elements 1;
+ ordered-by user;
+ description
+ "The VID(s) monitored by this MA, or 0, if the MA is not attached to any
+ VID. The first VID returned is the MA's Primary VID";
+ reference "[802.1q] 12.14.5.3.2:b";
+ }
+
+ leaf-list remote-meps {
+ type mep-id-type;
+ description
+ "A list of the MEPIDs of the MEPs in the MA.";
+ reference "[802.1q] 12.14.6.1.3:g";
+ }
+
+ list maintenance-association-end-point {
+ key "mep-identifier";
+ description
+ "The list of Maintenance association End Points in a specific Maintenance
+ Association.";
+
+ leaf mep-identifier {
+ type mep-id-type;
+ description
+ "Integer that is unique among all the MEPs in the same MA. Other
+ definition is: a small integer, unique over a given
+ Maintenance Association, identifying a specific Maintenance
+ association End Point.";
+ reference "[802.1q] 12.14.6.3.2:b";
+ }
+
+ leaf interface {
+ type leafref {
+ path "/if:interfaces/if:interface/if:name";
+ }
+ mandatory true;
+ description
+ "An interface, either a Bridge Port or an aggregated IEEE 802.3 port
+ within a Bridge Port, to which the MEP is attached. Each interface in
+ the system is uniquely identified by an interface-name. The structure
+ and content of the name is outside the scope of this specification.";
+ reference "[802.1q] 12.14.7.1.3:b";
+ }
+
+ leaf primary-vid {
+ type leafref {
+ path "/if:interfaces/if:interface/o-ran-int:vlan-id";
+ }
+ mandatory true;
+ description
+ "The Primary VID of the MEP. The value 0 indicates that either the
+ Primary VID is that of the MEP's MA or that the MEP's MA is
+ associated with no VID";
+ reference "[802.1q] 12.14.7.1.3:d";
+ }
+
+ leaf administrative-state {
+ type boolean;
+ mandatory true;
+ description
+ "The administrative state of the MEP";
+ reference "[802.1q] 12.14.7.1.3:e";
+ }
+
+ leaf mac-address {
+ type leafref {
+ path "/if:interfaces/if:interface/o-ran-int:mac-address";
+ }
+ config false;
+ description
+ "The MAC address of the MEP";
+ reference "[802.1q] 12.14.7.1.3:i";
+ }
+
+ container loopback {
+ config false;
+ description
+ "Data definitions related to the Loopback function.";
+ leaf replies-transmitted {
+ type yang:counter32;
+ config false;
+ mandatory true;
+ description
+ "The total number of LBRs transmitted.";
+ reference "[802.1q] 12.14.7.1.3:ad";
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+// top level container
+ container md-data-definitions {
+ description
+ "Data definitions related to the maintenance domains used for supporting
+ Ethernet loopback connectivity checks";
+ uses md-group;
+ }
+}