1 module xran-software-management {
3 namespace "urn:xran:software-management:1.0";
6 import ietf-inet-types {
8 revision-date 2013-07-15;
11 import ietf-hardware {
15 import xran-hardware {
19 organization "xRAN Forum";
25 "This module defines operations and configuration for the management of software packages.
26 This module is derived out of opencpe-firmware-mgmt@2014-02-06.yang
28 Copyright 2018 the xRAN Forum.
30 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
31 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
32 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
33 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
34 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
35 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
36 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
37 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
38 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
39 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
40 POSSIBILITY OF SUCH DAMAGE.
42 Redistribution and use in source and binary forms, with or without
43 modification, are permitted provided that the following conditions are met:
45 * Redistributions of source code must retain the above copyright notice,
46 this list of conditions and the above disclaimer.
47 * Redistributions in binary form must reproduce the above copyright notice,
48 this list of conditions and the above disclaimer in the documentation
49 and/or other materials provided with the distribution.
50 * Neither the Members of the xRAN Forum nor the names of its
51 contributors may be used to endorse or promote products derived from
52 this software without specific prior written permission.";
54 revision "2018-07-20" {
56 "version 1.0.0 - First release of the xRAN YANG M-Plane models.
58 This version of the model supports v01.00 of the corrsponding xRAN
59 M-Plane Specification.";
60 reference "XRAN-FH.MP.0-v01.00";
65 container software-inventory {
68 "Contains information about each software slot and its content.";
75 "Information about available software-slots and their software.";
81 "Name of the software package. This shall be unique to identify the software-slot.";
88 "Slot Contains software build considered as proven valid";
92 "software build is not currently used by RU. The software is considered by RU as damaged (e.g. wrong CRC)";
96 "W slot does not contain software package.";
102 description "Indicates the status of the software slot";
107 must "../status = 'VALID'";
110 "informs if software stored in particular slot is activated at the moment";
115 must "../status = 'VALID'";
118 "informs if software stored in particular slot is used at the moment";
125 "slot intended only for factory software,
126 activation of such software slot means getting back to factory defaults";
130 "slot used for updating software";
137 "Indicates the writability of the slot.
138 A Read-Only software slot is one which has a factory installed software-slot";
143 path "/hw:hardware/hw:component/xran-hw:product-code";
147 description "product code provided by the vendor, specific to the product. This is derived from manifest file.";
157 "Unique code of the vendor. This is derived from manifest file.";
165 "Identity associated with the software build. This is derived from manifest file.";
173 "Name of the build. This is derived from manifest file.";
178 path "/hw:hardware/hw:component/hw:software-rev";
180 description "Version of the software build. This is derived from manifest file.";
187 description "List of all the files present in the software package.";
193 "Name of the file installed in the slot.";
200 "Version of the file installed in the slot";
207 "Complete path of the file stored locally";
213 description "OK - indicates that file integrity is correct";
216 description "NOK - indicates corrupted file";
222 "Result of the file integrity check (checksum calculation) during installation.";
229 rpc software-download {
231 "Rpc needed to perform software download operation.";
234 leaf remote-file-path {
238 "URI of the software image including username.
239 The following format is possible:
240 sftp://<username>@<host>[:<port>]";
245 "Type of authentication to use for software downloads.";
255 "password needed for authentication.";
259 "password authentication method in use";
263 container certificate {
266 "certificate authentication method in use";
276 "Operation has been started without error.";
280 "Operation cannot be started because of error, more detailed information can be found in error-message.";
286 "Status of the software files download";
289 when "../status = 'FAILED'";
293 "Detailed error Message when the status is failed.";
296 leaf notification-timeout {
302 "Notification timeout is the time NETCONF client shall
303 wait for a 'download-event' notification from RU. If there is no
304 'download-event' notification received within notification-timeout,
305 NETCONF client shall assume the download timeout/failure, and follow necessary steps.";
310 rpc software-install {
312 "Install a previously downloaded software package.";
317 path "/software-inventory/software-slot/name";
319 must "/software-inventory/software-slot[name = current()][active = 'false' and running = 'false']" {
320 error-message "software-install may be requested only against active::false and running::false slot!";
325 "software-slot to which the software shall be installed to.";
328 leaf-list file-names {
332 "Names of the files within software package to be installed";
340 "Operation has been started without error.";
344 "Operation cannot be started because of error, more detailed information can be found in error-message.";
350 "Status of the software package install.";
353 when "../status = 'FAILED'";
357 "Detailed error Message when the status is failed.";
362 rpc software-activate {
364 "Activate a previously installed software.";
368 path "/software-inventory/software-slot/name";
373 "Slot name on which software has to be activated.";
381 "Operation has been started without error.";
385 "Operation cannot be started because of error, more detailed information can be found in error-message.";
391 "Status of the software files activation";
394 when "../status = 'FAILED'";
398 "Detailed error Message when the status is failed.";
401 leaf notification-timeout {
407 "Timeout on client waiting for the activate event";
412 // notification definitions
413 notification download-event {
414 description "Notification event structure for download completion";
420 "File name of downloaded software package";
427 "Operation completed succesfully";
429 enum AUTHENTICATION_ERROR {
430 description "source available, wrong credentials";
432 enum PROTOCOL_ERROR {
433 description "SFTP errors";
435 enum FILE_NOT_FOUND {
436 description "source not available.";
438 enum APPLICATION_ERROR {
439 description "Application related errors";
442 description "Timeout waiting for download";
447 "Status of finished operation execution";
450 when "../status != 'COMPLETED'";
454 "Detailed description of faulty situation";
459 notification install-event {
460 description "Notification event structure for installation completion";
463 path "/software-inventory/software-slot/name";
467 "Name of the slot to which software was installed.";
473 "Operation completed succesfully";
476 description "operation on the file resulted in in error, disk failure, not enough disk space,
477 incompatible file format";
479 enum INTEGRITY_ERROR {
480 description "file is corrupted";
482 enum APPLICATION_ERROR {
483 description "operation failed due to internal reason";
488 "Status of finished operation execution";
491 when "../status != 'COMPLETED'";
495 "Detailed description of faulty situation";
499 notification activation-event {
500 description "Notification event structure for activation completion";
503 path "/software-inventory/software-slot/name";
507 "Name of the slot which was activated";
514 "Operation completed succesfully";
516 enum APPLICATION_ERROR {
518 "Operation finished with error, more details can by found in error-message";
523 "Status of finished operation execution";
529 "status code return when the software is tried to activate";
532 when "../status != 'COMPLETED'";
536 "Detailed description of faulty situation";