--- /dev/null
+module o-ran-file-management {
+ yang-version 1.1;
+ namespace "urn:o-ran:file-management:1.0";
+ prefix "o-ran-file-mgmt";
+
+ import ietf-crypto-types {
+ prefix "ct";
+ }
+
+
+ organization "O-RAN Alliance";
+
+ contact
+ "www.o-ran.org";
+
+ description
+ "This module defines the configuration and operations for handling upload.
+
+ Copyright 2019 the O-RAN Alliance.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the above disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the above disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the Members of the O-RAN Alliance nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.";
+
+ revision "2019-07-03" {
+ description
+ "version 1.1.0
+
+ 1) backward compatible changes to correct sFTP Server Authentication .
+ 2) minor fixes according to lack of descriptions
+ 3) backward compatible changes to introduce groupings";
+
+ reference "ORAN-WG4.M.0-v01.00";
+ }
+
+ revision "2019-02-04" {
+ description
+ "version 1.0.0
+
+ 1) imported model from xRAN
+ 2) changed namespace and reference from xran to o-ran";
+
+ reference "ORAN-WG4.M.0-v01.00";
+ }
+
+ grouping file-path-grouping {
+ description "Complete logical path of the file to upload/download
+ (no wildcard is allowed) ex : /o-RAN/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 O-DU/NMS.
+ Format:sftp://<username>@<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 O-RU authentication.";
+ }
+ description
+ "password for O-RU authentication method in use";
+ }
+ container server {
+ list keys {
+ key algorithm;
+ ordered-by user;
+ uses ct:public-key-grouping;
+ description
+ "List of allowed algorithms with its keys";
+ }
+ description
+ "Key for sFTP server authentication";
+ }
+ }
+ case certificate {
+ container certificate {
+ presence true;
+ description
+ "certificate authentication method in use";
+ }
+ }
+ description "";
+ }
+ }
+
+ grouping retrieve-input {
+ description "Grouping for information retrieval RPC input";
+ leaf logical-path {
+ type string;
+ mandatory true;
+ description "O-RAN unit of which the files are to be listed.
+ ex : O-RAN/log, o-RAN/PM, O-RAN/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).";
+ }
+ }
+
+ grouping retrieve-output {
+ description "Grouping for information retrieval RPC output";
+ uses output-status-grouping;
+ leaf-list file-list {
+ when "../status = 'SUCCESS'";
+ type string;
+ description "List of files in the unit with the filter applied.";
+ }
+ }
+
+// RPCs
+
+ rpc file-upload {
+ description "File upload over SFTP from equipment 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 O-RAN unit (* is allowed as wild-card).";
+ input {
+ uses retrieve-input;
+
+ }
+ output {
+ uses retrieve-output;
+ }
+ }
+
+ 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 O-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 "";
+ }
+}