+++ /dev/null
-../../ietf/iana-hardware.yang
\ No newline at end of file
--- /dev/null
+../../ietf/iana-hardware@2018-03-13.yang
\ No newline at end of file
+++ /dev/null
-../../ietf/iana-if-type.yang
\ No newline at end of file
--- /dev/null
+../../ietf/iana-if-type@2017-01-19.yang
\ No newline at end of file
--- /dev/null
+../../ietf/ietf-alarms@2019-09-11.yang
\ No newline at end of file
+++ /dev/null
-../../ietf/ietf-crypto-types.yang
\ No newline at end of file
--- /dev/null
+../../ietf/ietf-crypto-types@2019-10-18.yang
\ No newline at end of file
+++ /dev/null
-../../ietf/ietf-dhcpv6-types.yang
\ No newline at end of file
--- /dev/null
+../../ietf/ietf-dhcpv6-types@2018-01-30.yang
\ No newline at end of file
+++ /dev/null
-../../ietf/ietf-hardware.yang
\ No newline at end of file
--- /dev/null
+../../ietf/ietf-hardware@2018-03-13.yang
\ No newline at end of file
+++ /dev/null
-../../ietf/ietf-inet-types.yang
\ No newline at end of file
--- /dev/null
+../../ietf/ietf-inet-types@2013-07-15.yang
\ No newline at end of file
+++ /dev/null
-../../ietf/ietf-interfaces.yang
\ No newline at end of file
--- /dev/null
+../../ietf/ietf-interfaces@2018-02-20.yang
\ No newline at end of file
+++ /dev/null
-../../ietf/ietf-ip.yang
\ No newline at end of file
--- /dev/null
+../../ietf/ietf-ip@2018-02-22.yang
\ No newline at end of file
+++ /dev/null
-../../ietf/ietf-netconf-acm.yang
\ No newline at end of file
--- /dev/null
+../../ietf/ietf-netconf-acm@2018-02-14.yang
\ No newline at end of file
+++ /dev/null
-../../ietf/ietf-yang-types.yang
\ No newline at end of file
--- /dev/null
+../../ietf/ietf-yang-types@2013-07-15.yang
\ No newline at end of file
--- /dev/null
+../../../sim/nts-manager/network-topology-simulator.yang
\ No newline at end of file
--- /dev/null
+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.";
+ }
+ }
+}
+++ /dev/null
-../ietf/iana-hardware.yang
\ No newline at end of file
--- /dev/null
+../ietf/iana-hardware@2018-03-13.yang
\ No newline at end of file
+++ /dev/null
-../ietf/iana-if-type.yang
\ No newline at end of file
--- /dev/null
+../ietf/iana-if-type@2017-01-19.yang
\ No newline at end of file
+++ /dev/null
-../ietf/ietf-dhcpv6-types.yang
\ No newline at end of file
--- /dev/null
+../ietf/ietf-dhcpv6-types@2018-01-30.yang
\ No newline at end of file
+++ /dev/null
-../ietf/ietf-hardware.yang
\ No newline at end of file
--- /dev/null
+../ietf/ietf-hardware@2018-03-13.yang
\ No newline at end of file
+++ /dev/null
-../ietf/ietf-inet-types.yang
\ No newline at end of file
--- /dev/null
+../ietf/ietf-inet-types@2013-07-15.yang
\ No newline at end of file
+++ /dev/null
-../ietf/ietf-interfaces.yang
\ No newline at end of file
--- /dev/null
+../ietf/ietf-interfaces@2018-02-20.yang
\ No newline at end of file
+++ /dev/null
-../ietf/ietf-ip.yang
\ No newline at end of file
--- /dev/null
+../ietf/ietf-ip@2018-02-22.yang
\ No newline at end of file
+++ /dev/null
-../ietf/ietf-yang-types.yang
\ No newline at end of file
--- /dev/null
+../ietf/ietf-yang-types@2013-07-15.yang
\ No newline at end of file
--- /dev/null
+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.";
+ }
+}
+++ /dev/null
-../../../../../../data-model/yang/published/ietf/iana-hardware.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/ietf/iana-hardware@2018-03-13.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/ietf/iana-if-type.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/ietf/iana-if-type@2017-01-19.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/ietf/ietf-alarms@2019-09-11.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/ietf/ietf-crypto-types.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/ietf/ietf-crypto-types@2019-10-18.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/ietf/ietf-dhcpv6-types.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/ietf/ietf-dhcpv6-types@2018-01-30.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/ietf/ietf-hardware.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/ietf/ietf-hardware@2018-03-13.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/ietf/ietf-inet-types.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/ietf/ietf-inet-types@2013-07-15.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/ietf/ietf-interfaces.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/ietf/ietf-interfaces@2018-02-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/ietf/ietf-ip.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/ietf/ietf-ip@2018-02-22.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/ietf/ietf-netconf-acm.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/ietf/ietf-netconf-acm@2018-02-14.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/ietf/ietf-yang-types.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/ietf/ietf-yang-types@2013-07-15.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-ald-port.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-ald-port@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-ald.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-ald@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-antenna-calibration.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-antenna-calibration@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-beamforming.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-beamforming@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-compression-factors.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-compression-factors@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-delay-management.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-delay-management@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-dhcp.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-dhcp@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-ecpri-delay.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-ecpri-delay@2019-02-04.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-externalio.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-externalio@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-fan.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-fan@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-file-management.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-file-management@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-fm.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-fm@2019-02-04.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-hardware.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-hardware@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-interfaces.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-interfaces@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-laa-operations.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-laa-operations@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-laa.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-laa@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-lbm.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-lbm@2019-02-04.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-module-cap.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-module-cap@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-mplane-int.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-mplane-int@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-operations.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-operations@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-performance-management.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-performance-management@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-processing-element.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-processing-element@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-software-management.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-software-management@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-supervision.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-supervision@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-sync.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-sync@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-trace.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-trace@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-transceiver.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-transceiver@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-troubleshooting.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-troubleshooting@2019-02-04.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-udp-echo.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-udp-echo@2019-02-04.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-uplane-conf.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-uplane-conf@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-usermgmt.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/o-ran/ru-fh/o-ran-usermgmt@2019-07-03.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/iana-hardware.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/ietf/iana-hardware@2018-03-13.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/iana-if-type.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/ietf/iana-if-type@2017-01-19.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/ietf/ietf-alarms@2019-09-11.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/ietf-dhcpv6-types.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/ietf/ietf-dhcpv6-types@2018-01-30.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/ietf-hardware.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/ietf/ietf-hardware@2018-03-13.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/ietf-inet-types.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/ietf/ietf-inet-types@2013-07-15.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/ietf-interfaces.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/ietf/ietf-interfaces@2018-02-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/ietf-ip.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/ietf/ietf-ip@2018-02-22.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/ietf-yang-types.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/ietf/ietf-yang-types@2013-07-15.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-alarm-id.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-alarm-id@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-ald-port.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-ald-port@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-ald.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-ald@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-beamforming.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-beamforming@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-delay-management.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-delay-management@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-dhcp.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-dhcp@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-ecpri-delay.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-ecpri-delay@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-externalio.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-externalio@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-fan.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-fan@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-file-management.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-file-management@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-fm.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-fm@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-hardware.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-hardware@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-interfaces.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-interfaces@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-lbm.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-lbm@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-module-cap.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-module-cap@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-mplane-int.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-mplane-int@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-operations.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-operations@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-performance-management.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-performance-management@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-processing-element.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-processing-element@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-software-management.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-software-management@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-supervision.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-supervision@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-sync.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-sync@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-transceiver.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-transceiver@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-troubleshooting.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-troubleshooting@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-udp-echo.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-udp-echo@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-uplane-conf.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-uplane-conf@2018-07-20.yang
\ No newline at end of file
+++ /dev/null
-../../../../../../data-model/yang/published/xran/xran-usermgmt.yang
\ No newline at end of file
--- /dev/null
+../../../../../../data-model/yang/published/xran/xran-usermgmt@2018-07-20.yang
\ No newline at end of file