Use model artifact from scp/oam/modeling repository 47/4547/1
authorRavi Pendurty <ravi.pendurty@highstreet-technologies.com>
Fri, 14 Aug 2020 05:17:51 +0000 (07:17 +0200)
committerRavi Pendurty <ravi.pendurty@highstreet-technologies.com>
Fri, 14 Aug 2020 05:18:56 +0000 (07:18 +0200)
artifactId - o-ran-ru-fh-model groupId - org.o-ran-sc.scp-oam-modeling.features

Issue-ID: OAM-144
Signed-off-by: Ravi Pendurty <ravi.pendurty@highstreet-technologies.com>
Change-Id: Id5d9ca48f501cb566c0ab70e2fad2de9b4082b90
Signed-off-by: Ravi Pendurty <ravi.pendurty@highstreet-technologies.com>
14 files changed:
features/devicemanager/o-ran/ru-fh/provider/pom.xml
features/devicemanager/o-ran/ru-fh/provider/src/main/yang/iana-hardware.yang [deleted file]
features/devicemanager/o-ran/ru-fh/provider/src/main/yang/ietf-alarms@2019-09-11.yang [deleted file]
features/devicemanager/o-ran/ru-fh/provider/src/main/yang/ietf-hardware.yang [deleted file]
features/devicemanager/o-ran/ru-fh/provider/src/main/yang/ietf-interfaces.yang [deleted file]
features/devicemanager/o-ran/ru-fh/provider/src/main/yang/network-topology-simulator.yang [deleted file]
features/devicemanager/o-ran/ru-fh/provider/src/main/yang/o-ran-fm.yang [deleted file]
features/devicemanager/o-ran/ru-fh/provider/src/main/yang/o-ran-hardware.yang [deleted file]
features/devicemanager/o-ran/ru-fh/provider/src/main/yang/o-ran-sc-common-alarms-v1.yang [deleted file]
features/devicemanager/o-ran/ru-fh/provider/src/main/yang/o-ran-sc-cu-cp-alarms-v1.yang [deleted file]
features/devicemanager/o-ran/ru-fh/provider/src/main/yang/o-ran-sc-cu-up-alarms-v1.yang [deleted file]
features/devicemanager/o-ran/ru-fh/provider/src/main/yang/o-ran-sc-du-alarms-v1.yang [deleted file]
features/devicemanager/o-ran/ru-fh/provider/src/main/yang/o-ran-sc-ric-alarms-v1.yang [deleted file]
features/devicemanager/o-ran/ru-fh/provider/src/main/yang/o-ran-sc-ru-alarms-v1.yang [deleted file]

index afa296e..bef4a1f 100644 (file)
@@ -64,8 +64,8 @@
 
         <!-- end for testing -->
         <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>devicemanager-oran-ru-fh-model</artifactId>
+            <groupId>org.o-ran-sc.scp-oam-modeling.features</groupId>
+            <artifactId>o-ran-ru-fh-model</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
diff --git a/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/iana-hardware.yang b/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/iana-hardware.yang
deleted file mode 100644 (file)
index 52bcaf3..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-module iana-hardware {
-yang-version 1.1;
-namespace "urn:ietf:params:xml:ns:yang:iana-hardware";
-prefix ianahw;
-
-organization "IANA";
-contact
-  "        Internet Assigned Numbers Authority
-   Postal: ICANN
-           12025 Waterfront Drive, Suite 300
-           Los Angeles, CA  90094-2536
-           United States of America
-   Tel:    +1 310 301 5800
-   E-Mail: iana@iana.org>";
-
-description
-  "IANA-defined identities for hardware class.
-   The latest revision of this YANG module can be obtained from
-   the IANA website.
-   Requests for new values should be made to IANA via
-   email (iana@iana.org).
-   Copyright (c) 2018 IETF Trust and the persons identified as
-   authors of the code.  All rights reserved.
-   Redistribution and use in source and binary forms, with or
-   without modification, is permitted pursuant to, and subject
-   to the license terms contained in, the Simplified BSD License
-   set forth in Section 4.c of the IETF Trust's Legal Provisions
-   Relating to IETF Documents
-   (https://trustee.ietf.org/license-info).
-   The initial version of this YANG module is part of RFC 8348;
-   see the RFC itself for full legal notices.";
-reference
-  "https://www.iana.org/assignments/yang-parameters";
-
-revision 2018-03-13 {
-  description
-    "Initial revision.";
-  reference
-    "RFC 8348: A YANG Data Model for Hardware Management";
-}
-
-/*
- * Identities
- */
-
-identity hardware-class {
-  description
-    "This identity is the base for all hardware class
-     identifiers.";
-}
-
-identity unknown {
-  base ianahw:hardware-class;
-  description
-    "This identity is applicable if the hardware class is unknown
-     to the server.";
-}
-
-identity chassis {
-  base ianahw:hardware-class;
-  description
-    "This identity is applicable if the hardware class is an
-     overall container for networking equipment.  Any class of
-     physical component, except a stack, may be contained within a
-     chassis; a chassis may only be contained within a stack.";
-}
-
-identity backplane {
-  base ianahw:hardware-class;
-  description
-    "This identity is applicable if the hardware class is some sort
-     of device for aggregating and forwarding networking traffic,
-     such as a shared backplane in a modular ethernet switch.  Note
-     that an implementation may model a backplane as a single
-     physical component, which is actually implemented as multiple
-     discrete physical components (within a chassis or stack).";
-}
-
-identity container {
-  base ianahw:hardware-class;
-  description
-    "This identity is applicable if the hardware class is capable
-     of containing one or more removable physical entities,
-     possibly of different types.  For example, each (empty or
-     full) slot in a chassis will be modeled as a container.  Note
-     that all removable physical components should be modeled
-     within a container component, such as field-replaceable
-     modules, fans, or power supplies.  Note that all known
-     containers should be modeled by the agent, including empty
-     containers.";
-}
-
-identity power-supply {
-  base ianahw:hardware-class;
-  description
-    "This identity is applicable if the hardware class is a
-     power-supplying component.";
-}
-
-identity fan {
-  base ianahw:hardware-class;
-  description
-    "This identity is applicable if the hardware class is a fan or
-     other heat-reduction component.";
-}
-
-identity sensor {
-  base ianahw:hardware-class;
-  description
-    "This identity is applicable if the hardware class is some sort
-     of sensor, such as a temperature sensor within a router
-     chassis.";
-}
-
-identity module {
-  base ianahw:hardware-class;
-  description
-    "This identity is applicable if the hardware class is some sort
-     of self-contained sub-system.  If a module component is
-     removable, then it should be modeled within a container
-     component; otherwise, it should be modeled directly within
-     another physical component (e.g., a chassis or another
-     module).";
-}
-
-identity port {
-  base ianahw:hardware-class;
-  description
-    "This identity is applicable if the hardware class is some sort
-     of networking port capable of receiving and/or transmitting
-     networking traffic.";
-}
-
-identity stack {
-  base ianahw:hardware-class;
-  description
-    "This identity is applicable if the hardware class is some sort
-     of super-container (possibly virtual) intended to group
-     together multiple chassis entities.  A stack may be realized
-     by a virtual cable, a real interconnect cable attached to
-     multiple chassis, or multiple interconnect cables.  A stack
-     should not be modeled within any other physical components,
-     but a stack may be contained within another stack.  Only
-     chassis components should be contained within a stack.";
-}
-
-identity cpu {
-  base ianahw:hardware-class;
-  description
-    "This identity is applicable if the hardware class is some sort
-     of central processing unit.";
-}
-
-identity energy-object {
-  base ianahw:hardware-class;
-  description
-    "This identity is applicable if the hardware class is some sort
-     of energy object, i.e., it is a piece of equipment that is
-     part of or attached to a communications network that is
-     monitored, it is controlled, or it aids in the management of
-     another device for Energy Management.";
-}
-
-identity battery {
-  base ianahw:hardware-class;
-  description
-    "This identity is applicable if the hardware class is some sort
-     of battery.";
-}
-
-identity storage-drive {
-  base ianahw:hardware-class;
-  description
-    "This identity is applicable if the hardware class is some sort
-     of component with data storage capability as its main
-     functionality, e.g., hard disk drive (HDD), solid-state device
-     (SSD), solid-state hybrid drive (SSHD), object storage device
-     (OSD), or other.";
-}
-}
diff --git a/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/ietf-alarms@2019-09-11.yang b/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/ietf-alarms@2019-09-11.yang
deleted file mode 100644 (file)
index a6f51bb..0000000
+++ /dev/null
@@ -1,1530 +0,0 @@
-module ietf-alarms {
-  yang-version 1.1;
-  namespace "urn:ietf:params:xml:ns:yang:ietf-alarms";
-  prefix al;
-
-  import ietf-yang-types {
-    prefix yang;
-    reference
-      "RFC 6991: Common YANG Data Types.";
-  }
-
-  organization
-    "IETF CCAMP Working Group";
-  contact
-    "WG Web:   <https://trac.ietf.org/trac/ccamp>
-     WG List:  <mailto:ccamp@ietf.org>
-
-     Editor:   Stefan Vallin
-               <mailto:stefan@wallan.se>
-
-     Editor:   Martin Bjorklund
-               <mailto:mbj@tail-f.com>";
-  description
-    "This module defines an interface for managing alarms.  Main
-     inputs to the module design are the 3GPP Alarm Integration
-     Reference Point (IRP), ITU-T X.733, and ANSI/ISA-18.2 alarm
-     standards.
-
-     Main features of this module include:
-
-       * Alarm list:
-                 A list of all alarms.  Cleared alarms stay in
-                 the list until explicitly purged.
-
-       * Operator actions on alarms:
-                 Acknowledging and closing alarms.
-
-       * Administrative actions on alarms:
-                 Purging alarms from the list according to specific
-                 criteria.
-
-       * Alarm inventory:
-                 A management application can read all
-                 alarm types implemented by the system.
-
-       * Alarm shelving:
-                 Shelving (blocking) alarms according
-                 to specific criteria.
-
-       * Alarm profiles:
-                 A management system can attach further
-                 information to alarm types, for example,
-                 overriding system-default severity
-                 levels.
-
-     This module uses a stateful view on alarms.  An alarm is a state
-     for a specific resource (note that an alarm is not a
-     notification).  An alarm type is a possible alarm state for a
-     resource.  For example, the tuple:
-
-       ('link-alarm', 'GigabitEthernet0/25')
-
-     is an alarm of type 'link-alarm' on the resource
-     'GigabitEthernet0/25'.
-
-     Alarm types are identified using YANG identities and an optional
-     string-based qualifier.  The string-based qualifier allows for
-     dynamic extension of the statically defined alarm types.  Alarm
-     types identify a possible alarm state and not the individual
-     notifications.  For example, the traditional 'link-down' and
-     'link-up' notifications are two notifications referring to the
-     same alarm type 'link-alarm'.
-
-     With this design, there is no ambiguity about how alarm and
-     alarm clear correlation should be performed; notifications that
-     report the same resource and alarm type are considered updates
-
-     of the same alarm, e.g., clearing an active alarm or changing
-     the severity of an alarm.  The instrumentation can update the
-     severity and alarm text on an existing alarm.  The above alarm
-     example can therefore look like the following:
-
-       (('link-alarm', 'GigabitEthernet0/25'),
-        warning,
-        'interface down while interface admin state is up')
-
-     There is a clear separation between updates on the alarm from
-     the underlying resource, like clear, and updates from an
-     operator, like acknowledging or closing an alarm:
-
-       (('link-alarm', 'GigabitEthernet0/25'),
-        warning,
-        'interface down while interface admin state is up',
-        cleared,
-        closed)
-
-     Administrative actions like removing closed alarms older than a
-     given time is supported.
-
-     This YANG module does not define how the underlying
-     instrumentation detects and clears the specific alarms.  That
-     belongs to the Standards Development Organization (SDO) or
-     enterprise that owns that specific technology.
-
-     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
-     NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
-     'MAY', and 'OPTIONAL' in this document are to be interpreted as
-     described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
-     they appear in all capitals, as shown here.
-
-     Copyright (c) 2019 IETF Trust and the persons identified as
-     authors of the code.  All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject to
-     the license terms contained in, the Simplified BSD License set
-     forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (https://trustee.ietf.org/license-info).
-
-     This version of this YANG module is part of RFC 8632; see
-     the RFC itself for full legal notices.";
-
-  revision 2019-09-11 {
-    description
-      "Initial revision.";
-    reference
-      "RFC 8632: A YANG Data Model for Alarm Management";
-  }
-
-  /*
-   * Features
-   */
-
-  feature operator-actions {
-    description
-      "This feature indicates that the system supports operator
-       states on alarms.";
-  }
-
-  feature alarm-shelving {
-    description
-      "This feature indicates that the system supports shelving
-       (blocking) alarms.
-
-       Alarm shelving may have an impact on server processing
-       resources in order to match alarms against shelf
-       criteria.";
-  }
-
-  feature alarm-history {
-    description
-      "This feature indicates that the server maintains a history
-       of state changes for each alarm.  For example, if an alarm
-       toggles between cleared and active 10 times, these state
-       changes are present in a separate list in the alarm.
-
-       Keeping the alarm history may have an impact on server
-       memory resources.";
-  }
-
-  feature alarm-summary {
-    description
-      "This feature indicates that the server summarizes the number
-       of alarms per severity and operator state.";
-  }
-
-  feature alarm-profile {
-    description
-      "The system enables clients to configure further information
-       to each alarm type.";
-  }
-
-  feature severity-assignment {
-    description
-      "The system supports configurable alarm severity levels.";
-    reference
-      "ITU-T Recommendation M.3100:
-         Generic network information model
-       ITU-T Recommendation M.3160:
-         Generic, protocol-neutral management information model";
-  }
-
-  feature root-cause-analysis {
-    description
-      "The system supports identifying candidate root-cause
-       resources for an alarm, for example, a disk partition
-       root cause for a logger failure alarm.";
-  }
-
-  feature service-impact-analysis {
-    description
-      "The system supports identifying candidate-impacted
-       resources for an alarm, for example, an interface state change
-       resulting in a link alarm, which can refer to a link as being
-       impacted.";
-  }
-
-  feature alarm-correlation {
-    description
-      "The system supports correlating/grouping alarms
-       that belong together.";
-  }
-
-  /*
-   * Identities
-   */
-
-  identity alarm-type-id {
-    description
-      "Base identity for alarm types.  A unique identification of
-       the alarm, not including the resource.  Different resources
-       can share alarm types.  If the resource reports the same
-       alarm type, it is considered to be the same alarm.  The alarm
-       type is a simplification of the different X.733 and 3GPP Alarm
-       IRP correlation mechanisms, and it allows for
-       hierarchical extensions.
-
-       A string-based qualifier can be used in addition to the
-       identity in order to have different alarm types based on
-       information not known at design time, such as values in
-
-       textual SNMP Notification varbinds.
-
-       Standards and vendors can define sub-identities to clearly
-       identify specific alarm types.
-
-       This identity is abstract and MUST NOT be used for alarms.";
-  }
-
-  /*
-   * Common types
-   */
-
-  typedef resource {
-    type union {
-      type instance-identifier {
-        require-instance false;
-      }
-      type yang:object-identifier;
-      type string;
-      type yang:uuid;
-    }
-    description
-      "This is an identification of the alarming resource, such as an
-       interface.  It should be as fine-grained as possible to both
-       guide the operator and guarantee uniqueness of the alarms.
-
-       If the alarming resource is modeled in YANG, this type will
-       be an instance-identifier.
-
-       If the resource is an SNMP object, the type will be an
-       'object-identifier'.
-
-       If the resource is anything else, for example, a distinguished
-       name or a Common Information Model (CIM) path, this type will
-       be a string.
-
-       If the alarming object is identified by a Universally Unique
-       Identifier (UUID), use the uuid type.  Be cautious when using
-       this type, since a UUID is hard to use for an operator.
-
-       If the server supports several models, the precedence should
-       be in the order as given in the union definition.";
-  }
-
-  typedef resource-match {
-    type union {
-      type yang:xpath1.0;
-      type yang:object-identifier;
-      type string;
-    }
-    description
-      "This type is used to match resources of type 'resource'.
-       Since the type 'resource' is a union of different types, the
-       'resource-match' type is also a union of corresponding types.
-
-       If the type is given as an XPath 1.0 expression, a resource
-       of type 'instance-identifier' matches if the instance is part
-       of the node set that is the result of evaluating the XPath 1.0
-       expression.  For example, the XPath 1.0 expression:
-
-        /ietf-interfaces:interfaces/ietf-interfaces:interface
-            [ietf-interfaces:type='ianaift:ethernetCsmacd']
-
-       would match the resource instance-identifier:
-
-        /if:interfaces/if:interface[if:name='eth1'],
-
-       assuming that the interface 'eth1' is of type
-       'ianaift:ethernetCsmacd'.
-
-       If the type is given as an object identifier, a resource of
-       type 'object-identifier' matches if the match object
-       identifier is a prefix of the resource's object identifier.
-       For example, the value:
-
-        1.3.6.1.2.1.2.2
-
-       would match the resource object identifier:
-
-        1.3.6.1.2.1.2.2.1.1.5
-
-       If the type is given as an UUID or a string, it is interpreted
-       as an XML Schema regular expression, which matches a resource
-       of type 'yang:uuid' or 'string' if the given regular
-       expression matches the resource string.
-
-       If the type is given as an XPath expression, it is evaluated
-       in the following XPath context:
-
-         o  The set of namespace declarations is the set of prefix
-            and namespace pairs for all YANG modules implemented by
-            the server, where the prefix is the YANG module name and
-            the namespace is as defined by the 'namespace' statement
-            in the YANG module.
-
-            If a leaf of this type is encoded in XML, all namespace
-
-            declarations in scope on the leaf element are added to
-            the set of namespace declarations.  If a prefix found in
-            the XML is already present in the set of namespace
-            declarations, the namespace in the XML is used.
-
-         o  The set of variable bindings is empty.
-
-         o  The function library is the core function library, and
-            the functions are defined in Section 10 of RFC 7950.
-
-         o  The context node is the root node in the data tree.";
-    reference
-      "XML Schema Part 2: Datatypes Second Edition,
-         World Wide Web Consortium Recommendation
-         REC-xmlschema-2-20041028";
-  }
-
-  typedef alarm-text {
-    type string;
-    description
-      "The string used to inform operators about the alarm.  This
-       MUST contain enough information for an operator to be able to
-       understand the problem and how to resolve it.  If this string
-       contains structure, this format should be clearly documented
-       for programs to be able to parse that information.";
-  }
-
-  typedef severity {
-    type enumeration {
-      enum indeterminate {
-        value 2;
-        description
-          "Indicates that the severity level could not be
-           determined.  This level SHOULD be avoided.";
-      }
-      enum warning {
-        value 3;
-        description
-          "The 'warning' severity level indicates the detection of a
-           potential or impending service-affecting fault, before any
-           significant effects have been felt.  Action should be
-           taken to further diagnose (if necessary) and correct the
-           problem in order to prevent it from becoming a more
-           serious service-affecting fault.";
-      }
-      enum minor {
-        value 4;
-        description
-          "The 'minor' severity level indicates the existence of a
-           non-service-affecting fault condition and that corrective
-           action should be taken in order to prevent a more serious
-           (for example, service-affecting) fault.  Such a severity
-           can be reported, for example, when the detected alarm
-           condition is not currently degrading the capacity of the
-           resource.";
-      }
-      enum major {
-        value 5;
-        description
-          "The 'major' severity level indicates that a service-
-           affecting condition has developed and an urgent corrective
-           action is required.  Such a severity can be reported, for
-           example, when there is a severe degradation in the
-           capability of the resource and its full capability must be
-           restored.";
-      }
-      enum critical {
-        value 6;
-        description
-          "The 'critical' severity level indicates that a service-
-           affecting condition has occurred and an immediate
-           corrective action is required.  Such a severity can be
-           reported, for example, when a resource becomes totally out
-           of service and its capability must be restored.";
-      }
-    }
-    description
-      "The severity level of the alarm.  Note well that the value
-       'clear' is not included.  Whether or not an alarm is cleared
-       is a separate boolean flag.";
-    reference
-      "ITU-T Recommendation X.733: Information Technology
-         - Open Systems Interconnection
-         - System Management: Alarm Reporting Function";
-  }
-
-  typedef severity-with-clear {
-    type union {
-      type enumeration {
-        enum cleared {
-          value 1;
-          description
-            "The alarm is cleared by the instrumentation.";
-        }
-      }
-      type severity;
-    }
-    description
-      "The severity level of the alarm including clear.  This is used
-       only in notifications reporting state changes for an alarm.";
-  }
-
-  typedef writable-operator-state {
-    type enumeration {
-      enum none {
-        value 1;
-        description
-          "The alarm is not being taken care of.";
-      }
-      enum ack {
-        value 2;
-        description
-          "The alarm is being taken care of.  Corrective action not
-           taken yet or has failed";
-      }
-      enum closed {
-        value 3;
-        description
-          "Corrective action taken successfully.";
-      }
-    }
-    description
-      "Operator states on an alarm.  The 'closed' state indicates
-       that an operator considers the alarm being resolved.  This is
-       separate from the alarm's 'is-cleared' leaf.";
-  }
-
-  typedef operator-state {
-    type union {
-      type writable-operator-state;
-      type enumeration {
-        enum shelved {
-          value 4;
-          description
-            "The alarm is shelved.  Alarms in /alarms/shelved-alarms/
-             MUST be assigned this operator state by the server as
-             the last entry in the 'operator-state-change' list.  The
-             text for that entry SHOULD include the shelf name.";
-        }
-        enum un-shelved {
-          value 5;
-          description
-            "The alarm is moved back to 'alarm-list' from a shelf.
-             Alarms that are moved from /alarms/shelved-alarms/ to
-             /alarms/alarm-list MUST be assigned this state by the
-             server as the last entry in the 'operator-state-change'
-             list.  The text for that entry SHOULD include the shelf
-             name.";
-        }
-      }
-    }
-    description
-      "Operator states on an alarm.  The 'closed' state indicates
-       that an operator considers the alarm being resolved.  This is
-       separate from the alarm's 'is-cleared' leaf.";
-  }
-
-  /* Alarm type */
-
-  typedef alarm-type-id {
-    type identityref {
-      base alarm-type-id;
-    }
-    description
-      "Identifies an alarm type.  The description of the alarm type
-       id MUST indicate whether or not the alarm type is abstract.
-       An abstract alarm type is used as a base for other alarm type
-       ids and will not be used as a value for an alarm or be present
-       in the alarm inventory.";
-  }
-
-  typedef alarm-type-qualifier {
-    type string;
-    description
-      "If an alarm type cannot be fully specified at design time by
-       'alarm-type-id', this string qualifier is used in addition to
-       fully define a unique alarm type.
-
-       The definition of alarm qualifiers is considered to be part of
-       the instrumentation and is out of scope for this module.  An
-       empty string is used when this is part of a key.";
-  }
-
-  /*
-   * Groupings
-   */
-
-  grouping common-alarm-parameters {
-    description
-      "Common parameters for an alarm.
-
-       This grouping is used both in the alarm list and in the
-       notification representing an alarm-state change.";
-    leaf resource {
-      type resource;
-      mandatory true;
-      description
-        "The alarming resource.  See also 'alt-resource'.  This could
-         be, for example, a reference to the alarming interface";
-    }
-    leaf alarm-type-id {
-      type alarm-type-id;
-      mandatory true;
-      description
-        "This leaf and the leaf 'alarm-type-qualifier' together
-         provide a unique identification of the alarm type.";
-    }
-    leaf alarm-type-qualifier {
-      type alarm-type-qualifier;
-      description
-        "This leaf is used when the 'alarm-type-id' leaf cannot
-         uniquely identify the alarm type.  Normally, this is not the
-         case, and this leaf is the empty string.";
-    }
-    leaf-list alt-resource {
-      type resource;
-      description
-        "Used if the alarming resource is available over other
-         interfaces.  This field can contain SNMP OIDs, CIM paths, or
-         3GPP distinguished names, for example.";
-    }
-    list related-alarm {
-      if-feature "alarm-correlation";
-      key "resource alarm-type-id alarm-type-qualifier";
-      description
-        "References to related alarms.  Note that the related alarm
-         might have been purged from the alarm list.";
-      leaf resource {
-        type leafref {
-          path "/alarms/alarm-list/alarm/resource";
-          require-instance false;
-        }
-        description
-          "The alarming resource for the related alarm.";
-      }
-      leaf alarm-type-id {
-        type leafref {
-          path "/alarms/alarm-list/alarm"
-             + "[resource=current()/../resource]"
-             + "/alarm-type-id";
-          require-instance false;
-        }
-        description
-          "The alarm type identifier for the related alarm.";
-      }
-      leaf alarm-type-qualifier {
-        type leafref {
-          path "/alarms/alarm-list/alarm"
-             + "[resource=current()/../resource]"
-             + "[alarm-type-id=current()/../alarm-type-id]"
-             + "/alarm-type-qualifier";
-          require-instance false;
-        }
-        description
-          "The alarm qualifier for the related alarm.";
-      }
-    }
-    leaf-list impacted-resource {
-      if-feature "service-impact-analysis";
-      type resource;
-      description
-        "Resources that might be affected by this alarm.  If the
-         system creates an alarm on a resource and also has a mapping
-         to other resources that might be impacted, these resources
-         can be listed in this leaf-list.  In this way, the system
-         can create one alarm instead of several.  For example, if an
-         interface has an alarm, the 'impacted-resource' can
-         reference the aggregated port channels.";
-    }
-    leaf-list root-cause-resource {
-      if-feature "root-cause-analysis";
-      type resource;
-      description
-        "Resources that are candidates for causing the alarm.  If the
-         system has a mechanism to understand the candidate root
-         causes of an alarm, this leaf-list can be used to list the
-         root-cause candidate resources.  In this way, the system can
-         create one alarm instead of several.  An example might be a
-         logging system (alarm resource) that fails; the alarm can
-         reference the file system in the 'root-cause-resource'
-         leaf-list.  Note that the intended use is not to also send
-         an alarm with the 'root-cause-resource' as an alarming
-         resource.  The 'root-cause-resource' leaf-list is a hint and
-         should not also generate an alarm for the same problem.";
-    }
-  }
-
-  grouping alarm-state-change-parameters {
-    description
-      "Parameters for an alarm-state change.
-
-       This grouping is used both in the alarm list's status-change
-       list and in the notification representing an alarm-state
-       change.";
-    leaf time {
-      type yang:date-and-time;
-      mandatory true;
-      description
-        "The time the status of the alarm changed.  The value
-         represents the time the real alarm-state change appeared in
-         the resource and not when it was added to the alarm
-         list.  The /alarm-list/alarm/last-changed MUST be set to the
-         same value.";
-    }
-    leaf perceived-severity {
-      type severity-with-clear;
-      mandatory true;
-      description
-        "The severity of the alarm as defined by X.733.  Note that
-         this may not be the original severity since the alarm may
-         have changed severity.";
-      reference
-        "ITU-T Recommendation X.733: Information Technology
-           - Open Systems Interconnection
-           - System Management: Alarm Reporting Function";
-    }
-    leaf alarm-text {
-      type alarm-text;
-      mandatory true;
-      description
-        "A user-friendly text describing the alarm-state change.";
-      reference
-        "ITU-T Recommendation X.733: Information Technology
-           - Open Systems Interconnection
-           - System Management: Alarm Reporting Function";
-    }
-  }
-
-  grouping operator-parameters {
-    description
-      "This grouping defines parameters that can be changed by an
-       operator.";
-    leaf time {
-      type yang:date-and-time;
-      mandatory true;
-      description
-        "Timestamp for operator action on the alarm.";
-    }
-    leaf operator {
-      type string;
-      mandatory true;
-      description
-        "The name of the operator that has acted on this alarm.";
-    }
-    leaf state {
-      type operator-state;
-      mandatory true;
-      description
-        "The operator's view of the alarm state.";
-    }
-    leaf text {
-      type string;
-      description
-        "Additional optional textual information provided by the
-         operator.";
-    }
-  }
-
-  grouping resource-alarm-parameters {
-    description
-      "Alarm parameters that originate from the resource view.";
-    leaf is-cleared {
-      type boolean;
-      mandatory true;
-      description
-        "Indicates the current clearance state of the alarm.  An
-         alarm might toggle from active alarm to cleared alarm and
-         back to active again.";
-    }
-    leaf last-raised {
-      type yang:date-and-time;
-      mandatory true;
-      description
-        "An alarm may change severity level and toggle between
-         active and cleared during its lifetime.  This leaf indicates
-         the last time it was raised ('is-cleared' = 'false').";
-    }
-    leaf last-changed {
-      type yang:date-and-time;
-      mandatory true;
-      description
-        "A timestamp when the 'status-change' or
-         'operator-state-change' list was last changed.";
-    }
-    leaf perceived-severity {
-      type severity;
-      mandatory true;
-      description
-        "The last severity of the alarm.
-
-         If an alarm was raised with severity 'warning' but later
-         changed to 'major', this leaf will show 'major'.";
-    }
-    leaf alarm-text {
-      type alarm-text;
-      mandatory true;
-      description
-        "The last reported alarm text.  This text should contain
-         information for an operator to be able to understand the
-         problem and how to resolve it.";
-    }
-    list status-change {
-      if-feature "alarm-history";
-      key "time";
-      min-elements 1;
-      description
-        "A list of status-change events for this alarm.
-
-         The entry with latest timestamp in this list MUST
-         correspond to the leafs 'is-cleared', 'perceived-severity',
-         and 'alarm-text' for the alarm.
-
-         This list is ordered according to the timestamps of alarm
-         state changes.  The first item corresponds to the latest
-         state change.
-
-         The following state changes create an entry in this
-         list:
-         - changed severity (warning, minor, major, critical)
-         - clearance status; this also updates the 'is-cleared'
-           leaf
-         - alarm-text update";
-      uses alarm-state-change-parameters;
-    }
-  }
-
-  grouping filter-input {
-    description
-      "Grouping to specify a filter construct on alarm information.";
-    leaf alarm-clearance-status {
-      type enumeration {
-        enum any {
-          description
-            "Ignore alarm-clearance status.";
-        }
-        enum cleared {
-          description
-            "Filter cleared alarms.";
-        }
-        enum not-cleared {
-          description
-            "Filter not-cleared alarms.";
-        }
-      }
-      mandatory true;
-      description
-        "The clearance status of the alarm.";
-    }
-    container older-than {
-      presence "Age specification";
-      description
-        "Matches the 'last-status-change' leaf in the alarm.";
-      choice age-spec {
-        description
-          "Filter using date and time age.";
-        case seconds {
-          leaf seconds {
-            type uint16;
-            description
-              "Age expressed in seconds.";
-          }
-        }
-        case minutes {
-          leaf minutes {
-            type uint16;
-            description
-              "Age expressed in minutes.";
-          }
-        }
-        case hours {
-          leaf hours {
-            type uint16;
-            description
-              "Age expressed in hours.";
-          }
-        }
-        case days {
-          leaf days {
-            type uint16;
-            description
-              "Age expressed in days.";
-          }
-        }
-        case weeks {
-          leaf weeks {
-            type uint16;
-            description
-              "Age expressed in weeks.";
-          }
-        }
-      }
-    }
-    container severity {
-      presence "Severity filter";
-      choice sev-spec {
-        description
-          "Filter based on severity level.";
-        leaf below {
-          type severity;
-          description
-            "Severity less than this leaf.";
-        }
-        leaf is {
-          type severity;
-          description
-            "Severity level equal to this leaf.";
-        }
-        leaf above {
-          type severity;
-          description
-            "Severity level higher than this leaf.";
-        }
-      }
-      description
-        "Filter based on severity.";
-    }
-    container operator-state-filter {
-      if-feature "operator-actions";
-      presence "Operator state filter";
-      leaf state {
-        type operator-state;
-        description
-          "Filter on operator state.";
-      }
-      leaf user {
-        type string;
-        description
-          "Filter based on which operator.";
-      }
-      description
-        "Filter based on operator state.";
-    }
-  }
-
-  /*
-   * The /alarms data tree
-   */
-
-  container alarms {
-    description
-      "The top container for this module.";
-    container control {
-      description
-        "Configuration to control the alarm behavior.";
-      leaf max-alarm-status-changes {
-        type union {
-          type uint16;
-          type enumeration {
-            enum infinite {
-              description
-                "The status-change entries are accumulated
-                 infinitely.";
-            }
-          }
-        }
-        default "32";
-        description
-          "The 'status-change' entries are kept in a circular list
-           per alarm.  When this number is exceeded, the oldest
-           status change entry is automatically removed.  If the
-           value is 'infinite', the status-change entries are
-           accumulated infinitely.";
-      }
-      leaf notify-status-changes {
-        type enumeration {
-          enum all-state-changes {
-            description
-              "Send notifications for all status changes.";
-          }
-          enum raise-and-clear {
-            description
-              "Send notifications only for raise, clear, and
-               re-raise.  Notifications for severity-level changes or
-               alarm-text changes are not sent.";
-          }
-          enum severity-level {
-            description
-              "Only send notifications for alarm-state changes
-               crossing the level specified in
-               'notify-severity-level'.  Always send clear
-               notifications.";
-          }
-        }
-        must '. != "severity-level" or ../notify-severity-level' {
-          description
-            "When notify-status-changes is 'severity-level', a value
-             must be given for 'notify-severity-level'.";
-        }
-        default "all-state-changes";
-        description
-          "This leaf controls the notifications sent for alarm status
-           updates.  There are three options:
-
-           1.  Notifications are sent for all updates, severity-level
-               changes, and alarm-text changes.
-
-           2.  Notifications are only sent for alarm raise and clear.
-
-           3.  Notifications are sent for status changes equal to or
-               above the specified severity level.  Clear
-               notifications shall always be sent.  Notifications
-               shall also be sent for state changes that make an
-               alarm less severe than the specified level.
-
-           For example, in option 3, assume that the severity level
-           is set to major and that the alarm has the following state
-           changes:
-
-           [(Time, severity, clear)]:
-           [(T1, major, -), (T2, minor, -), (T3, warning, -),
-            (T4, minor, -), (T5, major, -), (T6, critical, -),
-            (T7, major.  -), (T8, major, clear)]
-
-           In that case, notifications will be sent at times
-           T1, T2, T5, T6, T7, and T8.";
-      }
-      leaf notify-severity-level {
-        when '../notify-status-changes = "severity-level"';
-        type severity;
-        description
-          "Only send notifications for alarm-state changes crossing
-           the specified level.  Always send clear notifications.";
-      }
-      container alarm-shelving {
-        if-feature "alarm-shelving";
-        description
-          "The 'alarm-shelving/shelf' list is used to shelve
-           (block/filter) alarms.  The conditions in the shelf
-           criteria are logically ANDed.  The first matching shelf is
-           used, and an alarm is shelved only for this first match.
-           Matching alarms MUST appear in the
-           /alarms/shelved-alarms/shelved-alarm list, and
-           non-matching /alarms MUST appear in the
-           /alarms/alarm-list/alarm list.  The server does not send
-           any notifications for shelved alarms.
-
-           The server MUST maintain states (e.g., severity
-           changes) for the shelved alarms.
-
-           Alarms that match the criteria shall have an
-           operator state 'shelved'.  When the shelf
-           configuration removes an alarm from the shelf, the server
-           shall add the operator state 'un-shelved'.";
-        list shelf {
-          key "name";
-          ordered-by user;
-          leaf name {
-            type string;
-            description
-              "An arbitrary name for the alarm shelf.";
-          }
-          description
-            "Each entry defines the criteria for shelving alarms.
-             Criteria are ANDed.  If no criteria are specified,
-             all alarms will be shelved.";
-          leaf-list resource {
-            type resource-match;
-            description
-              "Shelve alarms for matching resources.";
-          }
-          list alarm-type {
-            key "alarm-type-id alarm-type-qualifier-match";
-            description
-              "Any alarm matching the combined criteria of
-               'alarm-type-id' and 'alarm-type-qualifier-match'
-               MUST be matched.";
-            leaf alarm-type-id {
-              type alarm-type-id;
-              description
-                "Shelve all alarms that have an 'alarm-type-id' that
-                 is equal to or derived from the given
-                 'alarm-type-id'.";
-            }
-            leaf alarm-type-qualifier-match {
-              type string;
-              description
-                "An XML Schema regular expression that is used to
-                 match an alarm type qualifier.  Shelve all alarms
-                 that match this regular expression for the alarm
-                 type qualifier.";
-              reference
-                "XML Schema Part 2: Datatypes Second Edition,
-                   World Wide Web Consortium Recommendation
-                   REC-xmlschema-2-20041028";
-            }
-          }
-          leaf description {
-            type string;
-            description
-              "An optional textual description of the shelf.  This
-               description should include the reason for shelving
-               these alarms.";
-          }
-        }
-      }
-    }
-    container alarm-inventory {
-      config false;
-      description
-        "The 'alarm-inventory/alarm-type' list contains all possible
-         alarm types for the system.
-
-         If the system knows for which resources a specific alarm
-         type can appear, it is also identified in the inventory.
-         The list also tells if each alarm type has a corresponding
-         clear state.  The inventory shall only contain concrete
-         alarm types.
-
-         The alarm inventory MUST be updated by the system when new
-         alarms can appear.  This can be the case when installing new
-         software modules or inserting new card types.  A
-         notification 'alarm-inventory-changed' is sent when the
-         inventory is changed.";
-      list alarm-type {
-        key "alarm-type-id alarm-type-qualifier";
-        description
-          "An entry in this list defines a possible alarm.";
-        leaf alarm-type-id {
-          type alarm-type-id;
-          description
-            "The statically defined alarm type identifier for this
-             possible alarm.";
-        }
-        leaf alarm-type-qualifier {
-          type alarm-type-qualifier;
-          description
-            "The optionally dynamically defined alarm type identifier
-             for this possible alarm.";
-        }
-        leaf-list resource {
-          type resource-match;
-          description
-            "Optionally, specifies for which resources the alarm type
-             is valid.";
-        }
-        leaf will-clear {
-          type boolean;
-          mandatory true;
-          description
-            "This leaf tells the operator if the alarm will be
-             cleared when the correct corrective action has been
-             taken.  Implementations SHOULD strive for detecting the
-             cleared state for all alarm types.
-
-             If this leaf is 'true', the operator can monitor the
-             alarm until it becomes cleared after the corrective
-             action has been taken.
-
-             If this leaf is 'false', the operator needs to validate
-             that the alarm is no longer active using other
-             mechanisms.  Alarms can lack a corresponding clear due
-             to missing instrumentation or no logical
-             corresponding clear state.";
-        }
-        leaf-list severity-level {
-          type severity;
-          description
-            "This leaf-list indicates the possible severity levels of
-             this alarm type.  Note well that 'clear' is not part of
-             the severity type.  In general, the severity level
-             should be defined by the instrumentation based on the
-             dynamic state, rather than being defined statically by
-             the alarm type, in order to provide a relevant severity
-             level based on dynamic state and context.  However, most
-             alarm types have a defined set of possible severity
-             levels, and this should be provided here.";
-        }
-        leaf description {
-          type string;
-          mandatory true;
-          description
-            "A description of the possible alarm.  It SHOULD include
-             information on possible underlying root causes and
-             corrective actions.";
-        }
-      }
-    }
-    container summary {
-      if-feature "alarm-summary";
-      config false;
-      description
-        "This container gives a summary of the number of alarms.";
-      list alarm-summary {
-        key "severity";
-        description
-          "A global summary of all alarms in the system.  The summary
-           does not include shelved alarms.";
-        leaf severity {
-          type severity;
-          description
-            "Alarm summary for this severity level.";
-        }
-        leaf total {
-          type yang:gauge32;
-          description
-            "Total number of alarms of this severity level.";
-        }
-        leaf not-cleared {
-          type yang:gauge32;
-          description
-            "Total number of alarms of this severity level
-             that are not cleared.";
-        }
-        leaf cleared {
-          type yang:gauge32;
-          description
-            "For this severity level, the number of alarms that are
-             cleared.";
-        }
-        leaf cleared-not-closed {
-          if-feature "operator-actions";
-          type yang:gauge32;
-          description
-            "For this severity level, the number of alarms that are
-             cleared but not closed.";
-        }
-        leaf cleared-closed {
-          if-feature "operator-actions";
-          type yang:gauge32;
-          description
-            "For this severity level, the number of alarms that are
-             cleared and closed.";
-        }
-        leaf not-cleared-closed {
-          if-feature "operator-actions";
-          type yang:gauge32;
-          description
-            "For this severity level, the number of alarms that are
-             not cleared but closed.";
-        }
-        leaf not-cleared-not-closed {
-          if-feature "operator-actions";
-          type yang:gauge32;
-          description
-            "For this severity level, the number of alarms that are
-             not cleared and not closed.";
-        }
-      }
-      leaf shelves-active {
-        if-feature "alarm-shelving";
-        type empty;
-        description
-          "This is a hint to the operator that there are active
-           alarm shelves.  This leaf MUST exist if the
-           /alarms/shelved-alarms/number-of-shelved-alarms is > 0.";
-      }
-    }
-    container alarm-list {
-      config false;
-      description
-        "The alarms in the system.";
-      leaf number-of-alarms {
-        type yang:gauge32;
-        description
-          "This object shows the total number of
-           alarms in the system, i.e., the total number
-           of entries in the alarm list.";
-      }
-      leaf last-changed {
-        type yang:date-and-time;
-        description
-          "A timestamp when the alarm list was last
-           changed.  The value can be used by a manager to
-           initiate an alarm resynchronization procedure.";
-      }
-      list alarm {
-        key "resource alarm-type-id alarm-type-qualifier";
-        description
-          "The list of alarms.  Each entry in the list holds one
-           alarm for a given alarm type and resource.  An alarm can
-           be updated from the underlying resource or by the user.
-           The following leafs are maintained by the resource:
-           'is-cleared', 'last-change', 'perceived-severity', and
-           'alarm-text'.  An operator can change 'operator-state' and
-           'operator-text'.
-
-           Entries appear in the alarm list the first time an alarm
-           becomes active for a given alarm type and resource.
-           Entries do not get deleted when the alarm is cleared.
-           Clear status is represented as a boolean flag.
-
-           Alarm entries are removed, i.e., purged, from the list by
-           an explicit purge action.  For example, purge all alarms
-           that are cleared and in closed operator state that are
-           older than 24 hours.  Purged alarms are removed from the
-           alarm list.  If the alarm resource state changes after a
-           purge, the alarm will reappear in the alarm list.
-
-           Systems may also remove alarms based on locally configured
-           policies; this is out of scope for this module.";
-        uses common-alarm-parameters;
-        leaf time-created {
-          type yang:date-and-time;
-          mandatory true;
-          description
-            "The timestamp when this alarm entry was created.  This
-             represents the first time the alarm appeared; it can
-             also represent that the alarm reappeared after a purge.
-             Further state changes of the same alarm do not change
-             this leaf; these changes will update the 'last-changed'
-             leaf.";
-        }
-        uses resource-alarm-parameters;
-        list operator-state-change {
-          if-feature "operator-actions";
-          key "time";
-          description
-            "This list is used by operators to indicate the state of
-             human intervention on an alarm.  For example, if an
-             operator has seen an alarm, the operator can add a new
-             item to this list indicating that the alarm is
-             acknowledged.";
-          uses operator-parameters;
-        }
-        action set-operator-state {
-          if-feature "operator-actions";
-          description
-            "This is a means for the operator to indicate the level
-             of human intervention on an alarm.";
-          input {
-            leaf state {
-              type writable-operator-state;
-              mandatory true;
-              description
-                "Set this operator state.";
-            }
-            leaf text {
-              type string;
-              description
-                "Additional optional textual information.";
-            }
-          }
-        }
-        notification operator-action {
-          if-feature "operator-actions";
-          description
-            "This notification is used to report that an operator
-             acted upon an alarm.";
-          uses operator-parameters;
-        }
-      }
-      action purge-alarms {
-        description
-          "This operation requests that the server delete entries
-           from the alarm list according to the supplied criteria.
-
-           Typically, this operation is used to delete alarms that
-           are in closed operator state and older than a specified
-           time.
-
-           The number of purged alarms is returned as an output
-           parameter.";
-        input {
-          uses filter-input;
-        }
-        output {
-          leaf purged-alarms {
-            type uint32;
-            description
-              "Number of purged alarms.";
-          }
-        }
-      }
-      action compress-alarms {
-        if-feature "alarm-history";
-        description
-          "This operation requests that the server compress
-           entries in the alarm list by removing all but the
-           latest 'status-change' entry for all matching alarms.
-           Conditions in the input are logically ANDed.  If no
-           input condition is given, all alarms are compressed.";
-        input {
-          leaf resource {
-            type resource-match;
-            description
-              "Compress the alarms matching this resource.";
-          }
-          leaf alarm-type-id {
-            type leafref {
-              path "/alarms/alarm-list/alarm/alarm-type-id";
-              require-instance false;
-            }
-            description
-              "Compress alarms with this 'alarm-type-id'.";
-          }
-          leaf alarm-type-qualifier {
-            type leafref {
-              path "/alarms/alarm-list/alarm/alarm-type-qualifier";
-              require-instance false;
-            }
-            description
-              "Compress the alarms with this
-               'alarm-type-qualifier'.";
-          }
-        }
-        output {
-          leaf compressed-alarms {
-            type uint32;
-            description
-              "Number of compressed alarm entries.";
-          }
-        }
-      }
-    }
-    container shelved-alarms {
-      if-feature "alarm-shelving";
-      config false;
-      description
-        "The shelved alarms.  Alarms appear here if they match the
-         criteria in /alarms/control/alarm-shelving.  This list does
-         not generate any notifications.  The list represents alarms
-         that are considered not relevant by the operator.  Alarms in
-         this list have an 'operator-state' of 'shelved'.  This
-         cannot be changed.";
-      leaf number-of-shelved-alarms {
-        type yang:gauge32;
-        description
-          "This object shows the total number of current
-           alarms, i.e., the total number of entries
-           in the alarm list.";
-      }
-      leaf shelved-alarms-last-changed {
-        type yang:date-and-time;
-        description
-          "A timestamp when the shelved-alarm list was last changed.
-           The value can be used by a manager to initiate an alarm
-           resynchronization procedure.";
-      }
-      list shelved-alarm {
-        key "resource alarm-type-id alarm-type-qualifier";
-        description
-          "The list of shelved alarms.  Shelved alarms can only be
-           updated from the underlying resource; no operator actions
-           are supported.";
-        uses common-alarm-parameters;
-        leaf shelf-name {
-          type leafref {
-            path "/alarms/control/alarm-shelving/shelf/name";
-            require-instance false;
-          }
-          description
-            "The name of the shelf.";
-        }
-        uses resource-alarm-parameters;
-        list operator-state-change {
-          if-feature "operator-actions";
-          key "time";
-          description
-            "This list is used by operators to indicate the state of
-             human intervention on an alarm.  For shelved alarms, the
-             system has set the list item in the list to 'shelved'.";
-          uses operator-parameters;
-        }
-      }
-      action purge-shelved-alarms {
-        description
-          "This operation requests that the server delete entries from
-           the shelved-alarm list according to the supplied criteria.
-           In the shelved-alarm list, it makes sense to delete alarms
-           that are not relevant anymore.
-
-           The number of purged alarms is returned as an output
-           parameter.";
-        input {
-          uses filter-input;
-        }
-        output {
-          leaf purged-alarms {
-            type uint32;
-            description
-              "Number of purged alarms.";
-          }
-        }
-      }
-      action compress-shelved-alarms {
-        if-feature "alarm-history";
-        description
-          "This operation requests that the server compress entries
-           in the shelved-alarm list by removing all but the latest
-           'status-change' entry for all matching shelved alarms.
-           Conditions in the input are logically ANDed.  If no input
-           condition is given, all alarms are compressed.";
-        input {
-          leaf resource {
-            type leafref {
-              path "/alarms/shelved-alarms/shelved-alarm/resource";
-              require-instance false;
-            }
-            description
-              "Compress the alarms with this resource.";
-          }
-          leaf alarm-type-id {
-            type leafref {
-              path "/alarms/shelved-alarms/shelved-alarm"
-                 + "/alarm-type-id";
-              require-instance false;
-            }
-            description
-              "Compress alarms with this 'alarm-type-id'.";
-          }
-          leaf alarm-type-qualifier {
-            type leafref {
-              path "/alarms/shelved-alarms/shelved-alarm"
-                 + "/alarm-type-qualifier";
-              require-instance false;
-            }
-            description
-              "Compress the alarms with this
-               'alarm-type-qualifier'.";
-          }
-        }
-        output {
-          leaf compressed-alarms {
-            type uint32;
-            description
-              "Number of compressed alarm entries.";
-          }
-        }
-      }
-    }
-    list alarm-profile {
-      if-feature "alarm-profile";
-      key "alarm-type-id alarm-type-qualifier-match resource";
-      ordered-by user;
-      description
-        "This list is used to assign further information or
-         configuration for each alarm type.  This module supports a
-         mechanism where the client can override the system-default
-         alarm severity levels.  The 'alarm-profile' is also a useful
-         augmentation point for specific additions to alarm types.";
-      leaf alarm-type-id {
-        type alarm-type-id;
-        description
-          "The alarm type identifier to match.";
-      }
-      leaf alarm-type-qualifier-match {
-        type string;
-        description
-          "An XML Schema regular expression that is used to match the
-           alarm type qualifier.";
-        reference
-          "XML Schema Part 2: Datatypes Second Edition,
-             World Wide Web Consortium Recommendation
-             REC-xmlschema-2-20041028";
-      }
-      leaf resource {
-        type resource-match;
-        description
-          "Specifies which resources to match.";
-      }
-      leaf description {
-        type string;
-        mandatory true;
-        description
-          "A description of the alarm profile.";
-      }
-      container alarm-severity-assignment-profile {
-        if-feature "severity-assignment";
-        description
-          "The client can override the system-default severity
-           level.";
-        reference
-          "ITU-T Recommendation M.3100:
-             Generic network information model
-           ITU-T Recommendation M.3160:
-             Generic, protocol-neutral management information model";
-        leaf-list severity-level {
-          type severity;
-          ordered-by user;
-          description
-            "Specifies the configured severity level(s) for the
-             matching alarm.  If the alarm has several severity
-             levels, the leaf-list shall be given in rising severity
-             order.  The original M3100/M3160 ASAP function only
-             allows for a one-to-one mapping between alarm type and
-             severity, but since YANG module supports stateful
-             alarms, the mapping must allow for several severity
-             levels.
-
-             Assume a high-utilization alarm type with two thresholds
-             with the system-default severity levels of threshold1 =
-             warning and threshold2 = minor.  Setting this leaf-list
-             to (minor, major) will assign the severity levels as
-             threshold1 = minor and threshold2 = major";
-        }
-      }
-    }
-  }
-
-  /*
-   * Notifications
-   */
-
-  notification alarm-notification {
-    description
-      "This notification is used to report a state change for an
-       alarm.  The same notification is used for reporting a newly
-       raised alarm, a cleared alarm, or changing the text and/or
-       severity of an existing alarm.";
-    uses common-alarm-parameters;
-    uses alarm-state-change-parameters;
-  }
-
-  notification alarm-inventory-changed {
-    description
-      "This notification is used to report that the list of possible
-       alarms has changed.  This can happen when, for example, a new
-       software module is installed or a new physical card is
-       inserted.";
-  }
-}
diff --git a/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/ietf-hardware.yang b/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/ietf-hardware.yang
deleted file mode 100644 (file)
index f444e26..0000000
+++ /dev/null
@@ -1,1141 +0,0 @@
-module ietf-hardware {
-yang-version 1.1;
-namespace "urn:ietf:params:xml:ns:yang:ietf-hardware";
-prefix hw;
-
-import ietf-inet-types {
-  prefix inet;
-}
-import ietf-yang-types {
-  prefix yang;
-}
-import iana-hardware {
-  prefix ianahw;
-}
-
-organization
-  "IETF NETMOD (Network Modeling) Working Group";
-
-contact
-  "WG Web:   <https://datatracker.ietf.org/wg/netmod/>
-   WG List:  <mailto:netmod@ietf.org>
-   Editor:   Andy Bierman
-             <mailto:andy@yumaworks.com>
-   Editor:   Martin Bjorklund
-             <mailto:mbj@tail-f.com>
-   Editor:   Jie Dong
-             <mailto:jie.dong@huawei.com>
-   Editor:   Dan Romascanu
-             <mailto:dromasca@gmail.com>";
-
-description
-  "This module contains a collection of YANG definitions for
-   managing hardware.
-   This data model is designed for the Network Management Datastore
-   Architecture (NMDA) defined in RFC 8342.
-   Copyright (c) 2018 IETF Trust and the persons identified as
-   authors of the code.  All rights reserved.
-   Redistribution and use in source and binary forms, with or
-   without modification, is permitted pursuant to, and subject
-   to the license terms contained in, the Simplified BSD License
-   set forth in Section 4.c of the IETF Trust's Legal Provisions
-   Relating to IETF Documents
-   (https://trustee.ietf.org/license-info).
-   This version of this YANG module is part of RFC 8348; see
-   the RFC itself for full legal notices.";
-
-revision 2018-03-13 {
-  description
-    "Initial revision.";
-  reference
-    "RFC 8348: A YANG Data Model for Hardware Management";
-}
-
-/*
- * Features
- */
-
-feature entity-mib {
-  description
-    "This feature indicates that the device implements
-     the ENTITY-MIB.";
-  reference
-    "RFC 6933: Entity MIB (Version 4)";
-}
-
-feature hardware-state {
-  description
-    "Indicates that ENTITY-STATE-MIB objects are supported";
-  reference
-    "RFC 4268: Entity State MIB";
-}
-
-feature hardware-sensor {
-  description
-    "Indicates that ENTITY-SENSOR-MIB objects are supported";
-  reference
-    "RFC 3433: Entity Sensor Management Information Base";
-}
-
-/*
- * Typedefs
- */
-
-typedef admin-state {
-  type enumeration {
-    enum unknown {
-      value 1;
-      description
-        "The resource is unable to report administrative state.";
-    }
-    enum locked {
-      value 2;
-      description
-        "The resource is administratively prohibited from use.";
-    }
-    enum shutting-down {
-      value 3;
-      description
-        "The resource usage is administratively limited to current
-         instances of use.";
-    }
-    enum unlocked {
-      value 4;
-      description
-        "The resource is not administratively prohibited from
-         use.";
-    }
-  }
-  description
-    "Represents the various possible administrative states.";
-  reference
-    "RFC 4268: Entity State MIB - EntityAdminState";
-}
-
-typedef oper-state {
-  type enumeration {
-    enum unknown {
-      value 1;
-      description
-        "The resource is unable to report its operational state.";
-    }
-    enum disabled {
-      value 2;
-      description
-        "The resource is totally inoperable.";
-    }
-    enum enabled {
-      value 3;
-
-      description
-        "The resource is partially or fully operable.";
-    }
-    enum testing {
-      value 4;
-      description
-        "The resource is currently being tested and cannot
-         therefore report whether or not it is operational.";
-    }
-  }
-  description
-    "Represents the possible values of operational states.";
-  reference
-    "RFC 4268: Entity State MIB - EntityOperState";
-}
-
-typedef usage-state {
-  type enumeration {
-    enum unknown {
-      value 1;
-      description
-        "The resource is unable to report usage state.";
-    }
-    enum idle {
-      value 2;
-      description
-        "The resource is servicing no users.";
-    }
-    enum active {
-      value 3;
-      description
-        "The resource is currently in use, and it has sufficient
-         spare capacity to provide for additional users.";
-    }
-    enum busy {
-      value 4;
-      description
-        "The resource is currently in use, but it currently has no
-         spare capacity to provide for additional users.";
-    }
-  }
-  description
-    "Represents the possible values of usage states.";
-  reference
-    "RFC 4268: Entity State MIB -  EntityUsageState";
-}
-
-typedef alarm-state {
-  type bits {
-    bit unknown {
-      position 0;
-      description
-        "The resource is unable to report alarm state.";
-    }
-    bit under-repair {
-      position 1;
-      description
-        "The resource is currently being repaired, which, depending
-         on the implementation, may make the other values in this
-         bit string not meaningful.";
-    }
-    bit critical {
-      position 2;
-      description
-        "One or more critical alarms are active against the
-         resource.";
-    }
-    bit major {
-      position 3;
-      description
-        "One or more major alarms are active against the
-         resource.";
-    }
-    bit minor {
-      position 4;
-      description
-        "One or more minor alarms are active against the
-         resource.";
-    }
-    bit warning {
-      position 5;
-      description
-        "One or more warning alarms are active against the
-         resource.";
-    }
-    bit indeterminate {
-      position 6;
-      description
-        "One or more alarms of whose perceived severity cannot be
-         determined are active against this resource.";
-    }
-  }
-  description
-    "Represents the possible values of alarm states.  An alarm is a
-     persistent indication of an error or warning condition.
-     When no bits of this attribute are set, then no active alarms
-     are known against this component and it is not under repair.";
-  reference
-    "RFC 4268: Entity State MIB - EntityAlarmStatus";
-}
-
-typedef standby-state {
-  type enumeration {
-    enum unknown {
-      value 1;
-      description
-        "The resource is unable to report standby state.";
-    }
-    enum hot-standby {
-      value 2;
-      description
-        "The resource is not providing service, but it will be
-         immediately able to take over the role of the resource to
-         be backed up, without the need for initialization
-         activity, and will contain the same information as the
-         resource to be backed up.";
-    }
-    enum cold-standby {
-      value 3;
-      description
-        "The resource is to back up another resource, but it will
-         not be immediately able to take over the role of a
-         resource to be backed up and will require some
-         initialization activity.";
-    }
-    enum providing-service {
-      value 4;
-      description
-        "The resource is providing service.";
-    }
-  }
-  description
-    "Represents the possible values of standby states.";
-  reference
-    "RFC 4268: Entity State MIB - EntityStandbyStatus";
-}
-
-typedef sensor-value-type {
-  type enumeration {
-    enum other {
-      value 1;
-      description
-        "A measure other than those listed below.";
-    }
-    enum unknown {
-      value 2;
-      description
-        "An unknown measurement or arbitrary, relative numbers";
-    }
-    enum volts-AC {
-      value 3;
-      description
-        "A measure of electric potential (alternating current).";
-    }
-    enum volts-DC {
-      value 4;
-      description
-        "A measure of electric potential (direct current).";
-    }
-    enum amperes {
-      value 5;
-      description
-        "A measure of electric current.";
-    }
-    enum watts {
-      value 6;
-      description
-        "A measure of power.";
-    }
-    enum hertz {
-      value 7;
-      description
-        "A measure of frequency.";
-    }
-    enum celsius {
-      value 8;
-      description
-        "A measure of temperature.";
-    }
-    enum percent-RH {
-      value 9;
-      description
-        "A measure of percent relative humidity.";
-    }
-    enum rpm {
-      value 10;
-      description
-        "A measure of shaft revolutions per minute.";
-    }
-    enum cmm {
-      value 11;
-      description
-        "A measure of cubic meters per minute (airflow).";
-    }
-    enum truth-value {
-      value 12;
-      description
-        "Value is one of 1 (true) or 2 (false)";
-    }
-  }
-  description
-    "A node using this data type represents the sensor measurement
-     data type associated with a physical sensor value.  The actual
-     data units are determined by examining a node of this type
-     together with the associated sensor-value-scale node.
-     A node of this type SHOULD be defined together with nodes of
-     type sensor-value-scale and type sensor-value-precision.
-     These three types are used to identify the semantics of a node
-     of type sensor-value.";
-  reference
-    "RFC 3433: Entity Sensor Management Information Base -
-               EntitySensorDataType";
-}
-
-typedef sensor-value-scale {
-  type enumeration {
-    enum yocto {
-      value 1;
-      description
-        "Data scaling factor of 10^-24.";
-    }
-    enum zepto {
-      value 2;
-      description
-        "Data scaling factor of 10^-21.";
-    }
-    enum atto {
-      value 3;
-      description
-        "Data scaling factor of 10^-18.";
-    }
-    enum femto {
-      value 4;
-      description
-        "Data scaling factor of 10^-15.";
-    }
-    enum pico {
-      value 5;
-      description
-        "Data scaling factor of 10^-12.";
-    }
-    enum nano {
-      value 6;
-      description
-        "Data scaling factor of 10^-9.";
-    }
-    enum micro {
-      value 7;
-      description
-        "Data scaling factor of 10^-6.";
-    }
-    enum milli {
-      value 8;
-      description
-        "Data scaling factor of 10^-3.";
-    }
-    enum units {
-      value 9;
-      description
-        "Data scaling factor of 10^0.";
-    }
-    enum kilo {
-      value 10;
-      description
-        "Data scaling factor of 10^3.";
-    }
-    enum mega {
-      value 11;
-      description
-        "Data scaling factor of 10^6.";
-    }
-    enum giga {
-      value 12;
-      description
-        "Data scaling factor of 10^9.";
-    }
-    enum tera {
-      value 13;
-      description
-        "Data scaling factor of 10^12.";
-    }
-    enum peta {
-      value 14;
-      description
-        "Data scaling factor of 10^15.";
-    }
-    enum exa {
-      value 15;
-      description
-        "Data scaling factor of 10^18.";
-    }
-    enum zetta {
-      value 16;
-      description
-        "Data scaling factor of 10^21.";
-    }
-    enum yotta {
-      value 17;
-      description
-        "Data scaling factor of 10^24.";
-    }
-  }
-  description
-    "A node using this data type represents a data scaling factor,
-     represented with an International System of Units (SI) prefix.
-     The actual data units are determined by examining a node of
-     this type together with the associated sensor-value-type.
-     A node of this type SHOULD be defined together with nodes of
-     type sensor-value-type and type sensor-value-precision.
-     Together, associated nodes of these three types are used to
-     identify the semantics of a node of type sensor-value.";
-  reference
-    "RFC 3433: Entity Sensor Management Information Base -
-               EntitySensorDataScale";
-}
-
-typedef sensor-value-precision {
-  type int8 {
-    range "-8 .. 9";
-  }
-  description
-    "A node using this data type represents a sensor value
-     precision range.
-     A node of this type SHOULD be defined together with nodes of
-     type sensor-value-type and type sensor-value-scale.  Together,
-     associated nodes of these three types are used to identify the
-     semantics of a node of type sensor-value.
-     If a node of this type contains a value in the range 1 to 9,
-     it represents the number of decimal places in the fractional
-     part of an associated sensor-value fixed-point number.
-     If a node of this type contains a value in the range -8 to -1,
-     it represents the number of accurate digits in the associated
-     sensor-value fixed-point number.
-     The value zero indicates the associated sensor-value node is
-     not a fixed-point number.
-     Server implementers must choose a value for the associated
-     sensor-value-precision node so that the precision and accuracy
-     of the associated sensor-value node is correctly indicated.
-     For example, a component representing a temperature sensor
-     that can measure 0 to 100 degrees C in 0.1 degree
-     increments, +/- 0.05 degrees, would have a
-     sensor-value-precision value of '1', a sensor-value-scale
-     value of 'units', and a sensor-value ranging from '0' to
-     '1000'.  The sensor-value would be interpreted as
-     'degrees C * 10'.";
-  reference
-    "RFC 3433: Entity Sensor Management Information Base -
-               EntitySensorPrecision";
-}
-
-typedef sensor-value {
-  type int32 {
-    range "-1000000000 .. 1000000000";
-  }
-  description
-   "A node using this data type represents a sensor value.
-    A node of this type SHOULD be defined together with nodes of
-    type sensor-value-type, type sensor-value-scale, and
-    type sensor-value-precision.  Together, associated nodes of
-    those three types are used to identify the semantics of a node
-    of this data type.
-    The semantics of a node using this data type are determined by
-    the value of the associated sensor-value-type node.
-    If the associated sensor-value-type node is equal to 'voltsAC',
-    'voltsDC', 'amperes', 'watts', 'hertz', 'celsius', or 'cmm',
-    then a node of this type MUST contain a fixed-point number
-    ranging from -999,999,999 to +999,999,999.  The value
-    -1000000000 indicates an underflow error.  The value
-    +1000000000 indicates an overflow error.  The
-    sensor-value-precision indicates how many fractional digits
-    are represented in the associated sensor-value node.
-    If the associated sensor-value-type node is equal to
-    'percentRH', then a node of this type MUST contain a number
-    ranging from 0 to 100.
-    If the associated sensor-value-type node is equal to 'rpm',
-    then a node of this type MUST contain a number ranging from
-    -999,999,999 to +999,999,999.
-    If the associated sensor-value-type node is equal to
-    'truth-value', then a node of this type MUST contain either the
-    value 1 (true) or the value 2 (false).
-    If the associated sensor-value-type node is equal to 'other' or
-    'unknown', then a node of this type MUST contain a number
-    ranging from -1000000000 to 1000000000.";
-  reference
-    "RFC 3433: Entity Sensor Management Information Base -
-               EntitySensorValue";
-}
-
-typedef sensor-status {
-  type enumeration {
-    enum ok {
-      value 1;
-      description
-        "Indicates that the server can obtain the sensor value.";
-    }
-    enum unavailable {
-      value 2;
-      description
-        "Indicates that the server presently cannot obtain the
-         sensor value.";
-    }
-    enum nonoperational {
-      value 3;
-      description
-        "Indicates that the server believes the sensor is broken.
-         The sensor could have a hard failure (disconnected wire)
-         or a soft failure such as out-of-range, jittery, or wildly
-         fluctuating readings.";
-    }
-  }
-  description
-    "A node using this data type represents the operational status
-     of a physical sensor.";
-  reference
-    "RFC 3433: Entity Sensor Management Information Base -
-               EntitySensorStatus";
-}
-
-/*
- * Data nodes
- */
-
-container hardware {
-  description
-    "Data nodes representing components.
-     If the server supports configuration of hardware components,
-     then this data model is instantiated in the configuration
-     datastores supported by the server.  The leaf-list 'datastore'
-     for the module 'ietf-hardware' in the YANG library provides
-     this information.";
-
-  leaf last-change {
-    type yang:date-and-time;
-    config false;
-    description
-      "The time the '/hardware/component' list changed in the
-       operational state.";
-  }
-
-  list component {
-    key name;
-    description
-      "List of components.
-       When the server detects a new hardware component, it
-       initializes a list entry in the operational state.
-       If the server does not support configuration of hardware
-       components, list entries in the operational state are
-       initialized with values for all nodes as detected by the
-       implementation.
-       Otherwise, this procedure is followed:
-         1. If there is an entry in the '/hardware/component' list
-            in the intended configuration with values for the nodes
-            'class', 'parent', and 'parent-rel-pos' that are equal
-            to the detected values, then the list entry in the
-            operational state is initialized with the configured
-            values, including the 'name'.
-         2. Otherwise (i.e., there is no matching configuration
-            entry), the list entry in the operational state is
-            initialized with values for all nodes as detected by
-            the implementation.
-       If the '/hardware/component' list in the intended
-       configuration is modified, then the system MUST behave as if
-       it re-initializes itself and follow the procedure in (1).";
-    reference
-      "RFC 6933: Entity MIB (Version 4) - entPhysicalEntry";
-
-    leaf name {
-      type string;
-      description
-        "The name assigned to this component.
-         This name is not required to be the same as
-         entPhysicalName.";
-    }
-
-    leaf class {
-      type identityref {
-        base ianahw:hardware-class;
-      }
-      mandatory true;
-      description
-        "An indication of the general hardware type of the
-         component.";
-      reference
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalClass";
-    }
-
-    leaf physical-index {
-      if-feature entity-mib;
-      type int32 {
-        range "1..2147483647";
-      }
-      config false;
-      description
-        "The entPhysicalIndex for the entPhysicalEntry represented
-         by this list entry.";
-      reference
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalIndex";
-    }
-
-    leaf description {
-      type string;
-      config false;
-      description
-        "A textual description of the component.  This node should
-         contain a string that identifies the manufacturer's name
-         for the component and should be set to a distinct value
-         for each version or model of the component.";
-      reference
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalDescr";
-    }
-
-    leaf parent {
-      type leafref {
-        path "../../component/name";
-        require-instance false;
-      }
-      description
-        "The name of the component that physically contains this
-         component.
-         If this leaf is not instantiated, it indicates that this
-         component is not contained in any other component.
-         In the event that a physical component is contained by
-         more than one physical component (e.g., double-wide
-         modules), this node contains the name of one of these
-         components.  An implementation MUST use the same name
-         every time this node is instantiated.";
-      reference
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalContainedIn";
-    }
-
-    leaf parent-rel-pos {
-      type int32 {
-        range "0 .. 2147483647";
-      }
-      description
-        "An indication of the relative position of this child
-         component among all its sibling components.  Sibling
-         components are defined as components that:
-           o share the same value of the 'parent' node and
-           o share a common base identity for the 'class' node.
-         Note that the last rule gives implementations flexibility
-         in how components are numbered.  For example, some
-         implementations might have a single number series for all
-         components derived from 'ianahw:port', while some others
-         might have different number series for different
-         components with identities derived from 'ianahw:port' (for
-         example, one for registered jack 45 (RJ45) and one for
-         small form-factor pluggable (SFP)).";
-
-      reference
-        "RFC 6933: Entity MIB (Version 4) -
-                   entPhysicalParentRelPos";
-    }
-
-    leaf-list contains-child {
-      type leafref {
-        path "../../component/name";
-      }
-      config false;
-      description
-        "The name of the contained component.";
-      reference
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalChildIndex";
-    }
-
-    leaf hardware-rev {
-      type string;
-      config false;
-      description
-        "The vendor-specific hardware revision string for the
-         component.  The preferred value is the hardware revision
-         identifier actually printed on the component itself (if
-         present).";
-      reference
-        "RFC 6933: Entity MIB (Version 4) -
-                   entPhysicalHardwareRev";
-    }
-
-    leaf firmware-rev {
-      type string;
-      config false;
-      description
-        "The vendor-specific firmware revision string for the
-         component.";
-      reference
-        "RFC 6933: Entity MIB (Version 4) -
-                   entPhysicalFirmwareRev";
-    }
-
-    leaf software-rev {
-      type string;
-      config false;
-
-      description
-        "The vendor-specific software revision string for the
-         component.";
-      reference
-        "RFC 6933: Entity MIB (Version 4) -
-                   entPhysicalSoftwareRev";
-    }
-
-    leaf serial-num {
-      type string;
-      config false;
-      description
-        "The vendor-specific serial number string for the
-         component.  The preferred value is the serial number
-         string actually printed on the component itself (if
-         present).";
-      reference
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalSerialNum";
-    }
-
-    leaf mfg-name {
-      type string;
-      config false;
-      description
-        "The name of the manufacturer of this physical component.
-         The preferred value is the manufacturer name string
-         actually printed on the component itself (if present).
-         Note that comparisons between instances of the
-         'model-name', 'firmware-rev', 'software-rev', and
-         'serial-num' nodes are only meaningful amongst components
-         with the same value of 'mfg-name'.
-         If the manufacturer name string associated with the
-         physical component is unknown to the server, then this
-         node is not instantiated.";
-      reference
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalMfgName";
-    }
-
-    leaf model-name {
-      type string;
-      config false;
-      description
-        "The vendor-specific model name identifier string
-         associated with this physical component.  The preferred
-         value is the customer-visible part number, which may be
-         printed on the component itself.
-         If the model name string associated with the physical
-         component is unknown to the server, then this node is not
-         instantiated.";
-      reference
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalModelName";
-    }
-
-    leaf alias {
-      type string;
-      description
-        "An 'alias' name for the component, as specified by a
-         network manager, that provides a non-volatile 'handle' for
-         the component.
-         If no configured value exists, the server MAY set the
-         value of this node to a locally unique value in the
-         operational state.
-         A server implementation MAY map this leaf to the
-         entPhysicalAlias MIB object.  Such an implementation needs
-         to use some mechanism to handle the differences in size
-         and characters allowed between this leaf and
-         entPhysicalAlias.  The definition of such a mechanism is
-         outside the scope of this document.";
-      reference
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalAlias";
-    }
-
-    leaf asset-id {
-      type string;
-      description
-        "This node is a user-assigned asset tracking identifier for
-         the component.
-         A server implementation MAY map this leaf to the
-         entPhysicalAssetID MIB object.  Such an implementation
-         needs to use some mechanism to handle the differences in
-         size and characters allowed between this leaf and
-         entPhysicalAssetID.  The definition of such a mechanism is
-         outside the scope of this document.";
-      reference
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalAssetID";
-    }
-
-    leaf is-fru {
-      type boolean;
-      config false;
-
-      description
-        "This node indicates whether or not this component is
-         considered a 'field-replaceable unit' by the vendor.  If
-         this node contains the value 'true', then this component
-         identifies a field-replaceable unit.  For all components
-         that are permanently contained within a field-replaceable
-         unit, the value 'false' should be returned for this
-         node.";
-      reference
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalIsFRU";
-    }
-
-    leaf mfg-date {
-      type yang:date-and-time;
-      config false;
-      description
-        "The date of manufacturing of the managed component.";
-      reference
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalMfgDate";
-    }
-
-    leaf-list uri {
-      type inet:uri;
-      description
-        "This node contains identification information about the
-         component.";
-      reference
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalUris";
-    }
-
-    leaf uuid {
-      type yang:uuid;
-      config false;
-      description
-        "A Universally Unique Identifier of the component.";
-      reference
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalUUID";
-    }
-
-    container state {
-      if-feature hardware-state;
-      description
-        "State-related nodes";
-      reference
-        "RFC 4268: Entity State MIB";
-
-      leaf state-last-changed {
-        type yang:date-and-time;
-        config false;
-        description
-          "The date and time when the value of any of the
-           admin-state, oper-state, usage-state, alarm-state, or
-           standby-state changed for this component.
-           If there has been no change since the last
-           re-initialization of the local system, this node
-           contains the date and time of local system
-           initialization.  If there has been no change since the
-           component was added to the local system, this node
-           contains the date and time of the insertion.";
-        reference
-          "RFC 4268: Entity State MIB - entStateLastChanged";
-      }
-
-      leaf admin-state {
-        type admin-state;
-        description
-          "The administrative state for this component.
-           This node refers to a component's administrative
-           permission to service both other components within its
-           containment hierarchy as well other users of its
-           services defined by means outside the scope of this
-           module.
-           Some components exhibit only a subset of the remaining
-           administrative state values.  Some components cannot be
-           locked; hence, this node exhibits only the 'unlocked'
-           state.  Other components cannot be shut down gracefully;
-           hence, this node does not exhibit the 'shutting-down'
-           state.";
-        reference
-          "RFC 4268: Entity State MIB - entStateAdmin";
-      }
-
-      leaf oper-state {
-        type oper-state;
-        config false;
-        description
-          "The operational state for this component.
-           Note that this node does not follow the administrative
-           state.  An administrative state of 'down' does not
-           predict an operational state of 'disabled'.
-           Note that some implementations may not be able to
-           accurately report oper-state while the admin-state node
-           has a value other than 'unlocked'.  In these cases, this
-           node MUST have a value of 'unknown'.";
-        reference
-          "RFC 4268: Entity State MIB - entStateOper";
-      }
-
-      leaf usage-state {
-        type usage-state;
-        config false;
-        description
-          "The usage state for this component.
-           This node refers to a component's ability to service
-           more components in a containment hierarchy.
-           Some components will exhibit only a subset of the usage
-           state values.  Components that are unable to ever
-           service any components within a containment hierarchy
-           will always have a usage state of 'busy'.  In some
-           cases, a component will be able to support only one
-           other component within its containment hierarchy and
-           will therefore only exhibit values of 'idle' and
-           'busy'.";
-        reference
-          "RFC 4268: Entity State MIB - entStateUsage";
-      }
-
-      leaf alarm-state {
-        type alarm-state;
-        config false;
-        description
-          "The alarm state for this component.  It does not
-           include the alarms raised on child components within its
-           containment hierarchy.";
-        reference
-          "RFC 4268: Entity State MIB - entStateAlarm";
-      }
-
-      leaf standby-state {
-        type standby-state;
-        config false;
-        description
-          "The standby state for this component.
-           Some components will exhibit only a subset of the
-           remaining standby state values.  If this component
-           cannot operate in a standby role, the value of this node
-           will always be 'providing-service'.";
-        reference
-          "RFC 4268: Entity State MIB - entStateStandby";
-      }
-    }
-
-    container sensor-data {
-      when 'derived-from-or-self(../class,
-                                 "ianahw:sensor")' {
-        description
-          "Sensor data nodes present for any component of type
-           'sensor'";
-      }
-      if-feature hardware-sensor;
-      config false;
-
-      description
-        "Sensor-related nodes.";
-      reference
-        "RFC 3433: Entity Sensor Management Information Base";
-
-      leaf value {
-        type sensor-value;
-        description
-          "The most recent measurement obtained by the server
-           for this sensor.
-           A client that periodically fetches this node should also
-           fetch the nodes 'value-type', 'value-scale', and
-           'value-precision', since they may change when the value
-           is changed.";
-        reference
-          "RFC 3433: Entity Sensor Management Information Base -
-                     entPhySensorValue";
-      }
-
-      leaf value-type {
-        type sensor-value-type;
-        description
-          "The type of data units associated with the
-           sensor value";
-        reference
-          "RFC 3433: Entity Sensor Management Information Base -
-                     entPhySensorType";
-      }
-      leaf value-scale {
-        type sensor-value-scale;
-        description
-          "The (power of 10) scaling factor associated
-           with the sensor value";
-        reference
-          "RFC 3433: Entity Sensor Management Information Base -
-                     entPhySensorScale";
-      }
-
-      leaf value-precision {
-        type sensor-value-precision;
-        description
-          "The number of decimal places of precision
-           associated with the sensor value";
-        reference
-          "RFC 3433: Entity Sensor Management Information Base -
-                     entPhySensorPrecision";
-      }
-
-      leaf oper-status {
-        type sensor-status;
-        description
-          "The operational status of the sensor.";
-        reference
-          "RFC 3433: Entity Sensor Management Information Base -
-                     entPhySensorOperStatus";
-      }
-
-      leaf units-display {
-        type string;
-        description
-          "A textual description of the data units that should be
-           used in the display of the sensor value.";
-        reference
-          "RFC 3433: Entity Sensor Management Information Base -
-                     entPhySensorUnitsDisplay";
-      }
-
-      leaf value-timestamp {
-        type yang:date-and-time;
-        description
-          "The time the status and/or value of this sensor was last
-           obtained by the server.";
-        reference
-          "RFC 3433: Entity Sensor Management Information Base -
-                     entPhySensorValueTimeStamp";
-      }
-      leaf value-update-rate {
-        type uint32;
-        units "milliseconds";
-        description
-          "An indication of the frequency that the server updates
-           the associated 'value' node, represented in
-           milliseconds.  The value zero indicates:
-            - the sensor value is updated on demand (e.g.,
-              when polled by the server for a get-request),
-            - the sensor value is updated when the sensor
-              value changes (event-driven), or
-            - the server does not know the update rate.";
-        reference
-          "RFC 3433: Entity Sensor Management Information Base -
-                     entPhySensorValueUpdateRate";
-      }
-    }
-  }
-}
-
-/*
- * Notifications
- */
-
-notification hardware-state-change {
-  description
-    "A hardware-state-change notification is generated when the
-     value of /hardware/last-change changes in the operational
-     state.";
-  reference
-    "RFC 6933: Entity MIB (Version 4) - entConfigChange";
-}
-
-notification hardware-state-oper-enabled {
-  if-feature hardware-state;
-  description
-    "A hardware-state-oper-enabled notification signifies that a
-     component has transitioned into the 'enabled' state.";
-
-  leaf name {
-    type leafref {
-      path "/hardware/component/name";
-    }
-
-    description
-      "The name of the component that has transitioned into the
-       'enabled' state.";
-  }
-  leaf admin-state {
-    type leafref {
-      path "/hardware/component/state/admin-state";
-    }
-    description
-      "The administrative state for the component.";
-  }
-  leaf alarm-state {
-    type leafref {
-      path "/hardware/component/state/alarm-state";
-    }
-    description
-      "The alarm state for the component.";
-  }
-  reference
-    "RFC 4268: Entity State MIB - entStateOperEnabled";
-}
-
-notification hardware-state-oper-disabled {
-  if-feature hardware-state;
-  description
-    "A hardware-state-oper-disabled notification signifies that a
-     component has transitioned into the 'disabled' state.";
-
-  leaf name {
-    type leafref {
-      path "/hardware/component/name";
-    }
-    description
-      "The name of the component that has transitioned into the
-       'disabled' state.";
-  }
-  leaf admin-state {
-    type leafref {
-      path "/hardware/component/state/admin-state";
-    }
-    description
-      "The administrative state for the component.";
-  }
-  leaf alarm-state {
-    type leafref {
-      path "/hardware/component/state/alarm-state";
-    }
-
-    description
-      "The alarm state for the component.";
-  }
-  reference
-    "RFC 4268: Entity State MIB - entStateOperDisabled";
-}
-
-}
diff --git a/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/ietf-interfaces.yang b/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/ietf-interfaces.yang
deleted file mode 100644 (file)
index 8dae9d3..0000000
+++ /dev/null
@@ -1,1073 +0,0 @@
-module ietf-interfaces {
-  yang-version 1.1;
-  namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces";
-  prefix if;
-
-  import ietf-yang-types {
-    prefix yang;
-  }
-
-  organization
-    "IETF NETMOD (Network Modeling) Working Group";
-
-  contact
-    "WG Web:   <https://datatracker.ietf.org/wg/netmod/>
-     WG List:  <mailto:netmod@ietf.org>
-     Editor:   Martin Bjorklund
-               <mailto:mbj@tail-f.com>";
-
-  description
-    "This module contains a collection of YANG definitions for
-     managing network interfaces.
-     Copyright (c) 2018 IETF Trust and the persons identified as
-     authors of the code.  All rights reserved.
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD License
-     set forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (https://trustee.ietf.org/license-info).
-     This version of this YANG module is part of RFC 8343; see
-     the RFC itself for full legal notices.";
-
-  revision 2018-02-20 {
-    description
-      "Updated to support NMDA.";
-    reference
-      "RFC 8343: A YANG Data Model for Interface Management";
-  }
-
-  revision 2014-05-08 {
-    description
-      "Initial revision.";
-    reference
-      "RFC 7223: A YANG Data Model for Interface Management";
-  }
-
-  /*
-   * Typedefs
-   */
-
-  typedef interface-ref {
-    type leafref {
-      path "/if:interfaces/if:interface/if:name";
-    }
-    description
-      "This type is used by data models that need to reference
-       interfaces.";
-  }
-
-  /*
-   * Identities
-   */
-
-  identity interface-type {
-    description
-      "Base identity from which specific interface types are
-       derived.";
-  }
-
-  /*
-   * Features
-   */
-
-  feature arbitrary-names {
-    description
-      "This feature indicates that the device allows user-controlled
-       interfaces to be named arbitrarily.";
-  }
-  feature pre-provisioning {
-    description
-      "This feature indicates that the device supports
-       pre-provisioning of interface configuration, i.e., it is
-       possible to configure an interface whose physical interface
-       hardware is not present on the device.";
-  }
-  feature if-mib {
-    description
-      "This feature indicates that the device implements
-       the IF-MIB.";
-    reference
-      "RFC 2863: The Interfaces Group MIB";
-  }
-
-  /*
-   * Data nodes
-   */
-
-  container interfaces {
-    description
-      "Interface parameters.";
-
-    list interface {
-      key "name";
-
-      description
-        "The list of interfaces on the device.
-         The status of an interface is available in this list in the
-         operational state.  If the configuration of a
-         system-controlled interface cannot be used by the system
-         (e.g., the interface hardware present does not match the
-         interface type), then the configuration is not applied to
-         the system-controlled interface shown in the operational
-         state.  If the configuration of a user-controlled interface
-         cannot be used by the system, the configured interface is
-         not instantiated in the operational state.
-         System-controlled interfaces created by the system are
-         always present in this list in the operational state,
-         whether or not they are configured.";
-
-     leaf name {
-        type string;
-        description
-          "The name of the interface.
-           A device MAY restrict the allowed values for this leaf,
-           possibly depending on the type of the interface.
-           For system-controlled interfaces, this leaf is the
-           device-specific name of the interface.
-           If a client tries to create configuration for a
-           system-controlled interface that is not present in the
-           operational state, the server MAY reject the request if
-           the implementation does not support pre-provisioning of
-           interfaces or if the name refers to an interface that can
-           never exist in the system.  A Network Configuration
-           Protocol (NETCONF) server MUST reply with an rpc-error
-           with the error-tag 'invalid-value' in this case.
-           If the device supports pre-provisioning of interface
-           configuration, the 'pre-provisioning' feature is
-           advertised.
-           If the device allows arbitrarily named user-controlled
-           interfaces, the 'arbitrary-names' feature is advertised.
-           When a configured user-controlled interface is created by
-           the system, it is instantiated with the same name in the
-           operational state.
-           A server implementation MAY map this leaf to the ifName
-           MIB object.  Such an implementation needs to use some
-           mechanism to handle the differences in size and characters
-           allowed between this leaf and ifName.  The definition of
-           such a mechanism is outside the scope of this document.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifName";
-      }
-
-      leaf description {
-        type string;
-        description
-          "A textual description of the interface.
-           A server implementation MAY map this leaf to the ifAlias
-           MIB object.  Such an implementation needs to use some
-           mechanism to handle the differences in size and characters
-           allowed between this leaf and ifAlias.  The definition of
-           such a mechanism is outside the scope of this document.
-           Since ifAlias is defined to be stored in non-volatile
-           storage, the MIB implementation MUST map ifAlias to the
-           value of 'description' in the persistently stored
-           configuration.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifAlias";
-      }
-
-      leaf type {
-        type identityref {
-          base interface-type;
-        }
-        mandatory true;
-        description
-          "The type of the interface.
-           When an interface entry is created, a server MAY
-           initialize the type leaf with a valid value, e.g., if it
-           is possible to derive the type from the name of the
-           interface.
-           If a client tries to set the type of an interface to a
-           value that can never be used by the system, e.g., if the
-           type is not supported or if the type does not match the
-           name of the interface, the server MUST reject the request.
-           A NETCONF server MUST reply with an rpc-error with the
-           error-tag 'invalid-value' in this case.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifType";
-      }
-
-      leaf enabled {
-        type boolean;
-        default "true";
-        description
-          "This leaf contains the configured, desired state of the
-           interface.
-           Systems that implement the IF-MIB use the value of this
-           leaf in the intended configuration to set
-           IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
-           has been initialized, as described in RFC 2863.
-           Changes in this leaf in the intended configuration are
-           reflected in ifAdminStatus.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-      }
-
-      leaf link-up-down-trap-enable {
-        if-feature if-mib;
-        type enumeration {
-          enum enabled {
-            value 1;
-            description
-              "The device will generate linkUp/linkDown SNMP
-               notifications for this interface.";
-          }
-          enum disabled {
-            value 2;
-            description
-              "The device will not generate linkUp/linkDown SNMP
-               notifications for this interface.";
-          }
-        }
-        description
-          "Controls whether linkUp/linkDown SNMP notifications
-           should be generated for this interface.
-           If this node is not configured, the value 'enabled' is
-           operationally used by the server for interfaces that do
-           not operate on top of any other interface (i.e., there are
-           no 'lower-layer-if' entries), and 'disabled' otherwise.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifLinkUpDownTrapEnable";
-      }
-
-      leaf admin-status {
-        if-feature if-mib;
-        type enumeration {
-          enum up {
-            value 1;
-            description
-              "Ready to pass packets.";
-          }
-          enum down {
-            value 2;
-            description
-              "Not ready to pass packets and not in some test mode.";
-          }
-          enum testing {
-            value 3;
-            description
-              "In some test mode.";
-          }
-        }
-        config false;
-        mandatory true;
-        description
-          "The desired state of the interface.
-           This leaf has the same read semantics as ifAdminStatus.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-      }
-
-      leaf oper-status {
-        type enumeration {
-          enum up {
-            value 1;
-            description
-              "Ready to pass packets.";
-          }
-          enum down {
-            value 2;
-
-            description
-              "The interface does not pass any packets.";
-          }
-          enum testing {
-            value 3;
-            description
-              "In some test mode.  No operational packets can
-               be passed.";
-          }
-          enum unknown {
-            value 4;
-            description
-              "Status cannot be determined for some reason.";
-          }
-          enum dormant {
-            value 5;
-            description
-              "Waiting for some external event.";
-          }
-          enum not-present {
-            value 6;
-            description
-              "Some component (typically hardware) is missing.";
-          }
-          enum lower-layer-down {
-            value 7;
-            description
-              "Down due to state of lower-layer interface(s).";
-          }
-        }
-        config false;
-        mandatory true;
-        description
-          "The current operational state of the interface.
-           This leaf has the same semantics as ifOperStatus.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifOperStatus";
-      }
-
-      leaf last-change {
-        type yang:date-and-time;
-        config false;
-        description
-          "The time the interface entered its current operational
-           state.  If the current state was entered prior to the
-           last re-initialization of the local network management
-           subsystem, then this node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifLastChange";
-      }
-
-      leaf if-index {
-        if-feature if-mib;
-        type int32 {
-          range "1..2147483647";
-        }
-        config false;
-        mandatory true;
-        description
-          "The ifIndex value for the ifEntry represented by this
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifIndex";
-      }
-
-      leaf phys-address {
-        type yang:phys-address;
-        config false;
-        description
-          "The interface's address at its protocol sub-layer.  For
-           example, for an 802.x interface, this object normally
-           contains a Media Access Control (MAC) address.  The
-           interface's media-specific modules must define the bit
-           and byte ordering and the format of the value of this
-           object.  For interfaces that do not have such an address
-           (e.g., a serial line), this node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifPhysAddress";
-      }
-
-      leaf-list higher-layer-if {
-        type interface-ref;
-        config false;
-        description
-          "A list of references to interfaces layered on top of this
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifStackTable";
-      }
-
-      leaf-list lower-layer-if {
-        type interface-ref;
-        config false;
-
-        description
-          "A list of references to interfaces layered underneath this
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifStackTable";
-      }
-
-      leaf speed {
-        type yang:gauge64;
-        units "bits/second";
-        config false;
-        description
-            "An estimate of the interface's current bandwidth in bits
-             per second.  For interfaces that do not vary in
-             bandwidth or for those where no accurate estimation can
-             be made, this node should contain the nominal bandwidth.
-             For interfaces that have no concept of bandwidth, this
-             node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifSpeed, ifHighSpeed";
-      }
-
-      container statistics {
-        config false;
-        description
-          "A collection of interface-related statistics objects.";
-
-        leaf discontinuity-time {
-          type yang:date-and-time;
-          mandatory true;
-          description
-            "The time on the most recent occasion at which any one or
-             more of this interface's counters suffered a
-             discontinuity.  If no such discontinuities have occurred
-             since the last re-initialization of the local management
-             subsystem, then this node contains the time the local
-             management subsystem re-initialized itself.";
-        }
-
-        leaf in-octets {
-          type yang:counter64;
-          description
-            "The total number of octets received on the interface,
-             including framing characters.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
-        }
-
-        leaf in-unicast-pkts {
-          type yang:counter64;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, that were not addressed to a
-             multicast or broadcast address at this sub-layer.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
-        }
-
-        leaf in-broadcast-pkts {
-          type yang:counter64;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, that were addressed to a broadcast
-             address at this sub-layer.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCInBroadcastPkts";
-        }
-
-        leaf in-multicast-pkts {
-          type yang:counter64;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, that were addressed to a multicast
-             address at this sub-layer.  For a MAC-layer protocol,
-             this includes both Group and Functional addresses.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCInMulticastPkts";
-        }
-
-        leaf in-discards {
-          type yang:counter32;
-          description
-            "The number of inbound packets that were chosen to be
-             discarded even though no errors had been detected to
-             prevent their being deliverable to a higher-layer
-             protocol.  One possible reason for discarding such a
-             packet could be to free up buffer space.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInDiscards";
-        }
-
-        leaf in-errors {
-          type yang:counter32;
-          description
-            "For packet-oriented interfaces, the number of inbound
-             packets that contained errors preventing them from being
-             deliverable to a higher-layer protocol.  For character-
-             oriented or fixed-length interfaces, the number of
-             inbound transmission units that contained errors
-             preventing them from being deliverable to a higher-layer
-             protocol.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInErrors";
-        }
-
-        leaf in-unknown-protos {
-          type yang:counter32;
-
-          description
-            "For packet-oriented interfaces, the number of packets
-             received via the interface that were discarded because
-             of an unknown or unsupported protocol.  For
-             character-oriented or fixed-length interfaces that
-             support protocol multiplexing, the number of
-             transmission units received via the interface that were
-             discarded because of an unknown or unsupported protocol.
-             For any interface that does not support protocol
-             multiplexing, this counter is not present.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
-        }
-
-        leaf out-octets {
-          type yang:counter64;
-          description
-            "The total number of octets transmitted out of the
-             interface, including framing characters.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
-        }
-
-        leaf out-unicast-pkts {
-          type yang:counter64;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted and that were not addressed
-             to a multicast or broadcast address at this sub-layer,
-             including those that were discarded or not sent.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
-        }
-
-        leaf out-broadcast-pkts {
-          type yang:counter64;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted and that were addressed to a
-             broadcast address at this sub-layer, including those
-             that were discarded or not sent.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCOutBroadcastPkts";
-        }
-
-        leaf out-multicast-pkts {
-          type yang:counter64;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted and that were addressed to a
-             multicast address at this sub-layer, including those
-             that were discarded or not sent.  For a MAC-layer
-             protocol, this includes both Group and Functional
-             addresses.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCOutMulticastPkts";
-        }
-
-        leaf out-discards {
-          type yang:counter32;
-          description
-            "The number of outbound packets that were chosen to be
-             discarded even though no errors had been detected to
-             prevent their being transmitted.  One possible reason
-             for discarding such a packet could be to free up buffer
-             space.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
-        }
-
-        leaf out-errors {
-          type yang:counter32;
-          description
-            "For packet-oriented interfaces, the number of outbound
-             packets that could not be transmitted because of errors.
-             For character-oriented or fixed-length interfaces, the
-             number of outbound transmission units that could not be
-             transmitted because of errors.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifOutErrors";
-        }
-      }
-
-    }
-  }
-
-  /*
-   * Legacy typedefs
-   */
-
-  typedef interface-state-ref {
-    type leafref {
-      path "/if:interfaces-state/if:interface/if:name";
-    }
-    status deprecated;
-    description
-      "This type is used by data models that need to reference
-       the operationally present interfaces.";
-  }
-
-  /*
-   * Legacy operational state data nodes
-   */
-
-  container interfaces-state {
-    config false;
-    status deprecated;
-    description
-      "Data nodes for the operational state of interfaces.";
-
-    list interface {
-      key "name";
-      status deprecated;
-
-      description
-        "The list of interfaces on the device.
-         System-controlled interfaces created by the system are
-         always present in this list, whether or not they are
-         configured.";
-
-      leaf name {
-        type string;
-        status deprecated;
-        description
-          "The name of the interface.
-           A server implementation MAY map this leaf to the ifName
-           MIB object.  Such an implementation needs to use some
-           mechanism to handle the differences in size and characters
-           allowed between this leaf and ifName.  The definition of
-           such a mechanism is outside the scope of this document.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifName";
-      }
-
-      leaf type {
-        type identityref {
-          base interface-type;
-        }
-        mandatory true;
-        status deprecated;
-        description
-          "The type of the interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifType";
-      }
-
-      leaf admin-status {
-        if-feature if-mib;
-        type enumeration {
-          enum up {
-            value 1;
-            description
-              "Ready to pass packets.";
-          }
-          enum down {
-            value 2;
-            description
-              "Not ready to pass packets and not in some test mode.";
-          }
-          enum testing {
-            value 3;
-            description
-              "In some test mode.";
-          }
-        }
-        mandatory true;
-        status deprecated;
-        description
-          "The desired state of the interface.
-           This leaf has the same read semantics as ifAdminStatus.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-      }
-
-      leaf oper-status {
-        type enumeration {
-          enum up {
-            value 1;
-            description
-              "Ready to pass packets.";
-          }
-          enum down {
-            value 2;
-            description
-              "The interface does not pass any packets.";
-          }
-          enum testing {
-            value 3;
-            description
-              "In some test mode.  No operational packets can
-               be passed.";
-          }
-          enum unknown {
-            value 4;
-            description
-              "Status cannot be determined for some reason.";
-          }
-          enum dormant {
-            value 5;
-            description
-              "Waiting for some external event.";
-          }
-          enum not-present {
-            value 6;
-            description
-              "Some component (typically hardware) is missing.";
-          }
-          enum lower-layer-down {
-            value 7;
-            description
-              "Down due to state of lower-layer interface(s).";
-          }
-        }
-        mandatory true;
-        status deprecated;
-        description
-          "The current operational state of the interface.
-           This leaf has the same semantics as ifOperStatus.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifOperStatus";
-      }
-
-      leaf last-change {
-        type yang:date-and-time;
-        status deprecated;
-        description
-          "The time the interface entered its current operational
-           state.  If the current state was entered prior to the
-           last re-initialization of the local network management
-           subsystem, then this node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifLastChange";
-      }
-
-      leaf if-index {
-        if-feature if-mib;
-        type int32 {
-          range "1..2147483647";
-        }
-        mandatory true;
-        status deprecated;
-        description
-          "The ifIndex value for the ifEntry represented by this
-           interface.";
-
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifIndex";
-      }
-
-      leaf phys-address {
-        type yang:phys-address;
-        status deprecated;
-        description
-          "The interface's address at its protocol sub-layer.  For
-           example, for an 802.x interface, this object normally
-           contains a Media Access Control (MAC) address.  The
-           interface's media-specific modules must define the bit
-           and byte ordering and the format of the value of this
-           object.  For interfaces that do not have such an address
-           (e.g., a serial line), this node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifPhysAddress";
-      }
-
-      leaf-list higher-layer-if {
-        type interface-state-ref;
-        status deprecated;
-        description
-          "A list of references to interfaces layered on top of this
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifStackTable";
-      }
-
-      leaf-list lower-layer-if {
-        type interface-state-ref;
-        status deprecated;
-        description
-          "A list of references to interfaces layered underneath this
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifStackTable";
-      }
-
-      leaf speed {
-        type yang:gauge64;
-        units "bits/second";
-        status deprecated;
-        description
-            "An estimate of the interface's current bandwidth in bits
-             per second.  For interfaces that do not vary in
-             bandwidth or for those where no accurate estimation can
-             be made, this node should contain the nominal bandwidth.
-             For interfaces that have no concept of bandwidth, this
-             node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifSpeed, ifHighSpeed";
-      }
-
-      container statistics {
-        status deprecated;
-        description
-          "A collection of interface-related statistics objects.";
-
-        leaf discontinuity-time {
-          type yang:date-and-time;
-          mandatory true;
-          status deprecated;
-          description
-            "The time on the most recent occasion at which any one or
-             more of this interface's counters suffered a
-             discontinuity.  If no such discontinuities have occurred
-             since the last re-initialization of the local management
-             subsystem, then this node contains the time the local
-             management subsystem re-initialized itself.";
-        }
-
-        leaf in-octets {
-          type yang:counter64;
-          status deprecated;
-          description
-            "The total number of octets received on the interface,
-             including framing characters.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
-        }
-
-        leaf in-unicast-pkts {
-          type yang:counter64;
-          status deprecated;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, that were not addressed to a
-             multicast or broadcast address at this sub-layer.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
-        }
-
-        leaf in-broadcast-pkts {
-          type yang:counter64;
-          status deprecated;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, that were addressed to a broadcast
-             address at this sub-layer.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCInBroadcastPkts";
-        }
-
-        leaf in-multicast-pkts {
-          type yang:counter64;
-          status deprecated;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, that were addressed to a multicast
-             address at this sub-layer.  For a MAC-layer protocol,
-             this includes both Group and Functional addresses.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCInMulticastPkts";
-        }
-
-        leaf in-discards {
-          type yang:counter32;
-          status deprecated;
-
-          description
-            "The number of inbound packets that were chosen to be
-             discarded even though no errors had been detected to
-             prevent their being deliverable to a higher-layer
-             protocol.  One possible reason for discarding such a
-             packet could be to free up buffer space.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInDiscards";
-        }
-
-        leaf in-errors {
-          type yang:counter32;
-          status deprecated;
-          description
-            "For packet-oriented interfaces, the number of inbound
-             packets that contained errors preventing them from being
-             deliverable to a higher-layer protocol.  For character-
-             oriented or fixed-length interfaces, the number of
-             inbound transmission units that contained errors
-             preventing them from being deliverable to a higher-layer
-             protocol.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInErrors";
-        }
-
-        leaf in-unknown-protos {
-          type yang:counter32;
-          status deprecated;
-          description
-            "For packet-oriented interfaces, the number of packets
-             received via the interface that were discarded because
-             of an unknown or unsupported protocol.  For
-             character-oriented or fixed-length interfaces that
-             support protocol multiplexing, the number of
-             transmission units received via the interface that were
-             discarded because of an unknown or unsupported protocol.
-             For any interface that does not support protocol
-             multiplexing, this counter is not present.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
-        }
-
-        leaf out-octets {
-          type yang:counter64;
-          status deprecated;
-          description
-            "The total number of octets transmitted out of the
-             interface, including framing characters.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
-        }
-
-        leaf out-unicast-pkts {
-          type yang:counter64;
-          status deprecated;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted and that were not addressed
-             to a multicast or broadcast address at this sub-layer,
-             including those that were discarded or not sent.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
-        }
-
-        leaf out-broadcast-pkts {
-          type yang:counter64;
-          status deprecated;
-
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted and that were addressed to a
-             broadcast address at this sub-layer, including those
-             that were discarded or not sent.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCOutBroadcastPkts";
-        }
-
-        leaf out-multicast-pkts {
-          type yang:counter64;
-          status deprecated;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted and that were addressed to a
-             multicast address at this sub-layer, including those
-             that were discarded or not sent.  For a MAC-layer
-             protocol, this includes both Group and Functional
-             addresses.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCOutMulticastPkts";
-        }
-
-        leaf out-discards {
-          type yang:counter32;
-          status deprecated;
-          description
-            "The number of outbound packets that were chosen to be
-             discarded even though no errors had been detected to
-             prevent their being transmitted.  One possible reason
-             for discarding such a packet could be to free up buffer
-             space.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
-        }
-
-        leaf out-errors {
-          type yang:counter32;
-          status deprecated;
-          description
-            "For packet-oriented interfaces, the number of outbound
-             packets that could not be transmitted because of errors.
-             For character-oriented or fixed-length interfaces, the
-             number of outbound transmission units that could not be
-             transmitted because of errors.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifOutErrors";
-        }
-      }
-    }
-  }
-}
diff --git a/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/network-topology-simulator.yang b/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/network-topology-simulator.yang
deleted file mode 100644 (file)
index ac2cf8d..0000000
+++ /dev/null
@@ -1,297 +0,0 @@
-module network-topology-simulator {
-  yang-version 1.1;
-  namespace "urn:onf:params:xml:ns:yang:network-topology-simulator";
-  prefix network-topology-simulator;
-
-  import ietf-inet-types {
-    prefix inet;
-  }
-
-  organization
-    "Melacon";
-  contact
-    "Web: <https://github.com/Melacon>
-     Editors:  Alex Stancu
-               <mailto:stancu.liviualex@gmail.com>";
-  description
-    "This module contains a collection of YANG definitions for managing the Network Topology Simulator.";
-
-  revision 2019-10-25 {
-    description
-      "Modify notifications. Add VES message configuration options.";
-    reference
-      "O-RAN SC SIM project";
-  }
-  revision 2019-06-07 {
-    description
-      "Modify controller details.";
-    reference
-      "O-RAN SC SIM project";
-  }
-  revision 2019-03-07 {
-    description
-      "Initial version";
-    reference
-      "O-RAN SC SIM project";
-  }
-
-  typedef operational-state-type {
-    type enumeration {
-      enum not-specified {
-        description
-          "none";
-      }
-      enum running {
-        description
-          "none";
-      }
-      enum created {
-        description
-          "none";
-      }
-      enum exited {
-        description
-          "none";
-      }
-    }
-    description
-      "The operation state of the simulated device.";
-  }
-
-  typedef authentication-method-type {
-    type enumeration {
-      enum no-auth {
-        description
-          "no security (http)";
-      }
-      enum cert-only {
-        description
-          "auth by certificate (https)";
-      }
-      enum basic-auth {
-        description
-          "auth by basic auth username and password (https)";
-      }
-      enum cert-basic-auth {
-        description
-          "auth by certificate and basic auth username / password (https)";
-      }
-    }
-    description
-      "The authentication method for VES messaging.";
-  }
-
-  typedef percent {
-    type decimal64 {
-      fraction-digits 2;
-      range "0 .. 100";
-    }
-    description
-      "Percentage";
-  }
-
-  grouping controller-details-type-g {
-    leaf controller-ip {
-      type inet:ip-address;
-      description
-        "The IP Address of the SDN Controller.";
-    }
-    leaf controller-port {
-      type inet:port-number;
-      description
-        "The Port of the SDN Controller.";
-    }
-    leaf controller-username {
-      type string;
-      description
-        "The Username of the SDN Controller.";
-    }
-    leaf controller-password {
-      type string;
-      description
-        "The Password of the SDN Controller.";
-    }
-    description
-      "none";
-  }
-
-  grouping simulated-devices-type-g {
-    leaf uuid {
-      type string;
-      description
-        "The UUID of the simulated device.";
-    }
-    leaf device-ip {
-      type string;
-      description
-        "The IP Address of the simulated device.";
-    }
-    leaf-list device-port {
-      type uint32;
-      description
-        "A NETCONF endpoint (port) of the simulated device.";
-    }
-    leaf is-mounted {
-      type boolean;
-      description
-        "Specifies if the simulated device is mounted in the SDN Controller.";
-    }
-    leaf operational-state {
-      type operational-state-type;
-      description
-        "Specifies the operational state of the simulated device.";
-    }
-    description
-      "none";
-  }
-
-  container simulator-config {
-    description
-      "Configuration container of the simulator.";
-    leaf simulated-devices {
-      type uint32;
-      default "0";
-      description
-        "The number of devices to be simulated.";
-    }
-    leaf mounted-devices {
-      type uint32;
-      default "0";
-      description
-        "The number of devices to be mounted in ODL. The configured number should not exceed the number of mounted devices.";
-    }
-    container notification-config {
-      leaf fault-notification-delay-period {
-        type uint32;
-        default "0";
-        description
-          "Interval in seconds between two consecutive notifications. If the attribute is set to 0, nofitications are not generated.";
-      }
-      leaf ves-heartbeat-period {
-        type uint32;
-        default "0";
-        description
-          "Interval in seconds between two VES heartbeat messages. If the attribute is set to 0, heartbeat messages are not generated.";
-      }
-      leaf is-netconf-available {
-        type boolean;
-        default "true";
-        description
-          "If set to 'true', NETCONF notifications will be generated.";
-      }
-      leaf is-ves-available {
-        type boolean;
-        default "true";
-        description
-          "If set to 'true', VES messages will be generated.";
-      }
-      description
-        "none";
-    }
-    container controller-details {
-      uses controller-details-type-g;
-      description
-        "The connectivity details of the SDN Controller where we want to mount our simulated devices.";
-    }
-    container ves-endpoint-details {
-      must 'ves-registration = "false" or ../mounted-devices = 0' {
-        error-message "VES registration cannot be active while devices are still mounted to ODL not via VES.";
-      }
-      leaf ves-endpoint-ip {
-        type inet:ip-address;
-        description
-          "The IP Address of the VES Endpoint.";
-      }
-      leaf ves-endpoint-port {
-        type inet:port-number;
-        description
-          "The Port of the VES Endpoint.";
-      }
-      leaf ves-endpoint-auth-method {
-        type authentication-method-type;
-        default "no-auth";
-        description
-          "The type of the authentication to be used with the VES Endpoint.";
-      }
-      leaf ves-endpoint-username {
-        when "../ves-endpoint-auth-method = 'basic-auth' or ../ves-endpoint-auth-method = 'cert-basic-auth'";
-        type string;
-        description
-          "The Username to be used to authenticate to the VES Endpoint.";
-      }
-      leaf ves-endpoint-password {
-        when "../ves-endpoint-auth-method = 'basic-auth' or ../ves-endpoint-auth-method = 'cert-basic-auth'";
-        type string;
-        description
-          "The Password to be used to authenticate to the VES Endpoint.";
-      }
-      leaf ves-endpoint-certificate {
-        when "../ves-endpoint-auth-method = 'cert-only' or ../ves-endpoint-auth-method = 'cert-basic-auth'";
-        type string;
-        description
-          "The Certificate to be used to authenticate to the VES Endpoint.";
-      }
-      leaf ves-registration {
-        type boolean;
-        default "false";
-        description
-          "If this is set to 'True', the simulated devices will automatically send a pnfRegistration VES message when they start. This cannot be set to 'True' if we already have 'mounted-devices' greater that 0, because we already mounted the devices directly to ODL.";
-      }
-      description
-        "none";
-    }
-  }
-  container simulator-status {
-    config false;
-    container simulation-usage-details {
-      config false;
-      leaf running-simulated-devices {
-        type uint32;
-        description
-          "The current number of running simulated devices.";
-      }
-      leaf running-mounted-devices {
-        type uint32;
-        description
-          "The current number of running simulated devices that are mounted in ODL.";
-      }
-      leaf base-netconf-port {
-        type uint32;
-        default "30000";
-        description
-          "The starting port number for the NETCONF connections exposed.";
-      }
-      leaf cpu-usage {
-        type percent;
-        description
-          "Specifies the CPU load generated by this simulated device.";
-      }
-      leaf mem-usage {
-        type uint32;
-        description
-          "Specifies the RAM in MB used by this simulated device.";
-      }
-      description
-        "The details about the simulation, including resources consumed.";
-    }
-    list simulated-devices-list {
-      key "uuid";
-      config false;
-      uses simulated-devices-type-g;
-      description
-        "The list of the devices that are currently simulated.";
-    }
-    description
-      "State data container of the simulator.";
-  }
-
-  rpc restart-simulation {
-    description
-      "Operation to restart all the simulated devices with the new configuration of the simulator.";
-  }
-
-  rpc add-key-pair-to-odl {
-    description
-      "Operation to add a key pair signed by the NTS to OpenDaylight, such that it can connect to devices using TLS.";
-  }
-}
diff --git a/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/o-ran-fm.yang b/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/o-ran-fm.yang
deleted file mode 100644 (file)
index 92238aa..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-module o-ran-fm {
-  yang-version 1.1;
-  namespace "urn:o-ran:fm:1.0";
-  prefix "o-ran-fm";
-
-  import ietf-yang-types {
-    prefix yang;
-    revision-date 2013-07-15;
-  }
-
-  organization "O-RAN Alliance";
-
-  contact
-    "www.o-ran.org";
-
-  description
-    "This module defines alarm reporting mechanism.
-
-    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-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";
-  }
-
-  grouping alarm {
-    description
-      "Gropuping which can uniquely identify alarm";
-
-    leaf fault-id {
-      type uint16;
-      mandatory true;
-
-      description
-        "Fault specific Id that identifies the fault.";
-    }
-
-    leaf fault-source {
-      type string {
-        length "1..255";
-      }
-      mandatory true;
-
-      description
-        "Represents the Object or source that is suspected to be faulty.";
-    }
-
-    list affected-objects {
-      key name;
-      leaf name {
-        type string {
-          length "1..255";
-        }
-        mandatory true;
-
-        description
-          "Represents the Object or source that is suspected to be affected by this fault";
-      }
-      min-elements 1;
-      max-elements 100;
-
-      description
-        "List of affected-objects";
-    }
-
-    leaf fault-severity {
-      type enumeration {
-        enum CRITICAL {
-          description
-            "Critical alarm means that this device is not able to perform any further service";
-        }
-        enum MAJOR {
-          description
-            "Major alarm appeared on the device";
-        }
-        enum MINOR {
-          description
-            "Minor alarm appeared on the device";
-        }
-        enum WARNING {
-          description
-            "Warning is being reported by the device";
-        }
-      }
-      mandatory true;
-
-      description
-        "Fault severity defines the severity level of the fault. A notification, whose fault severity has the value 'warning',
-        is a special type of an alarm notification. For these alarm notifications,
-        the Master Agent does not expect to receive a clear alarm notification.";
-    }
-
-    leaf is-cleared {
-      type boolean;
-      mandatory true;
-
-      description
-        "Fault state determines the type of the event. Not used if faultSeverity is WARNING.";
-    }
-
-    leaf fault-text {
-      type string {
-        length "0..255";
-      }
-
-      description
-        "Textual description of the fault.";
-    }
-
-    leaf event-time {
-      type yang:date-and-time;
-      mandatory true;
-
-      description
-        "Timestamp to indicate the time when the fault is detected/cleared.";
-    }
-  }
-
-  container active-alarm-list {
-    list active-alarms {
-      key fault-id;
-      uses alarm;
-
-      description
-        "List of currenty active alarms";
-    }
-    config false;
-
-    description
-      "List of currently active alarms. An alarm is removed from this table when the state transitions to clear.";
-  }
-
-  notification alarm-notif {
-    uses alarm;
-
-    description
-      "Notification sent on initial alarm creation, as well as any time the alarm changes state, including clear";
-  }
-}
diff --git a/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/o-ran-hardware.yang b/features/devicemanager/o-ran/ru-fh/provider/src/main/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.";
-    }
-  }
-}
diff --git a/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/o-ran-sc-common-alarms-v1.yang b/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/o-ran-sc-common-alarms-v1.yang
deleted file mode 100644 (file)
index 930bba3..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-module o-ran-sc-common-alarms-v1 {
-  yang-version 1.1;
-  namespace "urn:o-ran-sc:alarms:1.0";
-  prefix osc-al;
-
-  import ietf-alarms {
-    prefix al;
-  }
-
-  organization
-    "O-RAN Software Community";
-  contact
-    "www.o-ran-sc.org";
-  description
-    "This module defines the alarm identities for the O-RAN-SC Components.
-
-     Copyright 2020 the O-RAN Software Community.
-
-     Licensed under the Apache License, Version 2.0 (the 'License');
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an 'AS IS' BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.";
-
-  revision 2020-01-18 {
-    description
-      "initial revision";
-    reference
-      "O-RAN-OAM-Interface-Specification (O1)";
-  }
-
-  identity alarm-type-id {
-    base al:alarm-type-id;
-    description
-      "An abstract alarm type use for all O-RAN-SC alarm types which are
-       common across the O-RAN managed functions.";
-  }
-
-  identity smo-o1-ves-collector-not-reachable {
-    base alarm-type-id;
-    description
-      "The configured VES end-point for asynchron messages is not reachable.
-       Instructions:
-         1) Verify the VES configuration on the O-RAN component.
-         2) Verify the connectivity between the O-RAN component and the
-            SMO in terms of routing and firewall settings along the path.
-         3) Check the credentials of the O-RAN component (user, password,
-            certificate). Did changes happen on SMO level recently?";
-  }
-}
diff --git a/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/o-ran-sc-cu-cp-alarms-v1.yang b/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/o-ran-sc-cu-cp-alarms-v1.yang
deleted file mode 100644 (file)
index e29ff2d..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-module o-ran-sc-cu-cp-alarms-v1 {
-  yang-version 1.1;
-  namespace "urn:o-ran-sc:cu:cp:alarms:1.0";
-  prefix osc-cu-cp-al;
-
-  import ietf-alarms {
-    prefix al;
-  }
-
-  organization
-    "O-RAN Software Community";
-  contact
-    "www.o-ran-sc.org";
-  description
-    "This module defines the alarm identities for the O-RAN-SC Central Unit
-     Control Plane.
-
-     Copyright 2020 the O-RAN Software Community.
-
-     Licensed under the Apache License, Version 2.0 (the 'License');
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an 'AS IS' BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.";
-
-  revision 2020-01-18 {
-    description
-      "initial revision";
-    reference
-      "O-RAN-OAM-Interface-Specification (O1)";
-  }
-
-  identity alarm-type-id {
-    base al:alarm-type-id;
-    description
-      "An abstract alarm type used for all O-RAN-SC specific alarm types for
-       Managed Function O-CU-CP.";
-  }
-
-  identity huston-we-have-a-problem {
-    base alarm-type-id;
-    description
-      "A generic alarm which is under development and analysis,
-       must not happen in production environment.
-       Instructions:
-         Create an JIRA issue and provide the following intormation:
-         - SMO version, build number or git hash
-         - O-CU-CP version, build number or git hash
-         - A procedure to reproduce the alarm.";
-  }
-}
diff --git a/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/o-ran-sc-cu-up-alarms-v1.yang b/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/o-ran-sc-cu-up-alarms-v1.yang
deleted file mode 100644 (file)
index 020103f..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-module o-ran-sc-cu-up-alarms-v1 {
-  yang-version 1.1;
-  namespace "urn:o-ran-sc:cu:up:alarms:1.0";
-  prefix osc-cu-up-al;
-
-  import ietf-alarms {
-    prefix al;
-  }
-
-  organization
-    "O-RAN Software Community";
-  contact
-    "www.o-ran-sc.org";
-  description
-    "This module defines the alarm identities for the O-RAN-SC Central Unit
-     User Plane.
-
-     Copyright 2020 the O-RAN Software Community.
-
-     Licensed under the Apache License, Version 2.0 (the 'License');
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an 'AS IS' BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.";
-
-  revision 2020-01-18 {
-    description
-      "initial revision";
-    reference
-      "O-RAN-OAM-Interface-Specification (O1)";
-  }
-
-  identity alarm-type-id {
-    base al:alarm-type-id;
-    description
-      "An abstract alarm type used for all O-RAN-SC specific alarm types for
-       Managed Function O-CU-UP.";
-  }
-
-  identity huston-we-have-a-problem {
-    base alarm-type-id;
-    description
-      "A generic alarm which is under development and analysis,
-       must not happen in production environment.
-       Instructions:
-         Create an JIRA issue and provide the following intormation:
-         - SMO version, build number or git hash
-         - O-CU-UP version, build number or git hash
-         - A procedure to reproduce the alarm.";
-  }
-}
diff --git a/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/o-ran-sc-du-alarms-v1.yang b/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/o-ran-sc-du-alarms-v1.yang
deleted file mode 100644 (file)
index e7d3b45..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-module o-ran-sc-du-alarms-v1 {
-  yang-version 1.1;
-  namespace "urn:o-ran-sc:du:alarms:1.0";
-  prefix osc-du-al;
-
-  import ietf-alarms {
-    prefix al;
-  }
-
-  organization
-    "O-RAN Software Community";
-  contact
-    "www.o-ran-sc.org";
-  description
-    "This module defines the alarm identities for the O-RAN-SC Distributed Unit.
-
-     Copyright 2020 the O-RAN Software Community.
-
-     Licensed under the Apache License, Version 2.0 (the 'License');
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an 'AS IS' BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.";
-
-  revision 2020-01-18 {
-    description
-      "initial revision";
-    reference
-      "O-RAN-OAM-Interface-Specification (O1)";
-  }
-
-  identity alarm-type-id {
-    base al:alarm-type-id;
-    description
-      "An abstract alarm type used for all O-RAN-SC specific alarm types for
-       Managed Function O-DU.";
-  }
-
-  identity huston-we-have-a-problem {
-    base alarm-type-id;
-    description
-      "A generic alarm which is under development and analysis,
-       must not happen in production environment.
-       Instructions:
-         Create an JIRA issue and provide the following intormation:
-         - SMO version, build number or git hash
-         - O-DU version, build number or git hash
-         - A procedure to reproduce the alarm.";
-  }
-}
diff --git a/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/o-ran-sc-ric-alarms-v1.yang b/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/o-ran-sc-ric-alarms-v1.yang
deleted file mode 100644 (file)
index ace2a78..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-module o-ran-sc-ric-alarms-v1 {
-  yang-version 1.1;
-  namespace "urn:o-ran:ric:alarms:1.0";
-  prefix osc-ric-al;
-
-  import ietf-alarms {
-    prefix al;
-  }
-
-  organization
-    "O-RAN Software Community";
-  contact
-    "www.o-ran.org";
-  description
-    "This module defines the alarm identities for the O-RAN-SC Near realtime RAN Intelligent Controller.
-
-     Copyright 2019 the O-RAN Alliance.
-
-     Licensed under the Apache License, Version 2.0 (the 'License');
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an 'AS IS' BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.";
-
-  revision 2020-01-18 {
-    description
-      "initial revision";
-    reference
-      "O-RAN-OAM-Interface-Specification (O1)";
-  }
-
-  identity alarm-type-id {
-    base al:alarm-type-id;
-    description
-      "An abstract alarm type used for all O-RAN-SC specific alarm types for
-       Managed Function Non-RT-RIC.";
-  }
-
-  identity huston-we-have-a-problem {
-    base alarm-type-id;
-    description
-      "A generic alarm which is under development and analysis,
-       must not happen in production environment.
-       Instructions:
-         Create an JIRA issue and provide the following intormation:
-         - SMO version, build number or git hash
-         - O-DU-low version, build number or git hash
-         - A procedure to reproduce the alarm.";
-  }
-}
diff --git a/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/o-ran-sc-ru-alarms-v1.yang b/features/devicemanager/o-ran/ru-fh/provider/src/main/yang/o-ran-sc-ru-alarms-v1.yang
deleted file mode 100644 (file)
index c52414d..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-module o-ran-sc-ru-alarms-v1 {
-  yang-version 1.1;
-  namespace "urn:o-ran-sc:ru:alarms:1.0";
-  prefix osc-ru-al;
-
-  import ietf-alarms {
-    prefix al;
-  }
-
-  organization
-    "O-RAN Software Community";
-  contact
-    "www.o-ran-sc.org";
-  description
-    "This module defines the alarm identities for the O-RAN-SC Components.
-
-     Copyright 2020 the O-RAN Software Community.
-
-     Licensed under the Apache License, Version 2.0 (the 'License');
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an 'AS IS' BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.";
-
-  revision 2020-01-18 {
-    description
-      "initial revision";
-    reference
-      "O-RAN-OAM-Interface-Specification (O1)";
-  }
-
-  identity alarm-type-id {
-    base al:alarm-type-id;
-    description
-      "An abstract alarm type used for all O-RAN-SC specific alarm types for
-       Managed Function O-RU.";
-  }
-
-  identity huston-we-have-a-problem {
-    base alarm-type-id;
-    description
-      "A generic alarm which is under development and analysis,
-       must not happen in production environment.
-       Instructions:
-         Create an JIRA issue and provide the following intormation:
-         - SMO version, build number or git hash
-         - O-RU version, build number or git hash
-         - A procedure to reproduce the alarm.";
-  }
-}