From 5420ef3d4843deae2914a085ca6350591ca7dff1 Mon Sep 17 00:00:00 2001 From: "U-ERICSSON\\ETHBLL" Date: Wed, 2 Jul 2025 11:41:48 +0200 Subject: [PATCH 1/3] Updated FIles IOC --- yang-models/_3gpp-common-files.yang | 119 ++++++++++++++-------------- 1 file changed, 58 insertions(+), 61 deletions(-) diff --git a/yang-models/_3gpp-common-files.yang b/yang-models/_3gpp-common-files.yang index cc0ba8f55..60e8a7d28 100644 --- a/yang-models/_3gpp-common-files.yang +++ b/yang-models/_3gpp-common-files.yang @@ -13,7 +13,7 @@ module _3gpp-common-files { contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "Defines the YANG mapping of File retrieval NRM fragment including the IOCs File and Files. - Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.623 Generic Network Resource Model (NRM) @@ -25,6 +25,7 @@ module _3gpp-common-files { Integration Reference Point (IRP); Information Service (IS)"; + revision 2025-07-01 { reference CR-0xxx ; } revision 2024-05-25 { reference CR-0362 ; } revision 2023-09-18 { reference CR-0271 ; } revision 2022-09-28 { reference CR-0191; } @@ -32,33 +33,44 @@ module _3gpp-common-files { grouping FileGrp { description "Represents the File IOC."; - leaf fileLocation { - type inet:uri ; + choice fileRetrievalMethod { mandatory true; - yext3gpp:notNotifyable ; - yext3gpp:inVariant ; - description "Location of the file incl. the file transfer protocol, - and the file name for the case the file content cannot be retrieved - by reading the 'fileContent' attribute. - - The allowed file transfer protocols are: - - sftp - - ftpes - - https - - Examples: - 'sftp://companyA.com/datastore/fileName.xml', - 'https://companyA.com/ManagedElement=1/Files=1/File=1' - "; + leaf fileLocation { + type inet:uri ; + config false; + yext3gpp:notNotifyable ; + yext3gpp:inVariant ; + description "Location of the file incl. the file transfer protocol, + and the file name. + + The allowed file transfer protocols are: + - sftp + - ftpes + - https + + Examples: + 'sftp://companyA.com/datastore/fileName.xml', + 'https://companyA.com/ManagedElement=1/Files=1/File=1' + "; + } + + leaf fileContent { + type binary ; + config false; + yext3gpp:notNotifyable ; + yext3gpp:inVariant ; + description "File content as a Base64 encoded string according to + RFC 4648 section 4."; + } } leaf fileCompression { type string ; - mandatory true; + config false; yext3gpp:notNotifyable ; yext3gpp:inVariant ; description "Name of the algorithm used for compressing the file. - An empty or absent 'fileCompression' parameter indicates the file is + An absent 'fileCompression' parameter indicates the file is not compressed. The MnS producer selects the compression algorithm. It is encouraged to use popular algorithms such as GZIP."; } @@ -67,6 +79,7 @@ module _3gpp-common-files { type uint64 ; mandatory true; units bytes; + config false; yext3gpp:notNotifyable ; yext3gpp:inVariant ; description "Size of the file"; @@ -82,6 +95,7 @@ module _3gpp-common-files { enum PROPRIETARY; } mandatory true; + config false; yext3gpp:notNotifyable ; yext3gpp:inVariant ; description "Type of the management data stored in the file."; @@ -89,16 +103,18 @@ module _3gpp-common-files { leaf fileFormat { type string ; - mandatory true; + config false; yext3gpp:notNotifyable ; yext3gpp:inVariant ; - description "Identifier of the XML or ASN.1 schema (incl. its version) - used to produce the file content."; + description "Identifier of the schema (incl. its version) + used to produce the file content. If there is no schema for the file + or it is not available, the fileFormat parameter is absent."; } leaf fileReadyTime { type yang:date-and-time ; mandatory true; + config false; yext3gpp:notNotifyable ; yext3gpp:inVariant ; description "Date and time, when the file was closed (the last time) @@ -108,22 +124,15 @@ module _3gpp-common-files { leaf fileExpirationTime { type yang:date-and-time ; - mandatory true; + config false; yext3gpp:notNotifyable ; yext3gpp:inVariant ; description "Date and time after which the file may be deleted."; } - - leaf fileContent { - type string ; // String is very restrictive - mandatory true; - yext3gpp:notNotifyable ; - yext3gpp:inVariant ; - description "File content"; - } leaf-list jobRef { type types3gpp:DistinguishedName ; + config false; yext3gpp:notNotifyable ; yext3gpp:inVariant ; description "Object instance of the 'PerfMetricJob' or 'TraceJob' @@ -132,6 +141,7 @@ module _3gpp-common-files { leaf jobId { type string ; + config false; yext3gpp:notNotifyable ; yext3gpp:inVariant ; description "Identifier of a PerfMetricJob job or a TraceJob."; @@ -142,12 +152,14 @@ module _3gpp-common-files { description "Represents the Files IOC."; leaf numberOfFiles { type uint64 ; + config false; yext3gpp:notNotifyable ; description "Number of files in a file collection."; } leaf-list jobRef { type types3gpp:DistinguishedName ; + config false; yext3gpp:notNotifyable ; yext3gpp:inVariant ; description "Object instance of the 'PerfMetricJob' or 'TraceJob' @@ -156,6 +168,7 @@ module _3gpp-common-files { leaf jobId { type string ; + config false; yext3gpp:notNotifyable ; yext3gpp:inVariant ; description "Identifier of a PerfMetricJob job or a TraceJob."; @@ -210,7 +223,7 @@ module _3gpp-common-files { The attribute '_linkToFiles' allows a MnS consumer to create simple and targeted subscriptions for 'notifyFileReady'and 'notifyFilePreparationError', or - 'notifyMOICreation', 'notifyMOIChanges' and 'notifyFilePreparationError' + 'notifyMOICreation', 'notifyMOIChanges' and 'notifyFilePreparationError' related to 'File' instances created or deleted under the 'Files' instance of a specific job. The subscription needs to scope simply objects one level below the 'Files' object. @@ -244,36 +257,20 @@ module _3gpp-common-files { The attributes 'fileSize', 'fileCompression', 'fileDataType' and 'fileFormat' describe the file properties. - - The 'fileLocation' attribute indicates the address where the file can - be retrieved. The address includes the file transfer protocol (schema). - Allowed file transfer protocols are 'sftp', 'ftpes' and 'https'. - - The value of 'fileLocation' can be identical to or different from the - address of the 'File' instance. The attribute 'fileContent' is - provided for retrieving the actual file content. When identifying in - the Read request a 'File' instance and specifying only the - 'fileContent' attribute be returned, then only the file content shall - be returned in the response. Note, as usual, multiple attributes can - be specified to be returned, so that the file content together with - some or all file meta data attributes can be returned in response to - a single request. - - In case the 'fileLocation' specifies a location different than the - 'File' object location, then the attribute 'fileContent' cannot be - used for retrieving the file content. For example, the 'File' object - location may be given by - 'https://companyA.com/ManagedElement=1/Files=1/File=1' - and the value of the 'fileLocation' attribute by - 'sftp://companyA.com/datastore/fileName.xml' - - In this case the file needs to be retrieved using 'sftp' from - 'sftp://companyA.com/datastore/fileName.xml'. Attempts to read the - 'fileContent' attribute shall return an error. + + The MnS producer makes the file available by one of the following means: + - For retrieval via a file transfer protocol. The fileLocation attribute + indicates the address from where the file can be retrieved. The + address includes the file transfer protocol (schema). Allowed file + transfer protocols are 'sftp', 'ftpes' and 'https'. + - For retrieval of the file contents via a CM read operation. The + attribute fileContent is provided for retrieving the actual file + content. In this case, the name of the file is equal to the identity + of the File instance. When the file retrieval NRM fragment is used together with a data - collection job ('PerfMetricJob' or 'TraceJob') the following - provisions shall apply: + collection job (PerfMetricJob or TraceJob) the following provisions + shall apply: - The attributes 'jobRef' and 'jobId' shall be supported and present. They shall identify the job that the file is related to. -- GitLab From 51d30f5f70c6e0942ed030f42eeb6a71ade2f47e Mon Sep 17 00:00:00 2001 From: "U-ERICSSON\\ETHBLL" Date: Wed, 2 Jul 2025 14:21:32 +0200 Subject: [PATCH 2/3] common file corrected revision infos and a description. --- yang-models/_3gpp-common-files.yang | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/yang-models/_3gpp-common-files.yang b/yang-models/_3gpp-common-files.yang index 60e8a7d28..25e274b73 100644 --- a/yang-models/_3gpp-common-files.yang +++ b/yang-models/_3gpp-common-files.yang @@ -25,9 +25,10 @@ module _3gpp-common-files { Integration Reference Point (IRP); Information Service (IS)"; - revision 2025-07-01 { reference CR-0xxx ; } - revision 2024-05-25 { reference CR-0362 ; } - revision 2023-09-18 { reference CR-0271 ; } + // the file is common for r17,18,19 + revision 2025-07-01 { reference "CR-0xxx17 CR-0xxx18 CR-0xxx19"; } + revision 2024-05-25 { reference "CR-0361 CR-0362"; } + revision 2023-09-18 { reference "CR-0270 CR-0271"; } revision 2022-09-28 { reference CR-0191; } grouping FileGrp { @@ -310,13 +311,9 @@ module _3gpp-common-files { the file data reporting MnS. When the file is not created at all or deleted, the 'objectClass' and 'objectInstance' parameters of the notification header are populated as described in 3GPP TS 28.532, - clause 11.6.1.1.1. The parameter 'fileCreationErrorInfoList' - shall provide details about files and job which failed to create them. - The error information about such files shall only be emitted once, - at the time the MnS producer fails to create them, to inform the MnS - consumer about files which the node could not create. Note that to - receive 'notifyFilePreparationError' in that case the notification - subscription needs to include these objects in its scope."; + clause 11.6.1.1.1. Note that to receive 'notifyFilePreparationError' + in that case the notification subscription needs to include these + objects in its scope."; key id; uses top3gpp:Top_Grp ; container attributes { -- GitLab From 5b74121527e35514bb6d9c1abab03af3f810bd18 Mon Sep 17 00:00:00 2001 From: "U-ERICSSON\\ETHBLL" Date: Thu, 7 Aug 2025 11:23:21 +0200 Subject: [PATCH 3/3] updated CR numbers --- yang-models/_3gpp-common-files.yang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yang-models/_3gpp-common-files.yang b/yang-models/_3gpp-common-files.yang index 25e274b73..a9c934a71 100644 --- a/yang-models/_3gpp-common-files.yang +++ b/yang-models/_3gpp-common-files.yang @@ -26,7 +26,7 @@ module _3gpp-common-files { Information Service (IS)"; // the file is common for r17,18,19 - revision 2025-07-01 { reference "CR-0xxx17 CR-0xxx18 CR-0xxx19"; } + revision 2025-07-01 { reference "CR-0557 CR-0558 CR-0559"; } revision 2024-05-25 { reference "CR-0361 CR-0362"; } revision 2023-09-18 { reference "CR-0270 CR-0271"; } revision 2022-09-28 { reference CR-0191; } -- GitLab