Refactor folder structure.
[sim/o1-interface.git] / ntsimulator / yang / o-ran-hardware.yang
diff --git a/ntsimulator/yang/o-ran-hardware.yang b/ntsimulator/yang/o-ran-hardware.yang
deleted file mode 100644 (file)
index 34cdada..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-module o-ran-hardware {
-  yang-version 1.1;
-  namespace "urn:o-ran:hardware:1.0";
-  prefix "o-ran-hw";
-
-  import ietf-hardware {
-    prefix hw;
-  }
-  import iana-hardware {
-    prefix ianahw;
-  }
-
-  organization "O-RAN Alliance";
-
-  contact
-    "www.o-ran.org";
-
-  description
-    "This module defines the YANG definitions for managng the O-RAN hardware.
-
-     Copyright 2019 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 "2019-03-28" {
-    description
-      "version 1.0.1
-
-      1) added new identities to accommodate cross working group use of
-      o-ran-hardware and assoicated set of augmentations that are backwards
-      compatible to version 1.0.0";
-
-    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";
-  }
-
-  feature ENERGYSAVING {
-    description
-      "Indicates that the Radio Unit supports energy saving state.";
-  }
-
-  // identity statements
-  identity O-RAN-RADIO {
-    base ianahw:module;
-    description
-      "Module used as it represents a self-contained sub-system
-      used in /hw:/hardware/hw:component/hw:class to represent
-      an O-RAN RU";
-  }
-
-  identity O-RAN-HW-COMPONENT {
-    base ianahw:module;
-    description
-      "Module used as it represents a self-contained sub-system
-      used in /hw:/hardware/hw:component/hw:class to represent
-      any O-RAN hardware component";
-  }
-
-  identity O-DU-COMPONENT {
-    base O-RAN-HW-COMPONENT;
-    description
-      "Used in /hw:/hardware/hw:component/hw:class to represent
-      any O-RAN defined O-DU hardware component";
-  }
-
-  identity O-RU-COMPONENT {
-    base O-RAN-HW-COMPONENT;
-    description
-      "Used in /hw:/hardware/hw:component/hw:class to represent
-      any O-RAN defined O-RU hardware component, including a stand-alone
-      O-RU or an O-RU component integrated into a multi-module system.";
-  }
-
-  // typedef statements
-  typedef energysaving-state {
-    type enumeration {
-      enum UNKNOWN {
-        description "The Radio Unit is unable to report energy saving state.";
-      }
-      enum SLEEPING {
-        description
-          "The Radio Unit is in a sleep state. The NETCONF management plane
-           connection is functioning. Other functions and hardware which are
-           not needed for management plane may be in energy saving mode.";
-      }
-      enum AWAKE {
-        description
-          "The Radio Unit is not in an energy saving state.";
-      }
-    }
-    description
-      "new typedef since ietf-hardware only covers pwer-state
-      for redundancy purposes and not power saving operations.";
-  }
-
-  typedef availability-type {
-    type enumeration {
-      enum UNKNOWN {
-        description "The Radio Unit is unable to report its availability state.";
-      }
-      enum NORMAL {
-        description
-          "The equipment is functioning correctly.";
-      }
-      enum DEGRADED {
-        description
-          "The equipment may be reporting a major alarm or may be reporting a critical
-           alarm that is only impacting one or more subcomponent, but where the
-           equipment's implementation permit it to continue operation (server traffic)
-           in a degraded state.
-
-           Used for example, when the equipment has M identical sub-components and
-           when a critical alarm is imapcting only N subcomponents, where N<M.";
-      }
-      enum FAULTY {
-        description
-          "The (sub-)components impacted by the critical alarm(s) impact the
-          ability of the equipment to continue operation (serve traffic).";
-      }
-    }
-    description
-      "Equipment's availability-state is derived by matching active faults
-       and their impact to module's operation and enables an equipment to indicate
-       that even though it may have one or more critical alarms, it can continue
-       to serve traffic.";
-  }
-
-  // common WG4 and croos-WG augmentations using O-RAN-RADIO identity
-
-  augment "/hw:hardware/hw:component" {
-    when "(derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-RADIO')) or
-    (derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-HW-COMPONENT'))";
-    description "New O-RAN parameters for o-ran hardware";
-
-    container label-content {
-      config false;
-      description
-        "Which set of attributes are printed on the Radio Unit's label";
-      leaf model-name {
-        type boolean;
-        description
-          "indicates whether model-name is included on the equipment's label";
-      }
-      leaf serial-number {
-        type boolean;
-        description
-          "indicates whether serial number is included on the equipment's label";
-      }
-    }
-    leaf product-code {
-      type string;
-      config false;
-      mandatory true;
-      description
-        "O-RAN term that is distinct from model-name in ietf-hardware.";
-    }
-    leaf energy-saving-enabled {
-      if-feature "ENERGYSAVING";
-      type boolean;
-      config true;
-      default false;
-      description
-        "This parameter can enable O-RAN unit to be switched to energy
-         saving mode.
-         TRUE indicates to switch the energy saving mode.
-         FALSE indicates to cancel the energy saving mode.
-         At the energy saving mode, all power of whole O-RAN unit becomes
-         lowest level whereas M-plane is still available";
-    }
-  }
-
-  augment "/hw:hardware/hw:component" {
-    when "(derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-RADIO')) or
-    (derived-from-or-self(hw:class, 'ianahw:port')) or
-    (derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-HW-COMPONENT'))";
-    description "New O-RAN parameters for o-ran naming";
-    leaf o-ran-name {
-      type leafref {
-        path "/hw:hardware/hw:component/hw:name";
-      }
-      must "re-match(current(),'[a-zA-Z0-9][a-zA-Z0-9\\.\\-_]{0,253}[a-zA-Z0-9]')" {
-        error-message "Name must match pattern and length.";
-      }
-      mandatory true;
-      description
-        "O-RAN name needed to bind and match with the name of hw element,
-        to be compliant with O-RAN naming convention.";
-    }
-  }
-
-  augment "/hw:hardware/hw:component/hw:state"  {
-    when "(derived-from-or-self(../hw:class, 'o-ran-hw:O-RAN-RADIO')) or
-    (derived-from-or-self(../hw:class, 'o-ran-hw:O-RAN-HW-COMPONENT'))";
-    description
-      "new O-RAN defined state";
-    leaf power-state {
-      if-feature "ENERGYSAVING";
-      type energysaving-state;
-      config false;
-      description
-        "The current power saving state for this component.
-        Note - hw:/hardware/compnent/state/standby-state defined in RFC 4268 is
-        used for redundancy purposes and not power saving operations.";
-    }
-    leaf availability-state {
-      type availability-type;
-      config false;
-      description
-        "Equipment's availability-state is derived by matching active faults
-         and their impact to module's operation and enables an equipment to indicate
-         that even though it may have one or more critical alarms, it can continue
-         to serve traffic.";
-    }
-  }
-
-
-// augmentations to Notifications
-
-  augment "/hw:hardware-state-oper-enabled"  {
-    description "new availability state";
-    leaf availability-state {
-      type leafref {
-        path "/hw:hardware/hw:component/hw:state/o-ran-hw:availability-state";
-      }
-      description
-        "The availability-state of the O-RU.";
-    }
-  }
-
-  augment "/hw:hardware-state-oper-disabled"  {
-    description "new availability state";
-    leaf availability-state {
-      type leafref {
-        path "/hw:hardware/hw:component/hw:state/o-ran-hw:availability-state";
-      }
-      description
-        "The availability-state of the O-RU.";
-    }
-  }
-}