From: demx8as6 Date: Thu, 19 Mar 2020 11:51:57 +0000 (+0100) Subject: Add xran datamodels X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?p=scp%2Foam%2Fmodeling.git;a=commitdiff_plain;h=5416af6d0236d666ad7cc3d2725223c1e1be9938 Add xran datamodels a copy of published xran data models withou modifications IssueID: OAM-74 Change-Id: Id06de75cff1fb1cafac52f8ace991a53d38399d0 Signed-off-by: demx8as6 --- diff --git a/data-model/yang/published/xran/iana-hardware.yang b/data-model/yang/published/xran/iana-hardware.yang new file mode 120000 index 0000000..b2d1ef3 --- /dev/null +++ b/data-model/yang/published/xran/iana-hardware.yang @@ -0,0 +1 @@ +../ietf/iana-hardware.yang \ No newline at end of file diff --git a/data-model/yang/published/xran/iana-if-type.yang b/data-model/yang/published/xran/iana-if-type.yang new file mode 120000 index 0000000..2dd0a83 --- /dev/null +++ b/data-model/yang/published/xran/iana-if-type.yang @@ -0,0 +1 @@ +../ietf/iana-if-type.yang \ No newline at end of file diff --git a/data-model/yang/published/xran/ietf-dhcpv6-types.yang b/data-model/yang/published/xran/ietf-dhcpv6-types.yang new file mode 120000 index 0000000..cfa5b3c --- /dev/null +++ b/data-model/yang/published/xran/ietf-dhcpv6-types.yang @@ -0,0 +1 @@ +../ietf/ietf-dhcpv6-types.yang \ No newline at end of file diff --git a/data-model/yang/published/xran/ietf-hardware.yang b/data-model/yang/published/xran/ietf-hardware.yang new file mode 120000 index 0000000..9e0106e --- /dev/null +++ b/data-model/yang/published/xran/ietf-hardware.yang @@ -0,0 +1 @@ +../ietf/ietf-hardware.yang \ No newline at end of file diff --git a/data-model/yang/published/xran/ietf-inet-types.yang b/data-model/yang/published/xran/ietf-inet-types.yang new file mode 120000 index 0000000..0f3f946 --- /dev/null +++ b/data-model/yang/published/xran/ietf-inet-types.yang @@ -0,0 +1 @@ +../ietf/ietf-inet-types.yang \ No newline at end of file diff --git a/data-model/yang/published/xran/ietf-interfaces.yang b/data-model/yang/published/xran/ietf-interfaces.yang new file mode 120000 index 0000000..c514ec4 --- /dev/null +++ b/data-model/yang/published/xran/ietf-interfaces.yang @@ -0,0 +1 @@ +../ietf/ietf-interfaces.yang \ No newline at end of file diff --git a/data-model/yang/published/xran/ietf-ip.yang b/data-model/yang/published/xran/ietf-ip.yang new file mode 120000 index 0000000..fde2303 --- /dev/null +++ b/data-model/yang/published/xran/ietf-ip.yang @@ -0,0 +1 @@ +../ietf/ietf-ip.yang \ No newline at end of file diff --git a/data-model/yang/published/xran/ietf-yang-types.yang b/data-model/yang/published/xran/ietf-yang-types.yang new file mode 120000 index 0000000..eb32011 --- /dev/null +++ b/data-model/yang/published/xran/ietf-yang-types.yang @@ -0,0 +1 @@ +../ietf/ietf-yang-types.yang \ No newline at end of file diff --git a/data-model/yang/published/xran/org-openroadm-user-mgmt@2017-12-15.yang b/data-model/yang/published/xran/org-openroadm-user-mgmt@2017-12-15.yang new file mode 120000 index 0000000..a8817b2 --- /dev/null +++ b/data-model/yang/published/xran/org-openroadm-user-mgmt@2017-12-15.yang @@ -0,0 +1 @@ +../openroadm/org-openroadm-user-mgmt@2017-12-15.yang \ No newline at end of file diff --git a/data-model/yang/published/xran/xran-alarm-id.yang b/data-model/yang/published/xran/xran-alarm-id.yang new file mode 100644 index 0000000..f87fcea --- /dev/null +++ b/data-model/yang/published/xran/xran-alarm-id.yang @@ -0,0 +1,178 @@ +module xran-alarm-id { + yang-version 1.1; + namespace "urn:xran:alarms:1.0"; + prefix "xran-alarms"; + + organization "xRAN Forum"; + + contact + "www.xran.org"; + + description + "This module defines the alarm identities for the RU. + + Copyright 2018 the xRAN Forum. + + 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 xRAN Forum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission."; + + revision "2018-07-20" { + description + "version 1.0.0 - First release of the xRAN YANG M-Plane models. + + This version of the model supports v01.00 of the corrsponding xRAN + M-Plane Specification."; + reference "XRAN-FH.MP.0-v01.00"; + } + + typedef alarm-id { + type enumeration { + enum XRAN_HIGH_TEMP_ALARM { + value 1; + description "A temperature is higher than expected"; + } + enum XRAN_OVERHEATING_ALARM { + value 2; + description "A temperature is dangerously high"; + } + enum XRAN_AMBIENT_TEMP_ALARM { + value 3; + description "A temperature related alarm due to ambient temperature + value going outside the allowed ambient temperature range"; + } + enum XRAN_TEMP_TOO_LOW_ALARM { + value 4; + description "A temperature related alarm due to the temperature inside + the unit being too low"; + } + enum XRAN_BROKEN_FAN_ALARM { + value 5; + description "A broken fan"; + } + enum XRAN_FAN_NOT_DETECTED_ALARM { + value 6; + description "A fan not detected"; + } + enum XRAN_TUNING_ALARM { + value 7; + description "A tuning failure."; + } + enum XRAN_FILTER_ALARM { + value 8; + description "A faulty filter."; + } + enum XRAN_TX_QUALITY_ALARM { + value 9; + description "A transmission quality."; + } + enum XRAN_OVERVOLTAGE_ALARM { + value 10; + description "A RF overvoltage protection."; + } + enum XRAN_CONFIG_ALARM { + value 11; + description "A configuration failed."; + } + enum XRAN_CRITICAL_FILE_ALARM { + value 12; + description "A Critical file not found."; + } + enum XRAN_FILE_ALARM { + value 13; + description "A non-critical file not found."; + } + enum XRAN_CORRUPT_FILE_ALARM { + value 14; + description "A corrupt configuration file."; + } + enum XRAN_OPERATION_ALARM { + value 15; + description "A unit out of order."; + } + enum XRAN_NO_IDENTITY_ALARM { + value 16; + description "A unit cannot be identified."; + } + enum XRAN_NO_EXT_SYNC_SOURCE { + value 17; + description "An RU has no external sync source."; + } + enum XRAN_SYNC_ALARM { + value 18; + description "A unit is out of synchronization."; + } + enum XRAN_TX_OUT_OF_ORDER_ALARM { + value 19; + description "A TX path is not usable."; + } + enum XRAN_RX_OUT_OF_ORDER_ALARM { + value 20; + description "A RX path is not usable."; + } + enum XRAN_OPTICAL_BER_ALARM { + value 21; + description "An increased bit error rate on the optical link"; + } + enum XRAN_SELF_TEST_ALARM { + value 22; + description "A power-on self test"; + } + enum XRAN_FPGA_UPDATE_ALARM { + value 23; + description "An FPGA software update"; + } + enum XRAN_UNIT_BLOCKED_ALARM { + value 24; + description "A unit is blocked"; + } + enum XRAN_RESET_REQUEST_ALARM { + value 25; + description "A unit requires a reset"; + } + enum XRAN_POWER_SUPPLY_FAULTY { + value 26; + description "A power supply unit has a fault"; + } + enum XRAN_POWER_AMPLIFIER_FAULTY { + value 27; + description "A power amplifier unit has a fault"; + } + enum XRAN_C_U_PLANE_LOGICAL_CONNECTION_FAULTY { + value 28; + description "A C/U-plane logical connection has a fault"; + } + enum XRAN_TRANSCEIVER_FAULT { + value 29; + description "A transceiver unit has a fault"; + } + enum XRAN_INTERFACE_FAULT { + value 30; + description "An interface unit has a fault"; + } + } + description + "A typedef defining an enumerated list of XRAN alarms which corresponds to + the fault-id in the xran management plane specification."; + } +} diff --git a/data-model/yang/published/xran/xran-ald-port.yang b/data-model/yang/published/xran/xran-ald-port.yang new file mode 100644 index 0000000..ab3a4b9 --- /dev/null +++ b/data-model/yang/published/xran/xran-ald-port.yang @@ -0,0 +1,158 @@ +module xran-ald-port { + yang-version 1.1; + namespace "urn:xran:ald-port:1.0"; + prefix "xran-ald-port"; + + organization "xRAN Forum"; + + contact + "www.xran.org"; + + description + "This module defines the input state and output configuration for + the xRAN Radio Unit Antenna Line Device capability. + + Copyright 2018 the xRAN Forum. + + 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 xRAN Forum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission."; + + revision "2018-07-20" { + description + "version 1.0.0 - First release of the xRAN YANG M-Plane models. + + This version of the model supports v01.00 of the corrsponding xRAN + M-Plane Specification."; + reference "XRAN-FH.MP.0-v01.00"; + } + + feature OVERCURRENT-SUPPORTED { + description + "This feature indicates that the RU supports the over-current notification + capability."; + } + + container ald-ports-io { + description + "ALD port information. + ALD port of the RU that can be used to connect External Equipment (Antenna Line Devices). + Communication uses AISG over HDLC. + Physical connection depends on connector type offered by the port (RS-485 or antenna line) + Note: Single instance of ALD Port can point to more than one antenna line devices."; + + leaf over-current-supported { + type boolean; + default false; + description + "Set to TRUE when the RU supports over curent notifications"; + } + + list ald-port { + key "name"; + description + "Leaf nodes describing ALD Port"; + leaf name { + type string { + length "1..255"; + } + description + "A name that is unique across the RU that identifies a ald port instance. + This name may be used in fault management to refer to a fault source + or affected object"; + } + + leaf port-id { + type uint8; + config false; + mandatory true; + + description + "A number which identifies an ALD Port. + The number of the Physical ALD port connector in the module. + If the module supports 2 ALD Port connectors, use 0 and 1."; + } + + leaf dc-control-support{ + type boolean; + config false; + mandatory true; + + description + "It is shown that on/off in the DC power supply is possible. + In case of False, power supply is always on."; + } + + leaf dc-enabled{ + when "./../dc-control-support = 'true'"; + type boolean; + + description + "If dc-control-support is true case, this leaf is effective. + In case of true, the power supply is turned on."; + } + + leaf supported-connector{ + type enumeration { + enum ANTENNA_CONNECTOR { + description + "This ald port is related to antenna connector"; + } + enum RS485_PORT { + description + "This ald port is related to RS485 port"; + } + } + config false; + mandatory true; + + description + "Informs about the connectors of Module which ALDs are connected to. + This value is depending on HW design."; + } + } + } + + notification overcurrent-report { + if-feature OVERCURRENT-SUPPORTED; + + description + "The RU is able to report overcurrent condition about Port. + This function is depending on HW design. + The notification depend on power consumption which connected ALD devices and module."; + + container overload-condition { + description + "Container used in notification"; + + leaf-list overloaded-ports { + type leafref { + path "/ald-ports-io/ald-port/name"; + } + + description + "List of overloaded ports"; + } + } + } +} diff --git a/data-model/yang/published/xran/xran-ald.yang b/data-model/yang/published/xran/xran-ald.yang new file mode 100644 index 0000000..4580992 --- /dev/null +++ b/data-model/yang/published/xran/xran-ald.yang @@ -0,0 +1,144 @@ +module xran-ald { + yang-version 1.1; + namespace "urn:xran:ald:1.0"; + prefix "xran-ald"; + + import xran-ald-port { + prefix "ap"; + } + + organization "xRAN Alliance"; + + contact + "www.xran.org"; + + description + "This module defines the module for the ald communication. + + Copyright 2018 the xRAN Forum. + + 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 xRAN Forum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission."; + + revision "2018-07-20" { + description + "version 1.0.0 - First release of the xRAN YANG M-Plane models. + + This version of the model supports v01.00 of the corrsponding xRAN + M-Plane Specification."; + reference "XRAN-FH.MP.0-v01.00"; + } + + // rpc-statements + rpc ald-communication { + description + "Rpc to support communication between lls-CU and Antenna Line Devices"; + + input { + leaf port-id { + type leafref { + path "/ap:ald-ports-io/ap:ald-port/ap:port-id"; + } + mandatory true; + description + "Unique ALD port identifier reported by radio"; + } + + leaf ald-req-msg { + type binary { + length "0..1200"; + } + + description + "Response message to be forwarded to ALD in type of binary-string"; + } + } + + output { + leaf port-id { + type leafref { + path "/ap:ald-ports-io/ap:ald-port/ap:port-id"; + } + mandatory true; + description + "Unique ALD port identifier reported by radio"; + } + + leaf status { + type enumeration { + enum ACCEPTED { + description + "Operation was accepted, message was processed towards ALD and response is provided"; + } + enum REJECTED { + description + "Operation was rejected by RU"; + } + } + mandatory true; + + description + "Status of RPC handling seen from RU perspective"; + } + + leaf error-message { + when "../status='REJECTED'"; + type string; + + description + "Detailed error message when the status is rejected. E.g. wrong ALD port identifier was used in RPC received from Netconf Client"; + } + + leaf ald-resp-msg { + type binary { + length "0..1200"; + } + + description + "Response message forwarded from ALD in type of binary-string"; + } + + leaf frames-with-wrong-crc { + type uint32; + + description + "Number of frames with incorrect CRC (FCS) received from ALD - running counter"; + } + + leaf frames-without-stop-flag { + type uint32; + + description + "Number of frames without stop flag received from ALD - running counter"; + } + + leaf number-of-received-octets { + type uint32; + + description + "Number of octets received from HDLC bus - running counter"; + } + } + } +} diff --git a/data-model/yang/published/xran/xran-beamforming.yang b/data-model/yang/published/xran/xran-beamforming.yang new file mode 100644 index 0000000..3e6c995 --- /dev/null +++ b/data-model/yang/published/xran/xran-beamforming.yang @@ -0,0 +1,325 @@ +module xran-beamforming { + yang-version 1.1; + namespace "urn:xran:beamforming:1.0"; + prefix "xran-bf"; + + import xran-uplane-conf { + prefix up; + } + + import xran-module-cap { + prefix "mcap"; + } + + organization "xRAN Forum"; + + contact + "www.xran.org"; + + description + "This module defines the beamforming capabilitites of an RU. + Only RUs that support beamforming shall support this module. + + Copyright 2018 the xRAN Forum. + + 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 xRAN Forum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission."; + + revision "2018-07-20" { + description + "version 1.0.0 - First release of the xRAN YANG M-Plane models. + + This version of the model supports v01.00 of the corrsponding xRAN + M-Plane Specification."; + reference "XRAN-FH.MP.0-v01.00"; + } + + feature MODIFY-BF-CONFIG { + description + "This feature indicates that the RU supports an optional feature to + modify beamforming configuration information"; + } + + typedef beam-reference { + type leafref { + path "/xran-bf:beamforming-config/xran-bf:per-band-config/xran-bf:beam-information/xran-bf:beamforming-properties/xran-bf:beam-id"; + } + description + "This type is used by data models that need to reference a beam."; + } + container beamforming-config { + config false; + description + "A set of configuration data for the RU's beam forming functionality"; + + list per-band-config { + key band-number; + description "beamforming information per band"; + leaf band-number { + type leafref { + path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number"; + } + description + "band information for the beamforming information + related to the band number of module capabilities"; + } + + leaf-list tx-array { + type leafref { + path "/up:user-plane-configuration/up:tx-arrays/up:name"; + } + description "tx arrays belonging to this band number"; + } + leaf-list rx-array { + type leafref { + path "/up:user-plane-configuration/up:rx-arrays/up:name"; + } + description "rx arrays belonging to this band number"; + } + container static-properties { + description + "the static beamforming related information"; + leaf beamforming-type { + type enumeration { + enum COMMON { + description "A common beam ID is used for entire band"; + } + enum DIFFERENT { + description "Different beam IDs can be assigned for each PRB/RE"; + } + } + description + "This value indicates supporting beamforming type in RU"; + } + + leaf number-of-beams { + type uint16; + description + "This value indicates the number of beam patterns RU can generate + and apply to the signal of each RU port (both DL and UL). + This value is equivalent to the maximum number of used beam IDs."; + } + + leaf number-of-polarizations { + type uint8; + description + "This value indicates the number of polarizations supported at RU."; + } + + leaf number-of-panels { + type uint8; + description + "This value indicates the number of antenna panels supported at RU."; + } + } + + container beam-information { + description + "beam information which relates to the current beamforming configuration"; + leaf number-of-beamforming-properties { + type uint16; + description + "This parameter indicates the number of beamFormingProperties entries."; + } + + list beamforming-properties { + key beam-id; + description + "Array for the beamforming properties at RU. + These parameters can be used by the beamforming control by the NETCONF client. + 'numberOfBeamformingProperties' indicaets the size of the array."; + + + leaf beam-id { + type uint16; + description + "This value indicates the beam ID whose beamforming properties are + described in the container."; + } + + container beamforming-property { + description + "Structure containing single set of beamforming properties."; + + leaf coarse-fine { + type enumeration { + enum COARSE-BEAM { + description "the beam-id corresponds to a coarse beam"; + } + enum FINE-BEAM { + description "the beam-id corresponds to a fine beam"; + } + } + description + "This value indicates the beam resolution."; + } + + leaf beam-groups-id { + type uint16; + description + "Beams with same beamGroupsID can be transmitted simultaneously."; + } + + leaf-list coarse-fine-beam-relation { + type beam-reference; + description + "list of related coarse/fine beam."; + + } + + leaf-list neighbor-beam { + type beam-reference; + description + "A list of neighbor beams which might restrict co-scheduling due + to interference."; + } + } + } + } + } + container ue-specific-beamforming { + presence + "Indicates that the RU supports optional Section Type '6' Fields + (used for sending channel information for a specific UE"; + config false; + description + "Information related to supput by the RU of Section Type 6 for + signalling UE-specific channel information to the RU"; + leaf max-number-of-ues { + type uint8; + description + "Indicates tha maximum number of UE -specific channel information + data sets supported by the RU"; + } + } + container operational-properties { + if-feature MODIFY-BF-CONFIG; + description "properties for dynamic beam weight/attribute support"; + + leaf number-of-writeable-beamforming-files { + type uint8 { + range "1 .. max"; + } + mandatory true; + description + "This leaf indicates the maximum number of writeable beamforming files + containing beamweights and/or attributes that the RU can store, taking + into account the maximum number of beam-IDs as defined by 3GPP + TS38.214 v15.x.x"; + } + + leaf update-bf-non-delete { + type boolean; + default false; + description + "When set to TRUE, indicates that an RU supports the capability + to apply the modified beamforming weight information by using rpc + activate-beamforming-weight without deletion of tx-array-carriers and + rx-array-carriers in advance, i.e., to a deactivated carrier"; + } + + leaf persistent-bf-files { + type boolean; + default false; + description + "When set to TRUE, indicates that the RU supports the capability + to store the modified beamforming weight information file in the + reset persistent memory"; + } + } + + leaf beamforming-trough-attributes-supported { + type boolean; + description + "Informs if beamforming can be controlled providing attributes to RU + (like angles, beamwidth)."; + } + + leaf beamforming-trough-ue-channel-info-supported { + type boolean; + description + "Informs if beamforming can be controlled by UE information."; + } + } + + rpc activate-beamforming-config { + if-feature MODIFY-BF-CONFIG; + description + "rpc to activate beamforming config information by indicating the file + stored in the folder xRAN/beam-weights in advance"; + input { + leaf beamforming-config-file { + type string; + mandatory true; + description + "file name stored in xRAN/beamforming/ folder is indicated"; + } + leaf band-number { + type leafref { + path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number"; + } + description + "The band to which the beam configuration applies"; + } + } + output { + leaf status { + type enumeration { + enum ACCEPTED { + description "RU has accepted the beamforming weight/attribute file"; + } + enum REJECTED { + description + "RU has rejected the beamforming weight/attribute file. The RU + should then use the default beamforming file."; + } + } + mandatory true; + description "Status of activation of beamforming config information"; + } + leaf error-message { + when "../status='REJECTED'"; + type string; + description + "Detailed error Message when the status is rejected, e.g., + because new beam forming file is attempted to be applied to a + carrier which is still active, or the beam-id does not exist."; + } + } + } + + //notification statement + notification beamforming-information-update { + leaf band-number { + type leafref { + path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number"; + } + description + "The band to which the beamforming information is updated"; + } + description + "this notification indicates that the beamforming properties are updated"; + + } +} diff --git a/data-model/yang/published/xran/xran-delay-management.yang b/data-model/yang/published/xran/xran-delay-management.yang new file mode 100644 index 0000000..e21cf93 --- /dev/null +++ b/data-model/yang/published/xran/xran-delay-management.yang @@ -0,0 +1,264 @@ +module xran-delay-management { + yang-version 1.1; + namespace "urn:xran:delay:1.0"; + prefix "xran-delay"; + + organization "xRAN Forum"; + + contact + "www.xran.org"; + + description + "This module covers off aspects of lls-CU to RU delay management, + including config data related to RU transmission and reception + windows. + + Copyright 2018 the xRAN Forum. + + 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 xRAN Forum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission."; + + revision "2018-07-20" { + description + "version 1.0.0 - First release of the xRAN YANG M-Plane models. + + This version of the model supports v01.00 of the corrsponding xRAN + M-Plane Specification."; + reference "XRAN-FH.MP.0-v01.00"; + } + + feature ADAPTIVE-RU-PROFILE { + description + "This feature indicates that the RU supports adaptive RU delay profile + based on information provided by the NETCONF client."; + } + + container delay-management { + description "top level tree covering off lls-CU to RU delay management"; + + list bandwidth-scs-delay-state { + key "bandwidth subcarrier-spacing"; + description + "Array of structures containing sets of parameters for delay management."; + + leaf bandwidth { + type uint32 { + range "200 | 1400 | 3000 | 5000 | 10000 | 15000 | 20000 | 25000 | + 30000 | 40000 | 50000 | 60000 | 70000 | 80000 | 90000 | 100000 + | 200000 | 400000" ; + } + units kilohertz; + description + "transmission bandwidth configuration in units of kHz - + covering NBIoT through to New Radio - see 38.104"; + } + leaf subcarrier-spacing { + type uint32 { + range "0 .. 240000 "; + } + units Hertz; + description "subcarrier spacing in Hz"; + } + + container ru-delay-profile { + config false; + description "container for RU delay parameters"; + leaf t2a-min-up { + type uint32; + units nanoseconds; + mandatory true; + description + "the minimum RU data processing delay between receiving IQ data + message over the fronthaul interface and transmitting + the corresponding first IQ sample at the antenna"; + } + leaf t2a-max-up { + type uint32; + units nanoseconds; + mandatory true; + description + "the earliest allowable time when a data packet is received before + the corresponding first IQ sample is transmitted at the antenna"; + } + leaf t2a-min-cp-dl { + type uint32; + units nanoseconds; + mandatory true; + description + "the minimum RU data processing delay between receiving downlink + real time control plane message over the fronthaul interface and + transmitting the corresponding first IQ sample at the antenna"; + } + leaf t2a-max-cp-dl { + type uint32; + units nanoseconds; + mandatory true; + description + "the earliest allowable time when a downlink real time control message + is received before the corresponding first IQ sample is transmitted at + the antenna"; + } + leaf tadv-cp-dl { + type uint32; + units nanoseconds; + mandatory true; + description + "the time difference (advance) between the reception window for + downlink real time Control messages and reception window for the + corresponding IQ data messages."; + } + leaf ta3-min { + type uint32; + units nanoseconds; + mandatory true; + description + "the minimum RU data processing delay between receiving an IQ sample + at the antenna and transmitting the last data sample over the + fronthaul interface"; + } + leaf ta3-max { + type uint32; + units nanoseconds; + mandatory true; + description + "the maximum RU data processing delay between receiving an IQ sample + at the antenna and transmitting the first data sample over the + fronthaul interface"; + } + leaf t2a-min-cp-ul { + type uint32; + units nanoseconds; + mandatory true; + description + "the minimum RU data processing delay between receiving real time + up-link control plane message over the fronthaul interface and + recieving the first IQ sample at the antenna"; + } + leaf t2a-max-cp-ul { + type uint32; + units nanoseconds; + mandatory true; + description + "the earliest allowable time when a real time up-link control message + is received before the corresponding first IQ sample is received at + the antenna"; + } + } + } + + container adaptive-delay-configuration { + if-feature ADAPTIVE-RU-PROFILE; + description "container for adaptive delay parameters"; + list bandwidth-scs-delay-state { + key "bandwidth subcarrier-spacing"; + description + "Array of structures containing sets of parameters for delay management."; + + leaf bandwidth { + type uint32 { + range "200 | 1400 | 3000 | 5000 | 10000 | 15000 | 20000 | 25000 | + 30000 | 40000 | 50000 | 60000 | 70000 | 80000 | 90000 | 100000 + | 200000 | 400000" ; + } + units kilohertz; + description + "transmission bandwidth configuration in units of kHz - + covering NBIoT through to New Radio - see 38.104"; + } + leaf subcarrier-spacing { + type uint32 { + range "0 .. 240000 "; + } + units Hertz; + description "subcarrier spacing in Hz"; + } + container lls-cu-delay-profile { + description + "lls-CU provided delay profile for adaptive delay configuration"; + leaf t1a-max-up-lls-cu { + type uint32; + units nanoseconds; + description + "the earliest possible time which the lls-CU can support transmiting + an IQ data message prior to transmission of the corresponding IQ + samples at the antenna"; + } + leaf tx-max-lls-cu { + type uint32; + units nanoseconds; + description + "The maximum amount of time which the lls-CU requires to transmit + all downlink user plane IQ data message for a symbol"; + } + leaf ta4-max-lls-cu { + type uint32; + units nanoseconds; + description + "the latest possible time which the lls-CU can support receiving the + last uplink user plane IQ data message for a symbol."; + } + leaf rx-max-lls-cu { + type uint32; + units nanoseconds; + description + "The maximum time difference the lls-CU can support between + receiving the first user plane IQ data message for a symbol and + receiving the last user plane IQ data message for the same symbol"; + } + } + } + + container transport-delay { + description + "lls-CU provided transport-delay parameters"; + leaf t12-min { + type uint32; + units nanoseconds; + description + "the minimum measured delay between CU port-ID and RU port-ID"; + } + leaf t34-min { + type uint32; + units nanoseconds; + description + "the minimum measured delay between RU port-ID and CU port-ID"; + } +// additional leaf added by Samsung + leaf t12-max { + type uint32; + units nanoseconds; + description + "the maximum measured delay between CU port-ID and RU port-ID"; + } +// additional leaf added by Samsung + leaf t34-max { + type uint32; + units nanoseconds; + description + "the maximum measured delay between RU port-ID and CU port-ID"; + } + } + } + } +} diff --git a/data-model/yang/published/xran/xran-dhcp.yang b/data-model/yang/published/xran/xran-dhcp.yang new file mode 100644 index 0000000..8b2a94e --- /dev/null +++ b/data-model/yang/published/xran/xran-dhcp.yang @@ -0,0 +1,183 @@ +module xran-dhcp { + yang-version 1.1; + namespace "urn:xran:dhcp:1.0"; + prefix "xran-dhcp"; + + import ietf-interfaces { + prefix "if"; + } + + import ietf-inet-types { + prefix "inet"; + } + + import ietf-dhcpv6-types { + prefix dhcpv6-type; + revision-date 2018-01-30; + } + + organization "xRAN Alliance"; + + contact + "www.xran.org"; + + description + "This module defines the YANG definitions for managng the DHCP client on + the xRAN Radio Unit. + + Copyright 2018 Members of the xRAN 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 xRAN Forum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission."; + + revision "2018-07-20" { + description + "version 1.0.0 - First release of the xRAN YANG M-Plane models. + + This version of the model supports v01.00 of the corrsponding xRAN + M-Plane Specification."; + reference "XRAN-FH.MP.0-v01.00"; + } + + typedef netconf-client-id { + type union { + type inet:ip-address; + type inet:uri; + } + description "A NETCONF client identifier"; + } + + grouping netconf-clients { + description "the netconf clients discovered using DHCP"; + list netconf-clients{ + key client; + description "A list of IP addresses or URIs for NETCONF clients"; + leaf client{ + type netconf-client-id; + description "the client identifier"; + } + leaf optional-port { + type inet:port-number; + description "an optional (non-default) port"; + } + } + } + + grouping dhcpv4-option { + description "DHCPv4 Configuration options"; + + leaf dhcp-server-identifier { + type inet:ip-address; + description "DHCP server identifier"; + } + leaf domain-name { + type string; + description "Name of the domain"; + } + leaf-list domain-name-servers { + type inet:ip-address; + description "A list of DNS servers"; + } + leaf interface-mtu { + type uint32 { + range "0..65535"; + } + description "Minimum Transmission Unit (MTU) of the interface"; + } + leaf-list default-gateways{ + type inet:ip-address; + description "the list of default gateways on the RUs subnet"; + } + leaf vendor-specific-option { + type string; + description "The vendor specific option #43"; + } + uses netconf-clients; + } + + grouping dhcpv6-option { + description "DHCPv6 Configuration options"; + + container dhcp-server-identifier{ + description "dhcpv6 server identifief"; + uses dhcpv6-type:duid; + } + leaf domain-name { + type string; + description "Name of the domain"; + } + leaf-list domain-name-servers { + type inet:ip-address; + description "A list of DNS servers"; + } + uses netconf-clients; + } + + container dhcp { + config false; + description + "DHCP client configuration"; + + list interfaces { + key "interface"; + description "Interface configuration"; + + leaf interface { + type if:interface-ref; + description "Name of the interface"; + } + + container dhcpv4 { + description "DHCPv4 information"; + leaf client-id { + type string; + description "DHCP client identifier"; + } + uses dhcpv4-option; + } + container dhcpv6 { + description "DHCPv6 information"; + container dhcp-client-identifier{ + description "dhcpv6 client identifief"; + uses dhcpv6-type:duid; + } + uses dhcpv6-option; + } + } + + container m-plane-dhcp { + description "leafs covering off DHCP aspects of m-plane operations"; + leaf private-enterprise-number { + type uint16; + description "the private eneteprrise number allocated to xRAN"; + } + leaf vendor-class-data { + type string; + description + "The string used in DHCPv4 option 60 or DHCPv4 option 124 and + DHCPv6 option 16"; + } + } + } +} diff --git a/data-model/yang/published/xran/xran-ecpri-delay.yang b/data-model/yang/published/xran/xran-ecpri-delay.yang new file mode 100644 index 0000000..4929a32 --- /dev/null +++ b/data-model/yang/published/xran/xran-ecpri-delay.yang @@ -0,0 +1,125 @@ +module xran-ecpri-delay { + yang-version 1.1; + namespace "urn:xran:message5:1.0"; + prefix "xran-msg5"; + + import xran-processing-element { + prefix "element"; + } + + organization "xRAN Forum"; + + contact + "www.xran.org"; + + description + "This module is an optional module for supporting eCPRI message 5 handling + used for eCPRI based delay measurements. + + Copyright 2018 the xRAN Forum. + + 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 xRAN Forum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission."; + + revision "2018-07-20" { + description + "version 1.0.0 - First release of the xRAN YANG M-Plane models. + + This version of the model supports v01.00 of the corrsponding xRAN + M-Plane Specification."; + reference "XRAN-FH.MP.0-v01.00"; + } + + container ecpri-delay-message { + description "top level tree covering off lls-CU to RU msg5 delay measurement"; + + container ru-compensation { + config false; + description + "leafs for ru timing compensation based on message 5 handling"; + leaf tcv2 { + type uint32; + units nanoseconds; + description + "a compensation value to account for expected delay from packet + receipt at R2 to timestamping in the RU"; + } + leaf tcv1 { + type uint32; + units nanoseconds; + description + "a compensation value to account for expected processing time from + timestamping in the RU until actual packet transmission at R3"; + } + } + + leaf enable-message5 { + type boolean; + default false; + description + "whether RU's eCPRI message 5 handling is enabled."; + } + + container message5-sessions { + description "session information for eCPRI message 5"; + + list session-parameters { + key "session-id"; + description "list of MSG5 session information"; + leaf session-id { + type uint32; + description "Session ID for MSG5 responder"; + } + leaf processing-element-name { + type leafref { + path "/element:processing-elements/element:ru-elements/element:name"; + } + description "the name of the processing element used for MSG5"; + } + container flow-state { + config false; + description "MSG5 flow state"; + leaf responses-transmitted { + type uint32; + description + "The total number of eCPRI mesage 5 response messages transmitted by + the RU."; + } + leaf requests-transmitted { + type uint32; + description + "The total number of eCPRI mesage 5 request messages transmitted by + the RU."; + } + leaf followups-transmitted { + type uint32; + description + "The total number of eCPRI mesage 5 follow up messages transmitted by + the RU."; + } + } + } + } + } +} diff --git a/data-model/yang/published/xran/xran-externalio.yang b/data-model/yang/published/xran/xran-externalio.yang new file mode 100644 index 0000000..a78a710 --- /dev/null +++ b/data-model/yang/published/xran/xran-externalio.yang @@ -0,0 +1,144 @@ +module xran-externalio { + yang-version 1.1; + namespace "urn:xran:external-io:1.0"; + prefix "xran-io"; + + organization "xRAN Forum"; + + contact + "www.xran.org"; + + description + "This module defines the input state and output configuration for + the xRAN Radio Unit external IO. + + Copyright 2018 the xRAN Forum. + + 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 xRAN Forum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission."; + + revision "2018-07-20" { + description + "version 1.0.0 - First release of the xRAN YANG M-Plane models. + + This version of the model supports v01.00 of the corrsponding xRAN + M-Plane Specification."; + reference "XRAN-FH.MP.0-v01.00"; + } + + container external-io { + description + "External IO information."; + list input { + key "name"; + config false; + description + "Leaf nodes describing external line inputs"; + leaf name { + type string { + length "1..255"; + } + description + "A name that is unique across the RU that identifies an input port instance. + This name may be used in fault management to refer to a fault source + or affected object"; + } + leaf port-in { + type uint8; + description + "A number which identifies an external input port."; + } + + leaf line-in { + type boolean; + default true; + description + "Value TRUE indicates that circuit is open. + Value FALSE indicates that circuit is closed. + + Usually when nothing is connected to the line the value is TRUE. + The details of external line-in implementation are HW specific."; + } + } + + list output { + key "name"; + description + "Leaf nodes describing external line outputs"; + leaf name { + type string { + length "1..255"; + } + description + "A name that is unique across the RU that identifies an output port instance. + This name may be used in fault management to refer to a fault source + or affected object"; + } + leaf port-out { + type uint8; + mandatory true; + description + "A number which identifies an external output port."; + } + + leaf line-out { + type boolean; + default true; + description + "Value TRUE indicates that circuit is in its natural state. + Value FALSE indicates that circuit is not in its natural state."; + } + } + } + + notification external-input-change { + description + "Notification used to indicate that external line input has changed state"; + container current-input-notification { + description "a container for the state of the input ports"; + list external-input { + key "name"; + description "a list of the input ports and their state"; + leaf name{ + type leafref{ + path "/external-io/input/name"; + } + description "the name of the ald-port"; + } + leaf io-port { + type leafref{ + path "/external-io/input/port-in"; + } + description "the external input port"; + } + leaf line-in { + type leafref{ + path "/external-io/input/line-in"; + } + description "the state of the external input port"; + } + } + } + } +} diff --git a/data-model/yang/published/xran/xran-fan.yang b/data-model/yang/published/xran/xran-fan.yang new file mode 100644 index 0000000..251f32f --- /dev/null +++ b/data-model/yang/published/xran/xran-fan.yang @@ -0,0 +1,110 @@ +module xran-fan { + yang-version 1.1; + namespace "urn:xran:fan:1.0"; + prefix "xran-fan"; + + + organization "xRAN Forum"; + + contact + "www.xran.org"; + + description + "This module defines the state of the RU's fans. + + Copyright 2018 the xRAN Forum. + + 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 xRAN Forum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission."; + + revision "2018-07-20" { + description + "version 1.0.0 - First release of the xRAN YANG M-Plane models. + + This version of the model supports v01.00 of the corrsponding xRAN + M-Plane Specification."; + reference "XRAN-FH.MP.0-v01.00"; + } + + typedef percent { + type uint16 { + range "0 .. 100"; + } + description "Percentage"; + } + + container fan-tray { + config false; + description "top level tree covering off operational state of the fans"; + list fan-state { + key name; + description "a list of the fans based on their unique names"; + leaf name { + type string { + length "1..255"; + } + description + "A name that is unique across the RU that identifies a fan instance. + This name may be used in fault management to refer to a fault source + or affected object"; + } + leaf fan-location { + type uint8; + description "A number indicating the location of the FAN in the fan tray"; + } + leaf present-and-operating { + type boolean; + mandatory true; + description + "Indicates if a fan is present and operating in the location"; + } + leaf vendor-code { + when "../present-and-operating = 'true'"; + type uint8 { + range "0..7"; + } + description + "Indicates fan vendor code. Fan vendors are detected with ID pins + using 3 bits digital inputs. + + Optional node included when the NETCONF Server has determined + the fan vendor code."; + } + leaf fan-speed { + when "../present-and-operating = 'true'"; + type percent; + description + "Measured fan speed. Expressed as percentage of max fan speed. + + Optional node included when the fan speed can be measured."; + } + leaf target-speed { + when "../present-and-operating = 'true'"; + type uint16; + units rpm; + description "the target speed of the fan"; + } + } + } +} diff --git a/data-model/yang/published/xran/xran-file-management.yang b/data-model/yang/published/xran/xran-file-management.yang new file mode 100644 index 0000000..c63ffd0 --- /dev/null +++ b/data-model/yang/published/xran/xran-file-management.yang @@ -0,0 +1,174 @@ +module xran-file-management { + yang-version 1.1; + namespace "urn:xran:file-management:1.0"; + prefix "xran-file-mgmt"; + + + organization "xRAN Forum"; + + contact + "www.xran.org"; + + description + "This module defines the configuration and operations for handling upload. + + Copyright 2018 the xRAN Forum. + + 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 xRAN Forum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission."; + + revision "2018-07-20" { + description + "version 1.0.0 - First release of the xRAN YANG M-Plane models. + + This version of the model supports v01.00 of the corrsponding xRAN + M-Plane Specification."; + reference "XRAN-FH.MP.0-v01.00"; + } + + grouping file-path-grouping { + description "Complete logical path of the file on the RU to upload/download + (no wildcard is allowed) ex : /xRAN/log/syslog.1"; + + leaf local-logical-file-path { + type string; + mandatory true; + description "Local logical file path"; + } + + leaf remote-file-path { + type string; + mandatory true; + description "URI specifying the remote-file-path on lls-CU/NMS. + Format:sftp://user[:password]@host[:port]/path"; + } + } + + grouping output-status-grouping { + description "Status grouping"; + + leaf status { + type enumeration { + enum SUCCESS { + description "";} + enum FAILURE { + description "";} + } + description "Operation status"; + } + + leaf reject-reason { + when "../status = 'FAILURE'"; + type string; + description ""; + } + } + + grouping credential-information{ + description "Type of authentication to use for SFTP upload or download."; + choice credentials { + case password { + container password { + presence true; + leaf password { + type string; + mandatory true; + description + "password needed for authentication."; + } + description + "password authentication method in use"; + } + } + case certificate { + container certificate { + presence true; + description + "certificate authentication method in use"; + } + } + description ""; + } + } + + rpc file-upload { + description "File upload over SFTP from RU to NETCONF client"; + input { + uses file-path-grouping; + uses credential-information; + } + output { + uses output-status-grouping; + } + } + + rpc retrieve-file-list { + description "List all the files in the logical xRAN unit (* is allowed as wild-card)."; + input { + leaf logical-path { + type string; + mandatory true; + description "xRAN unit of which the files are to be listed. + ex : xRAN/log, xRAN/PM, xRAN/transceiver"; + } + leaf file-name-filter { + type string; + description "Filter which are to be applied on the result list of file names (* is allowed as wild-card)."; + } + + } + output { + uses output-status-grouping; + leaf-list file-list { + when "../status = 'SUCCESS'"; + type string; + description "List of files in the xRAN unit with the filter applied."; + } + } + } + + notification file-upload-notification { + uses file-path-grouping; + uses output-status-grouping; + description ""; + } + + rpc file-download { + description + "Management plane triggered to generate the download file of RU."; + input { + uses file-path-grouping; + uses credential-information; + } + output { + uses output-status-grouping; + } + } + + notification file-download-event { + uses file-path-grouping; + uses output-status-grouping; + description ""; + } +} diff --git a/data-model/yang/published/xran/xran-fm.yang b/data-model/yang/published/xran/xran-fm.yang new file mode 100644 index 0000000..9e034e9 --- /dev/null +++ b/data-model/yang/published/xran/xran-fm.yang @@ -0,0 +1,165 @@ +module xran-fm { + yang-version 1.1; + namespace "urn:xran:fm:1.0"; + prefix "xran-fm"; + + import ietf-yang-types { + prefix yang; + revision-date 2013-07-15; + } + + organization "xRAN Forum"; + + contact + "www.xran.org"; + + description + "This module defines alarm reporting mechanism. + + Copyright 2018 the xRAN Forum. + + 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 xRAN Forum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission."; + + revision "2018-07-20" { + description + "version 1.0.0 - First release of the xRAN YANG M-Plane models. + + This version of the model supports v01.00 of the corrsponding xRAN + M-Plane Specification."; + reference "XRAN-FH.MP.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 { + 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 { + 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/data-model/yang/published/xran/xran-hardware.yang b/data-model/yang/published/xran/xran-hardware.yang new file mode 100644 index 0000000..7788cb1 --- /dev/null +++ b/data-model/yang/published/xran/xran-hardware.yang @@ -0,0 +1,211 @@ +module xran-hardware { + yang-version 1.1; + namespace "urn:xran:hardware:1.0"; + prefix "xran-hw"; + + import ietf-hardware { + prefix hw; + } + import iana-hardware { + prefix ianahw; + } + + organization "xRAN Forum"; + + contact + "www.xran.org"; + + description + "This module defines the YANG definitions for managng the xRAN Radio Unit + hardware. + + Copyright 2018 the xRAN Forum. + + 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 xRAN Forum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission."; + + revision "2018-07-20" { + description + "version 1.0.0 - First release of the xRAN YANG M-Plane models. + + This version of the model supports v01.00 of the corrsponding xRAN + M-Plane Specification."; + reference "XRAN-FH.MP.0-v01.00"; + } + + feature ENERGYSAVING { + description + "Indicates that the Radio Unit supports energy saving state."; + } + + // identity statements + identity XRAN-RADIO { + base ianahw:module; + description + "Module used as it represents a self-contained sub-system + used in /hw:/hardware/hw:component/hw:class"; + } + + // 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 RU is functioning correctly."; + } + enum DEGRADED { + description + "The RU may be reporting a major alarm or may be reporting a critical + alarm that is only impacting one or more subcomponent, but where the + RU's implementation permit it to continue operation (server traffic) + in a degraded state. + + Used for example, when the RU has M identical sub-components and + when a critical alarm is imapcting only N subcomponents, where N@[:]"; + } + + choice credentials { + description + "Type of authentication to use for SFTP upload."; + + case password { + container password { + presence true; + leaf password { + type string; + mandatory true; + + description + "password needed for authentication."; + } + description + "password authentication method in use"; + } + } + case certificate { + container certificate { + presence true; + description + "certificate authentication method in use"; + } + } + } + } + + leaf transceiver-measurement-interval { + type uint16; + description + "measurement interval to measure the performance of transceiver + measurement objects periodically."; + } + + leaf rx-window-measurement-interval { + type uint16; + description + "measurement interval to measure the performance of reception + window measurement objects periodically."; + } + + leaf notification-interval { + type uint16; + description + "notification interval for the measurement result to be notified + periodically."; + } + + leaf file-upload-interval { + type uint16; + description + "file upload interval for the measurement result file to be + uploaded periodically."; + } + + list transceiver-measurement-objects { + key "measurement-object"; + leaf measurement-object { + type enumeration { + enum RX_POWER { + description + "Measured Rx input power in mW"; + } + enum TX_POPWER { + description + "Measured Tx input power in mW."; + } + enum TX_BIAS_COUNT { + description + "Internally measured Tx Bias Current in mA"; + } + enum VOLTAGE { + description + "Internally measured transceiver supply voltage in mV"; + } + enum TEMPERATURE { + description + "Internally measured optional laser temperature in degrees Celsius."; + } + } + description "Target metric to measure the performance"; + } + + leaf active { + type boolean; + default false; + description + "Enable/disable the performance measurement per Object"; + } + + leaf-list report-info { + type enumeration { + enum MAXIMUM { + description + "to report maximum value and its recorded time within the + measurement-interval for the measurement-object."; + } + enum MINIMUM { + description + "to report minimum value and its recorded time within the + measurement-interval for the measurement-object."; + } + enum FIRST { + description + "to report first value and its recorded time within the + measurement-interval for the measurement-object."; + } + enum LATEST { + description + "to report latest value and its recorded time within the + measurement-interval for the measurement-object."; + } + enum FREQUENCY_TABLE { + description + "to report frequency bin table within the + measurement-interval for the measurement-object."; + } + } + description "The reporting info to the measurement object."; + } + + leaf object-unit { + type enumeration { + enum PORT_NUMBER { + description + "unit to measure the performance per object-id"; + } + } + mandatory true; + description "unit to measure the performance per object-id."; + } + + leaf function { + type enumeration { + enum RAW { + description + "the value is expressed by real value."; + } + enum LOG_10 { + description + "the value is expressed by logarithm with base 10."; + } + } + + description + "the value to be recorded for transceiver-measurement + by real value or log 10."; + } + + leaf bin-count { + type uint32; + + description + "the number of bin for the frequency table."; + } + + leaf lower-bound { + type decimal64 { + fraction-digits 4; + } + + description + "the lower value of the first bin of frequency table."; + } + + leaf upper-bound { + type decimal64 { + fraction-digits 4; + } + + description + "the upper value of the last bin of frequency table."; + } + uses transceiver-measurement-result-grouping; + + description + "configuration and measurement result for the transceiver-measurement."; + } + + list rx-window-measurement-objects { + key "measurement-object"; + leaf measurement-object { + type enumeration { + enum RX_ON_TIME { + description + "the number of data packets, received on time within + the reception window."; + } + enum RX_EARLY { + description + "the number of data packets, received before + the reception window."; + } + enum RX_LATE { + description + "the number of data packets, received after + the reception window."; + } + enum RX_CORRUPT { + description + "the number of data packets, which are corrupt or whose header + is incorrect."; + } + enum RX_DUPL { + description + "the number of data packets, which is duplicated with other packets, + received within the measurement period."; + } + enum RX_TOTAL { + description + "the total number of received data packets."; + } + } + description + "target reception window metric to measure the performance."; + } + + leaf active { + type boolean; + default false; + description + "Enable/disable the performance measurement per reception window + measurement object."; + } + + leaf object-unit { + type enumeration { + enum RU { + description + "the reception window stats are counted per RU."; + } + enum TRANSPORT { + if-feature GRANULARITY-TRANSPORT-MEASUREMENT; + description + "the reception window stats are counted per transport flow. + When there are multiple transport flows between lls-CU and RU, + e.g. multiple sets of lls-cu mac address, ru mac address and + vlan-id, the reception window stats per transport flow + are counted in this case. + This configuration is allowed only when RU supports + a feature GRANULARITY-TRANSPORT-MEASUREMENT."; + } + enum EAXC_ID { + if-feature GRANULARITY-EAXC-ID-MEASUREMENT; + + description + "the reception window stats are counted per eAxC ID, which is + used in the header of receivd data packet. + This configuration is allowed only when RU supports + a feature GRANULARITY-EAXC-ID-MEASUREMENT."; + } + } + description + "unit to measure the performance per object-id."; + } + + leaf report-info { + type enumeration { + enum COUNT { + description + "the number of data packet are counted for the reception + window stats."; + } + } + description + "The reporting info to the measurement object."; + } + + uses rx-window-measurement-result-grouping; + + description + "configuration and measurement result for the reception window stats"; + } + } + + notification measurement-result-stats { + list transceiver-stats { + key "measurement-object"; + leaf measurement-object { + type leafref { + path "/performance-measurement-objects/transceiver-measurement-objects/measurement-object"; + } + + description + "measurement-object for the transceiver-measurement"; + } + + uses start-and-end-time; + uses transceiver-measurement-result-grouping; + + description + "measurement result of transceiver-measurement per measurement-object"; + } + + list rx-window-stats { + key "measurement-object"; + leaf measurement-object { + type leafref { + path "/performance-measurement-objects/rx-window-measurement-objects/measurement-object"; + } + + description + "measurement-object for the reception window measurement"; + } + uses start-and-end-time; + uses rx-window-measurement-result-grouping; + + description + "measurement result for the reception window measurement per + measurement-object"; + + } + + description + "notification may contain measurement result for transceiver-stats + and/or rx-window-stats"; + } +} diff --git a/data-model/yang/published/xran/xran-processing-element.yang b/data-model/yang/published/xran/xran-processing-element.yang new file mode 100644 index 0000000..c3809ab --- /dev/null +++ b/data-model/yang/published/xran/xran-processing-element.yang @@ -0,0 +1,237 @@ +module xran-processing-element { + yang-version 1.1; + namespace "urn:xran:processing-element:1.0"; + prefix "xran-elements"; + + import ietf-yang-types { + prefix yang; + } + + import ietf-inet-types { + prefix "inet"; + } + + import ietf-interfaces { + prefix "if"; + } + + import ietf-ip { + prefix "ip"; + } + + import xran-interfaces { + prefix "xran-int"; + } + + organization "xRAN Forum"; + + contact + "www.xran.org"; + + description + "This module defines the YANG definitions for mapping of transport flows to + processing elements. Three options are supported: + i) virtual MAC based mapping + ii) MAC addrress + VLAN-ID based mapping + iii) UDP/IP based mapping + + Copyright 2018 the xRAN Forum. + + 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 xRAN Forum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission."; + + revision "2018-07-20" { + description + "version 1.0.0 - First release of the xRAN YANG M-Plane models. + + This version of the model supports v01.00 of the corrsponding xRAN + M-Plane Specification."; + reference "XRAN-FH.MP.0-v01.00"; + } + + identity XRAN-INTERFACE-TYPE { + base if:interface-type; + description + "This identity is used as a base for all interface types + defined by xRAN."; + } + + identity ALIASMAC-INTERFACE { + base XRAN-INTERFACE-TYPE; + description + "Identity type for alias MAC based CU plane interface, + whwere multiple MAC addresses are used on the same Ethernet interface. "; + } + + identity ETH-INTERFACE { + base XRAN-INTERFACE-TYPE; + description + "identity type for ethernet plus vlan based CU plane interface. "; + } + + identity UDPIP-INTERFACE { + base XRAN-INTERFACE-TYPE; + description + "identity type for UDP/IP based CU plane interface. "; + } + + container processing-elements { + description + "a model defining the mapping between transport flows and arbitrary + xRAN processing elements. A processing element may be then defined for + handling connectivity or delay procedures, or defined with a corresponding + eaxcid for CU plane operations"; + leaf transport-session-type { + type identityref { + base XRAN-INTERFACE-TYPE; + } + description + "the type of transport session used for identifying different processing + elements"; + } + list ru-elements { + key "name"; + description + "the list of transport definitions for each processing element"; + leaf name { + type string { + length "1..255"; + } + description + "A name that is unique across the RU that identifies a processing + element instance. + + This name may be used in fault management to refer to a fault source + or affected object"; + } + container transport-flow { + description + "container for the transport-flow used for CU plane"; + leaf interface-name { + type leafref { + path "/if:interfaces/if:interface/if:name"; + } + description "the interface name "; + } + container aliasmac-flow { + when "derived-from(../../../transport-session-type, 'ALIASMAC-INTERFACE')"; + if-feature xran-int:ALIASMAC-BASED-CU-PLANE; + description "leafs for virtual mac type data flows"; + leaf ru-aliasmac-address { + type leafref { + path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/xran-int:alias-macs"; + } + config false; + mandatory true; + description + "RU's alias MAC address used for alias MAC based flow"; + } + leaf vlan-id { + type leafref { + path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/xran-int:vlan-id"; + } + description + "RU's VLAN-ID used for alias MAC based flow"; + } + leaf llscu-mac-address { + type yang:mac-address; + mandatory true; + description + "lls-CU's MAC address used for alias MAC based flow"; + } + } + container eth-flow { + when "derived-from(../../../transport-session-type, 'ETH-INTERFACE')"; + description "leafs for mac + vlan-id type data flows"; + leaf ru-mac-address { + type leafref { + path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/xran-int:mac-address"; + } + mandatory true; + description + "RU's MAC address used for Ethernet based flow"; + } + leaf vlan-id { + type leafref { + path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/xran-int:vlan-id"; + } + mandatory true; + description + "RU's VLAN-ID used for Ethernet based flow"; + } + leaf llscu-mac-address { + type yang:mac-address; + mandatory true; + description + "lls-CU's MAC address used for alias MAC based flow"; + } + } + container udpip-flow { + when "derived-from(../../../transport-session-type, 'UDPIP-INTERFACE')"; + if-feature xran-int:UDPIP-BASED-CU-PLANE; + description "leafs for UDP/IP type data flows"; + choice address { + leaf ru-ipv4-address { + type leafref { + path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/ip:ipv4/ip:address/ip:ip"; + } + description "RU's IPv4 address"; + } + leaf ru-ipv6-address { + type leafref { + path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/ip:ipv6/ip:address/ip:ip"; + } + description "RU's IPv6 address"; + } + mandatory true; + description "choice of RU IPv4 or IPv6 address"; + } + leaf llscu-ip-address { + type inet:ip-address; + mandatory true; + description "lls-CU's IPv address"; + } + leaf ru-ephemeral-udp-port { + type inet:port-number; + mandatory true; + description + "ephemeral port used by RU"; + } + leaf llscu-ephemeral-udp-port { + type inet:port-number; + mandatory true; + description + "ephemeral port used by lls-CU"; + } + leaf destination-udp { + type inet:port-number; + mandatory true; + description "the well known UDP port number used by eCPRI"; + // fixme - add in a default when allocated by IANA + } + } + } + } + } +} diff --git a/data-model/yang/published/xran/xran-software-management.yang b/data-model/yang/published/xran/xran-software-management.yang new file mode 100644 index 0000000..0759cd6 --- /dev/null +++ b/data-model/yang/published/xran/xran-software-management.yang @@ -0,0 +1,539 @@ +module xran-software-management { + yang-version 1.1; + namespace "urn:xran:software-management:1.0"; + prefix xran-swm; + + import ietf-inet-types { + prefix "inet"; + revision-date 2013-07-15; + } + + import ietf-hardware { + prefix "hw"; + } + + import xran-hardware { + prefix "xran-hw"; + } + + organization "xRAN Forum"; + + contact + "www.xran.org"; + + description + "This module defines operations and configuration for the management of software packages. + This module is derived out of opencpe-firmware-mgmt@2014-02-06.yang + + Copyright 2018 the xRAN Forum. + + 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 xRAN Forum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission."; + + revision "2018-07-20" { + description + "version 1.0.0 - First release of the xRAN YANG M-Plane models. + + This version of the model supports v01.00 of the corrsponding xRAN + M-Plane Specification."; + reference "XRAN-FH.MP.0-v01.00"; + } + + // typedef statements + + container software-inventory { + config false; + description + "Contains information about each software slot and its content."; + + list software-slot { + key name; + min-elements 2; + + description + "Information about available software-slots and their software."; + + leaf name { + type string; + + description + "Name of the software package. This shall be unique to identify the software-slot."; + } + + leaf status { + type enumeration { + enum VALID { + description + "Slot Contains software build considered as proven valid"; + } + enum INVALID { + description + "software build is not currently used by RU. The software is considered by RU as damaged (e.g. wrong CRC)"; + } + enum EMPTY { + description + "W slot does not contain software package."; + } + } + config false; + mandatory true; + + description "Indicates the status of the software slot"; + } + + leaf active { + type boolean; + must "../status = 'VALID'"; + config false; + description + "informs if software stored in particular slot is activated at the moment"; + } + + leaf running { + type boolean; + must "../status = 'VALID'"; + config false; + description + "informs if software stored in particular slot is used at the moment"; + } + + leaf access { + type enumeration { + enum READ_ONLY { + description + "slot intended only for factory software, + activation of such software slot means getting back to factory defaults"; + } + enum READ_WRITE { + description + "slot used for updating software"; + } + } + default READ_WRITE; + config false; + + description + "Indicates the writability of the slot. + A Read-Only software slot is one which has a factory installed software-slot"; + } + + leaf product-code { + type leafref { + path "/hw:hardware/hw:component/xran-hw:product-code"; + } + config false; + + description "product code provided by the vendor, specific to the product. This is derived from manifest file."; + } + + leaf vendor-code { + type string { + length 1..2; + } + config false; + + description + "Unique code of the vendor. This is derived from manifest file."; + } + + leaf build-id { + type string; + config false; + + description + "Identity associated with the software build. This is derived from manifest file."; + } + + leaf build-name { + type string; + config false; + + description + "Name of the build. This is derived from manifest file."; + } + + leaf build-version { + type leafref{ + path "/hw:hardware/hw:component/hw:software-rev"; + } + description "Version of the software build. This is derived from manifest file."; + } + + list files { + key "name"; + config false; + + description "List of all the files present in the software package."; + + leaf name { + type string; + + description + "Name of the file installed in the slot."; + } + + leaf version { + type string; + + description + "Version of the file installed in the slot"; + } + leaf local-path { + type string; + mandatory true; + + description + "Complete path of the file stored locally"; + } + + leaf integrity { + type enumeration { + enum OK { + description "OK - indicates that file integrity is correct"; + } + enum NOK { + description "NOK - indicates corrupted file"; + } + } + config false; + + description + "Result of the file integrity check (checksum calculation) during installation."; + } + } + } + } + // rpc statements + + rpc software-download { + description + "Rpc needed to perform software download operation."; + + input { + leaf remote-file-path { + type inet:uri; + mandatory true; + description + "URI of the software image including username. + The following format is possible: + sftp://@[:]"; + } + + choice credentials { + description + "Type of authentication to use for software downloads."; + + case password { + container password { + presence true; + leaf password { + type string; + mandatory true; + + description + "password needed for authentication."; + } + + description + "password authentication method in use"; + } + } + case certificate { + container certificate { + presence true; + description + "certificate authentication method in use"; + } + } + } + } + output { + leaf status { + type enumeration { + enum STARTED { + description + "Operation has been started without error."; + } + enum FAILED { + description + "Operation cannot be started because of error, more detailed information can be found in error-message."; + } + } + mandatory true; + + description + "Status of the software files download"; + } + leaf error-message { + when "../status = 'FAILED'"; + type string; + + description + "Detailed error Message when the status is failed."; + } + + leaf notification-timeout { + type int32; + units seconds; + default 30; + + description + "Notification timeout is the time NETCONF client shall + wait for a 'download-event' notification from RU. If there is no + 'download-event' notification received within notification-timeout, + NETCONF client shall assume the download timeout/failure, and follow necessary steps."; + } + } + } + + rpc software-install { + description + "Install a previously downloaded software package."; + + input { + leaf slot-name { + type leafref { + path "/software-inventory/software-slot/name"; + } + must "/software-inventory/software-slot[name = current()][active = 'false' and running = 'false']" { + error-message "software-install may be requested only against active::false and running::false slot!"; + } + mandatory true; + + description + "software-slot to which the software shall be installed to."; + } + + leaf-list file-names { + type string; + + description + "Names of the files within software package to be installed"; + } + } + output { + leaf status { + type enumeration { + enum STARTED { + description + "Operation has been started without error."; + } + enum FAILED { + description + "Operation cannot be started because of error, more detailed information can be found in error-message."; + } + } + mandatory true; + + description + "Status of the software package install."; + } + leaf error-message { + when "../status = 'FAILED'"; + type string; + + description + "Detailed error Message when the status is failed."; + } + } + } + + rpc software-activate { + description + "Activate a previously installed software."; + input { + leaf slot-name { + type leafref { + path "/software-inventory/software-slot/name"; + } + mandatory true; + + description + "Slot name on which software has to be activated."; + } + } + output { + leaf status { + type enumeration { + enum STARTED { + description + "Operation has been started without error."; + } + enum FAILED { + description + "Operation cannot be started because of error, more detailed information can be found in error-message."; + } + } + mandatory true; + + description + "Status of the software files activation"; + } + leaf error-message { + when "../status = 'FAILED'"; + type string; + + description + "Detailed error Message when the status is failed."; + } + + leaf notification-timeout { + type int32; + units seconds; + default 30; + + description + "Timeout on client waiting for the activate event"; + } + } + } + + // notification definitions + notification download-event { + description "Notification event structure for download completion"; + leaf file-name { + type string; + mandatory true; + + description + "File name of downloaded software package"; + } + + leaf status { + type enumeration { + enum COMPLETED { + description + "Operation completed succesfully"; + } + enum AUTHENTICATION_ERROR { + description "source available, wrong credentials"; + } + enum PROTOCOL_ERROR { + description "SFTP errors"; + } + enum FILE_NOT_FOUND { + description "source not available."; + } + enum APPLICATION_ERROR { + description "Application related errors"; + } + enum TIMEOUT { + description "Timeout waiting for download"; + } + } + + description + "Status of finished operation execution"; + } + leaf error-message { + when "../status != 'COMPLETED'"; + type string; + + description + "Detailed description of faulty situation"; + } + + } + + notification install-event { + description "Notification event structure for installation completion"; + leaf slot-name { + type leafref { + path "/software-inventory/software-slot/name"; + } + + description + "Name of the slot to which software was installed."; + } + leaf status { + type enumeration { + enum COMPLETED { + description + "Operation completed succesfully"; + } + enum FILE_ERROR { + description "operation on the file resulted in in error, disk failure, not enough disk space, + incompatible file format"; + } + enum INTEGRITY_ERROR { + description "file is corrupted"; + } + enum APPLICATION_ERROR { + description "operation failed due to internal reason"; + } + } + + description + "Status of finished operation execution"; + } + leaf error-message { + when "../status != 'COMPLETED'"; + type string; + + description + "Detailed description of faulty situation"; + } + } + + notification activation-event { + description "Notification event structure for activation completion"; + leaf slot-name { + type leafref { + path "/software-inventory/software-slot/name"; + } + + description + "Name of the slot which was activated"; + } + + leaf status { + type enumeration { + enum COMPLETED { + description + "Operation completed succesfully"; + } + enum APPLICATION_ERROR { + description + "Operation finished with error, more details can by found in error-message"; + } + } + + description + "Status of finished operation execution"; + } + leaf return-code { + type uint8; + + description + "status code return when the software is tried to activate"; + } + leaf error-message { + when "../status != 'COMPLETED'"; + type string; + + description + "Detailed description of faulty situation"; + } + } +} diff --git a/data-model/yang/published/xran/xran-supervision.yang b/data-model/yang/published/xran/xran-supervision.yang new file mode 100644 index 0000000..72bfb1d --- /dev/null +++ b/data-model/yang/published/xran/xran-supervision.yang @@ -0,0 +1,103 @@ +module xran-supervision { + yang-version 1.1; + namespace "urn:xran:supervision:1.0"; + prefix "xran-supervision"; + + import ietf-yang-types { + prefix yang; + } + + organization "xRAN Forum"; + + contact + "www.xran.org"; + + description + "This module defines the configuration data and supervision RPCs that are + used by the NETCONF client and NETCONF server to detect loss of NETCONF + connectivity. + + Copyright 2018 the xRAN Forum. + + 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 xRAN Forum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission."; + + revision "2018-07-20" { + description + "version 1.0.0 - First release of the xRAN YANG M-Plane models. + + This version of the model supports v01.00 of the corrsponding xRAN + M-Plane Specification."; + reference "XRAN-FH.MP.0-v01.00"; + } + + rpc supervision-watchdog-reset { + description + "rpc to reset the watchdog timer"; + input { + + leaf supervision-notification-interval { + type uint16; + units seconds; + default 60; + description + "The interval in seconds at which supervision notifications are sent. + If not specified the default value of 60 seconds shall apply."; + } + leaf guard-timer-overhead { + type uint16; + units seconds; + default 10; + description + "This is overhead added to the supervision timer used to calculate the + supervision wathcdog timer. i.e., + + supervision timer = notification timer + guard-timer-overhead + + If not specified the default value of 10 seconds shall apply. + + Failure to send this rpc again within the timeout sets the radio into + 'loss of supervision' state. + + NOTE - The supervision timer MUST not be less that the confimed + timeout timer (when the feature is supported). + + This type of constraint (using an RPCs input) cannot be formally + expressed in YANG."; + } + } + } + + notification supervision-notification { + description + "Notification to indicate that NETCONF management interface is up + and also indicate the values of the timers for this NETCONF session"; + + leaf next-update-at { + type yang:date-and-time; + description + "Indicates the time when the next supervision notification is expected."; + } + } +} diff --git a/data-model/yang/published/xran/xran-sync.yang b/data-model/yang/published/xran/xran-sync.yang new file mode 100644 index 0000000..e38b9be --- /dev/null +++ b/data-model/yang/published/xran/xran-sync.yang @@ -0,0 +1,662 @@ +module xran-sync { + yang-version 1.1; + namespace "urn:xran:sync:1.0"; + prefix "xran-sync"; + + + organization "xRAN Forum"; + + contact + "www.xran.org"; + + description + "This module defines synchronization mechanism for the xRAN Radio Unit. + + Copyright 2018 the xRAN Forum. + + 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 xRAN Forum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission."; + + revision "2018-07-20" { + description + "version 1.0.0 - First release of the xRAN YANG M-Plane models. + + This version of the model supports v01.00 of the corrsponding xRAN + M-Plane Specification."; + reference "XRAN-FH.MP.0-v01.00"; + } + + typedef geographic-coordinate-degree { + type decimal64 { + fraction-digits 8; + } + description + "Decimal degree (DD) used to express latitude and longitude + geographic coordinates."; + } + + feature GNSS { + description + "This feature indicates that the RU supports integrated GNSS functionality."; + } + + container sync { + description + "Main containter for sync related parameters"; + + container sync-status { + config false; + + description + "Object of this class provides synchronization state of the module."; + + leaf sync-state { + type enumeration { + enum LOCKED { + description + "RU is in the locked mode, as defined in ITU-T G.810"; + } + enum HOLDOVER { + description + "RU clock is in holdover mode"; + } + enum FREERUN { + description + "RU clock isn’t locked to an input reference, and is not in the holdover mode"; + } + } + mandatory true; + description + "State of DU synchronization"; + } + + list supported-reference-types { + key item; + min-elements 1; + description + "Type of a synchronization supported source."; + leaf item { + type enumeration { + enum GNSS { + description + "GPS can be taken as a synchronization source"; + } + enum PTP { + description + "Precision Time Protocol can be taken as a synchronization source"; + } + enum SYNCE { + description + "Synchronous Ethernet can be taken as a synchronization source"; + } + } + mandatory true; + + description + "supported reference-type"; + } + } + } + + container sync-capability { + config false; + + description + "Object of this class provides synchronization capabilities of the module."; + + leaf sync-t-tsc { + type enumeration { + enum STANDARD { + description + "Standard accuracy for synchronization is supported by the device"; + } + enum ENCHANCED { + description + "Enchanced accuracy for synchronization is supported by the device"; + } + } + mandatory true; + description + "This will provide information about T-TSC capability"; + + reference "T-TSC: ITU-T G.8275.1/Y.1369.1"; + } + } + + container ptp-config { + description + "This MO defines configuration of Precise Time Protocol."; + leaf domain-number { + type uint8; + default 24; + description + "This parameter indicates Domain Number for PTP announce messages."; + } + + leaf multicast-mac-address { + type enumeration { + enum FORWARDABLE { + description + "means, that PTP shall use 01-80-C2-00-00-0E destination MAC address"; + } + enum NONFORWARDABLE { + description + "means, that PTP shall use 01-1B-19-00-00-00 destination MAC address"; + } + } + default FORWARDABLE; + description + "The parameter defines destination MAC address, used by the DU in the egress PTP messages."; + } + + list accepted-clock-classes { + key clock-classes; + leaf clock-classes { + type uint8; + description + "PTP Clock Class accepted by the RU"; + } + description + "Contains list of PTP acceptable Clock Classes, sorted in the descending order."; + } + + leaf delay-asymmetry { + type int16 { + range -10000..10000; + } + default 0; + description + "Defines static phase error in the recovered PTP timing signal to be compensated at the RU. + The error is defined in units of nanoseconds in the range ±10 000 ns."; + } + } + + container ptp-status { + description + "ptp status container"; + leaf reporting-period { + type uint8; + default 10; + description + "This parameter defines minimum period in seconds between reports, + sent by the NETCONF Client, for parameters in this container."; + } + leaf lock-state { + type enumeration { + enum LOCKED { + description + "The integrated ordinary clock is synchronizing to the reference, recovered from PTP flow"; + } + enum UNLOCKED { + description + "The integrated ordinary clock is not synchronizing to the reference, recovered from PTP flow"; + } + } + config false; + description + "This parameter indicates, whether the integrated ordinary clock is + synchronizing to the reference, recovered from PTP signal. + The exact definition when to indicate locked or unlocked is up to specific + implementation."; + } + + leaf clock-class { + type uint8; + config false; + description + "This parameter contains the clock class of the clock, controlled by the RU"; + } + + leaf clock-identity { + type string { + length 18; + pattern "0[xX][0-9a-fA-F]"; + } + config false; + description + "This parameter contains identity of the clock, + according to IEEE 1588-2008 defintion, controlled by the RU. + The string shall be formatted as an 8-octet hex value with the “0x” prefix."; + } + + leaf partial-timing-supported { + type boolean; + + description + "Provides information wheter G.8275.2 (partial timing support from network) is supported."; + } + + list sources { + key local-port-number; + config false; + + description + "Synchronisation sources"; + + leaf local-port-number { + type uint16; + // fixme - change to a leafref once interface design is agreed + description + "This is reference to portNumber of ExternalEthernetPort to identify the port, + where the PTP signal is located."; + } + + leaf state { + type enumeration { + enum PARENT { + description + "Indicates that this source is the current master clock, i.e. the clock, + which the clock, controlled by the Netconf Server, is synchronized to"; + } + enum OK { + description + "Indicates that this source is an alternate master, which the clock, + controlled by the Netconf Server, can potentially synchronize to, + i.e. clock class and priority, announced by the master clock is lower, + compared to those of the clock, controlled by the Netconf Server, + and and the clock class is accepted"; + } + enum NOK { + description + "Indicates that this source is an alternate master, which the clock, + controlled by the Netconf Server, has an operational connection to, + but the class or priority of the master clock is higher or equal + to those of the clock, controlled by the Netconf Server, + or the clock class is not accepted"; + } + enum DISABLED { + description + "Indicates that this source is an alternate master, which the clock, + controlled by the Netconf Server, has no operational connection to"; + } + } + description + "This parameter indicates status of the PTP source"; + } + + leaf two-step-flag { + type boolean; + description + "This parameter reflects status of the twoStepFlag attribute in Sync messages, + received from the PTP source."; + } + + leaf leap61 { + type boolean; + description + "This parameter reflects status of the leap61 flag in Announce messages, + received from the PTP source. + When true, the last minute of the current UTC day contains 61 seconds."; + } + + leaf leap59 { + type boolean; + description + "This parameter reflects status of the leap59 flag in Announce messages, + received from the PTP source. + When true, the last minute of the current UTC day contains 59 seconds."; + } + + leaf current-utc-offset-valid { + type boolean; + description + "This parameter reflects status of the currentUtcOffsetValid flag in + Announce messages, received from the PTP source. + When true, the current UTC offset is valid."; + } + + leaf ptp-timescale { + type boolean; + description + "This parameter reflects status of the ptpTimescale flag in Announce + messages, received from the PTP source. + + When set, the clock timescale of the grandmaster clock is PTP; + otherwise, the timescale is ARB (arbitrary)"; + } + + leaf time-traceable { + type boolean; + description + "This parameter reflects status of the timeTraceable flag in Announce + messages, received from the PTP source. + + When true, the timescale and the currentUtcOffset are traceable to a + primary reference"; + } + + leaf frequency-traceable { + type boolean; + description + "This parameter reflects status of the frequencyTraceable flag in + Announce messages, received from the PTP source. + + When true, the frequency determining the timescale is traceable to a + primary reference"; + } + + leaf source-clock-identity { + type string { + length 18; + pattern "0[xX][0-9a-fA-F]"; + } + description + "This parameter reflects value of the sourceClockIdentity attribute in + Announce messages, received from the PTP source. + + The string shall be formatted as an 8-octet hex value with the “0x” + prefix."; + } + + leaf source-port-number { + type uint16; + description + "This parameter reflects value of the sourcePortNumber attribute in + Announce messages, received from the PTP source."; + } + + leaf current-utc-offset { + type int16; + description + "The offset between TAI and UTC when the epoch of the PTP system is + the PTP epoch, i.e., when ptp-timescale is TRUE; otherwise, the value + has no meaning"; + } + + leaf priority1 { + type int8; + description + "This parameter reflects value of the priority1 attribute in Announce + messages, received from the PTP source."; + } + + leaf clock-class { + type int8; + description + "This parameter reflects value of the clockClass attribute in + Announce messages, received from the PTP source."; + } + + leaf clock-accuracy { + type int8; + description + "This parameter reflects value of the clockAccuracy attribute in + Announce messages, received from the PTP source."; + } + + leaf offset-scaled-log-variance { + type uint16; + description + "This parameter reflects value of the offsetScaledLogVariance + attribute in Announce messages, received from the PTP source."; + } + + leaf priority2 { + type uint8; + description + "This parameter reflects value of the priority2 attribute in Announce + messages, received from the PTP source."; + } + + leaf grandmaster-clock-identity { + type string; + description + "This parameter reflects value of the grandmasterClockIdentity + attribute in Announce messages, received from the PTP source. + + The string shall be formatted as an 8-octet hex value with the “0x” + prefix."; + } + + leaf steps-removed { + type uint16; + description + "This parameter reflects value of the stepsRemoved attribute in + Announce messages, received from the PTP source. + + It indicates the number of communication paths traversed + between the local clock and the grandmaster clock."; + } + + leaf time-source { + type uint8; + description + "This parameter reflects value of the timeSource attribute in + Announce messages, received from the PTP source."; + } + } + } + + container synce-status { + description + "SyncE status container"; + + leaf reporting-period { + type uint8; + default 10; + description + "This parameter defines minimum period in seconds between reports, + sent by the NETCONF client, for parameters in this container."; + } + + leaf lock-state { + type enumeration { + enum LOCKED { + description + "The integrated ordinary clock is synchronizing to the reference, recovered from SyncE signal"; + } + enum UNLOCKED { + description + "The integrated ordinary clock is not synchronizing to the reference, recovered from SyncE signal"; + } + } + config false; + description + "This parameter indicates, whether the integrated ordinary clock is + synchronizing to the reference, recovered from SyncE signal. + + The exact definition when to indicate locked or unlocked is up to + specific implementation."; + } + + list sources { + key local-port-number; + config false; + leaf local-port-number { + type uint16; + //fixme - change to leafref once interfaces ae agreed + description + "This is reference to portNumber of ExternalEthernetPort to identify + the port, where the SyncE signal is located."; + } + + leaf state { + type enumeration { + enum PARENT { + description + "Indicates that this source is the current master clock, i.e. the clock, + which the clock, controlled by the Netconf Server, is synchronized to"; + } + enum OK { + description + "Indicates that this source is an alternate master, which the clock, + controlled by the Netconf Server, can potentially synchronize to, + i.e. clock class and priority, announced by the master clock is lower, + compared to those of the clock, controlled by the Netconf Server, + and and the clock class is accepted"; + } + enum NOK { + description + "Indicates that this source is an alternate master, which the clock, + controlled by the Netconf Server, has an operational connection to, + but the class or priority of the master clock is higher or equal + to those of the clock, controlled by the Netconf Server, + or the clock class is not accepted"; + } + enum DISABLED { + description + "Indicates that this source is an alternate master, which the clock, + controlled by the Netconf Server, has no operational connection to"; + } + } + description + "This parameter indicates status of the SyncE source"; + } + + leaf quality-level { + type uint8 { + range 0..15; + } + description + "This parameter contains value of the SSM clock quality level, + received in SSM messages from the SyncE source."; + } + min-elements 1; + description + "This parameter contains characteristics of SyncE sources of the clock, controlled by the RU."; + } + } + container gnss-state { + if-feature GNSS; + config false; + description + "Provides information about state of gps receiver"; + leaf name { + type string { + length "1..255"; + } + description + "A name that is unique across the RU that identifies a GNSS instance. + This name may be used in fault management to refer to a + fault source or affected object"; + } + leaf gnss-status { + type enumeration { + enum SYNCHRONIZED { + description "GNSS functionality is synchronized"; + } + enum ACQUIRING-SYNC { + description "GNSS functionality is acquiring sync"; + } + enum ANTENNA-DISCONNECTED { + description "GNSS functionality has its antenna disconnected"; + } + enum BOOTING { + description "GNSS functionality is booting"; + } + enum ANTENNA-SHORT-CIRCUIT { + description "GNSS functionality has an antenna short circuit"; + } + } + description "when available, indicates the status of the gnss receiver."; + } + container gnss-data { + when "../gnss-status='SYNCHRONIZED'"; + description + "GPS data contained"; + leaf satellites-tracked { + type uint8; + description "Number of satellites tracked"; + } + container location { + description + "Containes information about geo location"; + leaf altitude { + type int64; + units millimeter; + description + "Distance above the sea level."; + } + leaf latitude { + type geographic-coordinate-degree { + range "-90..90"; + } + description + "Relative position north or south on the Earth's surface."; + } + leaf longitude { + type geographic-coordinate-degree { + range "-180..180"; + } + description + "Angular distance east or west on the Earth's surface."; + } + } + } + } + } + + //notification statement + notification synchronization-state-change { + description + "Notification used to inform about synchronization state change"; + + leaf sync-state { + type leafref { + path "/sync/sync-status/sync-state"; + } + description + "State of RU synchronization is notified at state change"; + } + } + + notification ptp-state-change { + description + "Notification used to inform about ptp synchronization state change"; + + leaf ptp-state{ + type leafref{ + path "/sync/ptp-status/lock-state"; + } + description + "ptp-state-change notification is signalled from RU at state change"; + } + } + notification synce-state-change { + description + "Notification used to inform about synce synchronization state change"; + + leaf synce-state{ + type leafref{ + path "/sync/synce-status/lock-state"; + } + description + "synce-state change notification is signalled from RU at state change"; + } + } + notification gnss-state-change { + if-feature GNSS; + description + "Notification used to inform about gnss synchronization state change"; + + leaf gnss-state{ + type leafref{ + path "/sync/gnss-state/gnss-status"; + } + description + "gnss-state-change notification is signalled from RU at state change"; + } + } + +} diff --git a/data-model/yang/published/xran/xran-transceiver.yang b/data-model/yang/published/xran/xran-transceiver.yang new file mode 100644 index 0000000..df0cb36 --- /dev/null +++ b/data-model/yang/published/xran/xran-transceiver.yang @@ -0,0 +1,369 @@ +module xran-transceiver { + yang-version 1.1; + namespace "urn:xran:transceiver:1.0"; + prefix "xran-transceiver"; + + import xran-interfaces { + prefix "xran-int"; + } + + import ietf-interfaces { + prefix "if"; + } + + organization "xRAN Forum"; + + contact + "www.xran.org"; + + description + "This module defines the operational state data for SFP transceivers used in + an xRAN Radio Unit. + + Copyright 2018 the xRAN Forum. + + 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 xRAN Forum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission."; + + revision "2018-07-20" { + description + "version 1.0.0 - First release of the xRAN YANG M-Plane models. + + This version of the model supports v01.00 of the corrsponding xRAN + M-Plane Specification."; + reference "XRAN-FH.MP.0-v01.00"; + } + + container port-transceivers { + description + "Container for Port transceiver information. + Leaf nodes providing parameters status and diagnostic + information for pluggable transceiver module (like SFP, + SFP+, SFP28)"; + list port-transceiver-data { + key "interface-name port-number"; + description "data recovered from port transceivers"; + leaf interface-name { + type leafref { + path "/if:interfaces/if:interface/if:name"; + } + description "Name of interface"; + } + leaf port-number { + type leafref { + path "/if:interfaces/if:interface[if:name = current()/../interface-name]/xran-int:port-reference/xran-int:xran-port-number"; + } + description + "A number which identifies a port. In case of SFP/SFP+ + port, port number value is 0 to N-1 where N is number of ports + in the device. Numbers 0 to N-1 are assigned to ports in order + following order of labels on the device (labels for ports are + not necessarily numbers starting from zero)"; + } + + leaf name { + type string { + length "1..255"; + } + description + "A name that is unique across the RU that identifies a transceiver instance. + This name may be used in fault management to refer to a fault source + or affected object"; + } + + leaf present { + type boolean; + config false; + mandatory true; + description + "Indicates if pluggable transceiver module is present."; + } + + leaf vendor-id { + type string { + length 1..16; + } + config false; + description + "Name of the transciever vendor Full name of transceiver vendor, + that contains ASCII characters, left-aligned with + any padding on the right with ASCII spaces (20h), or ASCII nul + (00h) removed, and ASCII less-than (3Ch) replaced with ASCII + open-brace (7Bh) and ASCII more-than (3Eh) replaced with ASCII + close-brace (7Dh). + + Optional node included when the NETCONF Server has determined + the vendor ID."; + } + + leaf vendor-part { + type string { + length 1..16; + } + config false; + description + "Transceiver vendors part number, that contains ASCII characters, + left-aligned with any padding on the right with ASCII spaces + (20h), or ASCII nul (00h) removed, and ASCII less-than (3Ch) + replaced with ASCII open-brace (7Bh) and ASCII more-than (3Eh) + replaced with ASCII close-brace (7Dh). + + Optional node included when the NETCONF Server has determined + the vendor part number."; + } + + leaf vendor-rev { + type string { + length 1..2; + } + config false; + description + "Transceiver vendors revision number. 2-octet field that + contains ASCII characters. + + Optional node included when the NETCONF Server has determined + the vendor revision number"; + } + + leaf serial-no { + type string { + length 1..16; + } + config false; + description + "Transceiver serial number encoded using ASCII characters, + left-aligned with any padding on the right with ASCII spaces + (20h), or ASCII nul (00h) removed, and ASCII less-than (3Ch) + replaced with ASCII open-brace (7Bh) and ASCII more-than (3Eh) + replaced with ASCII close-brace (7Dh). + + Optional node included when the NETCONF Server has determined + the serial number."; + } + + leaf SFF8472-compliance-code { + type enumeration { + enum diagnostics-undefined { + description "undefined compliance code"; + } + enum rev9.3-diagnostics { + description "diagnostics published 08-01-02"; + } + enum rev9.5-diagnostics{ + description "diagnostics published 06-01-04"; + } + enum rev10.2-diagnostics{ + description "diagnostics published 06-01-07"; + } + enum rev11.0-diagnostics{ + description "diagnostics published 05-21-10"; + } + enum rev11.3-diagnostics{ + description "diagnostics published 06-11-13"; + } + enum rev11.4-diagnostics{ + description "diagnostics published 07-24-14"; + } + enum rev12.0-diagnostics{ + description "diagnostics published 08-28-14"; + } + } + config false; + description + "Indication of which feature set(s) are + implemented in the transceiver from Byte 94 of address A0h + https://ta.snia.org/higherlogic/ws/public/download/294/SFF-8472.PDF"; + + // FIXME is this optional or mandatory? + reference "https://ta.snia.org/higherlogic/ws/public/download/294/SFF-8472.PDF"; + } + + leaf connector-type { + type enumeration { + enum unknown { + description "encoded as 00h in Table 4-3 of SFF-8024"; + } + enum subscrber-connector { + description "encoded as 01h in Table 4-3 of SFF-8024"; + } + enum fiber-jack { + description "encoded as 06h in Table 4-3 of SFF-8024"; + } + enum lucent-connector { + description "encoded as 07h in Table 4-3 of SFF-8024"; + } + enum mt-rj { + description "encoded as 08h in Table 4-3 of SFF-8024"; + } + enum multiple-optical { + description "encoded as 09h in Table 4-3 of SFF-8024"; + } + enum sg { + description "encoded as 0Ah in Table 4-3 of SFF-8024"; + } + enum optical-pigtail { + description "encoded as 0Bh in Table 4-3 of SFF-8024"; + } + enum multi-fiber-parralel-optic-1x12 { + description "encoded as 0Ch in Table 4-3 of SFF-8024"; + } + enum multi-fiber-parralel-optic-2x16 { + description "encoded as 0Dh in Table 4-3 of SFF-8024"; + } + enum hssdc_2{ + description "encoded as 20h in Table 4-3 of SFF-8024"; + } + enum copper-pigtail{ + description "encoded as 21h in Table 4-3 of SFF-8024"; + } + enum rj45{ + description "encoded as 22h in Table 4-3 of SFF-8024"; + } + enum no-separable-connector{ + description "encoded as 23h in Table 4-3 of SFF-8024"; + } + enum mxc-2x16{ + description "encoded as 24h in Table 4-3 of SFF-8024"; + } + } + config false; + // TOCHECK: Remove any enumerations which are not applicable + description + "Connector-type indicates the external optical or electrical cable + connector provided as the media interface as defined in the connector + types derived from table 4-3 in SFF-8024."; + // FIXME is this optional or mandatory? + reference "https://ta.snia.org/higherlogic/ws/public/document?document_id=944"; + } + + leaf nominal-bitrate { + type uint32; + config false; + description + "Nominal bitrate in Mb/s (10^6 bits per second). + If needed actual value is rounded to nearest integer. + + Optional node included when the NETCONF Server has determined + the nominal bit rate."; + } + + leaf low-bitrate-margin { + type uint8; + config false; + description + "Minimum supported bitrate as percentage of nominal bitrate + below nominal bitrate. + + Optional node included when the NETCONF Server has determined + the low bit rate margin"; + } + + leaf high-bitrate-margin { + type uint8; + config false; + description + "Maximum supported bitrate as percentage of nominal bitrate + above nominal bitrate. + + Optional node included when the NETCONF Server has determined + the high bitrate margin."; + } + + leaf rx-power-type { + type enumeration { + enum oma { + description "oma = optical modulation amplitude"; + } + enum avp{ + description "avp = average power"; + } + } + config false; + description + "Receieved power measurement type + oma = optical modulation amplitude + avp = average power"; + // FIXME is this optional or mandatory? + } + + leaf rx-power { + type decimal64{ + fraction-digits 4; + } + config false; + description + "Measured RX input power in mW. + + Optional node included when the NETCONF Server has determined + the measured RX power."; + } + + leaf tx-power { + type decimal64{ + fraction-digits 4; + } + config false; + description + "Measured coupled TX output power in mW. + + Optional node included when the NETCONF Server has determined + the measured coupled TX power."; + } + + leaf tx-bias-current { + type decimal64{ + fraction-digits 4; + } + config false; + description + "Measured transmitter laser bias current in mA. + + Optional node included when the NETCONF Server has determined + the tx bias current."; + } + + leaf voltage { + type decimal64{ + fraction-digits 4; + } + config false; + description + "Internally measured supply voltage in mV. + + Optional node included when the NETCONF Server has determined + the internally measured voltage."; + } + + leaf temperature { + type decimal64 { + fraction-digits 4; + } + config false; + description + "Internally measured module temperature in degrees Celcius."; + // FIXME is this optional or mandatory? + } + } + } +} diff --git a/data-model/yang/published/xran/xran-troubleshooting.yang b/data-model/yang/published/xran/xran-troubleshooting.yang new file mode 100644 index 0000000..587369f --- /dev/null +++ b/data-model/yang/published/xran/xran-troubleshooting.yang @@ -0,0 +1,95 @@ +module xran-troubleshooting { + yang-version 1.1; + namespace "urn:xran:troubleshooting:1.0"; + prefix "xran-trblsht"; + + organization "xRAN Forum"; + + contact + "www.xran.org"; + + description + "This module defines the operations for the troubleshooting logs on the RU. + + Copyright 2018 the xRAN Forum. + + 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 xRAN Forum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission."; + + revision "2018-07-20" { + description + "version 1.0.0 - First release of the xRAN YANG M-Plane models. + + This version of the model supports v01.00 of the corrsponding xRAN + M-Plane Specification."; + reference "XRAN-FH.MP.0-v01.00"; + } + + + grouping troubleshooting-status-grouping { + description "grouping used for troubleshooting RPCs"; + leaf status { + type enumeration { + enum SUCCESS { + description "rpc completed correctly"; + } + enum FAILURE { + description "rpc failed"; + } + } + description "result of rpc operation"; + } + leaf failure-reason { + when "../status = 'FAILURE'"; + type string; + description "free form text description why error occurred"; + } + } + + rpc start-troubleshooting-logs { + description + "Management plane triggered to start collecting the troubleshooting logs files of RU."; + output { + uses troubleshooting-status-grouping; + } + } + + rpc stop-troubleshooting-logs { + description + "Management plane triggered to stop collecting the troubleshooting logs files of RU."; + output { + uses troubleshooting-status-grouping; + } + } + + notification troubleshooting-log-generated { + description + "When new log file generated, send this notification."; + leaf-list log-file-name { + type string; + description + "The list of troubleshooting log file names on the RU."; + } + } +} diff --git a/data-model/yang/published/xran/xran-udp-echo.yang b/data-model/yang/published/xran/xran-udp-echo.yang new file mode 100644 index 0000000..cf1d725 --- /dev/null +++ b/data-model/yang/published/xran/xran-udp-echo.yang @@ -0,0 +1,88 @@ +module xran-udp-echo { + yang-version 1.1; + namespace "urn:xran:udpecho:1.0"; + prefix "xran-echo"; + + import xran-interfaces { + prefix "xran-int"; + } + + organization "xRAN Forum"; + + contact + "www.xran.org"; + + description + "This module covers off aspects of llss-CU to RU interface transport + verification for UDP/IP based C/U plane connections based on UDP Echo. + + Copyright 2018 the xRAN Forum. + + 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 xRAN Forum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission."; + + revision "2018-07-20" { + description + "version 1.0.0 - First release of the xRAN YANG M-Plane models. + + This version of the model supports v01.00 of the corrsponding xRAN + M-Plane Specification."; + reference "XRAN-FH.MP.0-v01.00"; + } + + container udp-echo-configuration { + if-feature xran-int:UDPIP-BASED-CU-PLANE; + description "container for the configuration of udp echo"; + + leaf enable-udp-echo { + type boolean; + default false; + description + "whether RU's UDP ech server is enabled"; + } + + leaf dscp-config { + type enumeration { + enum REFLECTIVE { + description + "DSCP in echoed datagrams is copied from received datagram"; + } + enum EF { + description + "DSCP in echoed datagrams is always be set to expeditied + forwarding Per Hop Behaviour."; + } + } + default EF; + description "configuration of UDP echo DSCP"; + } + + leaf echo-replies-transmitted { + type uint32; + config false; + description + "The total number of UDP echo replies transmitted by the RU."; + } + } +} diff --git a/data-model/yang/published/xran/xran-uplane-conf.yang b/data-model/yang/published/xran/xran-uplane-conf.yang new file mode 100644 index 0000000..5ca7e3c --- /dev/null +++ b/data-model/yang/published/xran/xran-uplane-conf.yang @@ -0,0 +1,948 @@ +module xran-uplane-conf { + yang-version 1.1; + namespace "urn:xran:uplane-conf:1.0"; + prefix "xran-uplane-conf"; + + import xran-processing-element { + prefix "xran-pe"; + } + + import ietf-interfaces { + prefix "if"; + } + + import xran-module-cap { + prefix "mcap"; + } + + organization "xRAN Forum"; + + contact + "www.xran.org"; + + description + "This module defines the module capabilities for + the xRAN Radio Unit U-Plane configuration. + + Copyright 2018 the xRAN Forum. + + 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 xRAN Forum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission."; + + revision "2018-07-20" { + description + "version 1.0.0 - First release of the xRAN YANG M-Plane models. + + This version of the model supports v01.00 of the corrsponding xRAN + M-Plane Specification."; + reference "XRAN-FH.MP.0-v01.00"; + } + + grouping eaxc { + description + "One eAxC identifier (eAxC ID) comprises a band and sector + identifier (BandSector_ID), a component-carrier identifier (CC_ID) and a + spatial stream identifier (RU_Port_ID). + + In this version of the specification, one eAxC contains only one spatial + stream (i.e. one beam per subcarrier) at a time. + + Bit allocation is subdivided as follows: + * CU_Port_ID: Used to differentiate processing units at lls-CU + * BandSector_ID: Aggregated cell identifier + * CC_ID: distinguishes Carrier Components + * RU_Port_ID: Used to differentiate spatial streams or beams on the RU + + The bitwidth of each of the above fields is variable this model is supposed to check + if we are occpying bits continuously but we do not have to occupy all 16 bits"; + + + leaf cu-port-bitmask { + type uint16; + mandatory true; + description + "mask for eaxc-id bits used to encode CU Port ID"; + } + + leaf band-sector-bitmask { + type uint16; + mandatory true; + description + "mask for eaxc-id bits used to encode the band sector ID"; + } + + leaf ccid-bitmask { + type uint16; + mandatory true; + description + "mask for eaxc-id bits used to encode the component carrier id"; + } + + leaf ru-port-bitmask { + type uint16; + mandatory true; + description + "mask for eaxc-id bits used to encode the RU Port ID"; + } + + leaf eaxc-id { + type uint16; + mandatory true; + description + "encoded value of eaxcid to be read by CU-Plane"; + } + } + + container user-plane-configuration { + description "top level container for user plane configuration"; + + container compression { + description + "Container which consists of global configurable parameters for compression"; + + leaf compression-type { + type enumeration { + enum STATIC { + description + "Indicates that static compression method will be used (both compression and IQ bitwidth)"; + } + + enum DYNAMIC { + description + "Indicates that dynamic compresion method will be used"; + } + } + description + "Compression type that lls-CU wants to be supported"; + } + + leaf bitwidth { + when "./../compression-type = 'STATIC'"; + type uint8; + description + "Bitwidth to be used in compression"; + } + + leaf compression-method { + when "./../compression-type = 'STATIC'"; + type enumeration { + enum BLOCK_FLOATING_POINT { + description + "Block floating point compression and decompression will be used"; + } + + enum BLOCK_SCALING { + description + "Block scaling compression and decompresion will be used"; + } + + enum U_LAW { + description + "u-Law compression and decompresion method will be used"; + } + + enum BEAMSPACE { + description + "Beamspace compression and decompression will be used"; + } + + enum MODULATION { + description + "Modulation compression and decompression will be used"; + } + } + description + "Compresion method which can be supported by the RU"; + } + } + + list low-level-tx-links { + key name; + description + "Object model for low-level-tx-link configuration"; + + leaf name { + type string; + description + "Unique name of low-level-tx-link object."; + } + + leaf processing-element { + type leafref { + path "/xran-pe:processing-elements/xran-pe:ru-elements/xran-pe:name"; + } + mandatory true; + description + "Contains name of processing-element to be used as transport by low-level-tx-link"; + } + + leaf tx-array-carrier { + type leafref { + path "/user-plane-configuration/tx-array-carriers/name"; + } + mandatory true; + description + "Contains name of tx-array-carriers MO to be used as transport by low-level-tx-link"; + } + + leaf low-level-tx-endpoint { + type string; + must "boolean(../../low-level-tx-endpoints[name = current()])" { + error-message "low-level-tx-endpoint you want to set does not exists in /low-level-tx-endpoints/name"; + } + mandatory true; + description + "Contains name of low-level-tx-endpoints MO to be used as transport by low-level-tx-link"; + } + + container remote-address { + uses eaxc; + + must "( cu-port-bitmask + band-sector-bitmask + ccid-bitmask + ru-port-bitmask ) = + '(0 | 1 | 3 | 7 | 15 | 31 | 63 | 127 | 255 | 511 | 1023 | 2047 | 4095 | 8191 | 16383 | 32767 | 65535)'" { + error-message "Bitmasks for eaxc-id is badly formatted"; + } + + description + "Contains address of remote TX endpoint served by NETCONF client."; + } + } + + list low-level-rx-links { + key name; + description + "Object model for low-level-rx-links configuration"; + + leaf name { + type string; + + description + "Unique name of low-level-rx-links object."; + } + + leaf processing-element { + type leafref { + path "/xran-pe:processing-elements/xran-pe:ru-elements/xran-pe:name"; + } + mandatory true; + description + "Contains name of processing-element to be used as transport by LowLevelTxLink"; + } + + leaf rx-array-carrier { + type leafref { + path "/user-plane-configuration/rx-array-carriers/name"; + } + mandatory true; + + description + "Contains name of rx-array-carriers MO to be used as transport by low-level-rx-links"; + } + + leaf low-level-rx-endpoint { + type string; + must "boolean(../../low-level-rx-endpoints[name = current()])" { + error-message "low-level-rx-endpoint you want to set does not exists in /low-level-rx-endpoints/name"; + } + mandatory true; + + description + "Contains name of low-level-rx-endpoints MO to be used as transport by low-level-rx-links"; + } + + container remote-address { + uses eaxc; + + must "( cu-port-bitmask + band-sector-bitmask +ccid-bitmask + ru-port-bitmask ) = + '(0 | 1 | 3 | 7 | 15 | 31 | 63 | 127 | 255 | 511 | 1023 | 2047 | 4095 | 8191 | 16383 | 32767 | 65535)'" { + error-message "Bitmasks for eaxc-id is badly formatted"; + } + + description + "Contains address of remote RX endpoint served by Netconf client."; + } + + leaf priority { + type enumeration { + enum HIGH { + description + "Means high priority for link"; + } + enum LOW { + description + "Means low priority for link"; + } + } + + description + "Parameter to set priority for this link"; + } + } + + list static-low-level-tx-endpoints { + key name; + config false; + description + "Object model for static-low-level-tx-endpoints configuration"; + + leaf name { + type string; + + description + "Unique name of static-low-level-tx-endpoints object."; + } + + leaf interface { + type string; + must "boolean(/if:interfaces/if:interface[if:name = current()])" { + error-message "ethernet-interface you want to set does not exists in /interfaces/interface/name"; + } + + description + "Contains name of ietf:interface to be used as transport by low-level-tx-endpoints"; + } + + leaf array { + type leafref { + path "/user-plane-configuration/tx-arrays/name"; + } + description + "Contains distname of tx-arrays, particular low-level-tx-endpoints is in hardware dependency with. + Note: single instance of tx-arrays can be referenced by many instances of low-level-tx-endpoints + (e.g. to allow DU to handle multiple fronthauls and multiple component carriers)."; + } + } + + list static-low-level-rx-endpoints { + key name; + config false; + description + "Object model for static-low-level-rx-endpoints configuration"; + + leaf name { + type string; + + description + "Unique name of static-low-level-rx-endpoints object."; + } + + leaf interface { + type string; + must "boolean(/if:interfaces/if:interface[if:name = current()])" { + error-message "interface you want to set does not exists in /interfaces/interface/name"; + } + + description + "Contains name of ietf:interface to be used as transport by low-level-rx-endpoints"; + } + + leaf array { + type leafref { + path "/user-plane-configuration/rx-arrays/name"; + } + description + "Contains distname of rx-arrays, particular low-level-rx-endpoints is in hardware dependency with. + Note: single instance of rx-arrays can be referenced by many instances of low-level-rx-endpoints + (e.g. to allow DU to handle multiple fronthauls and multiple component carriers)."; + } + } + + list low-level-tx-endpoints { + key name; + description + "Object model for low-level-tx-endpoints configuration - augmented static-low-level-tx-endpoints by local-address + which cannot be added to static low-level-tx-endpoints as we cannot have modificable element in static object"; + + leaf name { + type string; + must "boolean(../../static-low-level-tx-endpoints[name = current()])" { + error-message "name you want to set does not exist in /static-low-level-tx-endpoints/name"; + } + + description + "Unique name of low-level-tx-endpoint object."; + } + + container local-address { + uses eaxc; + + must "( cu-port-bitmask + band-sector-bitmask + ccid-bitmask + ru-port-bitmask ) = + '(0 | 1 | 3 | 7 | 15 | 31 | 63 | 127 | 255 | 511 | 1023 | 2047 | 4095 | 8191 | 16383 | 32767 | 65535)'" { + error-message "Bitmasks for eaxc-id is badly formatted"; + } + description + "Contains local address of low level TX endpoint offered by Netconf server."; + } + } + + + list low-level-rx-endpoints { + key name; + description + "Object model for low-level-rx-endpoint configuration - augmented static-low-level-rx-endpoints by local-address + which cannot be added to static low-level-rx-endpoints as we cannot have modificable element in static object"; + + leaf name { + type string; + must "boolean(../../static-low-level-rx-endpoints[name = current()])" { + error-message "name you want to set does not exist in /static-low-level-rx-endpoints/name"; + } + + description + "Unique name of low-level-rx-endpoint object."; + } + + container local-address { + uses eaxc; + + must "( cu-port-bitmask + band-sector-bitmask + ccid-bitmask + ru-port-bitmask ) = + '(0 | 1 | 3 | 7 | 15 | 31 | 63 | 127 | 255 | 511 | 1023 | 2047 | 4095 | 8191 | 16383 | 32767 | 65535)'" { + error-message "Bitmasks for eaxc-id is badly formatted"; + } + + description + "Contains local address of low level RX endpoint offered by Netconf server."; + } + } + + list tx-array-carriers { + key name; + description + "Object model for tx-array-carriers configuration"; + + leaf name { + type string; + + description + "Unique name of tx-array-carriers object."; + } + + leaf absolute-frequency-center { + type uint32; + mandatory true; + description + "Absolute Radio Frequency Channel Number - indirectly indicates RF center carrier frequency of downlink signal."; + } + + leaf center-of-channel-bandwidth { + type uint64; + units Hz; + mandatory true; + description + "Center frequency of channel bandwidth in Hz. Common for all numerologies."; + } + + leaf channel-bandwidth { + type uint64; + units Hz; + mandatory true; + + description + "Width of carrier given in Hertz"; + } + + + leaf power { + type decimal64 { + fraction-digits 4; + } + mandatory true; + + description + "Transmission power in dBm. Value applicable to each array element carrier belonging to array carrier."; + } + + leaf active { + type enumeration { + enum INACTIVE { + description + "carrier does not provide signal - transmission is disabled"; + } + enum SLEEP{ + description + "carrier is fully configured and was active but is energy saving mode"; + } + enum ACTIVE{ + description + "carrier is fully configured and properly providing the signal"; + } + } + default INACTIVE; + + description + "Indicates if transmission is enabled for this tx-array-carriers. Note that Netconf server uses state parameter + to indicate actual state of tx-array-carriers operation. When tx-array-carriers is in sleep status, + Netconf server rejects all other operation request to tx-array-carriers object except either request to change from sleep + to active status or delete MO operation (see 4.8) to the object."; + } + + leaf state { + type enumeration { + enum DISABLED { + description + "tx-array-carrier is not active - transmission of signal is disabled."; + } + enum BUSY { + description + "tx-array-carrier is processing an operation requested by change of active parameter. + When tx-array-carriers is BUSY the transmission of signal is not guaranteed."; + } + enum READY { + description + "tx-array-carrier had completed activation operation - is active and transmission of signal is ongoing."; + } + } + config false; + + description + "Indicates state of tx-array-carriers activation operation"; + } + + leaf type { + type enumeration { + enum NR { + description + "5G technology"; + } + } + config false; + + description + "Type of carrier. Indicates array-carrier technology."; + } + + leaf fft-size { + type uint32; + + description + "The FFT size defines the number of bins used for dividing the window into equal strips, or bins. + Hence, a bin is a spectrum sample, and defines the frequency resolution of the window."; + } + + leaf downlink-radio-frame-offset { + type uint32 { + range 0..12288000; + } + mandatory true; + + description + "This parameter is used for offsetting the starting position of 10ms radio frame. + Note: The value should have same value within DU to all tx-array-carrierss that have same frequency and bandwidth. + Note2: Unit is 1/1.2288e9 Hz and accuracy is 1/4 Tc. Then, its range is calculated 0..12288000."; + } + + leaf downlink-sfn-offset { + type int16 { + range -32768..32767; + } + mandatory true; + + description + "This parameter is used for offsetting SFN value. + Unit is in 10ms. + Note: The value should have same value within DU to all tx-array-carrierss that have same frequency and bandwidth."; + } + + leaf default-scs { + type enumeration { + enum KHZ_15 { + value 0; + description + "15kHz sub carrier spacing"; + } + enum KHZ_30 { + value 1; + description + "30kHz sub carrier spacing"; + } + enum KHZ_60 { + value 2; + description + "60kHz sub carrier spacing"; + } + enum KHZ_120 { + value 3; + description + "120kHz sub carrier spacing"; + } + enum KHZ_240 { + value 4; + description + "240kHz sub carrier spacing"; + } + enum KHZ_1_25 { + value 12; + description + "1,25kHz sub carrier spacing"; + } + enum KHZ_5 { + value 14; + description + "5kHz sub carrier spacing"; + } + } + + mandatory true; + + description + "Sub-carrier spacing configuration"; + } + + list scs-specific-config { + key scs; + description + "List of scs-specific configurations"; + uses scs-config; + } + leaf cp-length { + type uint32; + description + "CP length woud be determined by deployment types that has different + delay spread requirements, and/or determined by frequency bands, service type + or determined by whether beam forming technology is used or not"; + } + } + + list rx-array-carriers { + key name; + description + "Object model for rx-array-carriers configuration"; + + leaf name { + type string; + description + "Unique name of rx-array-carriers object."; + } + + + leaf absolute-frequency-center { + type uint32; + mandatory true; + description + "Absolute Radio Frequency Channel Number - indirectly indicates RF center carrier frequency of downlink signal."; + } + leaf center-of-channel-bandwidth { + type uint64; + units Hz; + mandatory true; + description + "Center frequency of channel bandwidth. Common for all numerologies."; + } + leaf channel-bandwidth { + type uint64; + units Hz; + mandatory true; + description + "Width of carrier given in Hertz"; + } + + + leaf active { + type enumeration { + enum INACTIVE { + description + "carrier does not provide signal - transmission is disabled"; + } + enum SLEEP{ + description + "carrier is fully configured and was active but is energy saving mode"; + } + enum ACTIVE{ + description + "carrier is fully configured and properly providing the signal"; + } + } + default INACTIVE; + description + "Indicates if transmission is enabled for this rx-array-carriers. Note that Netconf server uses state parameter + to indicate actual state of rx-array-carriers operation. When rx-array-carriers is in sleep status, + Netconf server rejects all other operation request to rx-array-carriers object except either request to change from sleep + to active status or delete MO operation (see 4.8) to the object."; + } + + leaf state { + type enumeration { + enum DISABLED { + description + "rx-array-carrier is not active - transmission of signal is disabled."; + } + enum BUSY { + description + "rx-array-carrier is processing an operation requested by change of active parameter. + When tx-array-carriers is BUSY the transmission of signal is not guaranteed."; + } + enum READY { + description + "rx-array-carrier had completed activation operation - is active and transmission of signal is ongoing."; + } + } + config false; + + description + "Indicates state of rx-array-carriers activation operation"; + } + + leaf type { + type enumeration { + enum NR { + description + "5G technology"; + } + } + config false; + + description + "Type of carrier. Indicates array-carrier technology."; + } + + leaf fft-size { + type uint32; + description + "FFT size"; + } + + leaf ul-fft-sampling-offset { + type uint32; + description + "uplink FFT sampling offset"; + } + + leaf n-ta-offset { + type uint32; + description + "Value of configurable N-TA offset"; + } + leaf default-scs { + type enumeration { + enum KHZ_15 { + value 0; + description + "15kHz sub carrier spacing"; + } + enum KHZ_30 { + value 1; + description + "30kHz sub carrier spacing"; + } + enum KHZ_60 { + value 2; + description + "60kHz sub carrier spacing"; + } + enum KHZ_120 { + value 3; + description + "120kHz sub carrier spacing"; + } + enum KHZ_240 { + value 4; + description + "240kHz sub carrier spacing"; + } + enum KHZ_1_25 { + value 12; + description + "1,25kHz sub carrier spacing"; + } + enum KHZ_5 { + value 14; + description + "5kHz sub carrier spacing"; + } + } + mandatory true; + + description + "Sub-carrier spacing configuration"; + } + + list scs-specific-config { + key scs; + description + "List of static scs-specific configurations"; + uses scs-config; + } + + + leaf cp-length { + type uint32; + description + "CP length woud be determined by deployment types that has different + delay spread requirements, and/or determined by frequency bands, service type + or determined by whether beam forming technology is used or not"; + } + + } + + list tx-arrays { + key name; + config false; + description + "Object model for tx-arrays configuration"; + + leaf name { + type string; + description + "Unique name of tx-arrays object."; + } + + leaf polarisation { + type int8 { + range "-45 | 0 | 45 | 90"; + } + description + "This parameter informing which polarization is served by particular antenna array + as per HW design. Expected values are +45 deg, -45 deg, 0 deg and 90 deg. + Note: In case of multi-band RU orthogonality is assumed to exist per band, meaning: + either pair of +45 deg and -45 deg or pair of 0 deg and 90 deg are expected per band. + Non-orthogonal pairs like e.g 0 deg and +45 deg are not expected."; + } + + leaf panel-id { + type uint8; + description + "This parameter informing panel particular antenna array is built into. + Intended use is to indicate if two orthogonal arrays occupy the same physical panel (e.g. as cross-polarized + radiators) or if arrays of different polarizations are built into physically separated panels."; + } + + leaf band-number { + type leafref { + path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number"; + } + description + "This parameter informing which frequency band particular antenna + array is serving for. + Intended use is to deal with multiband solutions."; + } + } + + list rx-arrays { + key name; + config false; + description + "Object model for rx-arrays configuration"; + + leaf name { + type string; + description + "Unique name of rx-arrays object."; + } + + leaf polarisation { + type int8 { + range "-45 | 0 | 45 | 90"; + } + description + "This parameter informing which polarization is served by particular antenna array + as per HW design. Expected values are +45 deg, -45 deg, 0 deg and 90 deg. + Note: In case of multi-band RU orthogonality is assumed to exist per band, meaning: + either pair of +45 deg and -45 deg or pair of 0 deg and 90 deg are expected per band. + Non-orthogonal pairs like e.g 0 deg and +45 deg are not expected."; + } + + leaf panel-id { + type uint8; + description + "This parameter informing panel particular antenna array is built + into. + Intended use is to indicate if two orthogonal arrays occupy the same + physical panel (e.g. as cross-polarized radiators) or if arrays of + different polarizations are built into physically separated panels."; + } + + leaf band-number { + type leafref { + path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number"; + } + description + "This parameter informing which frequency band particular antenna + array is serving for. + Intended use is to deal with multiband solutions."; + } + } + } + + grouping scs-config { + description + "It groups all parameters related to SCS configuration"; + + leaf scs { + type enumeration { + enum KHZ_15 { + value 0; + description + "15kHz sub carrier spacing"; + } + enum KHZ_30 { + value 1; + description + "30kHz sub carrier spacing"; + } + enum KHZ_60 { + value 2; + description + "60kHz sub carrier spacing"; + } + enum KHZ_120 { + value 3; + description + "120kHz sub carrier spacing"; + } + enum KHZ_240 { + value 4; + description + "240kHz sub carrier spacing"; + } + enum KHZ_1_25 { + value 12; + description + "1,25kHz sub carrier spacing"; + } + enum KHZ_5 { + value 14; + description + "5kHz sub carrier spacing"; + } + } + description + "Sub-carrier spacing configuration"; + } + leaf offset-to-absolute-frequency-center { + type int32; + mandatory true; + description + "Offset to center-of-carrier-bandwidth. Mostly negative value. Granularity of this parameter is 0.5 SCS"; + } + + leaf number-of-prbs { + type uint32; + mandatory true; + description + "Number of physical resource blocks."; + } + } + + +} diff --git a/data-model/yang/published/xran/xran-usermgmt.yang b/data-model/yang/published/xran/xran-usermgmt.yang new file mode 100644 index 0000000..9de1d90 --- /dev/null +++ b/data-model/yang/published/xran/xran-usermgmt.yang @@ -0,0 +1,101 @@ +module xran-usermgmt { + yang-version 1.1; + namespace "urn:xran:user-mgmt:1.0"; + prefix "xran-usermgmt"; + + // import openroadm user management + import org-openroadm-user-mgmt { + prefix openroadm; + revision-date 2017-12-15; + } + + organization "xRAN Forum"; + + contact + "www.xran.org"; + + description + "This module defines the user management model for the xRAN Radio Unit. + The model is an augmentation of the user management model defined by + the openroadm MSA. + + Copyright 2018 the xRAN Forum. + + 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 xRAN Forum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission."; + + revision "2018-07-20" { + description + "version 1.0.0 - First release of the xRAN YANG M-Plane models. + + This version of the model supports v01.00 of the corrsponding xRAN + M-Plane Specification."; + reference "XRAN-FH.MP.0-v01.00"; + } + + grouping extended-xran-groups { + description + "New user permissions defined by xran. + Imported openroadm model only supports 'sudo' superuser permissions."; + leaf-list xran-group { + type enumeration { + enum nms { + description "Network Management System permissions"; + } + enum fm-pm { + description + "permissions for fault and performance management."; + } + enum swm { + description + "permissions for software managemet."; + } + } + description + "new group privileges defined by xRAN - a non sudo account may have + multiple group privileges. + + See the xRAN management Plane specification for a list of YANG module + privileges"; + } + } + + container xran-user-profile { + description "baseline open-roadm user profile"; + uses openroadm:user-profile; + } + + augment "/xran-usermgmt:xran-user-profile/xran-usermgmt:user" { + description "add in new xran user group permissions"; + uses extended-xran-groups; + leaf enabled { + type boolean; + must "count(../enabled='true') > 0" { + error-message "At least one account needs to be enabled."; + } + description + "Indicates whether an account is enabled or disabled."; + } + } +}