From 1e7e7ea39def9e1b16225045eb4de2acf814719a Mon Sep 17 00:00:00 2001 From: "U-ERICSSON\\ETHBLL" Date: Tue, 16 Apr 2024 17:21:29 +0800 Subject: [PATCH 01/24] 28.624 cr0346 28.541 cd1218 --- yang-models/_3gpp-5gc-nrm-neffunction.yang | 5 +- yang-models/_3gpp-5gc-nrm-nfprofile.yang | 9 +- yang-models/_3gpp-5gc-nrm-nwdaffunction.yang | 354 ++++++++++++++++-- yang-models/_3gpp-common-fm.yang | 7 +- .../_3gpp-common-managed-function.yang | 7 +- ..._3gpp-common-managementdatacollection.yang | 19 +- yang-models/_3gpp-common-measurements.yang | 9 +- yang-models/_3gpp-common-yang-types.yang | 14 +- .../_3gpp-nr-nrm-eutranfreqrelation.yang | 13 +- yang-models/_3gpp-nr-nrm-gnbcucpfunction.yang | 19 +- yang-models/_3gpp-nr-nrm-nrfreqrelation.yang | 17 +- 11 files changed, 392 insertions(+), 81 deletions(-) diff --git a/yang-models/_3gpp-5gc-nrm-neffunction.yang b/yang-models/_3gpp-5gc-nrm-neffunction.yang index f2b6f26f9..12f072aa4 100755 --- a/yang-models/_3gpp-5gc-nrm-neffunction.yang +++ b/yang-models/_3gpp-5gc-nrm-neffunction.yang @@ -17,10 +17,11 @@ module _3gpp-5gc-nrm-neffunction { contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "This IOC represents the NEF function in 5GC. For more information about the NEF, see 3GPP TS 23.501. - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.541"; + revision 2024-04-12 { reference CR-1218 ; } revision 2023-09-18 { reference CR-1103 ; } revision 2023-09-18 { reference CR-1043 ; } revision 2023-04-26 { reference CR-0916; } @@ -161,7 +162,7 @@ module _3gpp-5gc-nrm-neffunction { yext3gpp:notNotifyable; key idx; leaf idx { type uint32 ; } - uses nfp3gpp:TaiRange; + uses nfp3gpp:TaiRangeGrp; } leaf nefId { diff --git a/yang-models/_3gpp-5gc-nrm-nfprofile.yang b/yang-models/_3gpp-5gc-nrm-nfprofile.yang index 43f988955..15dc5e0a1 100755 --- a/yang-models/_3gpp-5gc-nrm-nfprofile.yang +++ b/yang-models/_3gpp-5gc-nrm-nfprofile.yang @@ -12,10 +12,11 @@ module _3gpp-5gc-nrm-nfprofile { organization "3gpp SA5"; contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "NF profile class. - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 29.510"; + revision 2024-04-12 { reference CR-1218 ; } revision 2023-11-18 { reference CR-1103 ; } revision 2023-09-18 { reference CR-1043 ; } revision 2023-02-14 { reference CR-0891; } @@ -338,7 +339,7 @@ module _3gpp-5gc-nrm-nfprofile { min-elements 1; key idx; leaf idx { type uint32; } - uses TaiRange; + uses TaiRangeGrp; } list backupInfoAmfFailure { @@ -409,7 +410,7 @@ module _3gpp-5gc-nrm-nfprofile { min-elements 1; key idx; leaf idx { type uint32; } - uses TaiRange; + uses TaiRangeGrp; } leaf pgwFqdn { @@ -1055,7 +1056,7 @@ module _3gpp-5gc-nrm-nfprofile { } } - grouping TaiRange { + grouping TaiRangeGrp { list plmnId { description "PLMN ID related to the TacRange."; min-elements 1; diff --git a/yang-models/_3gpp-5gc-nrm-nwdaffunction.yang b/yang-models/_3gpp-5gc-nrm-nwdaffunction.yang index 81e85cbfa..5fe7eb7ae 100755 --- a/yang-models/_3gpp-5gc-nrm-nwdaffunction.yang +++ b/yang-models/_3gpp-5gc-nrm-nwdaffunction.yang @@ -8,38 +8,288 @@ module _3gpp-5gc-nrm-nwdaffunction { import _3gpp-common-managed-element { prefix me3gpp; } import ietf-inet-types { prefix inet; } import _3gpp-common-yang-types { prefix types3gpp; } + import _3gpp-common-yang-extensions { prefix yext3gpp; } import _3gpp-5g-common-yang-types { prefix types5g3gpp; } import _3gpp-common-top { prefix top3gpp; } + import _3gpp-5gc-nrm-nfprofile { prefix nfp3gpp; } organization "3gpp SA5"; contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "This IOC represents the NWDAF function in 5GC. For more information about the NWDAF, see 3GPP TS 23.501. - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.541"; - revision 2023-09-18 { reference CR-1043 ; } + revision 2024-04-12 { reference CR-1218; } + revision 2023-09-18 { reference CR-1043; } revision 2023-04-26 { reference CR-0916; } - revision 2020-11-08 { reference CR-0412 ; } + revision 2020-11-08 { reference CR-0412; } revision 2019-10-25 { reference "S5-194457 S5-195427 S5-193518"; } revision 2019-05-15 {reference "initial revision"; } + + typedef NwdafEvent { + description "The detailed ENUM value for NwdafEvent see the + Table 5.1.6.3.4-1 in TS 29.520"; + type union { + type enumeration { + enum SLICE_LOAD_LEVEL; + enum NETWORK_PERFORMANCE; + enum NF_LOAD; + enum SERVICE_EXPERIENCE; + enum UE_MOBILITY; + enum UE_COMMUNICATION; + enum QOS_SUSTAINABILITY; + enum ABNORMAL_BEHAVIOUR; + enum USER_DATA_CONGESTION; + enum NSI_LOAD_LEVEL; + enum DN_PERFORMANCE; + enum DISPERSION; + enum RED_TRANS_EXP; + enum WLAN_PERFORMANCE; + enum SM_CONGESTION; + } + type string; + } + } + + grouping NwdafCapabilityGrp { + description "This data type represents the capability supported by the + NWDAF."; + reference "TS 29.510"; + + leaf analyticsAggregation { + type boolean ; + default false; + description "It indicates whether the NWDAF supports analytics + aggregation"; + } + + leaf analyticsMetadataProvisioning { + type boolean ; + default false; + description "It indicate whether the NWDAF supports analytics metadata + provisioning:"; + } + } + + grouping MlAnalyticsInfoGrp { + description "This data type represents ML Analytics Filter information + supported by the Nnwdaf_MLModelProvision service."; + reference "TS 29.510"; + + leaf-list mlAnalyticsIds { + type NwdafEvent; + ordered-by user; + description "This attribute represents the Analytic functionalities + (identified by nwdafEvent defined in TS 29.520 [85]) of the NWDAF + instance. MnS consumer can configure this attribute to specify + which Analytic functionalities (identified by nwdafEvent) can be + performed the NWDAF instance. If the value of this attribute is not + present, the NWDAF instance can perform any NWDAFEvents + + Analytics Id(s) supported by the Nnwdaf_MLModelProvision service, + if none are provided the NWDAF can serve any mlAnalyticsId."; + } + + list sNSSAIList { + min-elements 1; + description "List of S-NSSAIs the managed object is capable of + supporting."; + reference "3GPP TS 23.003"; + key "sd sst"; + uses types5g3gpp:SNssai; + } + + list trackingAreaList { + description "This attribute represents area of Interest of the ML model, + if none are provided the ML model for the analytics can apply to any + TAIs. + + If present, it represents the list of TAIs, it may contain one or + more non-3GPP access TAIs."; + key idx ; + leaf idx { type uint32; } + uses types3gpp:TaiGrp; + } + + leaf-list mlModelInterInfo { + type string { + pattern "[0-9]{6}"; + } + description "This attribute defines the list of NWDAF vendors that are + allowed to retrieve ML models from the NWDAF containing MTLF. The + absence of this attribute indicates that none of the NWDAF vendors + can retrieve the ML models. + + allowedValues: 6 decimal digits; if the SMI code has less than + 6 digits, it shall be padded with leading digits '0' to complete a + 6-digit string value."; + } + + leaf flCapabilityType { + type enumeration { + enum FL_SERVER { + description "NWDAF containing MTLF as Federated Learning Server"; + } + enum FL_CLIENT { + description "NWDAF containing MTLF as Federated Learning Client"; + } + enum FL_SERVER_AND_CLIENT { + description "NWDAF containing MTLF as Federated Learning Server and + Client."; + } + } + description "This attribute defines the federated learning capability + type supported by NWDAF containing MTLF."; + } + + list flTimeInterval { + key idx ; + leaf idx { type uint32; } + description "This attribute defines the time window at which the + indicated flCapabilityType supported by NWDAF MTLF is available. + This attribute shall be present only if flCapabilityType attribute + is present."; + uses types3gpp:TimeWindowGrp; + } + } + + grouping NwdafInfoGrp { + description "This data type represents specific data for the NWDAF."; + reference "TS 29.510"; + + leaf-list nwdafEvents { + type NwdafEvent; + ordered-by user; + description "This attribute represents the Analytic functionalities + (identified by nwdafEvent defined in TS 29.520) of the NWDAF instance. + MnS consumer can configure this attribute to specify which Analytic + functionalities (identified by nwdafEvent) can be performed the NWDAF + instance. If the value of this attribute is not present, the NWDAF + instance can perform any NWDAFEvents. + The detailed ENUM value for NwdafEvent see the Table 5.1.6.3.4-1 + in TS 29.520"; + } + + leaf-list eventIds { + type string ; + min-elements 1; + description "It represents the EventId(s) supported by the + Nnwdaf_AnalyticsInfo service, if none are provided the NWDAF can serve + any eventId. (see clause TS 29.520)"; + } + + list taiList { + description "The list of TAIs. "; + min-elements 1; + key idx ; + leaf idx { type uint32; } + uses types3gpp:TaiGrp; + } + + list taiRangeList { + min-elements 1; + key idx ; + leaf idx { type uint32; } + description "The range of TAIs."; + uses nfp3gpp:TaiRangeGrp; + } + + list nwdafCapability { + max-elements 1; + key idx ; + leaf idx { type uint32; } + description "This attribute indicates the capability of the NWDAF. + If not present, the NWDAF shall be regarded with no capability."; + uses NwdafCapabilityGrp; + } + + leaf analyticsDelay { + type int32 ; + units seconds; + description "It represents the supported Analytics Delay related to the + eventIds and nwdafEvents. + It is an unsigned integer identifying a period of time in units of + seconds.(see clause 5.2.2 TS 29.571)."; + } + + leaf-list servingNfTypeList { + type types3gpp:NfType; + min-elements 1; + description "It contains the list of NF type(s) from which the NWDAF NF + can collect data. The absence of this attribute indicates that the + NWDAF can collect data from any NF type."; + } + + leaf-list servingNfSetIdList { + type string ; + min-elements 1; + description "It contains the list of NF type(s) from which the NWDAF NF + can collect data. The absence of this attribute indicates that the + NWDAF can collect data from any NF type. (see clause 5.4.2 NfSetId + in TS 29.571)"; + } + + list mlAnalyticsList { + min-elements 1; + key idx ; + leaf idx { type uint32; } + description "It represents ML Analytics Filter information supported by + the Nnwdaf_MLModelProvision service."; + uses MlAnalyticsInfoGrp; + } + } + + grouping NetworkSliceInfoGrp { + description "Represents information of network slice when the NWDAF is + authorized to collect the management data of the network slice. "; + + list sNSSAI { + description "It represents the S-NSSAI the NetworkSlice managed object + is supporting. The S-NSSAI is defined in TS 23.003 "; + key idx; + min-elements 1; + max-elements 1; + + leaf idx { + type string; + } + uses types5g3gpp:SNssai; + } + + leaf-list cNSIId { + type string; + description "It represents NSI ID which is an identifier for identifying + the Core Network part of a Network Slice instance when multiple + Network Slice instances of the same Network Slice are deployed, + and there is a need to differentiate between them in the 5GC. + See NSI ID definition in clause 3.1 of TS 23.501 and + subclause 6.1.6.2.7 of TS 29.531."; + } + + leaf networkSliceRef { + type types3gpp:DistinguishedName; + mandatory true; + description "This holds a DN of the NetworkSlice managed object relating + to the NetworkSlice instance differentiated by sNSSAI and optional + cNSIId."; + } + } grouping NWDAFFunctionGrp { description "Represents the NWDAFFunction IOC"; uses mf3gpp:ManagedFunctionGrp; - list pLMNIdList { - description "List of at most six entries of PLMN Identifiers, but at - least one (the primary PLMN Id). - The PLMN Identifier is composed of a Mobile Country Code (MCC) and a - Mobile Network Code (MNC)."; + list pLMNInfoList { + description "It defines the PLMN(s) of a Network Function."; - min-elements 1; - max-elements 6; - key "mcc mnc"; + min-elements 1; + key "idx"; + leaf idx { type uint32; } uses types3gpp:PLMNId; + uses types5g3gpp:SNssai; } leaf sBIFQDN { @@ -47,18 +297,7 @@ module _3gpp-5gc-nrm-nwdaffunction { interface."; type inet:domain-name; } - - list sNSSAIList { - description "List of S-NSSAIs the managed object is capable of supporting. - (Single Network Slice Selection Assistance Information) - An S-NSSAI has an SST (Slice/Service type) and an optional SD - (Slice Differentiator) field."; - //optional support - reference "3GPP TS 23.003"; - key "sd sst"; - uses types5g3gpp:SNssai; - } - + list managedNFProfile { key idx; min-elements 1; @@ -75,12 +314,77 @@ module _3gpp-5gc-nrm-nwdaffunction { reference "3GPP TS 23.501"; uses types5g3gpp:CommModel; } + + list networkSliceInfoList { + key idx; + min-elements 1; + description "The attribute specifies a list of NetworkSliceInfo which + is defined as a datatype (see clause 5.3.95). It can be used by the + NWDAF to facilitate the data collection from OAM."; + leaf idx { + type string; + } + uses NetworkSliceInfoGrp; + yext3gpp:inVariant; + } + + list nwdafInfo { + min-elements 1; + max-elements 1; + key idx; + leaf idx { type uint32; } + description "It represents specific data for the NWDAF."; + uses NwdafInfoGrp; + } + + leaf administrativeState { + type types3gpp:BasicAdministrativeState ; + mandatory true; + description "This attribute determines whether the NWDAF is enabled or + disabled. MnS consumer can configure this attribute to activate or + de-activate the analytic functionalities (identified by nwdafEvent + defined in TS 29.520) of the NWDAF instance."; + } + + leaf nwdafLogicalFuncSupported { + type enumeration { + enum NWDAF_WITH_ANLF { + description "Indicates the NWDAF containing Analytics logical + function (AnLF)"; + } + enum NWDAF_WITH_MTLF { + description "Indicates the NWDAF containing Model Training logical + function (MTLF)."; + } + enum NWDAF_WITH_ANLF_MTLF { + description "Indicates the NWDAF containing both Analytics logical + function (AnLF) and Model Training logical function (MTLF)."; + } + } + config false; + description "It represents the logical functions supported by the NWDAF. + If not present, the NWDAF shall be regarded with no logical + decomposition, in that case the NWDAF only supports the analytics + services."; + } } augment "/me3gpp:ManagedElement" { list NWDAFFunction { - description "5G Core NWDAF Function"; - reference "3GPP TS 28.541"; + description "5G Core NWDAF Function. + For more information about the NWDAF, see TS 23.501. Several + attributes (including 'nwdafInfo', 'administrativeState' and + 'ManagedNFProfile.servingScope') are used to control the functionalities + (identified by nwdafEvent defined in TS 29.520) of the NWDAF instance. + + The attribute 'ManagedNFProfile.servingScope' is used to represent + specified certain geographical area(s) can be served by the NWDAF + instance. + + The attribute 'NwdafInfo.taiList' and 'NwdafInfo.taiRangeList' is used + to represent specified certain tracking area(s) can be served by the + NWDAF instance."; + reference "3GPP TS 28.541 3GPP TS 23.501"; key id; uses top3gpp:Top_Grp; container attributes { diff --git a/yang-models/_3gpp-common-fm.yang b/yang-models/_3gpp-common-fm.yang index 219bb3c0c..b7fa544c1 100755 --- a/yang-models/_3gpp-common-fm.yang +++ b/yang-models/_3gpp-common-fm.yang @@ -12,15 +12,16 @@ module _3gpp-common-fm { contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "Defines a Fault Management model - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.111"; + revision 2024-02-24 { reference CR-0346; } revision 2024-01-18 { description "The specification of the file is moved from 28.623 to 28.532"; reference "28.623 CR-0315"; } - revision 2023-09-18 { reference CR-0271 ; } + revision 2023-09-18 { reference CR-0271; } revision 2023-05-10 { reference CR-0250; } revision 2022-10-24 { reference CR-0196; } revision 2021-08-08 { reference "CR-0132"; } @@ -441,7 +442,7 @@ module _3gpp-common-fm { description "Represents the AlarmList IOC."; leaf administrativeState { - type types3gpp:AdministrativeState ; + type types3gpp:BasicAdministrativeState ; default LOCKED; description "When set to UNLOCKED, the alarm list is updated. When the set to LOCKED, the existing alarm records are not diff --git a/yang-models/_3gpp-common-managed-function.yang b/yang-models/_3gpp-common-managed-function.yang index 11131766d..ea4390cc3 100755 --- a/yang-models/_3gpp-common-managed-function.yang +++ b/yang-models/_3gpp-common-managed-function.yang @@ -13,7 +13,7 @@ module _3gpp-common-managed-function { contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "The module defines a base class/grouping for major 3GPP functions. - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.622 @@ -24,7 +24,8 @@ module _3gpp-common-managed-function { 3GPP TS 28.620 Umbrella Information Model (UIM)"; - revision 2023-09-18 { reference CR-0271 ; } + revision 2024-02-24 { reference CR-0346; } + revision 2023-09-18 { reference CR-0271; } revision 2023-04-26 { reference CR-0250; } revision 2023-02-14 { reference "CR-0234"; } revision 2022-11-02 { reference "CR-0753"; } @@ -116,7 +117,7 @@ module _3gpp-common-managed-function { } leaf administrativeState { - type types3gpp:AdministrativeState; + type types3gpp:BasicAdministrativeState; mandatory true; description "Permission to use or prohibition against using the instance"; } diff --git a/yang-models/_3gpp-common-managementdatacollection.yang b/yang-models/_3gpp-common-managementdatacollection.yang index 7b5c30180..2a6ffea33 100644 --- a/yang-models/_3gpp-common-managementdatacollection.yang +++ b/yang-models/_3gpp-common-managementdatacollection.yang @@ -6,15 +6,13 @@ module _3gpp-common-managementdatacollection { import _3gpp-common-top { prefix top3gpp; } import _3gpp-common-yang-types {prefix types3gpp; } import _3gpp-common-yang-extensions {prefix yext3gpp; } - //import ietf-inet-types { prefix inet; } - import ietf-yang-types { prefix yang; } import _3gpp-common-subnetwork { prefix subnet3gpp; } organization "3GPP SA5"; contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "Handling management data collection - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.623 Generic Network Resource Model (NRM) @@ -26,6 +24,7 @@ module _3gpp-common-managementdatacollection { Integration Reference Point (IRP); Information Service (IS)"; + revision 2024-04-12 { reference CR-0346; } revision 2023-11-18 { reference CR-0299 ; } revision 2023-11-06 { reference "CR-0305"; } revision 2023-09-18 { reference CR-0271 ; } @@ -168,18 +167,6 @@ module _3gpp-common-managementdatacollection { description ""; } - grouping TimeWindowGrp { - leaf startTime { - type yang:date-and-time; - yext3gpp:inVariant; - } - leaf endTime { - type yang:date-and-time; - yext3gpp:inVariant; - } - } - - grouping ManagementDataCollectionGrp { choice managementData { @@ -264,7 +251,7 @@ module _3gpp-common-managementdatacollection { max-elements 1; description "Collection time window for which the management data should be reported."; - uses TimeWindowGrp; + uses types3gpp:TimeWindowGrp; } list reportingCtrl { diff --git a/yang-models/_3gpp-common-measurements.yang b/yang-models/_3gpp-common-measurements.yang index 6bb0d0796..6d9f54ce1 100755 --- a/yang-models/_3gpp-common-measurements.yang +++ b/yang-models/_3gpp-common-measurements.yang @@ -44,7 +44,7 @@ module _3gpp-common-measurements { Measurements can be contained under ManagedElement, SubNetwork, or any list representing a class inheriting from Subnetwork or ManagedFunction. Note: KPIs will only be supported under SubNetwork - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.623 Generic Network Resource Model (NRM) @@ -56,8 +56,9 @@ module _3gpp-common-measurements { Integration Reference Point (IRP); Information Service (IS)"; + revision 2024-02-24 { reference CR-0346; } revision 2023-11-18 { reference "CR-0299 CR-0305"; } - revision 2023-09-18 { reference CR-0271 ; } + revision 2023-09-18 { reference CR-0271; } revision 2023-04-26 { reference CR-0250; } revision 2023-02-18 { reference "CR-0240"; } revision 2023-02-14 { reference "CR-0234"; } @@ -249,7 +250,7 @@ module _3gpp-common-measurements { leaf administrativeState { default UNLOCKED; - type types3gpp:AdministrativeState ; + type types3gpp:BasicAdministrativeState ; description "Enable or disables production of the metrics"; } @@ -333,7 +334,7 @@ module _3gpp-common-measurements { leaf administrativeState { default UNLOCKED; - type types3gpp:AdministrativeState ; + type types3gpp:BasicAdministrativeState ; description "Enables or disables the ThresholdMonitor."; } diff --git a/yang-models/_3gpp-common-yang-types.yang b/yang-models/_3gpp-common-yang-types.yang index 6a7865341..b80ef6430 100755 --- a/yang-models/_3gpp-common-yang-types.yang +++ b/yang-models/_3gpp-common-yang-types.yang @@ -12,10 +12,11 @@ module _3gpp-common-yang-types { description "The model defines a YANG mapping of the top level information classes used for management of 5G networks and network slicing. - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.623"; + revision 2024-04-12 { reference CR-0346; } revision 2023-11-06 { reference CR-0305; } revision 2023-09-18 { reference CR-0271 ; } revision 2023-08-09 { reference CR-0266; } @@ -67,6 +68,17 @@ module _3gpp-common-yang-types { leaf name { type string; } leaf value { type string; } } + + grouping TimeWindowGrp { + leaf startTime { + type yang:date-and-time; + yext3gpp:inVariant; + } + leaf endTime { + type yang:date-and-time; + yext3gpp:inVariant; + } + } grouping ProcessMonitorGrp { description "Provides attributes to monitor the progress of processes diff --git a/yang-models/_3gpp-nr-nrm-eutranfreqrelation.yang b/yang-models/_3gpp-nr-nrm-eutranfreqrelation.yang index 72e635b76..0ebea1981 100755 --- a/yang-models/_3gpp-nr-nrm-eutranfreqrelation.yang +++ b/yang-models/_3gpp-nr-nrm-eutranfreqrelation.yang @@ -13,11 +13,12 @@ module _3gpp-nr-nrm-eutranfreqrelation { organization "3GPP SA5"; description "Defines the YANG mapping of the EUtranFreqRelation Information Object Class (IOC) that is part of the NR Network Resource Model (NRM). - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; - revision 2023-09-18 { reference CR-1043 ; } + revision 2024-02-24 { reference CR-1218; } + revision 2023-09-18 { reference CR-1043; } revision 2019-10-28 { reference S5-193518 ; } revision 2019-06-17 { description "Initial revision"; @@ -38,17 +39,17 @@ module _3gpp-nr-nrm-eutranfreqrelation { type types3gpp:QOffsetRange; } - leaf-list blackListEntry { + leaf-list blockListEntry { description "A list of Physical Cell Identities (PCIs) that are - blacklisted in E-UTRAN measurements."; + blocklisted in E-UTRAN measurements."; reference "3GPP TS 38.331"; min-elements 0; type uint16 { range "0..1007"; } } - leaf-list blackListEntryIdleMode { + leaf-list blockListEntryIdleMode { description "A list of Physical Cell Identities (PCIs) that are - blacklisted in SIB4 and SIB5."; + blocklisted in SIB4 and SIB5."; min-elements 0; type uint16 { range "0..1007"; } } diff --git a/yang-models/_3gpp-nr-nrm-gnbcucpfunction.yang b/yang-models/_3gpp-nr-nrm-gnbcucpfunction.yang index d7e206c64..ec2f6db3a 100755 --- a/yang-models/_3gpp-nr-nrm-gnbcucpfunction.yang +++ b/yang-models/_3gpp-nr-nrm-gnbcucpfunction.yang @@ -19,13 +19,14 @@ module _3gpp-nr-nrm-gnbcucpfunction { TTA, TTC). All rights reserved."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; - revision 2024-01-12 { reference CR-1138 ; } - revision 2023-09-18 { reference CR-1043 ; } + revision 2024-02-24 { reference CR-1218; } + revision 2024-01-12 { reference CR-1138; } + revision 2023-09-18 { reference CR-1043; } revision 2023-04-26 { reference CR-0916; } revision 2022-07-28 { reference "CR-0770"; } revision 2021-11-06 { reference "CR-0611" ; } revision 2021-11-05 { reference "CR-0609"; } - revision 2020-10-02 { reference CR-0384 ; } + revision 2020-10-02 { reference CR-0384; } revision 2020-08-06 { reference "CR-0333"; } revision 2020-08-03 { reference "CR-0321"; } revision 2020-06-03 { reference "CR-0286"; } @@ -90,27 +91,27 @@ module _3gpp-nr-nrm-gnbcucpfunction { uses types3gpp:PLMNId; } - leaf-list x2BlackList { + leaf-list x2BlockList { type string; description "List of nodes to which X2 connections are prohibited."; } - leaf-list x2WhiteList { + leaf-list x2AllowList { type string; description "List of nodes to which X2 connections are enforced."; } - leaf-list xnBlackList { + leaf-list xnBlockList { type string; description "List of nodes to which Xn connections are prohibited."; } - leaf-list xnWhiteList { + leaf-list xnAllowList { type string; description "List of nodes to which X2 connections are enforced."; } - leaf-list xnHOBlackList { + leaf-list xnHOBlockList { type string; description "List of nodes to which handovers over Xn are prohibited."; } @@ -121,7 +122,7 @@ module _3gpp-nr-nrm-gnbcucpfunction { supports (is associated to)."; } - leaf-list x2HOBlackList { + leaf-list x2HOBlockList { type string; description "List of nodes to which handovers over X2 are prohibited."; } diff --git a/yang-models/_3gpp-nr-nrm-nrfreqrelation.yang b/yang-models/_3gpp-nr-nrm-nrfreqrelation.yang index b8f79d4c2..90705d9b9 100755 --- a/yang-models/_3gpp-nr-nrm-nrfreqrelation.yang +++ b/yang-models/_3gpp-nr-nrm-nrfreqrelation.yang @@ -12,14 +12,15 @@ module _3gpp-nr-nrm-nrfreqrelation { organization "3GPP SA5"; description "Defines the YANG mapping of the NRFreqRelation Information Object Class (IOC) that is part of the NR Network Resource Model (NRM). - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; - revision 2023-09-18 { reference CR-1043 ; } + revision 2024-02-24 { reference CR-1218; } + revision 2023-09-18 { reference CR-1043; } revision 2023-04-26 { reference CR-0916; } - revision 2020-04-23 { reference CR0281 ; } - revision 2019-10-28 { reference S5-193518 ; } + revision 2020-04-23 { reference CR-0281; } + revision 2019-10-28 { reference S5-193518; } revision 2019-06-17 { description "Initial revision"; } @@ -75,17 +76,17 @@ module _3gpp-nr-nrm-nrfreqrelation { } } - leaf-list blackListEntry { + leaf-list blockListEntry { description "A list of Physical Cell Identities (PCIs) that are - blacklisted in NR measurements."; + blocklisted in NR measurements."; reference "3GPP TS 38.331"; min-elements 0; type uint16 { range "0..1007"; } } - leaf-list blackListEntryIdleMode { + leaf-list blockListEntryIdleMode { description "A list of Physical Cell Identities (PCIs) that are - blacklisted in SIB4 and SIB5."; + blocklisted in SIB4 and SIB5."; min-elements 0; type uint16 { range "0..1007"; } } -- GitLab From efc2c4eb8f12d7fdc23ac3855eeb22502d986cbe Mon Sep 17 00:00:00 2001 From: "U-ERICSSON\\ETHBLL" Date: Thu, 18 Apr 2024 02:26:20 +0800 Subject: [PATCH 02/24] corrected gnbdu and operatordu 2 --- yang-models/_3gpp-nr-nrm-gnbdufunction.yang | 5 +++-- yang-models/_3gpp-nr-nrm-operatordu.yang | 25 ++++++++++++++------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/yang-models/_3gpp-nr-nrm-gnbdufunction.yang b/yang-models/_3gpp-nr-nrm-gnbdufunction.yang index 06928d800..ca3c6f768 100755 --- a/yang-models/_3gpp-nr-nrm-gnbdufunction.yang +++ b/yang-models/_3gpp-nr-nrm-gnbdufunction.yang @@ -14,10 +14,11 @@ module _3gpp-nr-nrm-gnbdufunction { contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "Defines the YANG mapping of the GNBDUFunction Information Object Class (IOC) that is part of the NR Network Resource Model (NRM). - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; + revision 2024-02-24 { reference CR-1218; } revision 2023-09-18 { reference CR-1043 ; } revision 2023-04-26 { reference CR-0916; } revision 2022-11-02 { reference "CR-0753"; } @@ -183,7 +184,6 @@ module _3gpp-nr-nrm-gnbdufunction { information derived from the detected RIM-RS to OAM."; uses RimRSReportConfGrp; } - } leaf configurable5QISetRef { type types3gpp:DistinguishedName; @@ -195,6 +195,7 @@ module _3gpp-nr-nrm-gnbdufunction { type types3gpp:DistinguishedName; description "DN of the Dynamic5QISet that the GNBDUFunction supports (is associated to)."; } + } augment "/me3gpp:ManagedElement" { diff --git a/yang-models/_3gpp-nr-nrm-operatordu.yang b/yang-models/_3gpp-nr-nrm-operatordu.yang index 1c708e52b..98a702b77 100755 --- a/yang-models/_3gpp-nr-nrm-operatordu.yang +++ b/yang-models/_3gpp-nr-nrm-operatordu.yang @@ -12,10 +12,11 @@ module _3gpp-nr-nrm-operatordu { contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "Defines the YANG mapping of the OperatorDU Information Object Class (IOC) that is part of the NR Network Resource Model (NRM). - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; + revision 2024-02-24 { reference CR-1218; } revision 2023-11-14 { reference "CR1136"; } revision 2023-09-30 { reference "CR1048"; } revision 2023-09-18 { reference CR-1043 ; } @@ -24,14 +25,22 @@ module _3gpp-nr-nrm-operatordu { grouping OperatorDUGrp { description "Represents the OperatorDU IOC."; reference "3GPP TS 28.541"; - uses gnbdu3gpp:GNBDUFunctionGrp { - refine gNBId { - mandatory true; - } - refine gNBIdLength { - mandatory true; - } + + leaf gNBId { + type int64 { range "0..4294967295"; } + mandatory true; + description "Identifies a gNB within a PLMN. The gNB Identifier (gNB ID) + is part of the NR Cell Identifier (NCI) of the gNB cells."; + reference "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413"; + } + + leaf gNBIdLength { + type int32 { range "22..32"; } + mandatory true; + description "Indicates the number of bits for encoding the gNB ID."; + reference "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413"; } + leaf configurable5QISetRef { type types3gpp:DistinguishedName; description "DN of the Configurable5QISet that the OperatorDU -- GitLab From d8efed8592e88ffbe8da66e5c7659f3f45e6b9ed Mon Sep 17 00:00:00 2001 From: scottma Date: Thu, 18 Apr 2024 05:30:54 +0000 Subject: [PATCH 03/24] Update file _3gpp-common-trace.yang --- yang-models/_3gpp-common-trace.yang | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/yang-models/_3gpp-common-trace.yang b/yang-models/_3gpp-common-trace.yang index cd2a69cb7..b2dd6b67d 100755 --- a/yang-models/_3gpp-common-trace.yang +++ b/yang-models/_3gpp-common-trace.yang @@ -13,7 +13,7 @@ module _3gpp-common-trace { contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "Trace handling - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 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-trace { Integration Reference Point (IRP); Information Service (IS)" ; + revision 2024-04-06 { reference "CR-0342"; } revision 2024-01-29 { reference "CR-0316"; } revision 2023-11-06 { reference "CR-0290 CR-0294"; } revision 2023-11-03 { reference CR-0302 ; } @@ -1303,6 +1304,14 @@ module _3gpp-common-trace { uses types3gpp:PLMNId; } + leaf-list listOfTraceMetrics { + when '../jobType = "TRACE_ONLY"' + + ' or ../jobType = "IMMEDIATE_MDT_AND_TRACE"'; + type string; + description "Specifies the messages to be reported."; + reference "Clause 10 of 3GPP TS 32.422"; + } + leaf traceReportingConsumerUri { when '../traceReportingFormat = "STREAMING"'; type inet:uri; -- GitLab From 6c3b5477bd1bbcb2af10c33383dc0e8e5d6ffea7 Mon Sep 17 00:00:00 2001 From: scottma Date: Thu, 18 Apr 2024 05:50:20 +0000 Subject: [PATCH 04/24] Update file _3gpp-common-trace.yang --- yang-models/_3gpp-common-trace.yang | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/yang-models/_3gpp-common-trace.yang b/yang-models/_3gpp-common-trace.yang index b2dd6b67d..1ccb0a23a 100755 --- a/yang-models/_3gpp-common-trace.yang +++ b/yang-models/_3gpp-common-trace.yang @@ -1285,7 +1285,8 @@ module _3gpp-common-trace { } default TRACE_ONLY; description "Specifies the MDT mode and it specifies also whether the - TraceJob represents only MDT, Logged MBSFN MDT, Trace, or 5GC UE level measurement collection, or any combination + TraceJob represents only MDT, Logged MBSFN MDT, Trace, or 5GC UE + level measurement collection, or any combination of Trace, immediate MDT and 5GC UE level measurement collection. The attribute is applicable for Trace, MDT, RCEF and RLF reporting, and 5GC UE level measurement collection."; @@ -1437,7 +1438,8 @@ module _3gpp-common-trace { when '../jobType = "TRACE_ONLY"' + ' or ../jobType = "IMMEDIATE_MDT_AND_TRACE"' + ' or ../jobType = "TRACE_AND_5GC_UE_LEVEL_MEASUREMENTS"' - + ' or ../jobType = "TRACE_AND_IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS"'; + + ' or ../jobType = + "TRACE_AND_IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS"'; key idx; description "Trace config"; max-elements 1; @@ -1452,7 +1454,8 @@ module _3gpp-common-trace { + ' or ../jobType = "RCEF_REPORT_ONLY"' + ' or ../jobType = "LOGGED_MBSFN_MDT"' + ' or ../jobType = "IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS"' - + ' or ../jobType = "TRACE_AND_IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS"'; + + ' or ../jobType = + "TRACE_AND_IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS"'; key idx; description "MDT config"; max-elements 1; @@ -1464,7 +1467,8 @@ module _3gpp-common-trace { when '../jobType = "5GC_UE_LEVEL_MEASUREMENTS_ONLY"' + ' or ../jobType = "TRACE_AND_5GC_UE_LEVEL_MEASUREMENTS"' + ' or ../jobType = "IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS"' - + ' or ../jobType = "TRACE_AND_IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS"'; + + ' or ../jobType = + "TRACE_AND_IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS"'; key idx; description "5GC UE level measurements config"; max-elements 1; @@ -1544,10 +1548,11 @@ module _3gpp-common-trace { be applied. In case of Immediate MDT only, Logged MDT only, RLF reports only, RCEF reports only and Logged MBSFN MDT, the configuration parameters of attribute mdtConfig or a subset of these shall be applied. In case of - UE measurements only, the configuration parameters of attribute ueMeasConfig - shall be applied. In case of any combination of Trace, Immediate MDT, - Trace and UE measurements, the configuration parameters of the corresponding - attributes traceConfig, mdtConfig and ueMeasConfig are applicable. + UE measurements only, the configuration parameters of attribute + ueMeasConfig shall be applied. In case of any combination of Trace, + Immediate MDT, Trace and UE measurements, the configuration parameters + of the corresponding attributes traceConfig, mdtConfig and ueMeasConfig + are applicable. Creation and deletion of TraceJob instances by MnS consumers is optional; when not supported, the TraceJob instances may be created -- GitLab From 0cba192c308885817fb201a76ea3eef95d6d3122 Mon Sep 17 00:00:00 2001 From: scottma Date: Thu, 18 Apr 2024 05:56:36 +0000 Subject: [PATCH 05/24] Update file _3gpp-common-trace.yang --- yang-models/_3gpp-common-trace.yang | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/yang-models/_3gpp-common-trace.yang b/yang-models/_3gpp-common-trace.yang index 1ccb0a23a..767532053 100755 --- a/yang-models/_3gpp-common-trace.yang +++ b/yang-models/_3gpp-common-trace.yang @@ -1546,13 +1546,13 @@ module _3gpp-common-trace { The attribute jobType specifies the kind of data to collect. In case of Trace only, the configuration parameters of attribute traceConfig shall be applied. In case of Immediate MDT only, Logged MDT only, RLF reports - only, RCEF reports only and Logged MBSFN MDT, the configuration parameters - of attribute mdtConfig or a subset of these shall be applied. In case of - UE measurements only, the configuration parameters of attribute - ueMeasConfig shall be applied. In case of any combination of Trace, - Immediate MDT, Trace and UE measurements, the configuration parameters - of the corresponding attributes traceConfig, mdtConfig and ueMeasConfig - are applicable. + only, RCEF reports only and Logged MBSFN MDT, the configuration + parameters of attribute mdtConfig or a subset of these shall be + applied. In case of UE measurements only, the configuration parameters + of attribute ueMeasConfig shall be applied. In case of any combination + of Trace, Immediate MDT, Trace and UE measurements, the configuration + parameters of the corresponding attributes traceConfig, mdtConfig and + ueMeasConfig are applicable. Creation and deletion of TraceJob instances by MnS consumers is optional; when not supported, the TraceJob instances may be created -- GitLab From 40971776f3dc56d5a8cb5cdf9e260bb1e859d761 Mon Sep 17 00:00:00 2001 From: "U-ERICSSON\\ETHBLL" Date: Fri, 3 May 2024 01:08:04 +0200 Subject: [PATCH 06/24] Locally rebased and merged MR1054 --- yang-models/_3gpp-common-fm.yang | 2 ++ yang-models/_3gpp-common-yang-extensions.yang | 26 +++++++++++++++---- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/yang-models/_3gpp-common-fm.yang b/yang-models/_3gpp-common-fm.yang index b7fa544c1..c0c1a8d08 100755 --- a/yang-models/_3gpp-common-fm.yang +++ b/yang-models/_3gpp-common-fm.yang @@ -16,6 +16,7 @@ module _3gpp-common-fm { TTA, TTC). All rights reserved."; reference "3GPP TS 28.111"; + revision 2024-03-06 { reference CR-0333 ; } revision 2024-02-24 { reference CR-0346; } revision 2024-01-18 { description "The specification of the file is moved from 28.623 to 28.532"; @@ -493,6 +494,7 @@ module _3gpp-common-fm { list AlarmList { key id; max-elements 1; + yext3gpp:only-system-created; description "The AlarmList represents the capability to store and manage alarm records. The management scope of an AlarmList is defined by all descendant objects of the base managed object, which is the object diff --git a/yang-models/_3gpp-common-yang-extensions.yang b/yang-models/_3gpp-common-yang-extensions.yang index e07880128..dc9c8e5b5 100755 --- a/yang-models/_3gpp-common-yang-extensions.yang +++ b/yang-models/_3gpp-common-yang-extensions.yang @@ -9,8 +9,6 @@ module _3gpp-common-yang-extensions { description "The module defines YANG extensions needed 3GPP YANG modeling. - Copyright (c) 2019 3GPP. All rights reserved. - Extensions MUST be defined with the following structure in the description statement: - What is this statement. @@ -40,7 +38,7 @@ module _3gpp-common-yang-extensions { If support for an extension is missing the extension statement needs individual handling or it SHOULD be removed from the module using the extension e.g. with a deviation. - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.623 Generic Network Resource Model (NRM) @@ -48,10 +46,28 @@ module _3gpp-common-yang-extensions { Solution Set (SS) definitions 3GPP TS 28.623"; - revision 2023-09-18 { reference CR-0271 ; } - revision 2022-10-20 { reference CR-0196; } + revision 2024-04-05 { reference "CR-0332, 0333" ; } + revision 2023-09-17 { reference "CR-0270, 0271" ; } + revision 2022-10-31 { reference "CR-0195, 0196"; } revision 2019-06-23 { reference "Initial version"; } + extension only-system-created { + description + "Indicates that the MOI can only be created and deleted by the + MnS producer. + System created MOIs can have both read-only and read-write data + node children. Implementers shall add the extension to standard + models if they restrict creation/deletion of an IOC. + + The statement MUST only be a sub-statement of the list statement, + with the parent list statement representing an IOC. + + Zero or one only-system-created statement per parent statement is + allowed. No sub-statements are allowed. + + Adding this statement is an NBC change, removing it is BC."; + } + extension notNotifyable { description "Indicates that data change notifications shall not be sent -- GitLab From e57ca17f6d3636153fc3b35783e0519a10695626 Mon Sep 17 00:00:00 2001 From: "U-ERICSSON\\ETHBLL" Date: Fri, 3 May 2024 01:26:36 +0200 Subject: [PATCH 07/24] Locally rebased and merged MR1067 --- yang-models/_3gpp-5gc-nrm-amffunction.yang | 21 +++++++++++++++++- yang-models/_3gpp-5gc-nrm-udmfunction.yang | 22 ++++++++++++++++++- yang-models/_3gpp-nr-nrm-gnbcucpfunction.yang | 20 +++++++++++++++++ 3 files changed, 61 insertions(+), 2 deletions(-) diff --git a/yang-models/_3gpp-5gc-nrm-amffunction.yang b/yang-models/_3gpp-5gc-nrm-amffunction.yang index eb3a3e1ef..310e71835 100755 --- a/yang-models/_3gpp-5gc-nrm-amffunction.yang +++ b/yang-models/_3gpp-5gc-nrm-amffunction.yang @@ -13,10 +13,11 @@ module _3gpp-5gc-nrm-amffunction { organization "3gpp SA5"; contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "AMFFunction derived from basic ManagedFunction. - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; + revision 2024-04-04 { reference CR-1139; } revision 2023-09-18 { reference CR-1043 ; } revision 2022-01-07 { reference CR-0643; } revision 2020-11-06 { reference CR-0412 ; } @@ -224,6 +225,24 @@ module _3gpp-5gc-nrm-amffunction { uses satelliteBackhaulInfo; } + leaf-list mdtUserConsentReqList { + type enumeration { + enum M1; + enum M2; + enum M3; + enum M4; + enum M5; + enum M6; + enum M7; + enum M8; + enum M9; + enum MDT_UE_LOCATION; + } + description "represents a list of MDT measurement names that are + subject to user consent at MDT activation. + Any MDT measurement, whose name is not specified in this list, is not + subject to user consent at MDT activation."; + } } augment "/me3gpp:ManagedElement" { diff --git a/yang-models/_3gpp-5gc-nrm-udmfunction.yang b/yang-models/_3gpp-5gc-nrm-udmfunction.yang index b799b2cbb..319015d16 100755 --- a/yang-models/_3gpp-5gc-nrm-udmfunction.yang +++ b/yang-models/_3gpp-5gc-nrm-udmfunction.yang @@ -15,10 +15,11 @@ module _3gpp-5gc-nrm-udmfunction { contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "This IOC represents the UDM function in 5GC. For more information about the UDM, see 3GPP TS 23.501. - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.541"; + revision 2024-04-04 { reference CR-1139; } revision 2023-09-18 { reference CR-1043 ; } revision 2023-04-26 { reference CR-0916; } revision 2020-11-08 { reference CR-0412 ; } @@ -74,6 +75,25 @@ module _3gpp-5gc-nrm-udmfunction { reference "3GPP TS 23.501"; uses types5g3gpp:CommModel; } + + leaf-list mdtUserConsentReqList { + type enumeration { + enum M1; + enum M2; + enum M3; + enum M4; + enum M5; + enum M6; + enum M7; + enum M8; + enum M9; + enum MDT_UE_LOCATION; + } + description "represents a list of MDT measurement names that are + subject to user consent at MDT activation. + Any MDT measurement, whose name is not specified in this list, is not + subject to user consent at MDT activation."; + } } augment "/me3gpp:ManagedElement" { diff --git a/yang-models/_3gpp-nr-nrm-gnbcucpfunction.yang b/yang-models/_3gpp-nr-nrm-gnbcucpfunction.yang index ec2f6db3a..975fced77 100755 --- a/yang-models/_3gpp-nr-nrm-gnbcucpfunction.yang +++ b/yang-models/_3gpp-nr-nrm-gnbcucpfunction.yang @@ -19,6 +19,7 @@ module _3gpp-nr-nrm-gnbcucpfunction { TTA, TTC). All rights reserved."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; + revision 2024-04-04 { reference CR-1139; } revision 2024-02-24 { reference CR-1218; } revision 2024-01-12 { reference CR-1138; } revision 2023-09-18 { reference CR-1043; } @@ -154,6 +155,25 @@ module _3gpp-nr-nrm-gnbcucpfunction { uses QceIdMappingInfoGrp; leaf idx { type string; } } + + leaf-list mdtUserConsentReqList { + type enumeration { + enum M1; + enum M2; + enum M3; + enum M4; + enum M5; + enum M6; + enum M7; + enum M8; + enum M9; + enum MDT_UE_LOCATION; + } + description "represents a list of MDT measurement names that are + subject to user consent at MDT activation. + Any MDT measurement, whose name is not specified in this list, is not + subject to user consent at MDT activation."; + } } grouping QceIdMappingInfoGrp { -- GitLab From 54aa05670284e9f61c8f070777923a926bbd37f3 Mon Sep 17 00:00:00 2001 From: "U-ERICSSON\\ETHBLL" Date: Mon, 6 May 2024 18:44:37 +0200 Subject: [PATCH 08/24] Added Scheduler and ConditionMonitor --- yang-models/_3gpp-common-measurements.yang | 12 + yang-models/_3gpp-common-util.yang | 218 +++++ yang-models/_3gpp-common-yang-types.yang | 34 + .../external-yams/ietf-inet-types.yang | 746 +++++++++++------- ...s@2013-07-15.yang => ietf-yang-types.yang} | 437 +++++++--- 5 files changed, 1069 insertions(+), 378 deletions(-) create mode 100644 yang-models/_3gpp-common-util.yang rename yang-models/external-yams/{ietf-yang-types@2013-07-15.yang => ietf-yang-types.yang} (52%) mode change 100755 => 100644 diff --git a/yang-models/_3gpp-common-measurements.yang b/yang-models/_3gpp-common-measurements.yang index 6d9f54ce1..eeba31d79 100755 --- a/yang-models/_3gpp-common-measurements.yang +++ b/yang-models/_3gpp-common-measurements.yang @@ -56,6 +56,7 @@ module _3gpp-common-measurements { Integration Reference Point (IRP); Information Service (IS)"; + revision 2024-05-06 { reference CR-xxxx; } revision 2024-02-24 { reference CR-0346; } revision 2023-11-18 { reference "CR-0299 CR-0305"; } revision 2023-09-18 { reference CR-0271; } @@ -324,6 +325,17 @@ module _3gpp-common-measurements { description "Link to a 'Files' object."; yext3gpp:inVariant; } + + choice conditiona-or-schedule { + leaf schedulerRef { + type types3gpp:DistinguishedName; + description "Pointer to a Scheduler object."; + } + leaf conditionMonitorRef { + type types3gpp:DistinguishedName; + description "Pointer to a ConditionMonitor object."; + } + } } diff --git a/yang-models/_3gpp-common-util.yang b/yang-models/_3gpp-common-util.yang new file mode 100644 index 000000000..0249a89e6 --- /dev/null +++ b/yang-models/_3gpp-common-util.yang @@ -0,0 +1,218 @@ +module _3gpp-common-util { + yang-version 1.1; + namespace urn:3gpp:sa5:_3gpp-common-util; + prefix "util3gpp"; + + import _3gpp-common-top { prefix top3gpp; } + import _3gpp-common-yang-types { prefix types3gpp ; } + import _3gpp-common-managed-element { prefix me3gpp ; } + import _3gpp-common-subnetwork { prefix subnet3gpp ; } + + organization "3GPP SA5"; + contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; + + description "Defines Utility IOCs: ConditionMonitor, Scheduler + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + TTA, TTC). All rights reserved."; + reference "3GPP TS 28.623"; + + revision 2024-05-06 { reference CR-xxxx; } + + feature SchedulerUnderManagedElement { + description "Scheduler shall be contained under ManagedElement."; + } + + feature SchedulerUnderSubNetwork { + description "Scheduler shall be contained under SubNetwork."; + } + + grouping TimeIntervalGrp { + description "This data type defines a time interval within one day. + If the whole day shall be selected, intervalStart shall be set to + 00:00:00 and intervalEnd shall be set to 23:59:59."; + + leaf intervalStart { + type types3gpp:FullTime; + mandatory true; + description "It indicates the time (in 'full-time' format) when the + service shall be started. + Data type 'FullTime' defines the time as specified by 'full-time' + in RFC3339."; + } + + leaf intervalEnd { + type types3gpp:FullTime; + mandatory true; + description "It indicates the time (in 'full-time' format) when the + service shall be stopped. + 'FullTime' defines the time as specified by 'full-time' in RFC3339. + intervalEnd should use the same timezone as intervalStart and shall + be later then intervalStart"; + } + } + + grouping SchedulingTimeGrp { + description "This <> defines the scheduling time and allows to + configure one of four possible scheduling methods: + + - One time interval: The attribute timeWindow presents the active + scheduling time. A duration more than one day may be configured. + - Daily periodicity: Several active intervals per day can be configured + in attribute timeIntervals. The active scheduling times recur each day. + - Weekly periodicity: Several active intervals for one day can be + configured in attribute timeIntervals. The active scheduling times recur + on the days of the weeks configured by attribute daysOfWeek + - Monthly periodicity: Several active intervals for one day can be + configured in attribute timeIntervals. The active scheduling times + recur on the days of the months configured by attribute daysOfMonth."; + choice SchedulingTime { + mandatory true; + case One-time-interval { + uses types3gpp:TimeWindowGrp; + } + case periodic { + list timeIntervals { + description "List of intervals within one day for which the service + shall be active."; + key "intervalStart intervalEnd"; + min-elements 1; + uses TimeIntervalGrp; + } + leaf daysOfWeek { + must 'not(../daysOfMonth)'; + description "Shall be present in case of Weekly periodicity, + otherwise not"; + type types3gpp:DayOfWeek; + } + leaf daysOfMonth { + must 'not(../daysOfWeek)'; + description "Shall be present in case of Monthly periodicity, + otherwise not"; + type types3gpp:DaysOfMonth; + } + } + } + } + + grouping SchedulerGrp { + description "Represents the Scheduler IOC."; + + list schedulingTimes { + description "It defines the active scheduling times."; + min-elements 1; + key idx; + leaf idx { type uint32; } + uses SchedulingTimeGrp; + } + + leaf schedulerStatus { + type boolean; + mandatory true; + config false; + description "Switches between TRUE and FALSE depending upon whether the + configured time constraints are fulfilled or not."; + } + } + + grouping SchedulerSubtree { + list Scheduler { + description "This IOC defines a time scheduler. + It can be name-contained by SubNetwork or ManagedElement. + + The attribute schedulingTimes allows to configure one or several + active time intervals. The active intervals can be configured to occur + once or recurring periodically. + + The boolean attribute schedulerStatus switches between TRUE and FALSE + depending upon whether the configured time constraints are fulfilled + or not. This attribute makes the internal Scheduler status observable."; + key id; + uses top3gpp:Top_Grp; + container attributes { + uses SchedulerGrp; + } + } + } + + augment /me3gpp:ManagedElement { + if-feature SchedulerUnderManagedElement; + uses SchedulerSubtree; + } + augment /subnet3gpp:SubNetwork { + if-feature SchedulerUnderSubNetwork; + uses SchedulerSubtree; + } + +/////////////////////////////////////////////////////////////////////////////// + + feature ConditionMonitorUnderManagedElement { + description "ConditionMonitor shall be contained under ManagedElement."; + } + + feature ConditionMonitorUnderSubNetwork { + description "ConditionMonitor shall be contained under SubNetwork."; + } + + grouping ConditionMonitorGrp { + description "Represents the Scheduler IOC."; + + leaf condition { + type string { + length 1..max; + } + mandatory true; + description "Logical expression of one or several condition(s). + + The actual syntax and capabilities of condition is SS specific. + However, each SS should support condition consisting of one or several + assertions that may be grouped using the logical operators AND, OR + and NOT. Only if the whole expression of condition evaluates TRUE, + the attribute conditionsSatisfied will be TRUE. + + Each assertion is a pointer to a Boolean parameter or a logical + expression of attribute existence or attribute value comparison + ('equal to X, less than Y' etc.). + + An empty string is not allowed."; + } + + leaf conditionStatus { + type boolean; + mandatory true; + config false; + description "Switches between TRUE and FALSE depending upon whether the + configured constraints are fulfilled or not."; + } + } + + grouping ConditionMonitorSubtree { + list ConditionMonitor { + description "This IOC defines one or several conditions and monitors + whether these conditions are satisfied. It can be name-contained by + SubNetwork or ManagedElement. + + The attribute condition allows to configure one or several conditions. + Possible conditions include but are not limited to scheduling + requirements or parameter settings e.g. evaluation if a configuration + parameter is above a certain threshold or has a certain values. + + The boolean attribute conditionStatus switches between TRUE and FALSE + depending upon whether the configured conditions are fulfilled or not. + This attribute makes the internal ConditionMonitor status observable."; + key id; + uses top3gpp:Top_Grp; + container attributes { + uses ConditionMonitorGrp; + } + } + } + + augment /me3gpp:ManagedElement { + if-feature ConditionMonitorUnderManagedElement; + uses ConditionMonitorSubtree; + } + augment /subnet3gpp:SubNetwork { + if-feature ConditionMonitorUnderSubNetwork; + uses ConditionMonitorSubtree; + } +} \ No newline at end of file diff --git a/yang-models/_3gpp-common-yang-types.yang b/yang-models/_3gpp-common-yang-types.yang index b80ef6430..f43a0fb6a 100755 --- a/yang-models/_3gpp-common-yang-types.yang +++ b/yang-models/_3gpp-common-yang-types.yang @@ -69,6 +69,40 @@ module _3gpp-common-yang-types { leaf value { type string; } } + typedef DayOfWeekT { + type enumeration { + enum Monday; + enum Tuesday; + enum Wednesday; + enum Thursday; + enum Friday; + enum Saturday; + enum Sunday; + } + } + + typedef DayOfWeek { + type enumeration { + enum MONDAY; + enum TUESDAY; + enum WEDNESDAY; + enum THURSADY; + enum FRIDAY; + enum SATURDAY; + enum SUNDAY; + } + } + + typedef DaysOfMonth { + type uint8 { + range 0..31; + } + } + + typedef FullTime { + type yang:time-with-zone-offset; + } + grouping TimeWindowGrp { leaf startTime { type yang:date-and-time; diff --git a/yang-models/external-yams/ietf-inet-types.yang b/yang-models/external-yams/ietf-inet-types.yang index a69ac0579..8101ea4bc 100755 --- a/yang-models/external-yams/ietf-inet-types.yang +++ b/yang-models/external-yams/ietf-inet-types.yang @@ -1,159 +1,194 @@ module ietf-inet-types { - yang-version 1; + namespace "urn:ietf:params:xml:ns:yang:ietf-inet-types"; + prefix "inet"; - namespace - "urn:ietf:params:xml:ns:yang:ietf-inet-types"; + organization + "IETF Network Modeling (NETMOD) Working Group"; - prefix inet; - - organization - "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; - - contact - "WG Web: + contact + "WG Web: WG List: - WG Chair: David Kessens - - - WG Chair: Juergen Schoenwaelder - - Editor: Juergen Schoenwaelder - "; + "; - description - "This module contains a collection of generally useful derived + description + "This module contains a collection of generally useful derived YANG data types for Internet addresses and related things. - Copyright (c) 2013 IETF Trust and the persons identified as + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL + NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', + 'MAY', and 'OPTIONAL' in this document are to be interpreted as + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here. + + Copyright (c) 2022 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject - to the license terms contained in, the Simplified BSD License + to the license terms contained in, the Revised BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents - (http://trustee.ietf.org/license-info). + (https://trustee.ietf.org/license-info). - This version of this YANG module is part of RFC 6991; see - the RFC itself for full legal notices."; + This version of this YANG module is part of RFC XXXX; + see the RFC itself for full legal notices."; - revision "2013-07-15" { - description - "This revision adds the following new data types: - - ip-address-no-zone - - ipv4-address-no-zone - - ipv6-address-no-zone"; - reference - "RFC 6991: Common YANG Data Types"; - - } - - revision "2010-09-24" { - description "Initial revision."; - reference - "RFC 6021: Common YANG Data Types"; - - } - - - typedef ip-version { - type enumeration { - enum "unknown" { - value 0; - description - "An unknown or unspecified version of the Internet + revision 2023-01-23 { + description + "This revision adds the following new data types: + - inet:ip-address-and-prefix + - inet:ipv4-address-and-prefix + - inet:ipv6-address-and-prefix + - inet:protocol-number + - inet:host-name + - inet:email-address + - inet:ip-address-link-local + - inet:ipv4-address-link-local + - inet:ipv6-address-link-local + The inet:host union was changed to use inet:host-name instead + of inet:domain-name. Several pattern statements have been + improved."; + reference + "RFC XXXX: Common YANG Data Types"; + } + + revision 2013-07-15 { + description + "This revision adds the following new data types: + - inet:ip-address-no-zone + - inet:ipv4-address-no-zone + - inet:ipv6-address-no-zone"; + reference + "RFC 6991: Common YANG Data Types"; + } + + revision 2010-09-24 { + description + "Initial revision."; + reference + "RFC 6021: Common YANG Data Types"; + } + + /*** collection of types related to protocol fields ***/ + + typedef ip-version { + type enumeration { + enum unknown { + value "0"; + description + "An unknown or unspecified version of the Internet protocol."; - } - enum "ipv4" { - value 1; - description - "The IPv4 protocol as defined in RFC 791."; - } - enum "ipv6" { - value 2; - description - "The IPv6 protocol as defined in RFC 2460."; - } } - description - "This value represents the version of the IP protocol. + enum ipv4 { + value "1"; + description + "The IPv4 protocol as defined in RFC 791."; + } + enum ipv6 { + value "2"; + description + "The IPv6 protocol as defined in RFC 8200."; + } + } + description + "This value represents the version of the IP protocol. In the value set and its semantics, this type is equivalent to the InetVersion textual convention of the SMIv2."; - reference - "RFC 791: Internet Protocol - RFC 2460: Internet Protocol, Version 6 (IPv6) Specification - RFC 4001: Textual Conventions for Internet Network Addresses"; - + reference + "RFC 791: Internet Protocol + RFC 8200: Internet Protocol, Version 6 (IPv6) Specification + RFC 4001: Textual Conventions for Internet Network Addresses"; + } + + typedef dscp { + type uint8 { + range "0..63"; } - - typedef dscp { - type uint8 { - range "0..63"; - } - description - "The dscp type represents a Differentiated Services Code Point + description + "The dscp type represents a Differentiated Services Code Point that may be used for marking packets in a traffic stream. + In the value set and its semantics, this type is equivalent to the Dscp textual convention of the SMIv2."; - reference - "RFC 3289: Management Information Base for the Differentiated - Services Architecture - RFC 2474: Definition of the Differentiated Services Field - (DS Field) in the IPv4 and IPv6 Headers - RFC 2780: IANA Allocation Guidelines For Values In - the Internet Protocol and Related Headers"; - + reference + "RFC 3289: Management Information Base for the Differentiated + Services Architecture + RFC 2474: Definition of the Differentiated Services Field + (DS Field) in the IPv4 and IPv6 Headers + RFC 2780: IANA Allocation Guidelines For Values In + the Internet Protocol and Related Headers"; + } + + typedef ipv6-flow-label { + type uint32 { + range "0..1048575"; } - - typedef ipv6-flow-label { - type uint32 { - range "0..1048575"; - } - description - "The ipv6-flow-label type represents the flow identifier or Flow - Label in an IPv6 packet header that may be used to + description + "The ipv6-flow-label type represents the flow identifier or + Flow Label in an IPv6 packet header that may be used to discriminate traffic flows. In the value set and its semantics, this type is equivalent to the IPv6FlowLabel textual convention of the SMIv2."; - reference - "RFC 3595: Textual Conventions for IPv6 Flow Label - RFC 2460: Internet Protocol, Version 6 (IPv6) Specification"; - + reference + "RFC 3595: Textual Conventions for IPv6 Flow Label + RFC 8200: Internet Protocol, Version 6 (IPv6) Specification"; + } + + typedef port-number { + type uint16 { + range "0..65535"; } - - typedef port-number { - type uint16 { - range "0..65535"; - } - description - "The port-number type represents a 16-bit port number of an + description + "The port-number type represents a 16-bit port number of an Internet transport-layer protocol such as UDP, TCP, DCCP, or - SCTP. Port numbers are assigned by IANA. A current list of - all assignments is available from . + SCTP. + + Port numbers are assigned by IANA. The current list of + all assignments is available from . Note that the port number value zero is reserved by IANA. In situations where the value zero does not make sense, it can be excluded by subtyping the port-number type. + In the value set and its semantics, this type is equivalent to the InetPortNumber textual convention of the SMIv2."; - reference - "RFC 768: User Datagram Protocol - RFC 793: Transmission Control Protocol - RFC 4960: Stream Control Transmission Protocol - RFC 4340: Datagram Congestion Control Protocol (DCCP) - RFC 4001: Textual Conventions for Internet Network Addresses"; - - } - - typedef as-number { - type uint32; - description - "The as-number type represents autonomous system numbers + reference + "RFC 768: User Datagram Protocol + RFC 9293: Transmission Control Protocol (TCP) + RFC 9260: Stream Control Transmission Protocol + RFC 4340: Datagram Congestion Control Protocol (DCCP) + RFC 4001: Textual Conventions for Internet Network Addresses"; + } + + typedef protocol-number { + type uint8; + description + "The protocol-number type represents an 8-bit Internet + protocol number, carried in the 'protocol' field of the + IPv4 header or in the 'next header' field of the IPv6 + header. If IPv6 extension headers are present, then the + protocol number type represents the upper layer protocol + number, i.e., the number of the last next header' field + of the IPv6 extension headers. + + Protocol numbers are assigned by IANA. The current list of + all assignments is available from ."; + reference + "RFC 791: Internet Protocol + RFC 8200: Internet Protocol, Version 6 (IPv6) Specification"; + } + + /*** collection of types related to autonomous systems ***/ + + typedef as-number { + type uint32; + description + "The as-number type represents autonomous system numbers which identify an Autonomous System (AS). An AS is a set of routers under a single technical administration, using an interior gateway protocol and common metrics to route @@ -171,40 +206,40 @@ module ietf-inet-types { In the value set and its semantics, this type is equivalent to the InetAutonomousSystemNumber textual convention of the SMIv2."; - reference - "RFC 1930: Guidelines for creation, selection, and registration - of an Autonomous System (AS) - RFC 4271: A Border Gateway Protocol 4 (BGP-4) - RFC 4001: Textual Conventions for Internet Network Addresses - RFC 6793: BGP Support for Four-Octet Autonomous System (AS) - Number Space"; - + reference + "RFC 1930: Guidelines for creation, selection, and registration + of an Autonomous System (AS) + RFC 4271: A Border Gateway Protocol 4 (BGP-4) + RFC 4001: Textual Conventions for Internet Network Addresses + RFC 6793: BGP Support for Four-Octet Autonomous System (AS) + Number Space"; + } + + /*** collection of types related to IP addresses and hostnames ***/ + + typedef ip-address { + type union { + type inet:ipv4-address; + type inet:ipv6-address; } - - typedef ip-address { - type union { - type ipv4-address; - type ipv6-address; - } - description - "The ip-address type represents an IP address and is IP + description + "The ip-address type represents an IP address and is IP version neutral. The format of the textual representation implies the IP version. This type supports scoped addresses by allowing zone identifiers in the address format."; - reference - "RFC 4007: IPv6 Scoped Address Architecture"; - + reference + "RFC 4007: IPv6 Scoped Address Architecture"; + } + + typedef ipv4-address { + type string { + pattern + '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' + + '(%[A-Za-z0-9][A-Za-z0-9\-\._~/]*)?'; } - - typedef ipv4-address { - type string { - pattern - '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' - + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' - + '(%[\p{N}\p{L}]+)?'; - } - description - "The ipv4-address type represents an IPv4 address in + description + "The ipv4-address type represents an IPv4 address in dotted-quad notation. The IPv4 address may include a zone index, separated by a % sign. @@ -216,23 +251,21 @@ module ietf-inet-types { The canonical format for the zone index is the numerical format"; - } + } - typedef ipv6-address { - type string { - pattern - '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' + typedef ipv6-address { + type string { + pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}' + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))' - + '(%[\p{N}\p{L}]+)?'; - pattern - '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' + + '(%[A-Za-z0-9][A-Za-z0-9\-\._~/]*)?'; + pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)' + '(%.+)?'; - } - description - "The ipv6-address type represents an IPv6 address in full, + } + description + "The ipv6-address type represents an IPv6 address in full, mixed, shortened, and shortened-mixed notation. The IPv6 address may include a zone index, separated by a % sign. @@ -242,82 +275,110 @@ module ietf-inet-types { interface. If the zone index is not present, the default zone of the device will be used. - - The canonical format of IPv6 addresses uses the textual representation defined in Section 4 of RFC 5952. The canonical format for the zone index is the numerical format as described in Section 11.2 of RFC 4007."; - reference - "RFC 4291: IP Version 6 Addressing Architecture - RFC 4007: IPv6 Scoped Address Architecture - RFC 5952: A Recommendation for IPv6 Address Text - Representation"; - + reference + "RFC 4291: IP Version 6 Addressing Architecture + RFC 4007: IPv6 Scoped Address Architecture + RFC 5952: A Recommendation for IPv6 Address Text + Representation"; + } + + typedef ip-address-no-zone { + type union { + type inet:ipv4-address-no-zone; + type inet:ipv6-address-no-zone; } - - typedef ip-address-no-zone { - type union { - type ipv4-address-no-zone; - type ipv6-address-no-zone; - } - description - "The ip-address-no-zone type represents an IP address and is + description + "The ip-address-no-zone type represents an IP address and is IP version neutral. The format of the textual representation implies the IP version. This type does not support scoped addresses since it does not allow zone identifiers in the address format."; - reference - "RFC 4007: IPv6 Scoped Address Architecture"; + reference + "RFC 4007: IPv6 Scoped Address Architecture"; + } + typedef ipv4-address-no-zone { + type inet:ipv4-address { + pattern '[0-9\.]*'; } - - typedef ipv4-address-no-zone { - type ipv4-address { - pattern '[0-9\.]*'; - } - description - "An IPv4 address without a zone index. This type, derived from - ipv4-address, may be used in situations where the zone is - known from the context and hence no zone index is needed."; + description + "An IPv4 address without a zone index. This type, derived from + ipv4-address, may be used in situations where the zone is known + from the context and hence no zone index is needed."; + } + + typedef ipv6-address-no-zone { + type inet:ipv6-address { + pattern '[0-9a-fA-F:\.]*'; } - - typedef ipv6-address-no-zone { - type ipv6-address { - pattern '[0-9a-fA-F:\.]*'; - } - description - "An IPv6 address without a zone index. This type, derived from - ipv6-address, may be used in situations where the zone is - known from the context and hence no zone index is needed."; - reference - "RFC 4291: IP Version 6 Addressing Architecture - RFC 4007: IPv6 Scoped Address Architecture - RFC 5952: A Recommendation for IPv6 Address Text - Representation"; - + description + "An IPv6 address without a zone index. This type, derived from + ipv6-address, may be used in situations where the zone is known + from the context and hence no zone index is needed."; + reference + "RFC 4291: IP Version 6 Addressing Architecture + RFC 4007: IPv6 Scoped Address Architecture + RFC 5952: A Recommendation for IPv6 Address Text + Representation"; + } + + typedef ip-address-link-local { + type union { + type inet:ipv4-address-link-local; + type inet:ipv6-address-link-local; } - - typedef ip-prefix { - type union { - type ipv4-prefix; - type ipv6-prefix; - } - description - "The ip-prefix type represents an IP prefix and is IP + description + "The ip-address-link-local type represents a link-local IP + address and is IP version neutral. The format of the textual + representation implies the IP version."; + } + + typedef ipv4-address-link-local { + type ipv4-address { + pattern '169\.254\..*'; + } + description + "A link-local IPv4 address in the prefix 169.254.0.0/16 as + defined in section 2.1. of RFC 3927."; + reference + "RFC 3927: Dynamic Configuration of IPv4 Link-Local Addresses"; + } + + typedef ipv6-address-link-local { + type ipv6-address { + pattern '[fF][eE]80:.*'; + } + description + "A link-local IPv6 address in the prefix fe80::/10 as defined + in section 2.5.6. of RFC 4291."; + reference + "RFC 4291: IP Version 6 Addressing Architecture"; + } + + typedef ip-prefix { + type union { + type inet:ipv4-prefix; + type inet:ipv6-prefix; + } + description + "The ip-prefix type represents an IP prefix and is IP version neutral. The format of the textual representations implies the IP version."; + } + + typedef ipv4-prefix { + type string { + pattern + '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' + + '/(([0-9])|([1-2][0-9])|(3[0-2]))'; } - - typedef ipv4-prefix { - type string { - pattern - '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' - + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' - + '/(([0-9])|([1-2][0-9])|(3[0-2]))'; - } - description - "The ipv4-prefix type represents an IPv4 address prefix. + description + "The ipv4-prefix type represents an IPv4 prefix. The prefix length is given by the number following the slash character and must be less than or equal to 32. @@ -327,24 +388,29 @@ module ietf-inet-types { The canonical format of an IPv4 prefix has all bits of the IPv4 address set to zero that are not part of the - IPv4 prefix."; - } - - typedef ipv6-prefix { - type string { - pattern - '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' + IPv4 prefix. + + The definition of ipv4-prefix does not require that bits, + which are not part of the prefix, are set to zero. However, + implementations have to return values in canonical format, + which requires non-prefix bits to be set to zero. This means + that 192.0.2.1/24 must be accepted as a valid value but it + will be converted into the canonical format 192.0.2.0/24."; + } + + typedef ipv6-prefix { + type string { + pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}' + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))' + '(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))'; - pattern - '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' + pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)' + '(/.+)'; - } - description - "The ipv6-prefix type represents an IPv6 address prefix. + } + description + "The ipv6-prefix type represents an IPv6 prefix. The prefix length is given by the number following the slash character and must be less than or equal to 128. @@ -352,44 +418,104 @@ module ietf-inet-types { mask that has n contiguous 1-bits from the most significant bit (MSB) and all other bits set to 0. - The IPv6 address should have all bits that do not belong - to the prefix set to zero. - The canonical format of an IPv6 prefix has all bits of the IPv6 address set to zero that are not part of the IPv6 prefix. Furthermore, the IPv6 address is represented - as defined in Section 4 of RFC 5952."; - reference - "RFC 5952: A Recommendation for IPv6 Address Text - Representation"; + as defined in Section 4 of RFC 5952. + + The definition of ipv6-prefix does not require that bits, + which are not part of the prefix, are set to zero. However, + implementations have to return values in canonical format, + which requires non-prefix bits to be set to zero. This means + that 2001:db8::1/64 must be accepted as a valid value but it + will be converted into the canonical format 2001:db8::/64."; + reference + "RFC 5952: A Recommendation for IPv6 Address Text + Representation"; + } + + typedef ip-address-and-prefix { + type union { + type inet:ipv4-address-and-prefix; + type inet:ipv6-address-and-prefix; + } + description + "The ip-address-and-prefix type represents an IP address and + prefix and is IP version neutral. The format of the textual + representations implies the IP version."; + } + + typedef ipv4-address-and-prefix { + type string { + pattern + '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' + + '/(([0-9])|([1-2][0-9])|(3[0-2]))'; + } + description + "The ipv4-address-and-prefix type represents an IPv4 + address and an associated ipv4 prefix. + The prefix length is given by the number following the + slash character and must be less than or equal to 32. + A prefix length value of n corresponds to an IP address + mask that has n contiguous 1-bits from the most + significant bit (MSB) and all other bits set to 0."; + } + + typedef ipv6-address-and-prefix { + type string { + pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' + + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' + + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}' + + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))' + + '(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))'; + pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' + + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)' + + '(/.+)'; } + description + "The ipv6-address-and-prefix type represents an IPv6 + address and an associated ipv4 prefix. + The prefix length is given by the number following the + slash character and must be less than or equal to 128. - typedef domain-name { - type string { - length "1..253"; - pattern - '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' - + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' - + '|\.'; - } - description - "The domain-name type represents a DNS domain name. The - name SHOULD be fully qualified whenever possible. + A prefix length value of n corresponds to an IP address + mask that has n contiguous 1-bits from the most + significant bit (MSB) and all other bits set to 0. + + The canonical format requires that the IPv6 address is + represented as defined in Section 4 of RFC 5952."; + reference + "RFC 5952: A Recommendation for IPv6 Address Text + Representation"; + } + + /*** collection of domain name and URI types ***/ + + typedef domain-name { + type string { + length "1..253"; + pattern + '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + + '|\.'; + } + description + "The domain-name type represents a DNS domain name. The + name SHOULD be fully qualified whenever possible. This + type does not support wildcards (see RFC 4592) or + classless in-addr.arpa delegations (see RFC 2317). Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible - future expansion. It is designed to hold various types of - domain names, including names used for A or AAAA records - (host names) and other records, such as SRV records. Note - that Internet host names have a stricter syntax (described - in RFC 952) than the DNS recommendations in RFCs 1034 and - 1123, and that systems that want to store host names in - schema nodes using the domain-name type are recommended to - adhere to this stricter standard to ensure interoperability. - + future expansion. Note that Internet host names have a + stricter syntax (described in RFC 952) than the DNS + recommendations in RFCs 1034 and 1123. Schema nodes + representing host names should use the host-name type + instead of the domain-type. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL @@ -408,33 +534,52 @@ module ietf-inet-types { Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be A-labels as per RFC 5890."; - reference - "RFC 952: DoD Internet Host Table Specification - RFC 1034: Domain Names - Concepts and Facilities - RFC 1123: Requirements for Internet Hosts -- Application - and Support - RFC 2782: A DNS RR for specifying the location of services - (DNS SRV) - RFC 5890: Internationalized Domain Names in Applications - (IDNA): Definitions and Document Framework"; - + reference + "RFC 952: DoD Internet Host Table Specification + RFC 1034: Domain Names - Concepts and Facilities + RFC 1123: Requirements for Internet Hosts -- Application + and Support + RFC 2317: Classless IN-ADDR.ARPA delegation + RFC 2782: A DNS RR for specifying the location of services + (DNS SRV) + RFC 4592: The Role of Wildcards in the Domain Name System + RFC 5890: Internationalized Domain Names in Applications + (IDNA): Definitions and Document Framework"; + } + + typedef host-name { + type domain-name { + length "2..max"; + pattern '[a-zA-Z0-9\-\.]+'; } - - typedef host { - type union { - type ip-address; - type domain-name; - } - description - "The host type represents either an IP address or a DNS - domain name."; + description + "The host-name type represents (fully qualified) host names. + Host names must be at least two characters long (see RFC 952) + and they are restricted to labels consisting of letters, digits + and hyphens separated by dots (see RFC1123 and RFC 952)."; + reference + "RFC 952: DoD Internet Host Table Specification + RFC 1123: Requirements for Internet Hosts -- Application + and Support"; + } + + typedef host { + type union { + type inet:ip-address; + type inet:host-name; } + description + "The host type represents either an IP address or a (fully + qualified) host name."; + } - typedef uri { - type string; - description - "The uri type represents a Uniform Resource Identifier - (URI) as defined by STD 66. + typedef uri { + type string { + pattern '[a-z][a-z0-9+.-]*:.*'; + } + description + "The uri type represents a Uniform Resource Identifier + (URI) as defined by the rule 'URI' in RFC 3986. Objects using the uri type MUST be in US-ASCII encoding, and MUST be normalized as described by RFC 3986 Sections @@ -459,14 +604,37 @@ module ietf-inet-types { In the value set and its semantics, this type is equivalent to the Uri SMIv2 textual convention defined in RFC 5017."; - reference - "RFC 3986: Uniform Resource Identifier (URI): Generic Syntax - RFC 3305: Report from the Joint W3C/IETF URI Planning Interest - Group: Uniform Resource Identifiers (URIs), URLs, - and Uniform Resource Names (URNs): Clarifications - and Recommendations - RFC 5017: MIB Textual Conventions for Uniform Resource - Identifiers (URIs)"; - + reference + "RFC 3986: Uniform Resource Identifier (URI): Generic Syntax + RFC 3305: Report from the Joint W3C/IETF URI Planning Interest + Group: Uniform Resource Identifiers (URIs), URLs, + and Uniform Resource Names (URNs): Clarifications + and Recommendations + RFC 5017: MIB Textual Conventions for Uniform Resource + Identifiers (URIs)"; + } + + typedef email-address { + type string { + pattern '(([a-zA-Z0-9!#$%&'+"'"+'*+/=?\^_`{|}~-]+' + + '(\.[a-zA-Z0-9!#$%&'+"'"+'*+/=?\^_`{|}~-]+)*)|' + + '("[a-zA-Z0-9!#$%&'+"'"+'()*+,./\[\]\^_`{|}~-]*"))' + + '@' + + '(([a-zA-Z0-9!#$%&'+"'"+'*+/=?\^_`{|}~-]+' + + '(\.[a-zA-Z0-9!#$%&'+"'"+'*+/=?\^_`{|}~-]+)*)|' + + '\[[a-zA-Z0-9!"#$%&'+"'"+'()*+,./:;<=>?@\^_`{|}~-]+\])'; } - } // module ietf-inet-types + description + "The email-address type represents an email address as + defined as addr-spec in RFC 5322 section 3.4.1 except + that obs-local-part, obs-domain and obs-qtext of the + quoted-string are not supported. + + The email-address type uses US-ASCII characters. The + canonical format of the domain part of an email-address + uses lowercase US-ASCII characters."; + reference + "RFC 5322: Internet Message Format"; + } + +} diff --git a/yang-models/external-yams/ietf-yang-types@2013-07-15.yang b/yang-models/external-yams/ietf-yang-types.yang old mode 100755 new mode 100644 similarity index 52% rename from yang-models/external-yams/ietf-yang-types@2013-07-15.yang rename to yang-models/external-yams/ietf-yang-types.yang index 371a091d1..39e390cba --- a/yang-models/external-yams/ietf-yang-types@2013-07-15.yang +++ b/yang-models/external-yams/ietf-yang-types.yang @@ -4,45 +4,68 @@ module ietf-yang-types { prefix "yang"; organization - "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; + "IETF Network Modeling (NETMOD) Working Group"; contact - "WG Web: + "WG Web: WG List: - WG Chair: David Kessens - - - WG Chair: Juergen Schoenwaelder - - Editor: Juergen Schoenwaelder - "; + "; description "This module contains a collection of generally useful derived YANG data types. - Copyright (c) 2013 IETF Trust and the persons identified as + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL + NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', + 'MAY', and 'OPTIONAL' in this document are to be interpreted as + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here. + + Copyright (c) 2022 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject - to the license terms contained in, the Simplified BSD License + to the license terms contained in, the Revised BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents - (http://trustee.ietf.org/license-info). + (https://trustee.ietf.org/license-info). - This version of this YANG module is part of RFC 6991; see - the RFC itself for full legal notices."; + This version of this YANG module is part of RFC XXXX; + see the RFC itself for full legal notices."; + + revision 2023-01-23 { + description + "This revision adds the following new data types: + - yang:date-with-zone-offset + - yang:date-no-zone + - yang:time-with-zone-offset + - yang:time-no-zone + - yang:hours32 + - yang:minutes32 + - yang:seconds32 + - yang:centiseconds32 + - yang:milliseconds32 + - yang:microseconds32 + - yang:microseconds64 + - yang:nanoseconds32 + - yang:nanoseconds64 + - yang:language-tag + The yang-identifier definition has been aligned with YANG 1.1. + Several pattern statements have been improved."; + reference + "RFC XXXX: Common YANG Data Types"; + } revision 2013-07-15 { description "This revision adds the following new data types: - - yang-identifier - - hex-string - - uuid - - dotted-quad"; + - yang:yang-identifier + - yang:hex-string + - yang:uuid + - yang:dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } @@ -70,7 +93,7 @@ module ietf-yang-types { value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such - other times can occur, for example, the creation of + other times can occur, for example, the instantiation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate @@ -93,18 +116,17 @@ module ietf-yang-types { description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. - - A schema node of this type will be set to zero (0) on creation - and will thereafter increase monotonically until it reaches - a maximum value of 2^32-1 (4294967295 decimal), when it - wraps around and starts increasing again from zero. + A schema node instance of this type will be set to zero (0) + on creation and will thereafter increase monotonically until + it reaches a maximum value of 2^32-1 (4294967295 decimal), + when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node - of this type within the minimum time to wrap, it can use the - 'initial' value as a delta. It is important for a management - station to be aware of this minimum time and the actual time - between polls, and to discard data if the actual time is too - long or there is no defined minimum time. + instance of this type within the minimum time to wrap, it + can use the 'initial' value as a delta. It is important for + a management station to be aware of this minimum time and the + actual time between polls, and to discard data if the actual + time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; @@ -127,7 +149,7 @@ module ietf-yang-types { value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such - other times can occur, for example, the creation of + other times can occur, for example, the instantiation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate @@ -151,20 +173,18 @@ module ietf-yang-types { "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. - - - - A schema node of this type will be set to zero (0) on creation - and will thereafter increase monotonically until it reaches - a maximum value of 2^64-1 (18446744073709551615 decimal), - when it wraps around and starts increasing again from zero. + A schema node instance of this type will be set to zero (0) + on creation and will thereafter increase monotonically until + it reaches a maximum value of 2^64-1 (18446744073709551615 + decimal), when it wraps around and starts increasing again + from zero. Provided that an application discovers a new schema node - of this type within the minimum time to wrap, it can use the - 'initial' value as a delta. It is important for a management - station to be aware of this minimum time and the actual time - between polls, and to discard data if the actual time is too - long or there is no defined minimum time. + instance of this type within the minimum time to wrap, it + can use the 'initial' value as a delta. It is important for + a management station to be aware of this minimum time and the + actual time between polls, and to discard data if the actual + time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; @@ -224,8 +244,8 @@ module ietf-yang-types { typedef object-identifier { type string { - pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' - + '(\.(0|([1-9]\d*)))*'; + pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9][0-9]*))))' + + '(\.(0|([1-9][0-9]*)))*'; } description "The object-identifier type represents administratively @@ -264,7 +284,7 @@ module ietf-yang-types { typedef object-identifier-128 { type object-identifier { - pattern '\d*(\.\d*){1,127}'; + pattern '[0-9]*(\.[0-9]*){1,127}'; } description "This type represents object-identifiers restricted to 128 @@ -277,33 +297,13 @@ module ietf-yang-types { (SMIv2)"; } - typedef yang-identifier { - type string { - length "1..max"; - pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; - pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; - } - description - "A YANG identifier string as defined by the 'identifier' - rule in Section 12 of RFC 6020. An identifier must - start with an alphabetic character or an underscore - followed by an arbitrary sequence of alphabetic or - numeric characters, underscores, hyphens, or dots. - - A YANG identifier MUST NOT start with any possible - combination of the lowercase or uppercase character - sequence 'xml'."; - reference - "RFC 6020: YANG - A Data Modeling Language for the Network - Configuration Protocol (NETCONF)"; - } - - /*** collection of types related to date and time***/ + /*** collection of types related to date and time ***/ typedef date-and-time { type string { - pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' - + '(Z|[\+\-]\d{2}:\d{2})'; + pattern '[0-9]{4}-(1[0-2]|0[1-9])-(0[1-9]|[1-2][0-9]|3[0-1])' + + 'T(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)?' + + '(Z|[\+\-]((1[0-3]|0[0-9]):([0-5][0-9])|14:00))?'; } description "The date-and-time type is a profile of the ISO 8601 @@ -312,18 +312,16 @@ module ietf-yang-types { date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML - schema type with the following notable exceptions: + schema dateTime type with the following notable exceptions: (a) The date-and-time type does not allow negative years. - (b) The date-and-time time-offset -00:00 indicates an unknown - time zone (see RFC 3339) while -00:00 and +00:00 and Z - all represent the same time zone in dateTime. - - (c) The canonical format (see below) of data-and-time values - differs from the canonical format used by the dateTime XML - schema type, which requires all times to be in UTC using - the time-offset 'Z'. + (b) The time-offset -00:00 indicates that the date-and-time + value is reported in UTC and that the local time zone + reference point is unknown. The time-offsets +00:00 and Z + both indicate that the date-and-time value is reported in + UTC and that the local time reference point is UTC (see RFC + 3339 section 4.3). This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different @@ -339,11 +337,225 @@ module ietf-yang-types { (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset - -00:00."; + -00:00, i.e., date-and-time values must be reported in UTC."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 - XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; + XSD-TYPES: XML Schema Definition Language (XSD) 1.1 + Part 2: Datatypes"; + } + + typedef date-with-zone-offset { + type string { + pattern '[0-9]{4}-(1[0-2]|0[1-9])-(0[1-9]|[1-2][0-9]|3[0-1])' + + '(Z|[\+\-]((1[0-3]|0[0-9]):([0-5][0-9])|14:00))?'; + } + description + "The date type represents a time-interval of the length + of a day, i.e., 24 hours. + + The date type is compatible with the XML schema date + type with the following notable exceptions: + (a) The date type does not allow negative years. + + (b) The time-offset -00:00 indicates that the date value is + reported in UTC and that the local time zone reference point + is unknown. The time-offsets +00:00 and Z both indicate that + the date value is reported in UTC and that the local time + reference point is UTC (see RFC 3339 section 4.3). + + The canonical format for date values with a known time + zone uses a numeric time zone offset that is calculated using + the device's configured known offset to UTC time. A change of + the device's offset to UTC time will cause date values + to change accordingly. Such changes might happen periodically + in case a server follows automatically daylight saving time + (DST) time zone offset changes. The canonical format for + date values with an unknown time zone (usually referring + to the notion of local time) uses the time-offset -00:00, + i.e., date values must be reported in UTC."; + reference + "RFC 3339: Date and Time on the Internet: Timestamps + XSD-TYPES: XML Schema Definition Language (XSD) 1.1 + Part 2: Datatypes"; + } + + typedef date-no-zone { + type date-with-zone-offset { + pattern '[0-9]{4}-(1[0-2]|0[1-9])-(0[1-9]|[1-2][0-9]|3[0-1])'; + } + description + "The date-no-zone type represents a date without the optional + time zone offset information."; + } + + typedef time-with-zone-offset { + type string { + pattern '(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)?' + + '(Z|[\+\-]((1[0-3]|0[0-9]):([0-5][0-9])|14:00))?'; + } + description + "The time type represents an instance of time of zero-duration + that recurs every day. + + The time type is compatible with the XML schema time + type with the following notable exception: + + (a) The time-offset -00:00 indicates that the time value is + reported in UTC and that the local time zone reference point + is unknown. The time-offsets +00:00 and Z both indicate that + the time value is reported in UTC and that the local time + reference point is UTC (see RFC 3339 section 4.3). + + The canonical format for time values with a known time + zone uses a numeric time zone offset that is calculated using + the device's configured known offset to UTC time. A change of + the device's offset to UTC time will cause time values + to change accordingly. Such changes might happen periodically + in case a server follows automatically daylight saving time + (DST) time zone offset changes. The canonical format for + time values with an unknown time zone (usually referring + to the notion of local time) uses the time-offset -00:00, + i.e., time values must be reported in UTC."; + reference + "RFC 3339: Date and Time on the Internet: Timestamps + XSD-TYPES: XML Schema Definition Language (XSD) 1.1 + Part 2: Datatypes"; + } + + typedef time-no-zone { + type time-with-zone-offset { + pattern '(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)?'; + } + description + "The time-no-zone type represents a time without the optional + time zone offset information."; + } + + typedef hours32 { + type int32; + units "hours"; + description + "A period of time, measured in units of hours. + + The maximum time period that can be expressed is in the + range [-89478485 days 08:00:00 to 89478485 days 07:00:00]. + + This type should be range restricted in situations + where only non-negative time periods are desirable, + (i.e., range '0..max')."; + } + + typedef minutes32 { + type int32; + units "minutes"; + description + "A period of time, measured in units of minutes. + + The maximum time period that can be expressed is in the + range [-1491308 days 2:08:00 to 1491308 days 2:07:00]. + + This type should be range restricted in situations + where only non-negative time periods are desirable, + (i.e., range '0..max')."; + } + + typedef seconds32 { + type int32; + units "seconds"; + description + "A period of time, measured in units of seconds. + + The maximum time period that can be expressed is in the + range [-24855 days 03:14:08 to 24855 days 03:14:07]. + + This type should be range restricted in situations + where only non-negative time periods are desirable, + (i.e., range '0..max')."; + } + + typedef centiseconds32 { + type int32; + units "centiseconds"; + description + "A period of time, measured in units of 10^-2 seconds. + + The maximum time period that can be expressed is in the + range [-248 days 13:13:56 to 248 days 13:13:56]. + + This type should be range restricted in situations + where only non-negative time periods are desirable, + (i.e., range '0..max')."; + } + + typedef milliseconds32 { + type int32; + units "milliseconds"; + description + "A period of time, measured in units of 10^-3 seconds. + + The maximum time period that can be expressed is in the + range [-24 days 20:31:23 to 24 days 20:31:23]. + + This type should be range restricted in situations + where only non-negative time periods are desirable, + (i.e., range '0..max')."; + } + + typedef microseconds32 { + type int32; + units "microseconds"; + description + "A period of time, measured in units of 10^-6 seconds. + + The maximum time period that can be expressed is in the + range [-00:35:47 to 00:35:47]. + + This type should be range restricted in situations + where only non-negative time periods are desirable, + (i.e., range '0..max')."; + } + + typedef microseconds64 { + type int64; + units "microseconds"; + description + "A period of time, measured in units of 10^-6 seconds. + + The maximum time period that can be expressed is in the + range [-106751991 days 04:00:54 to 106751991 days 04:00:54]. + + This type should be range restricted in situations + where only non-negative time periods are desirable, + (i.e., range '0..max')."; + } + + typedef nanoseconds32 { + type int32; + units "nanoseconds"; + description + "A period of time, measured in units of 10^-9 seconds. + + The maximum time period that can be expressed is in the + range [-00:00:02 to 00:00:02]. + + This type should be range restricted in situations + where only non-negative time periods are desirable, + (i.e., range '0..max')."; + } + + typedef nanoseconds64 { + type int64; + units "nanoseconds"; + description + "A period of time, measured in units of 10^-9 seconds. + + The maximum time period that can be expressed is in the + range [-106753 days 23:12:44 to 106752 days 0:47:16]. + + This type should be range restricted in situations + where only non-negative time periods are desirable, + (i.e., range '0..max')."; } typedef timeticks { @@ -366,14 +578,16 @@ module ietf-yang-types { type yang:timeticks; description "The timestamp type represents the value of an associated - timeticks schema node at which a specific occurrence + timeticks schema node instance at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the - associated timeticks attribute was zero, then the timestamp - value is zero. Note that this requires all timestamp values - to be reset to zero when the value of the associated timeticks - attribute reaches 497+ days and wraps around to zero. + associated timeticks schema node instance was zero, then the + timestamp value is zero. + + Note that this requires all timestamp values to be reset to + zero when the value of the associated timeticks schema node + instance reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. @@ -390,10 +604,6 @@ module ietf-yang-types { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } - - - - description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal @@ -477,4 +687,53 @@ module ietf-yang-types { notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } + + typedef language-tag { + type string; + description + "A language tag according to RFC 5646 (BCP 47). The + canonical representation uses lowercase characters. + + Values of this type must be well-formed language tags, + in conformance with the definition of well-formed tags + in BCP 47. Implementations MAY further limit the values + they accept to those permitted by a 'validating' + processor, as defined in BCP 47. + + The canonical representation of values of this type is + aligned with the SMIv2 LangTag textual convention for + language tags fitting the length constraints imposed + by the LangTag textual convention."; + reference + "RFC 5646: Tags for Identifying Languages + RFC 5131: A MIB Textual Convention for Language Tags"; + } + + /*** collection of YANG specific types ***/ + + typedef yang-identifier { + type string { + length "1..max"; + pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; + } + description + "A YANG identifier string as defined by the 'identifier' + rule in Section 14 of RFC 7950. An identifier must + start with an alphabetic character or an underscore + followed by an arbitrary sequence of alphabetic or + numeric characters, underscores, hyphens, or dots. + + This definition conforms to YANG 1.1 defined in RFC + 7950. An earlier version of this definition did exclude + all identifiers starting with any possible combination + of the lowercase or uppercase character sequence 'xml', + as required by YANG 1 defined in RFC 6020. If this type + is used in a YANG 1 context, then this restriction still + applies."; + reference + "RFC 7950: The YANG 1.1 Data Modeling Language + RFC 6020: YANG - A Data Modeling Language for the + Network Configuration Protocol (NETCONF)"; + } + } -- GitLab From 2e0cdb1eedb194dcbe42d6e7c796fad1536c9b0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Mon, 13 May 2024 17:10:36 +0000 Subject: [PATCH 09/24] Update _3gpp-common-files.yang, updating revision number, copyright year and removing "notifyFileDeletion" --- yang-models/_3gpp-common-files.yang | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/yang-models/_3gpp-common-files.yang b/yang-models/_3gpp-common-files.yang index 22e573959..3a43026ef 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 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 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 2023-05-11 { reference CR-XXXX ; } revision 2023-09-18 { reference CR-0271 ; } revision 2022-09-28 { reference CR-0191; } @@ -323,4 +324,4 @@ module _3gpp-common-files { } } } -} \ No newline at end of file +} -- GitLab From b050d4f30e21a3da28fa84cdb616bc383e32929d Mon Sep 17 00:00:00 2001 From: lengyelb Date: Mon, 13 May 2024 17:32:36 +0000 Subject: [PATCH 10/24] Revert "Update _3gpp-common-files.yang, updating revision number, copyright year and..." This reverts commit 2e0cdb1eedb194dcbe42d6e7c796fad1536c9b0e --- yang-models/_3gpp-common-files.yang | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/yang-models/_3gpp-common-files.yang b/yang-models/_3gpp-common-files.yang index 3a43026ef..22e573959 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 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.623 Generic Network Resource Model (NRM) @@ -25,7 +25,6 @@ module _3gpp-common-files { Integration Reference Point (IRP); Information Service (IS)"; - revision 2023-05-11 { reference CR-XXXX ; } revision 2023-09-18 { reference CR-0271 ; } revision 2022-09-28 { reference CR-0191; } @@ -324,4 +323,4 @@ module _3gpp-common-files { } } } -} +} \ No newline at end of file -- GitLab From 338b5ddcf4bf6370db663fac8e541bda1f492d7b Mon Sep 17 00:00:00 2001 From: "U-ERICSSON\\ETHBLL" Date: Tue, 14 May 2024 03:28:54 +0200 Subject: [PATCH 11/24] Update subscription and trace --- .../_3gpp-common-subscription-control.yang | 57 +- yang-models/_3gpp-common-trace.yang | 617 +++++++++++++----- 2 files changed, 487 insertions(+), 187 deletions(-) diff --git a/yang-models/_3gpp-common-subscription-control.yang b/yang-models/_3gpp-common-subscription-control.yang index ed049c654..9e0cc2209 100755 --- a/yang-models/_3gpp-common-subscription-control.yang +++ b/yang-models/_3gpp-common-subscription-control.yang @@ -26,23 +26,22 @@ module _3gpp-common-subscription-control { revision 2020-08-26 { reference "CR-0106"; } revision 2019-11-29 { reference "S5-197648 S5-197647 S5-197829 S5-197828"; } - grouping NtfSubscriptionControlGrp { - description "Attributes of a specific notification subscription"; - - leaf notificationRecipientAddress { - type string; - mandatory true; - } - - leaf-list notificationTypes { - type string; - description "Defines the types of notifications that are candidates - for being forwarded to the notification recipient. - If the notificationTypes attribute is not supported or not present - all candidate notifications types are forwarded to the notification; - discriminated by notificationFilter attribute."; - } + grouping ScopeGrp { + description "This <> allows to select data nodes in an object + tree whose root is identified by the so called base managed object + instance. The identification of the base object instance is not part of + this <> and needs to be specified by other means. The base + managed object instance is typically a managed object instance in an + object tree. + + The 'scopeType' and the 'scopeLevel' attributes allow to select managed + object instances. Attributes, attribute fields and attribute elements + cannot be selected. + The 'dataNodeSelector' attribute allows to select managed object + instances, attributes, attribute fields, attribute elements, or + attribute field elements. Its value contains a solution set specific + expression for specifying the data nodes to be selected."; choice scope { description "Describes which object instances are selected with respect to a base object instance."; @@ -91,6 +90,32 @@ module _3gpp-common-subscription-control { reference "RFC 8641 section 5."; } } + } + } + + grouping NtfSubscriptionControlGrp { + description "Attributes of a specific notification subscription"; + + leaf notificationRecipientAddress { + type string; + mandatory true; + } + + leaf-list notificationTypes { + type string; + description "Defines the types of notifications that are candidates + for being forwarded to the notification recipient. + If the notificationTypes attribute is not supported or not present + all candidate notifications types are forwarded to the notification; + discriminated by notificationFilter attribute."; + } + + list scope { + description "Scopes (selects) data nodes in an object tree."; + key idx; + max-elements 8; + leaf idx { type string; } + uses ScopeGrp; } leaf notificationFilter { diff --git a/yang-models/_3gpp-common-trace.yang b/yang-models/_3gpp-common-trace.yang index 767532053..2f44d28d2 100755 --- a/yang-models/_3gpp-common-trace.yang +++ b/yang-models/_3gpp-common-trace.yang @@ -25,6 +25,7 @@ module _3gpp-common-trace { Integration Reference Point (IRP); Information Service (IS)" ; + revision 2024-05-06 { reference CR-xxxx; } revision 2024-04-06 { reference "CR-0342"; } revision 2024-01-29 { reference "CR-0316"; } revision 2023-11-06 { reference "CR-0290 CR-0294"; } @@ -249,32 +250,22 @@ module _3gpp-common-trace { mandatory true; description "Carrier Frequency"; } - - list nPNIdentityList { - description "list of NPN IDs of in NR. It is either a list of PNI-NPNs - identified by CAG ID with associated plmn-Identity or a list of SNPN - identified by Network ID with associated plmn-Identity"; - key idx; - min-elements 1; - uses NpnIdGrp; - leaf idx { type string; } - } } grouping TraceConfigGrp { - description "Defines the configuration parameters of TraceJob - which are specific for Trace or combined Trace and Immediate MDT. - The attribute listOfNeTypes specifies the network elements to be - traced. The optional attribute listOfInterfaces allows to specify - the individual interfaces of the network elements to be recorded. - The attribute traceDepth allows to configure the level of detail - of the information which shall be recorded. For trace the reporting - is event based, where the triggering event is configured with - attribute triggeringEvent. For each triggering event the first and - last message (start/stop triggering event) to record are specified."; - - list listOfInterfaces { + description "Defines the configuration parameters of TraceJob + which are specific for Trace or combined Trace and Immediate MDT. + The attribute listOfNeTypes specifies the network elements to be + traced. The optional attribute listOfInterfaces allows to specify + the individual interfaces of the network elements to be recorded. + The attribute traceDepth allows to configure the level of detail + of the information which shall be recorded. For trace the reporting + is event based, where the triggering event is configured with + attribute triggeringEvent. For each triggering event the first and + last message (start/stop triggering event) to record are specified."; + + list listOfInterfaces { key idx; description "Specifies the interfaces that need to be traced in the given @@ -622,6 +613,64 @@ module _3gpp-common-trace { semantic."; reference "Clause 5.3 of 3GPP TS 32.422"; } + + leaf triggeringEvents { + type enumeration { + enum MO_MT_CALLS; + enum MO_MT_SMS; + enum LU_IMSIattach_IMSIdetach; + enum HANDOVER; + enum SS; + enum PDPcontext; + enum RAU_GPRSattach_GPRSdetach; + enum MBMScontext; + enum CONTEXT; + enum SIPsession_StandaloneTransaction; + enum MBMSactivation; + enum UEinitiatedPDNconnectivityRequest; + enum ServiceRequest; + enum InitialAttach_TAU_Detach; + enum UEinitiatedPDNdisconnection; + enum BearerActivationModificationDeletion; + enum Handover; + enum PDNconnectionCreation; + enum PDNconnectionTermination; + enum Registration; + enum UEderegistration; + enum NetworkDeregistration; + enum UEMobilityFromEPC; + enum UEMobilityToEPC; + enum PDUsessionEstablishment; + enum PDUsessionModification; + enum PDUsessionRelease; + enum PDUsessionUPactivationDeactivation; + enum MobilityBtw3gppAndN3gppTo5GC; + enum MobilityFromEpc; + enum AMpolicy; + enum SMpolicy; + enum Authorization; + enum BDTpolicy; + enum N4Session; + enum UEauthentication; + enum EventExposure; + enum PFDmanagement; + enum ParameterProvision; + enum Trigger; + enum NFmanagement; + enum NFdiscovery; + enum NSSelection; + enum NSSAI; + enum SMservice; + enum UEcontext; + enum SubscriberData; + } + description "It specifies the triggering event parameter of the trace + session. The attribute is applicable only for Trace. In case this + attribute is not used, it carries a null semantic. + + See the clause 5.1 of 3GPP TS 32.422 for additional details on the + allowed values."; + } } grouping ImmediateMdtConfigGrp { @@ -703,7 +752,7 @@ module _3gpp-common-trace { logged according to RRM configuration."; leaf listOfMeasurements { - when 'jobType = "IMMEDIATE_MDT_ONLY"'; + when '../../../jobType = "IMMEDIATE_MDT_ONLY"'; type enumeration { enum M1; enum M2; @@ -727,7 +776,7 @@ module _3gpp-common-trace { } leaf reportingTrigger { - when 'jobType = "IMMEDIATE_MDT_ONLY"'; + when '../../../jobType = "IMMEDIATE_MDT_ONLY"'; type enumeration { enum PERIODICAL; enum A2_FOR_LTE; @@ -747,7 +796,7 @@ module _3gpp-common-trace { } leaf reportInterval { - when 'jobType = "IMMEDIATE_MDT_ONLY"' + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + ' and ../reportingTrigger = "PERIODICAL"'; type uint32 { range "120|240|250|480|500|640|1000|1024|2000|2048|3000|4000|" @@ -765,7 +814,7 @@ module _3gpp-common-trace { } leaf reportAmount { - when 'jobType = "IMMEDIATE_MDT_ONLY"' + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + ' and ../reportingTrigger = "PERIODICAL"'; type union { type uint32 { @@ -784,7 +833,7 @@ module _3gpp-common-trace { } leaf eventThreshold { - when 'jobType = "IMMEDIATE_MDT_ONLY"'; + when '../../../jobType = "IMMEDIATE_MDT_ONLY"'; type int64; description "Specifies the threshold which should trigger the reporting in case A2 event reporting in LTE or 1F/1l event in UMTS. The attribute @@ -794,9 +843,9 @@ module _3gpp-common-trace { reference "Clauses 5.10.7 and 5.10.7a of 3GPP TS 32.422"; } - leaf collectionPeriodRRMNR { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + ' or jobType = "IMMEDIATE_MDT_AND_TRACE"'; + leaf collectionPeriodRrmNr { + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + ' or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; type uint32 { range "1024|2048|5120|10240|60000"; } @@ -808,24 +857,9 @@ module _3gpp-common-trace { reference "Clause 5.10.30 of 3GPP TS 32.422"; } - leaf collectionPeriodRRMLTE { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + ' or jobType = "IMMEDIATE_MDT_AND_TRACE"'; - type uint32 { - range "250|500|1000|2000|3000|4000|6000|8000|12000|16000|20000|" - +"24000|28000|32000|64000"; - } - units milliseconds; - description "Specifies the collection period for collecting RRM configured - measurement samples for M2, M3 in LTE. The attribute is applicable only - for Immediate MDT. In case this attribute is not used, it carries a - null semantic."; - reference "Clause 5.10.20 of 3GPP TS 32.422"; - } - - leaf collectionPeriodM6NR { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + ' or jobType = "IMMEDIATE_MDT_AND_TRACE"'; + leaf collectionPeriodM6Nr { + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + ' or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; type enumeration { enum 120ms; enum 240ms; @@ -849,9 +883,9 @@ module _3gpp-common-trace { reference "clause 5.10.34 of TS 32.422"; } - leaf collectionPeriodM7NR { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + ' or jobType = "IMMEDIATE_MDT_AND_TRACE"'; + leaf collectionPeriodM7Nr { + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + ' or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; type uint32 { range "1..60"; } @@ -862,9 +896,40 @@ module _3gpp-common-trace { reference "clause 5.10.35 of TS 32.422"; } - leaf collectionPeriodM6LTE { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + ' or jobType = "IMMEDIATE_MDT_AND_TRACE"'; + leaf collectionPeriodRrmLte { + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + ' or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; + type uint32 { + range "250|500|1000|2000|3000|4000|6000|8000|12000|16000|20000|" + +"24000|28000|32000|64000"; + } + units milliseconds; + description "Specifies the collection period for collecting RRM configured + measurement samples for M2, M3 in LTE. The attribute is applicable only + for Immediate MDT. In case this attribute is not used, it carries a + null semantic."; + reference "Clause 5.10.20 of 3GPP TS 32.422"; + } + + leaf measurementPeriodLTE { + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + ' or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; + type uint32 { + range "1024|1280|2048|2560|5120|" + +"10240|60000"; + } + units milliseconds; + mandatory true; + description "It specifies the measurement period for the Data Volume and + Scheduled IP throughput measurements for MDT taken by the eNB. + The attribute is applicable only for Immediate MDT. In case this + attribute is not used, it carries a null semantic."; + reference "Clause 5.10.23 of 3GPP TS 32.422"; + } + + leaf collectionPeriodM6Lte { + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + ' or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; type uint32 { range "1024|2048|5120|10240"; } @@ -876,9 +941,9 @@ module _3gpp-common-trace { reference "Clause 5.10.32 of TS 32.422 "; } - leaf collectionPeriodM7LTE { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + ' or jobType = "IMMEDIATE_MDT_AND_TRACE"'; + leaf collectionPeriodM7Lte { + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + ' or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; type uint16 { range 1..60 ; } @@ -889,9 +954,9 @@ module _3gpp-common-trace { reference "Clause 5.10.33 of TS 32.422 ."; } - leaf eventThresholdUphUMTS { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + ' or jobType = "IMMEDIATE_MDT_AND_TRACE"'; + leaf eventThresholdUphUmts { + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + ' or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; type uint16 { range 0..31 ; } @@ -902,9 +967,9 @@ module _3gpp-common-trace { reference "5.10.39 of TS 32.422"; } - leaf collectionPeriodRRMUMTS { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + ' or jobType = "IMMEDIATE_MDT_AND_TRACE"'; + leaf collectionPeriodRrmUmts { + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + ' or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; type uint32 { range "1024|1280|2048|2560|5120|" +"10240|60000"; @@ -917,25 +982,9 @@ module _3gpp-common-trace { reference "Clause 5.10.21 of 3GPP TS 32.422"; } - leaf measurementPeriodLTE { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + ' or jobType = "IMMEDIATE_MDT_AND_TRACE"'; - type uint32 { - range "1024|1280|2048|2560|5120|" - +"10240|60000"; - } - units milliseconds; - mandatory true; - description "It specifies the measurement period for the Data Volume and - Scheduled IP throughput measurements for MDT taken by the eNB. - The attribute is applicable only for Immediate MDT. In case this - attribute is not used, it carries a null semantic."; - reference "Clause 5.10.23 of 3GPP TS 32.422"; - } - - leaf measurementPeriodUMTS { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + 'or jobType = "IMMEDIATE_MDT_AND_TRACE"'; + leaf measurementPeriodUmts { + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + 'or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; type uint32 { range "250|500|1000|2000|3000|4000|6000|8000|12000|16000|20000|" +"24000|28000|32000|64000"; @@ -950,8 +999,8 @@ module _3gpp-common-trace { } leaf measurementQuantity { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + ' or jobType = "IMMEDIATE_MDT_AND_TRACE"'; + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + ' or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; type enumeration { enum CPICH_ECNO; enum CPICH_RSCP; @@ -963,8 +1012,8 @@ module _3gpp-common-trace { } leaf beamLevelMeasurement { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + ' or jobType = "IMMEDIATE_MDT_AND_TRACE"'; + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + ' or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; type boolean; default false; description "Indicates whether the NR M1 beam level measurements shall @@ -973,8 +1022,8 @@ module _3gpp-common-trace { } leaf positioningMethod { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + ' or jobType = "IMMEDIATE_MDT_AND_TRACE"'; + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + ' or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; type enumeration { enum GNSS; enum E_CELL_ID; @@ -991,9 +1040,219 @@ module _3gpp-common-trace { leaf idx { type string; } uses ExcessPacketDelayThresholdsGrp; } + + leaf reportAmountM1LTE { + type enumeration { + enum 1; + enum 2; + enum 4; + enum 8; + enum 16; + enum 32; + enum 64; + enum INFINITY; + } + description "It specifies the number of measurement reports that shall be + taken for periodic reporting while the UE is in connected mode. + The attribute is applicable only for Immediate MDT and combined Trace + and Immediate MDT and when reportingTrigger is configured for periodical + measurements and applicable only for LTE. In case this attribute is not + used, it carries a null semantic. + See the clause 5.10.6 of TS 32.422 for additional details on the + allowed values."; + } + + leaf reportAmountM4LTE { + type enumeration { + enum 1; + enum 2; + enum 4; + enum 8; + enum 16; + enum 32; + enum 64; + enum INFINITY; + } + description "It specifies the number of measurement reports that shall be + taken for periodic reporting while the UE is in connected mode. + The attribute is applicable only for Immediate MDT and combined Trace + and Immediate MDT and when reportingTrigger is configured for periodical + measurements and applicable only for LTE. In case this attribute is not + used, it carries a null semantic. + See the clause 5.10.6 of TS 32.422 for additional details on the + allowed values."; + } + + leaf reportAmountM5LTE { + type enumeration { + enum 1; + enum 2; + enum 4; + enum 8; + enum 16; + enum 32; + enum 64; + enum INFINITY; + } + description "It specifies the number of measurement reports that shall be + taken for periodic reporting while the UE is in connected mode. + The attribute is applicable only for Immediate MDT and combined Trace + and Immediate MDT and when reportingTrigger is configured for periodical + measurements and applicable only for LTE. In case this attribute is not + used, it carries a null semantic. + See the clause 5.10.6 of TS 32.422 for additional details on the + allowed values."; + } + + leaf reportAmountM6LTE { + type enumeration { + enum 1; + enum 2; + enum 4; + enum 8; + enum 16; + enum 32; + enum 64; + enum INFINITY; + } + description "It specifies the number of measurement reports that shall be + taken for periodic reporting while the UE is in connected mode. + The attribute is applicable only for Immediate MDT and combined Trace + and Immediate MDT and when reportingTrigger is configured for periodical + measurements and applicable only for LTE. In case this attribute is not + used, it carries a null semantic. + See the clause 5.10.6 of TS 32.422 for additional details on the + allowed values."; + } + + leaf reportAmountM7LTE { + type enumeration { + enum 1; + enum 2; + enum 4; + enum 8; + enum 16; + enum 32; + enum 64; + enum INFINITY; + } + description "It specifies the number of measurement reports that shall be + taken for periodic reporting while the UE is in connected mode. + The attribute is applicable only for Immediate MDT and combined Trace + and Immediate MDT and when reportingTrigger is configured for periodical + measurements and applicable only for LTE. In case this attribute is not + used, it carries a null semantic. + See the clause 5.10.6 of TS 32.422 for additional details on the + allowed values."; + } + + leaf reportAmountM1NR { + type enumeration { + enum 1; + enum 2; + enum 4; + enum 8; + enum 16; + enum 32; + enum 64; + enum INFINITY; + } + description "It specifies the number of measurement reports that shall be + taken for periodic reporting while the UE is in connected mode. + The attribute is applicable only for Immediate MDT and combined Trace + and Immediate MDT and when reportingTrigger is configured for periodical + measurements and applicable only for NR. In case this attribute is not + used, it carries a null semantic. + See the clause 5.10.6 of TS 32.422 for additional details on the + allowed values."; + } + + leaf reportAmountM4NR { + type enumeration { + enum 1; + enum 2; + enum 4; + enum 8; + enum 16; + enum 32; + enum 64; + enum INFINITY; + } + description "It specifies the number of measurement reports that shall be + taken for periodic reporting while the UE is in connected mode. + The attribute is applicable only for Immediate MDT and combined Trace + and Immediate MDT and when reportingTrigger is configured for periodical + measurements and applicable only for NR. In case this attribute is not + used, it carries a null semantic. + See the clause 5.10.6 of TS 32.422 for additional details on the + allowed values."; + } + + leaf reportAmountM5NR { + type enumeration { + enum 1; + enum 2; + enum 4; + enum 8; + enum 16; + enum 32; + enum 64; + enum INFINITY; + } + description "It specifies the number of measurement reports that shall be + taken for periodic reporting while the UE is in connected mode. + The attribute is applicable only for Immediate MDT and combined Trace + and Immediate MDT and when reportingTrigger is configured for periodical + measurements and applicable only for NR. In case this attribute is not + used, it carries a null semantic. + See the clause 5.10.6 of TS 32.422 for additional details on the + allowed values."; + } + + leaf reportAmountM6NR { + type enumeration { + enum 1; + enum 2; + enum 4; + enum 8; + enum 16; + enum 32; + enum 64; + enum INFINITY; + } + description "It specifies the number of measurement reports that shall be + taken for periodic reporting while the UE is in connected mode. + The attribute is applicable only for Immediate MDT and combined Trace + and Immediate MDT and when reportingTrigger is configured for periodical + measurements and applicable only for NR. In case this attribute is not + used, it carries a null semantic. + See the clause 5.10.6 of TS 32.422 for additional details on the + allowed values."; + } + + leaf reportAmountM7NR { + type enumeration { + enum 1; + enum 2; + enum 4; + enum 8; + enum 16; + enum 32; + enum 64; + enum INFINITY; + } + description "It specifies the number of measurement reports that shall be + taken for periodic reporting while the UE is in connected mode. + The attribute is applicable only for Immediate MDT and combined Trace + and Immediate MDT and when reportingTrigger is configured for periodical + measurements and applicable only for NR. In case this attribute is not + used, it carries a null semantic. + See the clause 5.10.6 of TS 32.422 for additional details on the + allowed values."; + } } - grouping LoggedMdtGrp { + grouping LoggedMdtConfigGrp { description "This <> defines the configuration parameters of IOC TraceJob which are specific for Logged MDT or Logged MBSFN MDT. The optional attribute plmnList allows to specify the PLMNs where @@ -1020,22 +1279,16 @@ module _3gpp-common-trace { 'any cell selection' state to the 'camped normally' state (TS 38.331, TS 38.304)."; - leaf traceCollectionEntityIPAddress { - when '../traceReportingFormat = "FILE_BASED" or ' - +'jobType = "LOGGED_MDT_ONLY" or jobType = "LOGGED_MBSFN_MDT"'; - type union { - type inet:uri; - type inet:ip-address; - } - description "Specifies the address of the Trace Collection Entity when - the attribute traceReportingFormat is configured for the file-based - reporting. The attribute is applicable for both Trace and MDT."; - reference "Clause 5.9 of 3GPP TS 32.422"; + leaf traceCollectionEntityId { + type int64; + description "It specifies the TCE Id which is sent to the UE in + Logged MDT. See the clause 5.10.11 of 3GPP TS 32.422 for additional + details on the allowed values."; } leaf loggingDuration { - when 'jobType = "LOGGED_MDT_ONLY" or' - + ' jobType = "LOGGED_MBSFN_MDT"'; + when '../../../jobType = "LOGGED_MDT_ONLY" or' + + ' ../../../jobType = "LOGGED_MBSFN_MDT"'; type uint32 { range "600|1200|2400|3600|5400|7200"; } @@ -1048,8 +1301,8 @@ module _3gpp-common-trace { } leaf loggingInterval { - when 'jobType = "LOGGED_MDT_ONLY" or' - + ' jobType = "LOGGED_MBSFN_MDT"'; + when '../../../jobType = "LOGGED_MDT_ONLY" or' + + ' ../../../jobType = "LOGGED_MBSFN_MDT"'; type uint32 { range "0|320|640|1280|2560|5120|10240|20480|" +"30720|40960|61440"; @@ -1063,7 +1316,7 @@ module _3gpp-common-trace { } leaf reportType { - when 'jobType = "IMMEDIATE_MDT_ONLY"'; + when '../../../jobType = "IMMEDIATE_MDT_ONLY"'; type enumeration { enum PERIODICAL; enum EVENT_TRIGGERED; @@ -1073,7 +1326,7 @@ module _3gpp-common-trace { } leaf eventListForEventTriggeredMeasurement { - when 'jobType = "LOGGED_MDT_ONLY"'; + when '../../../jobType = "LOGGED_MDT_ONLY"'; type enumeration { enum OUT_OF_COVERAGE ; enum A2_EVENT ; @@ -1088,8 +1341,8 @@ module _3gpp-common-trace { } leaf eventThresholdL1 { - when 'jobType = "LOGGED_MDT_ONLY" or' - + ' jobType = "LOGGED_MBSFN_MDT"'; + when '../../../jobType = "LOGGED_MDT_ONLY" or' + + ' ../../../jobType = "LOGGED_MBSFN_MDT"'; type uint32 { range "0..127"; } @@ -1103,8 +1356,8 @@ module _3gpp-common-trace { } leaf hysteresisL1 { - when 'jobType = "LOGGED_MDT_ONLY" or ' - + 'jobType = "LOGGED_MBSFN_MDT"'; + when '../../../jobType = "LOGGED_MDT_ONLY" or ' + + '../../../jobType = "LOGGED_MBSFN_MDT"'; type uint32 { range "0..30"; } @@ -1117,9 +1370,9 @@ module _3gpp-common-trace { reference "clause 5.10.37 of TS 32.422"; } - leaf timeToTriggerL1 { - when 'jobType = "LOGGED_MDT_ONLY" or ' - + 'jobType = "LOGGED_MBSFN_MDT"'; + leaf timeToTriggerL1 { + when '../../../jobType = "LOGGED_MDT_ONLY" or ' + + '../../../jobType = "LOGGED_MBSFN_MDT"'; type int32 { range 0|40|64|80|100|128|160|256|320|480|512|640|1024|1280|2560|5120; } @@ -1134,7 +1387,7 @@ module _3gpp-common-trace { } list pLMNList { - when 'jobType = "LOGGED_MDT_ONLY"'; + when '../../../jobType = "LOGGED_MDT_ONLY"'; key "mcc mnc"; uses types3gpp:PLMNId; max-elements 16; @@ -1143,8 +1396,8 @@ module _3gpp-common-trace { reference "Clause 5.10.24 of 3GPP TS 32.422"; } - list areaConfigurationForNeighCell { - when 'jobType = "LOGGED_MDT_ONLY"'; + list areaConfigurationForNeighCells { + when '../../../jobType = "LOGGED_MDT_ONLY"'; key "idx"; leaf idx { type uint32 ; } description "It specifies the area for which UE is requested to perform @@ -1158,8 +1411,8 @@ module _3gpp-common-trace { uses AreaConfigGrp; } - list mBSFNAreaList { - when 'jobType = "LOGGED_MBSFN_MDT"'; + list mbsfnAreaList { + when '../../../jobType = "LOGGED_MBSFN_MDT"'; key "mbsfnAreaId earfcn"; max-elements 8; description "The MBSFN Area consists of a MBSFN Area ID and Carrier @@ -1169,6 +1422,16 @@ module _3gpp-common-trace { uses MbsfnAreaGrp; } + + list nPNIdentityList { + description "It defines which NPNs that can be served by the NR cell, + and which CAG IDs or NIDs can be supported by the NR cell for + corresponding PNI-NPN or SNPN."; + key idx; + max-elements 1; + uses NpnIdGrp; + leaf idx { type string;} + } } grouping MdtConfigGrp { @@ -1233,6 +1496,28 @@ module _3gpp-common-trace { the UE."; reference "Clause 5.10.29 of 3GPP TS 32.422"; } + + list immediateMdtConfig { + description "The set of parameters specific for Immediate MDT + configuration. + This attribute shall be present only if MDT is supported and the jobType + attribute is set to Immediate MDT or combined Trace and Immediate MDT"; + key idx; + max-elements 1; + leaf idx { type string; } + uses ImmediateMdtConfigGrp; + } + + list loggedMdtConfig { + description "The set of parameters specific for Logged MDT and Logged + MBSFN MDT configuration. + This attribute shall be present only if MDT is supported and the + jobType attribute is set to Logged MDT or Logged MBSFN MDT."; + key idx; + max-elements 1; + leaf idx { type string; } + uses LoggedMdtConfigGrp; + } } grouping UEMeasConfigGrp { @@ -1293,7 +1578,6 @@ module _3gpp-common-trace { reference "Clause 5.9a of 3GPP TS 32.422 for additional details on the allowed values."; } - list pLMNTarget { key "mcc mnc"; @@ -1305,35 +1589,25 @@ module _3gpp-common-trace { uses types3gpp:PLMNId; } - leaf-list listOfTraceMetrics { - when '../jobType = "TRACE_ONLY"' - + ' or ../jobType = "IMMEDIATE_MDT_AND_TRACE"'; - type string; - description "Specifies the messages to be reported."; - reference "Clause 10 of 3GPP TS 32.422"; + leaf traceCollectionEntityIPAddress { + type inet:ip-address; + description "It specifies the address of the Trace Collection Entity + when the attribute traceReportingFormat is configured for the + file-based reporting. The attribute is applicable for both Trace and + MDT. + See the clause 5.9 of TS 32.422 for additional details on the allowed + values."; } - + leaf traceReportingConsumerUri { when '../traceReportingFormat = "STREAMING"'; type inet:uri; description "URI of the Streaming Trace data reporting MnS consumer - (a.k.a. streaming target). - This attribute shall be present if file based trace data reporting is - supported and traceReportingFormat set to 'file based' or when - jobType is set to Logged MDT or Logged MBSFN MDT."; + (a.k.a. streaming target)."; reference "Clause 5.9 of 3GPP TS 32.422"; } - leaf traceCollectionEntityId { - when '../jobType = "LOGGED_MDT_ONLY" or ' - + '../jobType = "LOGGED_MBSFN_MDT"'; - type uint32; - description "It specifies the TCE Id which is sent to the UE in - Logged MDT."; - reference "Clause 5.10.11 of 3GPP TS 32.422"; - } - - list traceReference { + list traceReference { key "idx"; min-elements 1; max-elements 1; @@ -1434,21 +1708,21 @@ module _3gpp-common-trace { reference "3GPP TS 32.422"; } - list traceConfig { - when '../jobType = "TRACE_ONLY"' - + ' or ../jobType = "IMMEDIATE_MDT_AND_TRACE"' - + ' or ../jobType = "TRACE_AND_5GC_UE_LEVEL_MEASUREMENTS"' - + ' or ../jobType = - "TRACE_AND_IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS"'; - key idx; - description "Trace config"; - max-elements 1; - uses TraceConfigGrp; - leaf idx { type string; } + list traceConfig { + when '../jobType = "TRACE_ONLY"' + + ' or ../jobType = "IMMEDIATE_MDT_AND_TRACE"' + + ' or ../jobType = "TRACE_AND_5GC_UE_LEVEL_MEASUREMENTS"' + + ' or ../jobType = + "TRACE_AND_IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS"'; + key idx; + description "Trace config"; + max-elements 1; + uses TraceConfigGrp; + leaf idx { type string; } } - list mdtConfig { - when '../jobType = "IMMEDIATE_MDT_ONLY"' + list mdtConfig { + when '../jobType = "IMMEDIATE_MDT_ONLY"' + ' or ../jobType = "IMMEDIATE_MDT_AND_TRACE"' + ' or ../jobType = "RLF_REPORT_ONLY"' + ' or ../jobType = "RCEF_REPORT_ONLY"' @@ -1456,25 +1730,26 @@ module _3gpp-common-trace { + ' or ../jobType = "IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS"' + ' or ../jobType = "TRACE_AND_IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS"'; - key idx; - description "MDT config"; - max-elements 1; - uses MdtConfigGrp; - leaf idx { type string; } - } - - list ueMeasConfig { - when '../jobType = "5GC_UE_LEVEL_MEASUREMENTS_ONLY"' - + ' or ../jobType = "TRACE_AND_5GC_UE_LEVEL_MEASUREMENTS"' - + ' or ../jobType = "IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS"' - + ' or ../jobType = - "TRACE_AND_IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS"'; - key idx; - description "5GC UE level measurements config"; - max-elements 1; - uses UEMeasConfigGrp; - leaf idx { type string; } + key idx; + description "MDT config"; + max-elements 1; + uses MdtConfigGrp; + leaf idx { type string; } + } + + list ueMeasConfig { + when '../jobType = "5GC_UE_LEVEL_MEASUREMENTS_ONLY"' + + ' or ../jobType = "TRACE_AND_5GC_UE_LEVEL_MEASUREMENTS"' + + ' or ../jobType = "IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS"' + + ' or ../jobType = + "TRACE_AND_IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS"'; + key idx; + description "5GC UE level measurements config"; + max-elements 1; + uses UEMeasConfigGrp; + leaf idx { type string; } } + list nPNTarget { description "applicable only for NR and shall be present in case of NPN either a PNI-NPN or a SNPN) and for management-based activation when -- GitLab From a8268644dee4b2eeb0f5d7f06308a38239bf3f1d Mon Sep 17 00:00:00 2001 From: "U-ERICSSON\\ETHBLL" Date: Mon, 6 May 2024 18:44:37 +0200 Subject: [PATCH 12/24] Added Scheduler and ConditionMonitor --- yang-models/_3gpp-common-measurements.yang | 12 + yang-models/_3gpp-common-util.yang | 218 +++++ yang-models/_3gpp-common-yang-types.yang | 34 + .../external-yams/ietf-inet-types.yang | 746 +++++++++++------- ...s@2013-07-15.yang => ietf-yang-types.yang} | 437 +++++++--- 5 files changed, 1069 insertions(+), 378 deletions(-) create mode 100644 yang-models/_3gpp-common-util.yang rename yang-models/external-yams/{ietf-yang-types@2013-07-15.yang => ietf-yang-types.yang} (52%) mode change 100755 => 100644 diff --git a/yang-models/_3gpp-common-measurements.yang b/yang-models/_3gpp-common-measurements.yang index 6d9f54ce1..eeba31d79 100755 --- a/yang-models/_3gpp-common-measurements.yang +++ b/yang-models/_3gpp-common-measurements.yang @@ -56,6 +56,7 @@ module _3gpp-common-measurements { Integration Reference Point (IRP); Information Service (IS)"; + revision 2024-05-06 { reference CR-xxxx; } revision 2024-02-24 { reference CR-0346; } revision 2023-11-18 { reference "CR-0299 CR-0305"; } revision 2023-09-18 { reference CR-0271; } @@ -324,6 +325,17 @@ module _3gpp-common-measurements { description "Link to a 'Files' object."; yext3gpp:inVariant; } + + choice conditiona-or-schedule { + leaf schedulerRef { + type types3gpp:DistinguishedName; + description "Pointer to a Scheduler object."; + } + leaf conditionMonitorRef { + type types3gpp:DistinguishedName; + description "Pointer to a ConditionMonitor object."; + } + } } diff --git a/yang-models/_3gpp-common-util.yang b/yang-models/_3gpp-common-util.yang new file mode 100644 index 000000000..0249a89e6 --- /dev/null +++ b/yang-models/_3gpp-common-util.yang @@ -0,0 +1,218 @@ +module _3gpp-common-util { + yang-version 1.1; + namespace urn:3gpp:sa5:_3gpp-common-util; + prefix "util3gpp"; + + import _3gpp-common-top { prefix top3gpp; } + import _3gpp-common-yang-types { prefix types3gpp ; } + import _3gpp-common-managed-element { prefix me3gpp ; } + import _3gpp-common-subnetwork { prefix subnet3gpp ; } + + organization "3GPP SA5"; + contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; + + description "Defines Utility IOCs: ConditionMonitor, Scheduler + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + TTA, TTC). All rights reserved."; + reference "3GPP TS 28.623"; + + revision 2024-05-06 { reference CR-xxxx; } + + feature SchedulerUnderManagedElement { + description "Scheduler shall be contained under ManagedElement."; + } + + feature SchedulerUnderSubNetwork { + description "Scheduler shall be contained under SubNetwork."; + } + + grouping TimeIntervalGrp { + description "This data type defines a time interval within one day. + If the whole day shall be selected, intervalStart shall be set to + 00:00:00 and intervalEnd shall be set to 23:59:59."; + + leaf intervalStart { + type types3gpp:FullTime; + mandatory true; + description "It indicates the time (in 'full-time' format) when the + service shall be started. + Data type 'FullTime' defines the time as specified by 'full-time' + in RFC3339."; + } + + leaf intervalEnd { + type types3gpp:FullTime; + mandatory true; + description "It indicates the time (in 'full-time' format) when the + service shall be stopped. + 'FullTime' defines the time as specified by 'full-time' in RFC3339. + intervalEnd should use the same timezone as intervalStart and shall + be later then intervalStart"; + } + } + + grouping SchedulingTimeGrp { + description "This <> defines the scheduling time and allows to + configure one of four possible scheduling methods: + + - One time interval: The attribute timeWindow presents the active + scheduling time. A duration more than one day may be configured. + - Daily periodicity: Several active intervals per day can be configured + in attribute timeIntervals. The active scheduling times recur each day. + - Weekly periodicity: Several active intervals for one day can be + configured in attribute timeIntervals. The active scheduling times recur + on the days of the weeks configured by attribute daysOfWeek + - Monthly periodicity: Several active intervals for one day can be + configured in attribute timeIntervals. The active scheduling times + recur on the days of the months configured by attribute daysOfMonth."; + choice SchedulingTime { + mandatory true; + case One-time-interval { + uses types3gpp:TimeWindowGrp; + } + case periodic { + list timeIntervals { + description "List of intervals within one day for which the service + shall be active."; + key "intervalStart intervalEnd"; + min-elements 1; + uses TimeIntervalGrp; + } + leaf daysOfWeek { + must 'not(../daysOfMonth)'; + description "Shall be present in case of Weekly periodicity, + otherwise not"; + type types3gpp:DayOfWeek; + } + leaf daysOfMonth { + must 'not(../daysOfWeek)'; + description "Shall be present in case of Monthly periodicity, + otherwise not"; + type types3gpp:DaysOfMonth; + } + } + } + } + + grouping SchedulerGrp { + description "Represents the Scheduler IOC."; + + list schedulingTimes { + description "It defines the active scheduling times."; + min-elements 1; + key idx; + leaf idx { type uint32; } + uses SchedulingTimeGrp; + } + + leaf schedulerStatus { + type boolean; + mandatory true; + config false; + description "Switches between TRUE and FALSE depending upon whether the + configured time constraints are fulfilled or not."; + } + } + + grouping SchedulerSubtree { + list Scheduler { + description "This IOC defines a time scheduler. + It can be name-contained by SubNetwork or ManagedElement. + + The attribute schedulingTimes allows to configure one or several + active time intervals. The active intervals can be configured to occur + once or recurring periodically. + + The boolean attribute schedulerStatus switches between TRUE and FALSE + depending upon whether the configured time constraints are fulfilled + or not. This attribute makes the internal Scheduler status observable."; + key id; + uses top3gpp:Top_Grp; + container attributes { + uses SchedulerGrp; + } + } + } + + augment /me3gpp:ManagedElement { + if-feature SchedulerUnderManagedElement; + uses SchedulerSubtree; + } + augment /subnet3gpp:SubNetwork { + if-feature SchedulerUnderSubNetwork; + uses SchedulerSubtree; + } + +/////////////////////////////////////////////////////////////////////////////// + + feature ConditionMonitorUnderManagedElement { + description "ConditionMonitor shall be contained under ManagedElement."; + } + + feature ConditionMonitorUnderSubNetwork { + description "ConditionMonitor shall be contained under SubNetwork."; + } + + grouping ConditionMonitorGrp { + description "Represents the Scheduler IOC."; + + leaf condition { + type string { + length 1..max; + } + mandatory true; + description "Logical expression of one or several condition(s). + + The actual syntax and capabilities of condition is SS specific. + However, each SS should support condition consisting of one or several + assertions that may be grouped using the logical operators AND, OR + and NOT. Only if the whole expression of condition evaluates TRUE, + the attribute conditionsSatisfied will be TRUE. + + Each assertion is a pointer to a Boolean parameter or a logical + expression of attribute existence or attribute value comparison + ('equal to X, less than Y' etc.). + + An empty string is not allowed."; + } + + leaf conditionStatus { + type boolean; + mandatory true; + config false; + description "Switches between TRUE and FALSE depending upon whether the + configured constraints are fulfilled or not."; + } + } + + grouping ConditionMonitorSubtree { + list ConditionMonitor { + description "This IOC defines one or several conditions and monitors + whether these conditions are satisfied. It can be name-contained by + SubNetwork or ManagedElement. + + The attribute condition allows to configure one or several conditions. + Possible conditions include but are not limited to scheduling + requirements or parameter settings e.g. evaluation if a configuration + parameter is above a certain threshold or has a certain values. + + The boolean attribute conditionStatus switches between TRUE and FALSE + depending upon whether the configured conditions are fulfilled or not. + This attribute makes the internal ConditionMonitor status observable."; + key id; + uses top3gpp:Top_Grp; + container attributes { + uses ConditionMonitorGrp; + } + } + } + + augment /me3gpp:ManagedElement { + if-feature ConditionMonitorUnderManagedElement; + uses ConditionMonitorSubtree; + } + augment /subnet3gpp:SubNetwork { + if-feature ConditionMonitorUnderSubNetwork; + uses ConditionMonitorSubtree; + } +} \ No newline at end of file diff --git a/yang-models/_3gpp-common-yang-types.yang b/yang-models/_3gpp-common-yang-types.yang index b80ef6430..f43a0fb6a 100755 --- a/yang-models/_3gpp-common-yang-types.yang +++ b/yang-models/_3gpp-common-yang-types.yang @@ -69,6 +69,40 @@ module _3gpp-common-yang-types { leaf value { type string; } } + typedef DayOfWeekT { + type enumeration { + enum Monday; + enum Tuesday; + enum Wednesday; + enum Thursday; + enum Friday; + enum Saturday; + enum Sunday; + } + } + + typedef DayOfWeek { + type enumeration { + enum MONDAY; + enum TUESDAY; + enum WEDNESDAY; + enum THURSADY; + enum FRIDAY; + enum SATURDAY; + enum SUNDAY; + } + } + + typedef DaysOfMonth { + type uint8 { + range 0..31; + } + } + + typedef FullTime { + type yang:time-with-zone-offset; + } + grouping TimeWindowGrp { leaf startTime { type yang:date-and-time; diff --git a/yang-models/external-yams/ietf-inet-types.yang b/yang-models/external-yams/ietf-inet-types.yang index a69ac0579..8101ea4bc 100755 --- a/yang-models/external-yams/ietf-inet-types.yang +++ b/yang-models/external-yams/ietf-inet-types.yang @@ -1,159 +1,194 @@ module ietf-inet-types { - yang-version 1; + namespace "urn:ietf:params:xml:ns:yang:ietf-inet-types"; + prefix "inet"; - namespace - "urn:ietf:params:xml:ns:yang:ietf-inet-types"; + organization + "IETF Network Modeling (NETMOD) Working Group"; - prefix inet; - - organization - "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; - - contact - "WG Web: + contact + "WG Web: WG List: - WG Chair: David Kessens - - - WG Chair: Juergen Schoenwaelder - - Editor: Juergen Schoenwaelder - "; + "; - description - "This module contains a collection of generally useful derived + description + "This module contains a collection of generally useful derived YANG data types for Internet addresses and related things. - Copyright (c) 2013 IETF Trust and the persons identified as + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL + NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', + 'MAY', and 'OPTIONAL' in this document are to be interpreted as + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here. + + Copyright (c) 2022 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject - to the license terms contained in, the Simplified BSD License + to the license terms contained in, the Revised BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents - (http://trustee.ietf.org/license-info). + (https://trustee.ietf.org/license-info). - This version of this YANG module is part of RFC 6991; see - the RFC itself for full legal notices."; + This version of this YANG module is part of RFC XXXX; + see the RFC itself for full legal notices."; - revision "2013-07-15" { - description - "This revision adds the following new data types: - - ip-address-no-zone - - ipv4-address-no-zone - - ipv6-address-no-zone"; - reference - "RFC 6991: Common YANG Data Types"; - - } - - revision "2010-09-24" { - description "Initial revision."; - reference - "RFC 6021: Common YANG Data Types"; - - } - - - typedef ip-version { - type enumeration { - enum "unknown" { - value 0; - description - "An unknown or unspecified version of the Internet + revision 2023-01-23 { + description + "This revision adds the following new data types: + - inet:ip-address-and-prefix + - inet:ipv4-address-and-prefix + - inet:ipv6-address-and-prefix + - inet:protocol-number + - inet:host-name + - inet:email-address + - inet:ip-address-link-local + - inet:ipv4-address-link-local + - inet:ipv6-address-link-local + The inet:host union was changed to use inet:host-name instead + of inet:domain-name. Several pattern statements have been + improved."; + reference + "RFC XXXX: Common YANG Data Types"; + } + + revision 2013-07-15 { + description + "This revision adds the following new data types: + - inet:ip-address-no-zone + - inet:ipv4-address-no-zone + - inet:ipv6-address-no-zone"; + reference + "RFC 6991: Common YANG Data Types"; + } + + revision 2010-09-24 { + description + "Initial revision."; + reference + "RFC 6021: Common YANG Data Types"; + } + + /*** collection of types related to protocol fields ***/ + + typedef ip-version { + type enumeration { + enum unknown { + value "0"; + description + "An unknown or unspecified version of the Internet protocol."; - } - enum "ipv4" { - value 1; - description - "The IPv4 protocol as defined in RFC 791."; - } - enum "ipv6" { - value 2; - description - "The IPv6 protocol as defined in RFC 2460."; - } } - description - "This value represents the version of the IP protocol. + enum ipv4 { + value "1"; + description + "The IPv4 protocol as defined in RFC 791."; + } + enum ipv6 { + value "2"; + description + "The IPv6 protocol as defined in RFC 8200."; + } + } + description + "This value represents the version of the IP protocol. In the value set and its semantics, this type is equivalent to the InetVersion textual convention of the SMIv2."; - reference - "RFC 791: Internet Protocol - RFC 2460: Internet Protocol, Version 6 (IPv6) Specification - RFC 4001: Textual Conventions for Internet Network Addresses"; - + reference + "RFC 791: Internet Protocol + RFC 8200: Internet Protocol, Version 6 (IPv6) Specification + RFC 4001: Textual Conventions for Internet Network Addresses"; + } + + typedef dscp { + type uint8 { + range "0..63"; } - - typedef dscp { - type uint8 { - range "0..63"; - } - description - "The dscp type represents a Differentiated Services Code Point + description + "The dscp type represents a Differentiated Services Code Point that may be used for marking packets in a traffic stream. + In the value set and its semantics, this type is equivalent to the Dscp textual convention of the SMIv2."; - reference - "RFC 3289: Management Information Base for the Differentiated - Services Architecture - RFC 2474: Definition of the Differentiated Services Field - (DS Field) in the IPv4 and IPv6 Headers - RFC 2780: IANA Allocation Guidelines For Values In - the Internet Protocol and Related Headers"; - + reference + "RFC 3289: Management Information Base for the Differentiated + Services Architecture + RFC 2474: Definition of the Differentiated Services Field + (DS Field) in the IPv4 and IPv6 Headers + RFC 2780: IANA Allocation Guidelines For Values In + the Internet Protocol and Related Headers"; + } + + typedef ipv6-flow-label { + type uint32 { + range "0..1048575"; } - - typedef ipv6-flow-label { - type uint32 { - range "0..1048575"; - } - description - "The ipv6-flow-label type represents the flow identifier or Flow - Label in an IPv6 packet header that may be used to + description + "The ipv6-flow-label type represents the flow identifier or + Flow Label in an IPv6 packet header that may be used to discriminate traffic flows. In the value set and its semantics, this type is equivalent to the IPv6FlowLabel textual convention of the SMIv2."; - reference - "RFC 3595: Textual Conventions for IPv6 Flow Label - RFC 2460: Internet Protocol, Version 6 (IPv6) Specification"; - + reference + "RFC 3595: Textual Conventions for IPv6 Flow Label + RFC 8200: Internet Protocol, Version 6 (IPv6) Specification"; + } + + typedef port-number { + type uint16 { + range "0..65535"; } - - typedef port-number { - type uint16 { - range "0..65535"; - } - description - "The port-number type represents a 16-bit port number of an + description + "The port-number type represents a 16-bit port number of an Internet transport-layer protocol such as UDP, TCP, DCCP, or - SCTP. Port numbers are assigned by IANA. A current list of - all assignments is available from . + SCTP. + + Port numbers are assigned by IANA. The current list of + all assignments is available from . Note that the port number value zero is reserved by IANA. In situations where the value zero does not make sense, it can be excluded by subtyping the port-number type. + In the value set and its semantics, this type is equivalent to the InetPortNumber textual convention of the SMIv2."; - reference - "RFC 768: User Datagram Protocol - RFC 793: Transmission Control Protocol - RFC 4960: Stream Control Transmission Protocol - RFC 4340: Datagram Congestion Control Protocol (DCCP) - RFC 4001: Textual Conventions for Internet Network Addresses"; - - } - - typedef as-number { - type uint32; - description - "The as-number type represents autonomous system numbers + reference + "RFC 768: User Datagram Protocol + RFC 9293: Transmission Control Protocol (TCP) + RFC 9260: Stream Control Transmission Protocol + RFC 4340: Datagram Congestion Control Protocol (DCCP) + RFC 4001: Textual Conventions for Internet Network Addresses"; + } + + typedef protocol-number { + type uint8; + description + "The protocol-number type represents an 8-bit Internet + protocol number, carried in the 'protocol' field of the + IPv4 header or in the 'next header' field of the IPv6 + header. If IPv6 extension headers are present, then the + protocol number type represents the upper layer protocol + number, i.e., the number of the last next header' field + of the IPv6 extension headers. + + Protocol numbers are assigned by IANA. The current list of + all assignments is available from ."; + reference + "RFC 791: Internet Protocol + RFC 8200: Internet Protocol, Version 6 (IPv6) Specification"; + } + + /*** collection of types related to autonomous systems ***/ + + typedef as-number { + type uint32; + description + "The as-number type represents autonomous system numbers which identify an Autonomous System (AS). An AS is a set of routers under a single technical administration, using an interior gateway protocol and common metrics to route @@ -171,40 +206,40 @@ module ietf-inet-types { In the value set and its semantics, this type is equivalent to the InetAutonomousSystemNumber textual convention of the SMIv2."; - reference - "RFC 1930: Guidelines for creation, selection, and registration - of an Autonomous System (AS) - RFC 4271: A Border Gateway Protocol 4 (BGP-4) - RFC 4001: Textual Conventions for Internet Network Addresses - RFC 6793: BGP Support for Four-Octet Autonomous System (AS) - Number Space"; - + reference + "RFC 1930: Guidelines for creation, selection, and registration + of an Autonomous System (AS) + RFC 4271: A Border Gateway Protocol 4 (BGP-4) + RFC 4001: Textual Conventions for Internet Network Addresses + RFC 6793: BGP Support for Four-Octet Autonomous System (AS) + Number Space"; + } + + /*** collection of types related to IP addresses and hostnames ***/ + + typedef ip-address { + type union { + type inet:ipv4-address; + type inet:ipv6-address; } - - typedef ip-address { - type union { - type ipv4-address; - type ipv6-address; - } - description - "The ip-address type represents an IP address and is IP + description + "The ip-address type represents an IP address and is IP version neutral. The format of the textual representation implies the IP version. This type supports scoped addresses by allowing zone identifiers in the address format."; - reference - "RFC 4007: IPv6 Scoped Address Architecture"; - + reference + "RFC 4007: IPv6 Scoped Address Architecture"; + } + + typedef ipv4-address { + type string { + pattern + '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' + + '(%[A-Za-z0-9][A-Za-z0-9\-\._~/]*)?'; } - - typedef ipv4-address { - type string { - pattern - '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' - + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' - + '(%[\p{N}\p{L}]+)?'; - } - description - "The ipv4-address type represents an IPv4 address in + description + "The ipv4-address type represents an IPv4 address in dotted-quad notation. The IPv4 address may include a zone index, separated by a % sign. @@ -216,23 +251,21 @@ module ietf-inet-types { The canonical format for the zone index is the numerical format"; - } + } - typedef ipv6-address { - type string { - pattern - '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' + typedef ipv6-address { + type string { + pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}' + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))' - + '(%[\p{N}\p{L}]+)?'; - pattern - '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' + + '(%[A-Za-z0-9][A-Za-z0-9\-\._~/]*)?'; + pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)' + '(%.+)?'; - } - description - "The ipv6-address type represents an IPv6 address in full, + } + description + "The ipv6-address type represents an IPv6 address in full, mixed, shortened, and shortened-mixed notation. The IPv6 address may include a zone index, separated by a % sign. @@ -242,82 +275,110 @@ module ietf-inet-types { interface. If the zone index is not present, the default zone of the device will be used. - - The canonical format of IPv6 addresses uses the textual representation defined in Section 4 of RFC 5952. The canonical format for the zone index is the numerical format as described in Section 11.2 of RFC 4007."; - reference - "RFC 4291: IP Version 6 Addressing Architecture - RFC 4007: IPv6 Scoped Address Architecture - RFC 5952: A Recommendation for IPv6 Address Text - Representation"; - + reference + "RFC 4291: IP Version 6 Addressing Architecture + RFC 4007: IPv6 Scoped Address Architecture + RFC 5952: A Recommendation for IPv6 Address Text + Representation"; + } + + typedef ip-address-no-zone { + type union { + type inet:ipv4-address-no-zone; + type inet:ipv6-address-no-zone; } - - typedef ip-address-no-zone { - type union { - type ipv4-address-no-zone; - type ipv6-address-no-zone; - } - description - "The ip-address-no-zone type represents an IP address and is + description + "The ip-address-no-zone type represents an IP address and is IP version neutral. The format of the textual representation implies the IP version. This type does not support scoped addresses since it does not allow zone identifiers in the address format."; - reference - "RFC 4007: IPv6 Scoped Address Architecture"; + reference + "RFC 4007: IPv6 Scoped Address Architecture"; + } + typedef ipv4-address-no-zone { + type inet:ipv4-address { + pattern '[0-9\.]*'; } - - typedef ipv4-address-no-zone { - type ipv4-address { - pattern '[0-9\.]*'; - } - description - "An IPv4 address without a zone index. This type, derived from - ipv4-address, may be used in situations where the zone is - known from the context and hence no zone index is needed."; + description + "An IPv4 address without a zone index. This type, derived from + ipv4-address, may be used in situations where the zone is known + from the context and hence no zone index is needed."; + } + + typedef ipv6-address-no-zone { + type inet:ipv6-address { + pattern '[0-9a-fA-F:\.]*'; } - - typedef ipv6-address-no-zone { - type ipv6-address { - pattern '[0-9a-fA-F:\.]*'; - } - description - "An IPv6 address without a zone index. This type, derived from - ipv6-address, may be used in situations where the zone is - known from the context and hence no zone index is needed."; - reference - "RFC 4291: IP Version 6 Addressing Architecture - RFC 4007: IPv6 Scoped Address Architecture - RFC 5952: A Recommendation for IPv6 Address Text - Representation"; - + description + "An IPv6 address without a zone index. This type, derived from + ipv6-address, may be used in situations where the zone is known + from the context and hence no zone index is needed."; + reference + "RFC 4291: IP Version 6 Addressing Architecture + RFC 4007: IPv6 Scoped Address Architecture + RFC 5952: A Recommendation for IPv6 Address Text + Representation"; + } + + typedef ip-address-link-local { + type union { + type inet:ipv4-address-link-local; + type inet:ipv6-address-link-local; } - - typedef ip-prefix { - type union { - type ipv4-prefix; - type ipv6-prefix; - } - description - "The ip-prefix type represents an IP prefix and is IP + description + "The ip-address-link-local type represents a link-local IP + address and is IP version neutral. The format of the textual + representation implies the IP version."; + } + + typedef ipv4-address-link-local { + type ipv4-address { + pattern '169\.254\..*'; + } + description + "A link-local IPv4 address in the prefix 169.254.0.0/16 as + defined in section 2.1. of RFC 3927."; + reference + "RFC 3927: Dynamic Configuration of IPv4 Link-Local Addresses"; + } + + typedef ipv6-address-link-local { + type ipv6-address { + pattern '[fF][eE]80:.*'; + } + description + "A link-local IPv6 address in the prefix fe80::/10 as defined + in section 2.5.6. of RFC 4291."; + reference + "RFC 4291: IP Version 6 Addressing Architecture"; + } + + typedef ip-prefix { + type union { + type inet:ipv4-prefix; + type inet:ipv6-prefix; + } + description + "The ip-prefix type represents an IP prefix and is IP version neutral. The format of the textual representations implies the IP version."; + } + + typedef ipv4-prefix { + type string { + pattern + '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' + + '/(([0-9])|([1-2][0-9])|(3[0-2]))'; } - - typedef ipv4-prefix { - type string { - pattern - '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' - + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' - + '/(([0-9])|([1-2][0-9])|(3[0-2]))'; - } - description - "The ipv4-prefix type represents an IPv4 address prefix. + description + "The ipv4-prefix type represents an IPv4 prefix. The prefix length is given by the number following the slash character and must be less than or equal to 32. @@ -327,24 +388,29 @@ module ietf-inet-types { The canonical format of an IPv4 prefix has all bits of the IPv4 address set to zero that are not part of the - IPv4 prefix."; - } - - typedef ipv6-prefix { - type string { - pattern - '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' + IPv4 prefix. + + The definition of ipv4-prefix does not require that bits, + which are not part of the prefix, are set to zero. However, + implementations have to return values in canonical format, + which requires non-prefix bits to be set to zero. This means + that 192.0.2.1/24 must be accepted as a valid value but it + will be converted into the canonical format 192.0.2.0/24."; + } + + typedef ipv6-prefix { + type string { + pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}' + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))' + '(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))'; - pattern - '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' + pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)' + '(/.+)'; - } - description - "The ipv6-prefix type represents an IPv6 address prefix. + } + description + "The ipv6-prefix type represents an IPv6 prefix. The prefix length is given by the number following the slash character and must be less than or equal to 128. @@ -352,44 +418,104 @@ module ietf-inet-types { mask that has n contiguous 1-bits from the most significant bit (MSB) and all other bits set to 0. - The IPv6 address should have all bits that do not belong - to the prefix set to zero. - The canonical format of an IPv6 prefix has all bits of the IPv6 address set to zero that are not part of the IPv6 prefix. Furthermore, the IPv6 address is represented - as defined in Section 4 of RFC 5952."; - reference - "RFC 5952: A Recommendation for IPv6 Address Text - Representation"; + as defined in Section 4 of RFC 5952. + + The definition of ipv6-prefix does not require that bits, + which are not part of the prefix, are set to zero. However, + implementations have to return values in canonical format, + which requires non-prefix bits to be set to zero. This means + that 2001:db8::1/64 must be accepted as a valid value but it + will be converted into the canonical format 2001:db8::/64."; + reference + "RFC 5952: A Recommendation for IPv6 Address Text + Representation"; + } + + typedef ip-address-and-prefix { + type union { + type inet:ipv4-address-and-prefix; + type inet:ipv6-address-and-prefix; + } + description + "The ip-address-and-prefix type represents an IP address and + prefix and is IP version neutral. The format of the textual + representations implies the IP version."; + } + + typedef ipv4-address-and-prefix { + type string { + pattern + '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' + + '/(([0-9])|([1-2][0-9])|(3[0-2]))'; + } + description + "The ipv4-address-and-prefix type represents an IPv4 + address and an associated ipv4 prefix. + The prefix length is given by the number following the + slash character and must be less than or equal to 32. + A prefix length value of n corresponds to an IP address + mask that has n contiguous 1-bits from the most + significant bit (MSB) and all other bits set to 0."; + } + + typedef ipv6-address-and-prefix { + type string { + pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' + + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' + + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}' + + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))' + + '(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))'; + pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' + + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)' + + '(/.+)'; } + description + "The ipv6-address-and-prefix type represents an IPv6 + address and an associated ipv4 prefix. + The prefix length is given by the number following the + slash character and must be less than or equal to 128. - typedef domain-name { - type string { - length "1..253"; - pattern - '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' - + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' - + '|\.'; - } - description - "The domain-name type represents a DNS domain name. The - name SHOULD be fully qualified whenever possible. + A prefix length value of n corresponds to an IP address + mask that has n contiguous 1-bits from the most + significant bit (MSB) and all other bits set to 0. + + The canonical format requires that the IPv6 address is + represented as defined in Section 4 of RFC 5952."; + reference + "RFC 5952: A Recommendation for IPv6 Address Text + Representation"; + } + + /*** collection of domain name and URI types ***/ + + typedef domain-name { + type string { + length "1..253"; + pattern + '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + + '|\.'; + } + description + "The domain-name type represents a DNS domain name. The + name SHOULD be fully qualified whenever possible. This + type does not support wildcards (see RFC 4592) or + classless in-addr.arpa delegations (see RFC 2317). Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible - future expansion. It is designed to hold various types of - domain names, including names used for A or AAAA records - (host names) and other records, such as SRV records. Note - that Internet host names have a stricter syntax (described - in RFC 952) than the DNS recommendations in RFCs 1034 and - 1123, and that systems that want to store host names in - schema nodes using the domain-name type are recommended to - adhere to this stricter standard to ensure interoperability. - + future expansion. Note that Internet host names have a + stricter syntax (described in RFC 952) than the DNS + recommendations in RFCs 1034 and 1123. Schema nodes + representing host names should use the host-name type + instead of the domain-type. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL @@ -408,33 +534,52 @@ module ietf-inet-types { Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be A-labels as per RFC 5890."; - reference - "RFC 952: DoD Internet Host Table Specification - RFC 1034: Domain Names - Concepts and Facilities - RFC 1123: Requirements for Internet Hosts -- Application - and Support - RFC 2782: A DNS RR for specifying the location of services - (DNS SRV) - RFC 5890: Internationalized Domain Names in Applications - (IDNA): Definitions and Document Framework"; - + reference + "RFC 952: DoD Internet Host Table Specification + RFC 1034: Domain Names - Concepts and Facilities + RFC 1123: Requirements for Internet Hosts -- Application + and Support + RFC 2317: Classless IN-ADDR.ARPA delegation + RFC 2782: A DNS RR for specifying the location of services + (DNS SRV) + RFC 4592: The Role of Wildcards in the Domain Name System + RFC 5890: Internationalized Domain Names in Applications + (IDNA): Definitions and Document Framework"; + } + + typedef host-name { + type domain-name { + length "2..max"; + pattern '[a-zA-Z0-9\-\.]+'; } - - typedef host { - type union { - type ip-address; - type domain-name; - } - description - "The host type represents either an IP address or a DNS - domain name."; + description + "The host-name type represents (fully qualified) host names. + Host names must be at least two characters long (see RFC 952) + and they are restricted to labels consisting of letters, digits + and hyphens separated by dots (see RFC1123 and RFC 952)."; + reference + "RFC 952: DoD Internet Host Table Specification + RFC 1123: Requirements for Internet Hosts -- Application + and Support"; + } + + typedef host { + type union { + type inet:ip-address; + type inet:host-name; } + description + "The host type represents either an IP address or a (fully + qualified) host name."; + } - typedef uri { - type string; - description - "The uri type represents a Uniform Resource Identifier - (URI) as defined by STD 66. + typedef uri { + type string { + pattern '[a-z][a-z0-9+.-]*:.*'; + } + description + "The uri type represents a Uniform Resource Identifier + (URI) as defined by the rule 'URI' in RFC 3986. Objects using the uri type MUST be in US-ASCII encoding, and MUST be normalized as described by RFC 3986 Sections @@ -459,14 +604,37 @@ module ietf-inet-types { In the value set and its semantics, this type is equivalent to the Uri SMIv2 textual convention defined in RFC 5017."; - reference - "RFC 3986: Uniform Resource Identifier (URI): Generic Syntax - RFC 3305: Report from the Joint W3C/IETF URI Planning Interest - Group: Uniform Resource Identifiers (URIs), URLs, - and Uniform Resource Names (URNs): Clarifications - and Recommendations - RFC 5017: MIB Textual Conventions for Uniform Resource - Identifiers (URIs)"; - + reference + "RFC 3986: Uniform Resource Identifier (URI): Generic Syntax + RFC 3305: Report from the Joint W3C/IETF URI Planning Interest + Group: Uniform Resource Identifiers (URIs), URLs, + and Uniform Resource Names (URNs): Clarifications + and Recommendations + RFC 5017: MIB Textual Conventions for Uniform Resource + Identifiers (URIs)"; + } + + typedef email-address { + type string { + pattern '(([a-zA-Z0-9!#$%&'+"'"+'*+/=?\^_`{|}~-]+' + + '(\.[a-zA-Z0-9!#$%&'+"'"+'*+/=?\^_`{|}~-]+)*)|' + + '("[a-zA-Z0-9!#$%&'+"'"+'()*+,./\[\]\^_`{|}~-]*"))' + + '@' + + '(([a-zA-Z0-9!#$%&'+"'"+'*+/=?\^_`{|}~-]+' + + '(\.[a-zA-Z0-9!#$%&'+"'"+'*+/=?\^_`{|}~-]+)*)|' + + '\[[a-zA-Z0-9!"#$%&'+"'"+'()*+,./:;<=>?@\^_`{|}~-]+\])'; } - } // module ietf-inet-types + description + "The email-address type represents an email address as + defined as addr-spec in RFC 5322 section 3.4.1 except + that obs-local-part, obs-domain and obs-qtext of the + quoted-string are not supported. + + The email-address type uses US-ASCII characters. The + canonical format of the domain part of an email-address + uses lowercase US-ASCII characters."; + reference + "RFC 5322: Internet Message Format"; + } + +} diff --git a/yang-models/external-yams/ietf-yang-types@2013-07-15.yang b/yang-models/external-yams/ietf-yang-types.yang old mode 100755 new mode 100644 similarity index 52% rename from yang-models/external-yams/ietf-yang-types@2013-07-15.yang rename to yang-models/external-yams/ietf-yang-types.yang index 371a091d1..39e390cba --- a/yang-models/external-yams/ietf-yang-types@2013-07-15.yang +++ b/yang-models/external-yams/ietf-yang-types.yang @@ -4,45 +4,68 @@ module ietf-yang-types { prefix "yang"; organization - "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; + "IETF Network Modeling (NETMOD) Working Group"; contact - "WG Web: + "WG Web: WG List: - WG Chair: David Kessens - - - WG Chair: Juergen Schoenwaelder - - Editor: Juergen Schoenwaelder - "; + "; description "This module contains a collection of generally useful derived YANG data types. - Copyright (c) 2013 IETF Trust and the persons identified as + The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL + NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', + 'MAY', and 'OPTIONAL' in this document are to be interpreted as + described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, + they appear in all capitals, as shown here. + + Copyright (c) 2022 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject - to the license terms contained in, the Simplified BSD License + to the license terms contained in, the Revised BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents - (http://trustee.ietf.org/license-info). + (https://trustee.ietf.org/license-info). - This version of this YANG module is part of RFC 6991; see - the RFC itself for full legal notices."; + This version of this YANG module is part of RFC XXXX; + see the RFC itself for full legal notices."; + + revision 2023-01-23 { + description + "This revision adds the following new data types: + - yang:date-with-zone-offset + - yang:date-no-zone + - yang:time-with-zone-offset + - yang:time-no-zone + - yang:hours32 + - yang:minutes32 + - yang:seconds32 + - yang:centiseconds32 + - yang:milliseconds32 + - yang:microseconds32 + - yang:microseconds64 + - yang:nanoseconds32 + - yang:nanoseconds64 + - yang:language-tag + The yang-identifier definition has been aligned with YANG 1.1. + Several pattern statements have been improved."; + reference + "RFC XXXX: Common YANG Data Types"; + } revision 2013-07-15 { description "This revision adds the following new data types: - - yang-identifier - - hex-string - - uuid - - dotted-quad"; + - yang:yang-identifier + - yang:hex-string + - yang:uuid + - yang:dotted-quad"; reference "RFC 6991: Common YANG Data Types"; } @@ -70,7 +93,7 @@ module ietf-yang-types { value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such - other times can occur, for example, the creation of + other times can occur, for example, the instantiation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate @@ -93,18 +116,17 @@ module ietf-yang-types { description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. - - A schema node of this type will be set to zero (0) on creation - and will thereafter increase monotonically until it reaches - a maximum value of 2^32-1 (4294967295 decimal), when it - wraps around and starts increasing again from zero. + A schema node instance of this type will be set to zero (0) + on creation and will thereafter increase monotonically until + it reaches a maximum value of 2^32-1 (4294967295 decimal), + when it wraps around and starts increasing again from zero. Provided that an application discovers a new schema node - of this type within the minimum time to wrap, it can use the - 'initial' value as a delta. It is important for a management - station to be aware of this minimum time and the actual time - between polls, and to discard data if the actual time is too - long or there is no defined minimum time. + instance of this type within the minimum time to wrap, it + can use the 'initial' value as a delta. It is important for + a management station to be aware of this minimum time and the + actual time between polls, and to discard data if the actual + time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; @@ -127,7 +149,7 @@ module ietf-yang-types { value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such - other times can occur, for example, the creation of + other times can occur, for example, the instantiation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate @@ -151,20 +173,18 @@ module ietf-yang-types { "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. - - - - A schema node of this type will be set to zero (0) on creation - and will thereafter increase monotonically until it reaches - a maximum value of 2^64-1 (18446744073709551615 decimal), - when it wraps around and starts increasing again from zero. + A schema node instance of this type will be set to zero (0) + on creation and will thereafter increase monotonically until + it reaches a maximum value of 2^64-1 (18446744073709551615 + decimal), when it wraps around and starts increasing again + from zero. Provided that an application discovers a new schema node - of this type within the minimum time to wrap, it can use the - 'initial' value as a delta. It is important for a management - station to be aware of this minimum time and the actual time - between polls, and to discard data if the actual time is too - long or there is no defined minimum time. + instance of this type within the minimum time to wrap, it + can use the 'initial' value as a delta. It is important for + a management station to be aware of this minimum time and the + actual time between polls, and to discard data if the actual + time is too long or there is no defined minimum time. In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; @@ -224,8 +244,8 @@ module ietf-yang-types { typedef object-identifier { type string { - pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' - + '(\.(0|([1-9]\d*)))*'; + pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9][0-9]*))))' + + '(\.(0|([1-9][0-9]*)))*'; } description "The object-identifier type represents administratively @@ -264,7 +284,7 @@ module ietf-yang-types { typedef object-identifier-128 { type object-identifier { - pattern '\d*(\.\d*){1,127}'; + pattern '[0-9]*(\.[0-9]*){1,127}'; } description "This type represents object-identifiers restricted to 128 @@ -277,33 +297,13 @@ module ietf-yang-types { (SMIv2)"; } - typedef yang-identifier { - type string { - length "1..max"; - pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; - pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; - } - description - "A YANG identifier string as defined by the 'identifier' - rule in Section 12 of RFC 6020. An identifier must - start with an alphabetic character or an underscore - followed by an arbitrary sequence of alphabetic or - numeric characters, underscores, hyphens, or dots. - - A YANG identifier MUST NOT start with any possible - combination of the lowercase or uppercase character - sequence 'xml'."; - reference - "RFC 6020: YANG - A Data Modeling Language for the Network - Configuration Protocol (NETCONF)"; - } - - /*** collection of types related to date and time***/ + /*** collection of types related to date and time ***/ typedef date-and-time { type string { - pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' - + '(Z|[\+\-]\d{2}:\d{2})'; + pattern '[0-9]{4}-(1[0-2]|0[1-9])-(0[1-9]|[1-2][0-9]|3[0-1])' + + 'T(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)?' + + '(Z|[\+\-]((1[0-3]|0[0-9]):([0-5][0-9])|14:00))?'; } description "The date-and-time type is a profile of the ISO 8601 @@ -312,18 +312,16 @@ module ietf-yang-types { date-time production in Section 5.6 of RFC 3339. The date-and-time type is compatible with the dateTime XML - schema type with the following notable exceptions: + schema dateTime type with the following notable exceptions: (a) The date-and-time type does not allow negative years. - (b) The date-and-time time-offset -00:00 indicates an unknown - time zone (see RFC 3339) while -00:00 and +00:00 and Z - all represent the same time zone in dateTime. - - (c) The canonical format (see below) of data-and-time values - differs from the canonical format used by the dateTime XML - schema type, which requires all times to be in UTC using - the time-offset 'Z'. + (b) The time-offset -00:00 indicates that the date-and-time + value is reported in UTC and that the local time zone + reference point is unknown. The time-offsets +00:00 and Z + both indicate that the date-and-time value is reported in + UTC and that the local time reference point is UTC (see RFC + 3339 section 4.3). This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different @@ -339,11 +337,225 @@ module ietf-yang-types { (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset - -00:00."; + -00:00, i.e., date-and-time values must be reported in UTC."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 - XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; + XSD-TYPES: XML Schema Definition Language (XSD) 1.1 + Part 2: Datatypes"; + } + + typedef date-with-zone-offset { + type string { + pattern '[0-9]{4}-(1[0-2]|0[1-9])-(0[1-9]|[1-2][0-9]|3[0-1])' + + '(Z|[\+\-]((1[0-3]|0[0-9]):([0-5][0-9])|14:00))?'; + } + description + "The date type represents a time-interval of the length + of a day, i.e., 24 hours. + + The date type is compatible with the XML schema date + type with the following notable exceptions: + (a) The date type does not allow negative years. + + (b) The time-offset -00:00 indicates that the date value is + reported in UTC and that the local time zone reference point + is unknown. The time-offsets +00:00 and Z both indicate that + the date value is reported in UTC and that the local time + reference point is UTC (see RFC 3339 section 4.3). + + The canonical format for date values with a known time + zone uses a numeric time zone offset that is calculated using + the device's configured known offset to UTC time. A change of + the device's offset to UTC time will cause date values + to change accordingly. Such changes might happen periodically + in case a server follows automatically daylight saving time + (DST) time zone offset changes. The canonical format for + date values with an unknown time zone (usually referring + to the notion of local time) uses the time-offset -00:00, + i.e., date values must be reported in UTC."; + reference + "RFC 3339: Date and Time on the Internet: Timestamps + XSD-TYPES: XML Schema Definition Language (XSD) 1.1 + Part 2: Datatypes"; + } + + typedef date-no-zone { + type date-with-zone-offset { + pattern '[0-9]{4}-(1[0-2]|0[1-9])-(0[1-9]|[1-2][0-9]|3[0-1])'; + } + description + "The date-no-zone type represents a date without the optional + time zone offset information."; + } + + typedef time-with-zone-offset { + type string { + pattern '(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)?' + + '(Z|[\+\-]((1[0-3]|0[0-9]):([0-5][0-9])|14:00))?'; + } + description + "The time type represents an instance of time of zero-duration + that recurs every day. + + The time type is compatible with the XML schema time + type with the following notable exception: + + (a) The time-offset -00:00 indicates that the time value is + reported in UTC and that the local time zone reference point + is unknown. The time-offsets +00:00 and Z both indicate that + the time value is reported in UTC and that the local time + reference point is UTC (see RFC 3339 section 4.3). + + The canonical format for time values with a known time + zone uses a numeric time zone offset that is calculated using + the device's configured known offset to UTC time. A change of + the device's offset to UTC time will cause time values + to change accordingly. Such changes might happen periodically + in case a server follows automatically daylight saving time + (DST) time zone offset changes. The canonical format for + time values with an unknown time zone (usually referring + to the notion of local time) uses the time-offset -00:00, + i.e., time values must be reported in UTC."; + reference + "RFC 3339: Date and Time on the Internet: Timestamps + XSD-TYPES: XML Schema Definition Language (XSD) 1.1 + Part 2: Datatypes"; + } + + typedef time-no-zone { + type time-with-zone-offset { + pattern '(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)?'; + } + description + "The time-no-zone type represents a time without the optional + time zone offset information."; + } + + typedef hours32 { + type int32; + units "hours"; + description + "A period of time, measured in units of hours. + + The maximum time period that can be expressed is in the + range [-89478485 days 08:00:00 to 89478485 days 07:00:00]. + + This type should be range restricted in situations + where only non-negative time periods are desirable, + (i.e., range '0..max')."; + } + + typedef minutes32 { + type int32; + units "minutes"; + description + "A period of time, measured in units of minutes. + + The maximum time period that can be expressed is in the + range [-1491308 days 2:08:00 to 1491308 days 2:07:00]. + + This type should be range restricted in situations + where only non-negative time periods are desirable, + (i.e., range '0..max')."; + } + + typedef seconds32 { + type int32; + units "seconds"; + description + "A period of time, measured in units of seconds. + + The maximum time period that can be expressed is in the + range [-24855 days 03:14:08 to 24855 days 03:14:07]. + + This type should be range restricted in situations + where only non-negative time periods are desirable, + (i.e., range '0..max')."; + } + + typedef centiseconds32 { + type int32; + units "centiseconds"; + description + "A period of time, measured in units of 10^-2 seconds. + + The maximum time period that can be expressed is in the + range [-248 days 13:13:56 to 248 days 13:13:56]. + + This type should be range restricted in situations + where only non-negative time periods are desirable, + (i.e., range '0..max')."; + } + + typedef milliseconds32 { + type int32; + units "milliseconds"; + description + "A period of time, measured in units of 10^-3 seconds. + + The maximum time period that can be expressed is in the + range [-24 days 20:31:23 to 24 days 20:31:23]. + + This type should be range restricted in situations + where only non-negative time periods are desirable, + (i.e., range '0..max')."; + } + + typedef microseconds32 { + type int32; + units "microseconds"; + description + "A period of time, measured in units of 10^-6 seconds. + + The maximum time period that can be expressed is in the + range [-00:35:47 to 00:35:47]. + + This type should be range restricted in situations + where only non-negative time periods are desirable, + (i.e., range '0..max')."; + } + + typedef microseconds64 { + type int64; + units "microseconds"; + description + "A period of time, measured in units of 10^-6 seconds. + + The maximum time period that can be expressed is in the + range [-106751991 days 04:00:54 to 106751991 days 04:00:54]. + + This type should be range restricted in situations + where only non-negative time periods are desirable, + (i.e., range '0..max')."; + } + + typedef nanoseconds32 { + type int32; + units "nanoseconds"; + description + "A period of time, measured in units of 10^-9 seconds. + + The maximum time period that can be expressed is in the + range [-00:00:02 to 00:00:02]. + + This type should be range restricted in situations + where only non-negative time periods are desirable, + (i.e., range '0..max')."; + } + + typedef nanoseconds64 { + type int64; + units "nanoseconds"; + description + "A period of time, measured in units of 10^-9 seconds. + + The maximum time period that can be expressed is in the + range [-106753 days 23:12:44 to 106752 days 0:47:16]. + + This type should be range restricted in situations + where only non-negative time periods are desirable, + (i.e., range '0..max')."; } typedef timeticks { @@ -366,14 +578,16 @@ module ietf-yang-types { type yang:timeticks; description "The timestamp type represents the value of an associated - timeticks schema node at which a specific occurrence + timeticks schema node instance at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the - associated timeticks attribute was zero, then the timestamp - value is zero. Note that this requires all timestamp values - to be reset to zero when the value of the associated timeticks - attribute reaches 497+ days and wraps around to zero. + associated timeticks schema node instance was zero, then the + timestamp value is zero. + + Note that this requires all timestamp values to be reset to + zero when the value of the associated timeticks schema node + instance reaches 497+ days and wraps around to zero. The associated timeticks schema node must be specified in the description of any schema node using this type. @@ -390,10 +604,6 @@ module ietf-yang-types { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } - - - - description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal @@ -477,4 +687,53 @@ module ietf-yang-types { notation, i.e., four octets written as decimal numbers and separated with the '.' (full stop) character."; } + + typedef language-tag { + type string; + description + "A language tag according to RFC 5646 (BCP 47). The + canonical representation uses lowercase characters. + + Values of this type must be well-formed language tags, + in conformance with the definition of well-formed tags + in BCP 47. Implementations MAY further limit the values + they accept to those permitted by a 'validating' + processor, as defined in BCP 47. + + The canonical representation of values of this type is + aligned with the SMIv2 LangTag textual convention for + language tags fitting the length constraints imposed + by the LangTag textual convention."; + reference + "RFC 5646: Tags for Identifying Languages + RFC 5131: A MIB Textual Convention for Language Tags"; + } + + /*** collection of YANG specific types ***/ + + typedef yang-identifier { + type string { + length "1..max"; + pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; + } + description + "A YANG identifier string as defined by the 'identifier' + rule in Section 14 of RFC 7950. An identifier must + start with an alphabetic character or an underscore + followed by an arbitrary sequence of alphabetic or + numeric characters, underscores, hyphens, or dots. + + This definition conforms to YANG 1.1 defined in RFC + 7950. An earlier version of this definition did exclude + all identifiers starting with any possible combination + of the lowercase or uppercase character sequence 'xml', + as required by YANG 1 defined in RFC 6020. If this type + is used in a YANG 1 context, then this restriction still + applies."; + reference + "RFC 7950: The YANG 1.1 Data Modeling Language + RFC 6020: YANG - A Data Modeling Language for the + Network Configuration Protocol (NETCONF)"; + } + } -- GitLab From 3762928758caa4b1cfc7d833a03261a4058ba7a1 Mon Sep 17 00:00:00 2001 From: "U-ERICSSON\\ETHBLL" Date: Tue, 14 May 2024 03:28:54 +0200 Subject: [PATCH 13/24] Update subscription and trace --- .../_3gpp-common-subscription-control.yang | 57 +- yang-models/_3gpp-common-trace.yang | 617 +++++++++++++----- 2 files changed, 487 insertions(+), 187 deletions(-) diff --git a/yang-models/_3gpp-common-subscription-control.yang b/yang-models/_3gpp-common-subscription-control.yang index ed049c654..9e0cc2209 100755 --- a/yang-models/_3gpp-common-subscription-control.yang +++ b/yang-models/_3gpp-common-subscription-control.yang @@ -26,23 +26,22 @@ module _3gpp-common-subscription-control { revision 2020-08-26 { reference "CR-0106"; } revision 2019-11-29 { reference "S5-197648 S5-197647 S5-197829 S5-197828"; } - grouping NtfSubscriptionControlGrp { - description "Attributes of a specific notification subscription"; - - leaf notificationRecipientAddress { - type string; - mandatory true; - } - - leaf-list notificationTypes { - type string; - description "Defines the types of notifications that are candidates - for being forwarded to the notification recipient. - If the notificationTypes attribute is not supported or not present - all candidate notifications types are forwarded to the notification; - discriminated by notificationFilter attribute."; - } + grouping ScopeGrp { + description "This <> allows to select data nodes in an object + tree whose root is identified by the so called base managed object + instance. The identification of the base object instance is not part of + this <> and needs to be specified by other means. The base + managed object instance is typically a managed object instance in an + object tree. + + The 'scopeType' and the 'scopeLevel' attributes allow to select managed + object instances. Attributes, attribute fields and attribute elements + cannot be selected. + The 'dataNodeSelector' attribute allows to select managed object + instances, attributes, attribute fields, attribute elements, or + attribute field elements. Its value contains a solution set specific + expression for specifying the data nodes to be selected."; choice scope { description "Describes which object instances are selected with respect to a base object instance."; @@ -91,6 +90,32 @@ module _3gpp-common-subscription-control { reference "RFC 8641 section 5."; } } + } + } + + grouping NtfSubscriptionControlGrp { + description "Attributes of a specific notification subscription"; + + leaf notificationRecipientAddress { + type string; + mandatory true; + } + + leaf-list notificationTypes { + type string; + description "Defines the types of notifications that are candidates + for being forwarded to the notification recipient. + If the notificationTypes attribute is not supported or not present + all candidate notifications types are forwarded to the notification; + discriminated by notificationFilter attribute."; + } + + list scope { + description "Scopes (selects) data nodes in an object tree."; + key idx; + max-elements 8; + leaf idx { type string; } + uses ScopeGrp; } leaf notificationFilter { diff --git a/yang-models/_3gpp-common-trace.yang b/yang-models/_3gpp-common-trace.yang index 767532053..2f44d28d2 100755 --- a/yang-models/_3gpp-common-trace.yang +++ b/yang-models/_3gpp-common-trace.yang @@ -25,6 +25,7 @@ module _3gpp-common-trace { Integration Reference Point (IRP); Information Service (IS)" ; + revision 2024-05-06 { reference CR-xxxx; } revision 2024-04-06 { reference "CR-0342"; } revision 2024-01-29 { reference "CR-0316"; } revision 2023-11-06 { reference "CR-0290 CR-0294"; } @@ -249,32 +250,22 @@ module _3gpp-common-trace { mandatory true; description "Carrier Frequency"; } - - list nPNIdentityList { - description "list of NPN IDs of in NR. It is either a list of PNI-NPNs - identified by CAG ID with associated plmn-Identity or a list of SNPN - identified by Network ID with associated plmn-Identity"; - key idx; - min-elements 1; - uses NpnIdGrp; - leaf idx { type string; } - } } grouping TraceConfigGrp { - description "Defines the configuration parameters of TraceJob - which are specific for Trace or combined Trace and Immediate MDT. - The attribute listOfNeTypes specifies the network elements to be - traced. The optional attribute listOfInterfaces allows to specify - the individual interfaces of the network elements to be recorded. - The attribute traceDepth allows to configure the level of detail - of the information which shall be recorded. For trace the reporting - is event based, where the triggering event is configured with - attribute triggeringEvent. For each triggering event the first and - last message (start/stop triggering event) to record are specified."; - - list listOfInterfaces { + description "Defines the configuration parameters of TraceJob + which are specific for Trace or combined Trace and Immediate MDT. + The attribute listOfNeTypes specifies the network elements to be + traced. The optional attribute listOfInterfaces allows to specify + the individual interfaces of the network elements to be recorded. + The attribute traceDepth allows to configure the level of detail + of the information which shall be recorded. For trace the reporting + is event based, where the triggering event is configured with + attribute triggeringEvent. For each triggering event the first and + last message (start/stop triggering event) to record are specified."; + + list listOfInterfaces { key idx; description "Specifies the interfaces that need to be traced in the given @@ -622,6 +613,64 @@ module _3gpp-common-trace { semantic."; reference "Clause 5.3 of 3GPP TS 32.422"; } + + leaf triggeringEvents { + type enumeration { + enum MO_MT_CALLS; + enum MO_MT_SMS; + enum LU_IMSIattach_IMSIdetach; + enum HANDOVER; + enum SS; + enum PDPcontext; + enum RAU_GPRSattach_GPRSdetach; + enum MBMScontext; + enum CONTEXT; + enum SIPsession_StandaloneTransaction; + enum MBMSactivation; + enum UEinitiatedPDNconnectivityRequest; + enum ServiceRequest; + enum InitialAttach_TAU_Detach; + enum UEinitiatedPDNdisconnection; + enum BearerActivationModificationDeletion; + enum Handover; + enum PDNconnectionCreation; + enum PDNconnectionTermination; + enum Registration; + enum UEderegistration; + enum NetworkDeregistration; + enum UEMobilityFromEPC; + enum UEMobilityToEPC; + enum PDUsessionEstablishment; + enum PDUsessionModification; + enum PDUsessionRelease; + enum PDUsessionUPactivationDeactivation; + enum MobilityBtw3gppAndN3gppTo5GC; + enum MobilityFromEpc; + enum AMpolicy; + enum SMpolicy; + enum Authorization; + enum BDTpolicy; + enum N4Session; + enum UEauthentication; + enum EventExposure; + enum PFDmanagement; + enum ParameterProvision; + enum Trigger; + enum NFmanagement; + enum NFdiscovery; + enum NSSelection; + enum NSSAI; + enum SMservice; + enum UEcontext; + enum SubscriberData; + } + description "It specifies the triggering event parameter of the trace + session. The attribute is applicable only for Trace. In case this + attribute is not used, it carries a null semantic. + + See the clause 5.1 of 3GPP TS 32.422 for additional details on the + allowed values."; + } } grouping ImmediateMdtConfigGrp { @@ -703,7 +752,7 @@ module _3gpp-common-trace { logged according to RRM configuration."; leaf listOfMeasurements { - when 'jobType = "IMMEDIATE_MDT_ONLY"'; + when '../../../jobType = "IMMEDIATE_MDT_ONLY"'; type enumeration { enum M1; enum M2; @@ -727,7 +776,7 @@ module _3gpp-common-trace { } leaf reportingTrigger { - when 'jobType = "IMMEDIATE_MDT_ONLY"'; + when '../../../jobType = "IMMEDIATE_MDT_ONLY"'; type enumeration { enum PERIODICAL; enum A2_FOR_LTE; @@ -747,7 +796,7 @@ module _3gpp-common-trace { } leaf reportInterval { - when 'jobType = "IMMEDIATE_MDT_ONLY"' + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + ' and ../reportingTrigger = "PERIODICAL"'; type uint32 { range "120|240|250|480|500|640|1000|1024|2000|2048|3000|4000|" @@ -765,7 +814,7 @@ module _3gpp-common-trace { } leaf reportAmount { - when 'jobType = "IMMEDIATE_MDT_ONLY"' + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + ' and ../reportingTrigger = "PERIODICAL"'; type union { type uint32 { @@ -784,7 +833,7 @@ module _3gpp-common-trace { } leaf eventThreshold { - when 'jobType = "IMMEDIATE_MDT_ONLY"'; + when '../../../jobType = "IMMEDIATE_MDT_ONLY"'; type int64; description "Specifies the threshold which should trigger the reporting in case A2 event reporting in LTE or 1F/1l event in UMTS. The attribute @@ -794,9 +843,9 @@ module _3gpp-common-trace { reference "Clauses 5.10.7 and 5.10.7a of 3GPP TS 32.422"; } - leaf collectionPeriodRRMNR { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + ' or jobType = "IMMEDIATE_MDT_AND_TRACE"'; + leaf collectionPeriodRrmNr { + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + ' or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; type uint32 { range "1024|2048|5120|10240|60000"; } @@ -808,24 +857,9 @@ module _3gpp-common-trace { reference "Clause 5.10.30 of 3GPP TS 32.422"; } - leaf collectionPeriodRRMLTE { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + ' or jobType = "IMMEDIATE_MDT_AND_TRACE"'; - type uint32 { - range "250|500|1000|2000|3000|4000|6000|8000|12000|16000|20000|" - +"24000|28000|32000|64000"; - } - units milliseconds; - description "Specifies the collection period for collecting RRM configured - measurement samples for M2, M3 in LTE. The attribute is applicable only - for Immediate MDT. In case this attribute is not used, it carries a - null semantic."; - reference "Clause 5.10.20 of 3GPP TS 32.422"; - } - - leaf collectionPeriodM6NR { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + ' or jobType = "IMMEDIATE_MDT_AND_TRACE"'; + leaf collectionPeriodM6Nr { + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + ' or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; type enumeration { enum 120ms; enum 240ms; @@ -849,9 +883,9 @@ module _3gpp-common-trace { reference "clause 5.10.34 of TS 32.422"; } - leaf collectionPeriodM7NR { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + ' or jobType = "IMMEDIATE_MDT_AND_TRACE"'; + leaf collectionPeriodM7Nr { + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + ' or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; type uint32 { range "1..60"; } @@ -862,9 +896,40 @@ module _3gpp-common-trace { reference "clause 5.10.35 of TS 32.422"; } - leaf collectionPeriodM6LTE { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + ' or jobType = "IMMEDIATE_MDT_AND_TRACE"'; + leaf collectionPeriodRrmLte { + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + ' or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; + type uint32 { + range "250|500|1000|2000|3000|4000|6000|8000|12000|16000|20000|" + +"24000|28000|32000|64000"; + } + units milliseconds; + description "Specifies the collection period for collecting RRM configured + measurement samples for M2, M3 in LTE. The attribute is applicable only + for Immediate MDT. In case this attribute is not used, it carries a + null semantic."; + reference "Clause 5.10.20 of 3GPP TS 32.422"; + } + + leaf measurementPeriodLTE { + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + ' or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; + type uint32 { + range "1024|1280|2048|2560|5120|" + +"10240|60000"; + } + units milliseconds; + mandatory true; + description "It specifies the measurement period for the Data Volume and + Scheduled IP throughput measurements for MDT taken by the eNB. + The attribute is applicable only for Immediate MDT. In case this + attribute is not used, it carries a null semantic."; + reference "Clause 5.10.23 of 3GPP TS 32.422"; + } + + leaf collectionPeriodM6Lte { + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + ' or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; type uint32 { range "1024|2048|5120|10240"; } @@ -876,9 +941,9 @@ module _3gpp-common-trace { reference "Clause 5.10.32 of TS 32.422 "; } - leaf collectionPeriodM7LTE { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + ' or jobType = "IMMEDIATE_MDT_AND_TRACE"'; + leaf collectionPeriodM7Lte { + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + ' or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; type uint16 { range 1..60 ; } @@ -889,9 +954,9 @@ module _3gpp-common-trace { reference "Clause 5.10.33 of TS 32.422 ."; } - leaf eventThresholdUphUMTS { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + ' or jobType = "IMMEDIATE_MDT_AND_TRACE"'; + leaf eventThresholdUphUmts { + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + ' or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; type uint16 { range 0..31 ; } @@ -902,9 +967,9 @@ module _3gpp-common-trace { reference "5.10.39 of TS 32.422"; } - leaf collectionPeriodRRMUMTS { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + ' or jobType = "IMMEDIATE_MDT_AND_TRACE"'; + leaf collectionPeriodRrmUmts { + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + ' or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; type uint32 { range "1024|1280|2048|2560|5120|" +"10240|60000"; @@ -917,25 +982,9 @@ module _3gpp-common-trace { reference "Clause 5.10.21 of 3GPP TS 32.422"; } - leaf measurementPeriodLTE { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + ' or jobType = "IMMEDIATE_MDT_AND_TRACE"'; - type uint32 { - range "1024|1280|2048|2560|5120|" - +"10240|60000"; - } - units milliseconds; - mandatory true; - description "It specifies the measurement period for the Data Volume and - Scheduled IP throughput measurements for MDT taken by the eNB. - The attribute is applicable only for Immediate MDT. In case this - attribute is not used, it carries a null semantic."; - reference "Clause 5.10.23 of 3GPP TS 32.422"; - } - - leaf measurementPeriodUMTS { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + 'or jobType = "IMMEDIATE_MDT_AND_TRACE"'; + leaf measurementPeriodUmts { + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + 'or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; type uint32 { range "250|500|1000|2000|3000|4000|6000|8000|12000|16000|20000|" +"24000|28000|32000|64000"; @@ -950,8 +999,8 @@ module _3gpp-common-trace { } leaf measurementQuantity { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + ' or jobType = "IMMEDIATE_MDT_AND_TRACE"'; + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + ' or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; type enumeration { enum CPICH_ECNO; enum CPICH_RSCP; @@ -963,8 +1012,8 @@ module _3gpp-common-trace { } leaf beamLevelMeasurement { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + ' or jobType = "IMMEDIATE_MDT_AND_TRACE"'; + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + ' or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; type boolean; default false; description "Indicates whether the NR M1 beam level measurements shall @@ -973,8 +1022,8 @@ module _3gpp-common-trace { } leaf positioningMethod { - when 'jobType = "IMMEDIATE_MDT_ONLY"' - + ' or jobType = "IMMEDIATE_MDT_AND_TRACE"'; + when '../../../jobType = "IMMEDIATE_MDT_ONLY"' + + ' or ../../../jobType = "IMMEDIATE_MDT_AND_TRACE"'; type enumeration { enum GNSS; enum E_CELL_ID; @@ -991,9 +1040,219 @@ module _3gpp-common-trace { leaf idx { type string; } uses ExcessPacketDelayThresholdsGrp; } + + leaf reportAmountM1LTE { + type enumeration { + enum 1; + enum 2; + enum 4; + enum 8; + enum 16; + enum 32; + enum 64; + enum INFINITY; + } + description "It specifies the number of measurement reports that shall be + taken for periodic reporting while the UE is in connected mode. + The attribute is applicable only for Immediate MDT and combined Trace + and Immediate MDT and when reportingTrigger is configured for periodical + measurements and applicable only for LTE. In case this attribute is not + used, it carries a null semantic. + See the clause 5.10.6 of TS 32.422 for additional details on the + allowed values."; + } + + leaf reportAmountM4LTE { + type enumeration { + enum 1; + enum 2; + enum 4; + enum 8; + enum 16; + enum 32; + enum 64; + enum INFINITY; + } + description "It specifies the number of measurement reports that shall be + taken for periodic reporting while the UE is in connected mode. + The attribute is applicable only for Immediate MDT and combined Trace + and Immediate MDT and when reportingTrigger is configured for periodical + measurements and applicable only for LTE. In case this attribute is not + used, it carries a null semantic. + See the clause 5.10.6 of TS 32.422 for additional details on the + allowed values."; + } + + leaf reportAmountM5LTE { + type enumeration { + enum 1; + enum 2; + enum 4; + enum 8; + enum 16; + enum 32; + enum 64; + enum INFINITY; + } + description "It specifies the number of measurement reports that shall be + taken for periodic reporting while the UE is in connected mode. + The attribute is applicable only for Immediate MDT and combined Trace + and Immediate MDT and when reportingTrigger is configured for periodical + measurements and applicable only for LTE. In case this attribute is not + used, it carries a null semantic. + See the clause 5.10.6 of TS 32.422 for additional details on the + allowed values."; + } + + leaf reportAmountM6LTE { + type enumeration { + enum 1; + enum 2; + enum 4; + enum 8; + enum 16; + enum 32; + enum 64; + enum INFINITY; + } + description "It specifies the number of measurement reports that shall be + taken for periodic reporting while the UE is in connected mode. + The attribute is applicable only for Immediate MDT and combined Trace + and Immediate MDT and when reportingTrigger is configured for periodical + measurements and applicable only for LTE. In case this attribute is not + used, it carries a null semantic. + See the clause 5.10.6 of TS 32.422 for additional details on the + allowed values."; + } + + leaf reportAmountM7LTE { + type enumeration { + enum 1; + enum 2; + enum 4; + enum 8; + enum 16; + enum 32; + enum 64; + enum INFINITY; + } + description "It specifies the number of measurement reports that shall be + taken for periodic reporting while the UE is in connected mode. + The attribute is applicable only for Immediate MDT and combined Trace + and Immediate MDT and when reportingTrigger is configured for periodical + measurements and applicable only for LTE. In case this attribute is not + used, it carries a null semantic. + See the clause 5.10.6 of TS 32.422 for additional details on the + allowed values."; + } + + leaf reportAmountM1NR { + type enumeration { + enum 1; + enum 2; + enum 4; + enum 8; + enum 16; + enum 32; + enum 64; + enum INFINITY; + } + description "It specifies the number of measurement reports that shall be + taken for periodic reporting while the UE is in connected mode. + The attribute is applicable only for Immediate MDT and combined Trace + and Immediate MDT and when reportingTrigger is configured for periodical + measurements and applicable only for NR. In case this attribute is not + used, it carries a null semantic. + See the clause 5.10.6 of TS 32.422 for additional details on the + allowed values."; + } + + leaf reportAmountM4NR { + type enumeration { + enum 1; + enum 2; + enum 4; + enum 8; + enum 16; + enum 32; + enum 64; + enum INFINITY; + } + description "It specifies the number of measurement reports that shall be + taken for periodic reporting while the UE is in connected mode. + The attribute is applicable only for Immediate MDT and combined Trace + and Immediate MDT and when reportingTrigger is configured for periodical + measurements and applicable only for NR. In case this attribute is not + used, it carries a null semantic. + See the clause 5.10.6 of TS 32.422 for additional details on the + allowed values."; + } + + leaf reportAmountM5NR { + type enumeration { + enum 1; + enum 2; + enum 4; + enum 8; + enum 16; + enum 32; + enum 64; + enum INFINITY; + } + description "It specifies the number of measurement reports that shall be + taken for periodic reporting while the UE is in connected mode. + The attribute is applicable only for Immediate MDT and combined Trace + and Immediate MDT and when reportingTrigger is configured for periodical + measurements and applicable only for NR. In case this attribute is not + used, it carries a null semantic. + See the clause 5.10.6 of TS 32.422 for additional details on the + allowed values."; + } + + leaf reportAmountM6NR { + type enumeration { + enum 1; + enum 2; + enum 4; + enum 8; + enum 16; + enum 32; + enum 64; + enum INFINITY; + } + description "It specifies the number of measurement reports that shall be + taken for periodic reporting while the UE is in connected mode. + The attribute is applicable only for Immediate MDT and combined Trace + and Immediate MDT and when reportingTrigger is configured for periodical + measurements and applicable only for NR. In case this attribute is not + used, it carries a null semantic. + See the clause 5.10.6 of TS 32.422 for additional details on the + allowed values."; + } + + leaf reportAmountM7NR { + type enumeration { + enum 1; + enum 2; + enum 4; + enum 8; + enum 16; + enum 32; + enum 64; + enum INFINITY; + } + description "It specifies the number of measurement reports that shall be + taken for periodic reporting while the UE is in connected mode. + The attribute is applicable only for Immediate MDT and combined Trace + and Immediate MDT and when reportingTrigger is configured for periodical + measurements and applicable only for NR. In case this attribute is not + used, it carries a null semantic. + See the clause 5.10.6 of TS 32.422 for additional details on the + allowed values."; + } } - grouping LoggedMdtGrp { + grouping LoggedMdtConfigGrp { description "This <> defines the configuration parameters of IOC TraceJob which are specific for Logged MDT or Logged MBSFN MDT. The optional attribute plmnList allows to specify the PLMNs where @@ -1020,22 +1279,16 @@ module _3gpp-common-trace { 'any cell selection' state to the 'camped normally' state (TS 38.331, TS 38.304)."; - leaf traceCollectionEntityIPAddress { - when '../traceReportingFormat = "FILE_BASED" or ' - +'jobType = "LOGGED_MDT_ONLY" or jobType = "LOGGED_MBSFN_MDT"'; - type union { - type inet:uri; - type inet:ip-address; - } - description "Specifies the address of the Trace Collection Entity when - the attribute traceReportingFormat is configured for the file-based - reporting. The attribute is applicable for both Trace and MDT."; - reference "Clause 5.9 of 3GPP TS 32.422"; + leaf traceCollectionEntityId { + type int64; + description "It specifies the TCE Id which is sent to the UE in + Logged MDT. See the clause 5.10.11 of 3GPP TS 32.422 for additional + details on the allowed values."; } leaf loggingDuration { - when 'jobType = "LOGGED_MDT_ONLY" or' - + ' jobType = "LOGGED_MBSFN_MDT"'; + when '../../../jobType = "LOGGED_MDT_ONLY" or' + + ' ../../../jobType = "LOGGED_MBSFN_MDT"'; type uint32 { range "600|1200|2400|3600|5400|7200"; } @@ -1048,8 +1301,8 @@ module _3gpp-common-trace { } leaf loggingInterval { - when 'jobType = "LOGGED_MDT_ONLY" or' - + ' jobType = "LOGGED_MBSFN_MDT"'; + when '../../../jobType = "LOGGED_MDT_ONLY" or' + + ' ../../../jobType = "LOGGED_MBSFN_MDT"'; type uint32 { range "0|320|640|1280|2560|5120|10240|20480|" +"30720|40960|61440"; @@ -1063,7 +1316,7 @@ module _3gpp-common-trace { } leaf reportType { - when 'jobType = "IMMEDIATE_MDT_ONLY"'; + when '../../../jobType = "IMMEDIATE_MDT_ONLY"'; type enumeration { enum PERIODICAL; enum EVENT_TRIGGERED; @@ -1073,7 +1326,7 @@ module _3gpp-common-trace { } leaf eventListForEventTriggeredMeasurement { - when 'jobType = "LOGGED_MDT_ONLY"'; + when '../../../jobType = "LOGGED_MDT_ONLY"'; type enumeration { enum OUT_OF_COVERAGE ; enum A2_EVENT ; @@ -1088,8 +1341,8 @@ module _3gpp-common-trace { } leaf eventThresholdL1 { - when 'jobType = "LOGGED_MDT_ONLY" or' - + ' jobType = "LOGGED_MBSFN_MDT"'; + when '../../../jobType = "LOGGED_MDT_ONLY" or' + + ' ../../../jobType = "LOGGED_MBSFN_MDT"'; type uint32 { range "0..127"; } @@ -1103,8 +1356,8 @@ module _3gpp-common-trace { } leaf hysteresisL1 { - when 'jobType = "LOGGED_MDT_ONLY" or ' - + 'jobType = "LOGGED_MBSFN_MDT"'; + when '../../../jobType = "LOGGED_MDT_ONLY" or ' + + '../../../jobType = "LOGGED_MBSFN_MDT"'; type uint32 { range "0..30"; } @@ -1117,9 +1370,9 @@ module _3gpp-common-trace { reference "clause 5.10.37 of TS 32.422"; } - leaf timeToTriggerL1 { - when 'jobType = "LOGGED_MDT_ONLY" or ' - + 'jobType = "LOGGED_MBSFN_MDT"'; + leaf timeToTriggerL1 { + when '../../../jobType = "LOGGED_MDT_ONLY" or ' + + '../../../jobType = "LOGGED_MBSFN_MDT"'; type int32 { range 0|40|64|80|100|128|160|256|320|480|512|640|1024|1280|2560|5120; } @@ -1134,7 +1387,7 @@ module _3gpp-common-trace { } list pLMNList { - when 'jobType = "LOGGED_MDT_ONLY"'; + when '../../../jobType = "LOGGED_MDT_ONLY"'; key "mcc mnc"; uses types3gpp:PLMNId; max-elements 16; @@ -1143,8 +1396,8 @@ module _3gpp-common-trace { reference "Clause 5.10.24 of 3GPP TS 32.422"; } - list areaConfigurationForNeighCell { - when 'jobType = "LOGGED_MDT_ONLY"'; + list areaConfigurationForNeighCells { + when '../../../jobType = "LOGGED_MDT_ONLY"'; key "idx"; leaf idx { type uint32 ; } description "It specifies the area for which UE is requested to perform @@ -1158,8 +1411,8 @@ module _3gpp-common-trace { uses AreaConfigGrp; } - list mBSFNAreaList { - when 'jobType = "LOGGED_MBSFN_MDT"'; + list mbsfnAreaList { + when '../../../jobType = "LOGGED_MBSFN_MDT"'; key "mbsfnAreaId earfcn"; max-elements 8; description "The MBSFN Area consists of a MBSFN Area ID and Carrier @@ -1169,6 +1422,16 @@ module _3gpp-common-trace { uses MbsfnAreaGrp; } + + list nPNIdentityList { + description "It defines which NPNs that can be served by the NR cell, + and which CAG IDs or NIDs can be supported by the NR cell for + corresponding PNI-NPN or SNPN."; + key idx; + max-elements 1; + uses NpnIdGrp; + leaf idx { type string;} + } } grouping MdtConfigGrp { @@ -1233,6 +1496,28 @@ module _3gpp-common-trace { the UE."; reference "Clause 5.10.29 of 3GPP TS 32.422"; } + + list immediateMdtConfig { + description "The set of parameters specific for Immediate MDT + configuration. + This attribute shall be present only if MDT is supported and the jobType + attribute is set to Immediate MDT or combined Trace and Immediate MDT"; + key idx; + max-elements 1; + leaf idx { type string; } + uses ImmediateMdtConfigGrp; + } + + list loggedMdtConfig { + description "The set of parameters specific for Logged MDT and Logged + MBSFN MDT configuration. + This attribute shall be present only if MDT is supported and the + jobType attribute is set to Logged MDT or Logged MBSFN MDT."; + key idx; + max-elements 1; + leaf idx { type string; } + uses LoggedMdtConfigGrp; + } } grouping UEMeasConfigGrp { @@ -1293,7 +1578,6 @@ module _3gpp-common-trace { reference "Clause 5.9a of 3GPP TS 32.422 for additional details on the allowed values."; } - list pLMNTarget { key "mcc mnc"; @@ -1305,35 +1589,25 @@ module _3gpp-common-trace { uses types3gpp:PLMNId; } - leaf-list listOfTraceMetrics { - when '../jobType = "TRACE_ONLY"' - + ' or ../jobType = "IMMEDIATE_MDT_AND_TRACE"'; - type string; - description "Specifies the messages to be reported."; - reference "Clause 10 of 3GPP TS 32.422"; + leaf traceCollectionEntityIPAddress { + type inet:ip-address; + description "It specifies the address of the Trace Collection Entity + when the attribute traceReportingFormat is configured for the + file-based reporting. The attribute is applicable for both Trace and + MDT. + See the clause 5.9 of TS 32.422 for additional details on the allowed + values."; } - + leaf traceReportingConsumerUri { when '../traceReportingFormat = "STREAMING"'; type inet:uri; description "URI of the Streaming Trace data reporting MnS consumer - (a.k.a. streaming target). - This attribute shall be present if file based trace data reporting is - supported and traceReportingFormat set to 'file based' or when - jobType is set to Logged MDT or Logged MBSFN MDT."; + (a.k.a. streaming target)."; reference "Clause 5.9 of 3GPP TS 32.422"; } - leaf traceCollectionEntityId { - when '../jobType = "LOGGED_MDT_ONLY" or ' - + '../jobType = "LOGGED_MBSFN_MDT"'; - type uint32; - description "It specifies the TCE Id which is sent to the UE in - Logged MDT."; - reference "Clause 5.10.11 of 3GPP TS 32.422"; - } - - list traceReference { + list traceReference { key "idx"; min-elements 1; max-elements 1; @@ -1434,21 +1708,21 @@ module _3gpp-common-trace { reference "3GPP TS 32.422"; } - list traceConfig { - when '../jobType = "TRACE_ONLY"' - + ' or ../jobType = "IMMEDIATE_MDT_AND_TRACE"' - + ' or ../jobType = "TRACE_AND_5GC_UE_LEVEL_MEASUREMENTS"' - + ' or ../jobType = - "TRACE_AND_IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS"'; - key idx; - description "Trace config"; - max-elements 1; - uses TraceConfigGrp; - leaf idx { type string; } + list traceConfig { + when '../jobType = "TRACE_ONLY"' + + ' or ../jobType = "IMMEDIATE_MDT_AND_TRACE"' + + ' or ../jobType = "TRACE_AND_5GC_UE_LEVEL_MEASUREMENTS"' + + ' or ../jobType = + "TRACE_AND_IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS"'; + key idx; + description "Trace config"; + max-elements 1; + uses TraceConfigGrp; + leaf idx { type string; } } - list mdtConfig { - when '../jobType = "IMMEDIATE_MDT_ONLY"' + list mdtConfig { + when '../jobType = "IMMEDIATE_MDT_ONLY"' + ' or ../jobType = "IMMEDIATE_MDT_AND_TRACE"' + ' or ../jobType = "RLF_REPORT_ONLY"' + ' or ../jobType = "RCEF_REPORT_ONLY"' @@ -1456,25 +1730,26 @@ module _3gpp-common-trace { + ' or ../jobType = "IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS"' + ' or ../jobType = "TRACE_AND_IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS"'; - key idx; - description "MDT config"; - max-elements 1; - uses MdtConfigGrp; - leaf idx { type string; } - } - - list ueMeasConfig { - when '../jobType = "5GC_UE_LEVEL_MEASUREMENTS_ONLY"' - + ' or ../jobType = "TRACE_AND_5GC_UE_LEVEL_MEASUREMENTS"' - + ' or ../jobType = "IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS"' - + ' or ../jobType = - "TRACE_AND_IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS"'; - key idx; - description "5GC UE level measurements config"; - max-elements 1; - uses UEMeasConfigGrp; - leaf idx { type string; } + key idx; + description "MDT config"; + max-elements 1; + uses MdtConfigGrp; + leaf idx { type string; } + } + + list ueMeasConfig { + when '../jobType = "5GC_UE_LEVEL_MEASUREMENTS_ONLY"' + + ' or ../jobType = "TRACE_AND_5GC_UE_LEVEL_MEASUREMENTS"' + + ' or ../jobType = "IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS"' + + ' or ../jobType = + "TRACE_AND_IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS"'; + key idx; + description "5GC UE level measurements config"; + max-elements 1; + uses UEMeasConfigGrp; + leaf idx { type string; } } + list nPNTarget { description "applicable only for NR and shall be present in case of NPN either a PNI-NPN or a SNPN) and for management-based activation when -- GitLab From 19a19604c9023376e69af13ac495b4f33f912616 Mon Sep 17 00:00:00 2001 From: "U-ERICSSON\\ETHBLL" Date: Tue, 28 May 2024 03:47:37 +0900 Subject: [PATCH 14/24] Added correct revision statements with CR number. --- yang-models/_3gpp-5gc-nrm-neffunction.yang | 25 +++++++++++++++++++ yang-models/_3gpp-5gc-nrm-pcffunction.yang | 9 ++++--- yang-models/_3gpp-common-measurements.yang | 2 +- .../_3gpp-common-subscription-control.yang | 1 + yang-models/_3gpp-common-trace.yang | 12 ++++++--- yang-models/_3gpp-common-util.yang | 13 +++------- yang-models/_3gpp-common-yang-types.yang | 1 + 7 files changed, 45 insertions(+), 18 deletions(-) diff --git a/yang-models/_3gpp-5gc-nrm-neffunction.yang b/yang-models/_3gpp-5gc-nrm-neffunction.yang index 12f072aa4..fec93a992 100755 --- a/yang-models/_3gpp-5gc-nrm-neffunction.yang +++ b/yang-models/_3gpp-5gc-nrm-neffunction.yang @@ -21,6 +21,7 @@ module _3gpp-5gc-nrm-neffunction { TTA, TTC). All rights reserved."; reference "3GPP TS 28.541"; + revision 2024-05-18 { reference CR-1273 ; } revision 2024-04-12 { reference CR-1218 ; } revision 2023-09-18 { reference CR-1103 ; } revision 2023-09-18 { reference CR-1043 ; } @@ -247,6 +248,30 @@ module _3gpp-5gc-nrm-neffunction { - True: UAS NF functionality is supported by the NEF. - False (default): UAS NF functionality is not supported by the NEF"; } + + leaf multiMemAfSessQosInd { + type boolean; + default false; + description "This attribute indicates whether the NEF supports + Multi-member AF session with required QoS functionality: + + - TRUE: Multi-member AF session with required QoS functionality is + supported by the NEF + - FALSE (default): Multi-member AF session with required QoS + functionality is not supported by the NEF."; + } + + leaf memberUESelAssistInd { + type boolean; + default false; + description "This attribute indicates whether the NEF supports member + UE selection assistance functionality: + + - TRUE: member UE selection assistance functionality is supported by + the NEF + - FALSE (default): member UE selection assistance functionality is + not supported by the NEF."; + } } grouping NEFFunctionGrp { diff --git a/yang-models/_3gpp-5gc-nrm-pcffunction.yang b/yang-models/_3gpp-5gc-nrm-pcffunction.yang index b60f25f21..673c13acc 100755 --- a/yang-models/_3gpp-5gc-nrm-pcffunction.yang +++ b/yang-models/_3gpp-5gc-nrm-pcffunction.yang @@ -15,10 +15,11 @@ module _3gpp-5gc-nrm-pcffunction { contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "This IOC represents the PCF function in 5GC. For more information about the PCF, see 3GPP TS 23.501. - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.541"; + revision 2024-05-24 { reference CR-1273 ; } revision 2023-09-18 { reference CR-1043 ; } revision 2023-04-26 { reference CR-0916; } revision 2020-11-08 { reference CR-0412 ; } @@ -27,8 +28,8 @@ module _3gpp-5gc-nrm-pcffunction { revision 2019-10-25 { reference "S5-194457 S5-193518"; } revision 2019-05-22 { reference "initial revision"; } - grouping PCFFuntionGrp { - description "Represents the PCFFuntion IOC"; + grouping PCFFunctionGrp { + description "Represents the PCFFunction IOC"; uses mf3gpp:ManagedFunctionGrp; list pLMNIdList { @@ -94,7 +95,7 @@ module _3gpp-5gc-nrm-pcffunction { key id; uses top3gpp:Top_Grp; container attributes { - uses PCFFuntionGrp; + uses PCFFunctionGrp; } uses mf3gpp:ManagedFunctionContainedClasses; } diff --git a/yang-models/_3gpp-common-measurements.yang b/yang-models/_3gpp-common-measurements.yang index eeba31d79..e2cf97b8a 100755 --- a/yang-models/_3gpp-common-measurements.yang +++ b/yang-models/_3gpp-common-measurements.yang @@ -56,7 +56,7 @@ module _3gpp-common-measurements { Integration Reference Point (IRP); Information Service (IS)"; - revision 2024-05-06 { reference CR-xxxx; } + revision 2024-05-06 { reference CR-0359; } revision 2024-02-24 { reference CR-0346; } revision 2023-11-18 { reference "CR-0299 CR-0305"; } revision 2023-09-18 { reference CR-0271; } diff --git a/yang-models/_3gpp-common-subscription-control.yang b/yang-models/_3gpp-common-subscription-control.yang index 9e0cc2209..b637e1ff5 100755 --- a/yang-models/_3gpp-common-subscription-control.yang +++ b/yang-models/_3gpp-common-subscription-control.yang @@ -18,6 +18,7 @@ module _3gpp-common-subscription-control { Solution Set (SS) definitions 3GPP TS 28.623"; + revision 2024-05-18 { reference CR-0359 ; } revision 2024-01-18 { reference "CR-0309 CR-0329" ; } revision 2023-09-18 { reference CR-0271 ; } revision 2023-08-10 { reference "CR0257 CR0260"; } diff --git a/yang-models/_3gpp-common-trace.yang b/yang-models/_3gpp-common-trace.yang index 2f44d28d2..5e2622027 100755 --- a/yang-models/_3gpp-common-trace.yang +++ b/yang-models/_3gpp-common-trace.yang @@ -25,7 +25,7 @@ module _3gpp-common-trace { Integration Reference Point (IRP); Information Service (IS)" ; - revision 2024-05-06 { reference CR-xxxx; } + revision 2024-05-06 { reference CR-0359; } revision 2024-04-06 { reference "CR-0342"; } revision 2024-01-29 { reference "CR-0316"; } revision 2023-11-06 { reference "CR-0290 CR-0294"; } @@ -1536,9 +1536,15 @@ module _3gpp-common-trace { measurements. The period is defined in milliseconds (ms)."; } - leaf-list nfTypeToMeasure { + leaf nfTypeToMeasure { type string; - description "It specifies the NF types to measure."; + mandatory true; + description "It indicates the type of NE to produce the 5GC UE level + measurements. + + allowedValues: The NF types represented by the measured object + classes as defined by f) of the 5GC UE level measurements specified + in TS 28.558."; } leaf-list objectInstances { diff --git a/yang-models/_3gpp-common-util.yang b/yang-models/_3gpp-common-util.yang index 0249a89e6..6e58aa14f 100644 --- a/yang-models/_3gpp-common-util.yang +++ b/yang-models/_3gpp-common-util.yang @@ -16,7 +16,7 @@ module _3gpp-common-util { TTA, TTC). All rights reserved."; reference "3GPP TS 28.623"; - revision 2024-05-06 { reference CR-xxxx; } + revision 2024-05-06 { reference CR-0359; } feature SchedulerUnderManagedElement { description "Scheduler shall be contained under ManagedElement."; @@ -163,15 +163,8 @@ module _3gpp-common-util { mandatory true; description "Logical expression of one or several condition(s). - The actual syntax and capabilities of condition is SS specific. - However, each SS should support condition consisting of one or several - assertions that may be grouped using the logical operators AND, OR - and NOT. Only if the whole expression of condition evaluates TRUE, - the attribute conditionsSatisfied will be TRUE. - - Each assertion is a pointer to a Boolean parameter or a logical - expression of attribute existence or attribute value comparison - ('equal to X, less than Y' etc.). + A restricted XPath may be used. The definition of the exact syntax + is not ready yet. An empty string is not allowed."; } diff --git a/yang-models/_3gpp-common-yang-types.yang b/yang-models/_3gpp-common-yang-types.yang index f43a0fb6a..3c8b9c7a4 100755 --- a/yang-models/_3gpp-common-yang-types.yang +++ b/yang-models/_3gpp-common-yang-types.yang @@ -16,6 +16,7 @@ module _3gpp-common-yang-types { TTA, TTC). All rights reserved."; reference "3GPP TS 28.623"; + revision 2024-05-18 { reference CR-0359; } revision 2024-04-12 { reference CR-0346; } revision 2023-11-06 { reference CR-0305; } revision 2023-09-18 { reference CR-0271 ; } -- GitLab From 670071feff82291cc613a96e9b929fae568f29cf Mon Sep 17 00:00:00 2001 From: "U-ERICSSON\\ETHBLL" Date: Thu, 30 May 2024 00:27:20 +0900 Subject: [PATCH 15/24] Added CCOFUnction and NTNFunction and related IOCs and datatypes, moved NRTAC type to 5g-common-types --- yang-models/_3gpp-5g-common-yang-types.yang | 17 +- yang-models/_3gpp-5gc-nrm-amfregion.yang | 5 +- yang-models/_3gpp-5gc-nrm-amfset.yang | 2 +- yang-models/_3gpp-5gc-nrm-smffunction.yang | 3 +- yang-models/_3gpp-5gc-nrm-upffunction.yang | 5 +- yang-models/_3gpp-nr-nrm-cco.yang | 210 ++++++++++++ yang-models/_3gpp-nr-nrm-gnbcucpfunction.yang | 6 + yang-models/_3gpp-nr-nrm-gnbcuupfunction.yang | 5 +- yang-models/_3gpp-nr-nrm-nrcelldu.yang | 5 +- .../_3gpp-nr-nrm-nroperatorcelldu.yang | 5 +- yang-models/_3gpp-nr-nrm-ntnfunction.yang | 303 ++++++++++++++++++ 11 files changed, 553 insertions(+), 13 deletions(-) create mode 100644 yang-models/_3gpp-nr-nrm-cco.yang create mode 100644 yang-models/_3gpp-nr-nrm-ntnfunction.yang diff --git a/yang-models/_3gpp-5g-common-yang-types.yang b/yang-models/_3gpp-5g-common-yang-types.yang index 3e1870c6e..012065e2d 100755 --- a/yang-models/_3gpp-5g-common-yang-types.yang +++ b/yang-models/_3gpp-5g-common-yang-types.yang @@ -11,16 +11,31 @@ module _3gpp-5g-common-yang-types { contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "The model defines common types for 5G networks and network slicing. - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.541"; + revision 2024-05-24 { reference CR-1273 ; } revision 2023-09-18 { reference CR-1043 ; } revision 2023-05-10 { reference CR-0916; } revision 2021-08-05 { reference S5-214053/CR-0518; } revision 2020-11-05 { reference CR-0412 ; } revision 2019-10-20 { reference "Initial version."; } + typedef NRTAC { + type string; + description "This holds the identity of the common Tracking Area Code + for the PLMNs. + + allowedValues: + a) It is the TAC or Extended-TAC. + b) A cell can only broadcast one TAC or Extended-TAC. See TS 36.300, + subclause 10.1.7 (PLMNID and TAC relation). + c) TAC is defined in subclause 19.4.2.3 of 3GPP TS 23.003 + [13] and Extended-TAC is defined in subclause 9.3.1.29 of 3GPP TS 38.473. + d) For a 5G SA (Stand Alone), it has a non-null value."; + } + grouping SNssai { description "Single Network Slice Selection Assistance Information(S-NSSAI)"; diff --git a/yang-models/_3gpp-5gc-nrm-amfregion.yang b/yang-models/_3gpp-5gc-nrm-amfregion.yang index a2afbe9d6..f44940dac 100755 --- a/yang-models/_3gpp-5gc-nrm-amfregion.yang +++ b/yang-models/_3gpp-5gc-nrm-amfregion.yang @@ -13,10 +13,11 @@ module _3gpp-5gc-nrm-amfregion { contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "This IOC represents the AMF Region which consists one or multiple AMF Sets. - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; + revision 2024-05-24 { reference CR-1273 ; } revision 2023-09-18 { reference CR-1043 ; } revision 2022-01-07 { reference CR-0643; } revision 2020-11-06 { reference CR-0412 ; } @@ -45,7 +46,7 @@ module _3gpp-5gc-nrm-amfregion { reference "TS 38.413 clause 9.3.3.10"; min-elements 1; config false; - type types3gpp:Tac; + type types5g3gpp:NRTAC; } list sNSSAIList { diff --git a/yang-models/_3gpp-5gc-nrm-amfset.yang b/yang-models/_3gpp-5gc-nrm-amfset.yang index 31f76519f..6550bd36a 100755 --- a/yang-models/_3gpp-5gc-nrm-amfset.yang +++ b/yang-models/_3gpp-5gc-nrm-amfset.yang @@ -44,7 +44,7 @@ module _3gpp-5gc-nrm-amfset { reference "TS 38.413 clause 9.3.3.10"; min-elements 1; config false; - type types3gpp:Tac; + type types5g3gpp:NRTAC; } list sNSSAIList { diff --git a/yang-models/_3gpp-5gc-nrm-smffunction.yang b/yang-models/_3gpp-5gc-nrm-smffunction.yang index 8550fcc3d..68a8c353a 100755 --- a/yang-models/_3gpp-5gc-nrm-smffunction.yang +++ b/yang-models/_3gpp-5gc-nrm-smffunction.yang @@ -17,6 +17,7 @@ module _3gpp-5gc-nrm-smffunction { TTA, TTC). All rights reserved."; reference "3GPP TS 28.541"; + revision 2024-05-24 { reference CR-1273 ; } revision 2023-09-18 { reference CR-1043 ; } revision 2023-04-26 { reference CR-0916; } revision 2020-11-08 { reference CR-0412 ; } @@ -44,7 +45,7 @@ module _3gpp-5gc-nrm-smffunction { reference "TS 38.413 clause 9.3.3.10"; min-elements 1; config false; - type types3gpp:Tac; + type types5g3gpp:NRTAC; } leaf sBIFQDN { diff --git a/yang-models/_3gpp-5gc-nrm-upffunction.yang b/yang-models/_3gpp-5gc-nrm-upffunction.yang index ca74a06c7..0c4a89df4 100755 --- a/yang-models/_3gpp-5gc-nrm-upffunction.yang +++ b/yang-models/_3gpp-5gc-nrm-upffunction.yang @@ -12,10 +12,11 @@ module _3gpp-5gc-nrm-upffunction { organization "3GPP SA5"; contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "UPFFunction derived from basic ManagedFunction. - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; + revision 2024-05-24 { reference CR-1273 ; } revision 2023-09-18 { reference CR-1043 ; } revision 2023-04-26 { reference CR-0916; } revision 2020-11-08 { reference CR-0412 ; } @@ -41,7 +42,7 @@ module _3gpp-5gc-nrm-upffunction { reference "TS 38.413 clause 9.3.3.10"; min-elements 1; config false; - type types3gpp:Tac; + type types5g3gpp:NRTAC; } list sNSSAIList { diff --git a/yang-models/_3gpp-nr-nrm-cco.yang b/yang-models/_3gpp-nr-nrm-cco.yang new file mode 100644 index 000000000..97a154dfe --- /dev/null +++ b/yang-models/_3gpp-nr-nrm-cco.yang @@ -0,0 +1,210 @@ +module _3gpp-nr-nrm-cco { + yang-version 1.1; + + namespace urn:3gpp:sa5:_3gpp-nr-nrm-cco; + prefix cco3gpp; + + import _3gpp-common-top { prefix top3gpp; } + import _3gpp-common-subnetwork { prefix subnet3gpp; } + + organization "3gpp SA5"; + contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; + description "Implements support the C-SON function of Capacity and + Coverage optimization . + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + TTA, TTC). All rights reserved."; + reference "3GPP TS 28.541"; + + revision 2024-05-24 { reference CR-1273 ; } + + grouping ParameterRangeGrp { + description "This data type represents the adjustment range for parameters."; + + leaf maxValue { + type int64; + mandatory true; + description "It indicates the maximum value of the parameter."; + } + + leaf minValue { + type int64; + mandatory true; + description "It indicates the minimum value of the parameter."; + } + } + + grouping CCOParametersGrp { + description "Represents the CCOParameters IOC"; + + list downlinkTransmitPowerRange { + description "It indicates adjustment range (including maximum value, + minimum value) of downlinkTransmitPower to optimize radio coverage."; + key minValue; + min-elements 1; + max-elements 1; + uses ParameterRangeGrp { + refine minValue { + must '. >= 0 and . <= 100'; + } + refine maxValue { + must '. >= 0 and . <= 100'; + } + } + } + + list antennaTiltRange { + description "It indicates adjustment range (including maximum value, + minimum value) of antennaTilt to optimize radio coverage. + units 0.1 degree"; + key minValue; + min-elements 1; + max-elements 1; + uses ParameterRangeGrp { + refine minValue { + must '. >= -900 and . <= 900'; + } + refine maxValue { + must '. >= -900 and . <= 900'; + } + } + } + + list antennaAzimuthRange { + description "It indicates adjustment range (including maximum value, + minimum value) of antennaAzimuth to optimize radio coverage. + units 0.1 degree"; + key minValue; + min-elements 1; + max-elements 1; + uses ParameterRangeGrp { + refine minValue { + must '. >= -1800 and . <= 1800'; + } + refine maxValue { + must '. >= -1800 and . <= 1800'; + } + } + } + + list digitalTiltRange { + description "It indicates adjustment range (including maximum value, + minimum value) of digitalTilt to optimize radio coverage. + units 0.1 degree"; + key minValue; + min-elements 1; + max-elements 1; + uses ParameterRangeGrp { + refine minValue { + must '. >= -900 and . <= 900'; + } + refine maxValue { + must '. >= -900 and . <= 900'; + } + } + } + + list digitalAzimuthRange { + description "It indicates adjustment range (including maximum value, + minimum value) of digitalAzimuth to optimize radio coverage. + units 0.1 degree"; + key minValue; + min-elements 1; + max-elements 1; + uses ParameterRangeGrp { + refine minValue { + must '. >= -1800 and . <= 1800'; + } + refine maxValue { + must '. >= -1800 and . <= 1800'; + } + } } + + leaf-list coverageShapeList { + type uint16; + ordered-by user; + description "It indicates the coverage shape of specific sites which + can be selected to optimize radio coverage."; + } + } + + grouping CCOWeakCoverageParametersGrp { + description "Represents the CCOWeakCoverageParameters IOC"; + uses CCOParametersGrp; + } + + grouping CCOPilotPollutionParametersGrp { + description "Represents the CCOPilotPollutionParameters IOC"; + uses CCOParametersGrp; + } + + grouping CCOOvershootCoverageParametersGrp { + description "Represents the CCOOvershootCoverageParameters IOC"; + uses CCOParametersGrp; + } + + grouping CCOFunctionGrp { + description "Represents the CCOFunction IOC"; + + leaf cCOControl { + description "This attribute determines whether the centralized + SON CCO Function is enabled or disabled."; + mandatory true; + type boolean; + } + } + + augment "/subnet3gpp:SubNetwork" { + list CCOFunction { + description "This IOC contains attributes to support the C-SON + function of Capacity and Coverage optimization + (See clause 7.2.3 in TS 28.313). + NOTE: in the case where multiple CCOFunction MOIs exist at different + levels of the containment tree, the CCOFunction MOI at the lower + level overrides the CCOFunction MOIs at higher level(s) of the same + containment tree."; + + key id; + max-elements 1; + uses top3gpp:Top_Grp; + container attributes { + uses CCOFunctionGrp; + } + + list CCOWeakCoverageParameters { + description "This IOC represents the properties of + CCOWeakCoverageParameters. CCOWeakCoverageParameters is one + realization of abstract CCOParameters IOC."; + key id; + max-elements 1; + uses top3gpp:Top_Grp; + container attributes { + uses CCOWeakCoverageParametersGrp; + } + } + + list CCOPilotPollutionParameters { + description "This IOC represents the properties of + CCOPilotPollutionParameters. CCOPilotPollutionParameters is one + realization of abstract CCOParameters IOC."; + key id; + max-elements 1; + uses top3gpp:Top_Grp; + container attributes { + uses CCOPilotPollutionParametersGrp; + } + } + + list CCOOvershootCoverageParameters { + description "This IOC represents the properties of + CCOOvershootCoverageParameters. CCOOvershootCoverageParameters is + one realization of abstract CCOParameters IOC."; + key id; + max-elements 1; + uses top3gpp:Top_Grp; + container attributes { + uses CCOOvershootCoverageParametersGrp; + } + } + } + } +} \ No newline at end of file diff --git a/yang-models/_3gpp-nr-nrm-gnbcucpfunction.yang b/yang-models/_3gpp-nr-nrm-gnbcucpfunction.yang index 975fced77..7d8eabeec 100755 --- a/yang-models/_3gpp-nr-nrm-gnbcucpfunction.yang +++ b/yang-models/_3gpp-nr-nrm-gnbcucpfunction.yang @@ -19,6 +19,7 @@ module _3gpp-nr-nrm-gnbcucpfunction { TTA, TTC). All rights reserved."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; + revision 2024-05-24 { reference CR-1273 ; } revision 2024-04-04 { reference CR-1139; } revision 2024-02-24 { reference CR-1218; } revision 2024-01-12 { reference CR-1138; } @@ -174,6 +175,11 @@ module _3gpp-nr-nrm-gnbcucpfunction { Any MDT measurement, whose name is not specified in this list, is not subject to user consent at MDT activation."; } + + leaf ephemerisInfoSetRef { + type types3gpp:DistinguishedName; + description "This is the DN of EphemerisInfoSet."; + } } grouping QceIdMappingInfoGrp { diff --git a/yang-models/_3gpp-nr-nrm-gnbcuupfunction.yang b/yang-models/_3gpp-nr-nrm-gnbcuupfunction.yang index a104c05a9..fed4880c9 100755 --- a/yang-models/_3gpp-nr-nrm-gnbcuupfunction.yang +++ b/yang-models/_3gpp-nr-nrm-gnbcuupfunction.yang @@ -15,10 +15,11 @@ module _3gpp-nr-nrm-gnbcuupfunction { contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "Defines the YANG mapping of the GNBCUUPFunction Information Object Class (IOC) that is part of the NR Network Resource Model (NRM). - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; + revision 2024-05-24 { reference CR-1273 ; } revision 2023-09-18 { reference CR-1043 ; } revision 2023-04-26 { reference CR-0916; } revision 2022-07-28 { reference "CR-0770"; } @@ -47,7 +48,7 @@ module _3gpp-nr-nrm-gnbcuupfunction { } leaf nRTAC { - type int64; + type types5g3gpp:NRTAC; description "Identity of the common Tracking Area Code for the PLMNs allowedValues: a) It is the TAC or Extended-TAC. diff --git a/yang-models/_3gpp-nr-nrm-nrcelldu.yang b/yang-models/_3gpp-nr-nrm-nrcelldu.yang index cf4c5cbfb..da3e12195 100755 --- a/yang-models/_3gpp-nr-nrm-nrcelldu.yang +++ b/yang-models/_3gpp-nr-nrm-nrcelldu.yang @@ -15,10 +15,11 @@ module _3gpp-nr-nrm-nrcelldu { contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "Defines the YANG mapping of the NRCellDU Information Object Class (IOC) that is part of the NR Network Resource Model (NRM). - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; + revision 2024-05-24 { reference CR-1273 ; } revision 2023-09-18 { reference CR-1043 ; } revision 2022-07-28 { reference "CR-0770"; } revision 2022-06-29 { reference CR-0756 ; } @@ -155,7 +156,7 @@ module _3gpp-nr-nrm-nrcelldu { leaf nRTAC { description "The common 5GS Tracking Area Code for the PLMNs."; reference "3GPP TS 23.003, 3GPP TS 38.473"; - type types3gpp:Tac; + type types5g3gpp:NRTAC; } leaf arfcnDL { diff --git a/yang-models/_3gpp-nr-nrm-nroperatorcelldu.yang b/yang-models/_3gpp-nr-nrm-nroperatorcelldu.yang index 0c92ea37d..42afcf248 100755 --- a/yang-models/_3gpp-nr-nrm-nroperatorcelldu.yang +++ b/yang-models/_3gpp-nr-nrm-nroperatorcelldu.yang @@ -14,10 +14,11 @@ module _3gpp-nr-nrm-nroperatorcelldu { contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "Defines the YANG mapping of the OperatorDU Information Object Class (IOC) that is part of the NR Network Resource Model (NRM). - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; + revision 2024-05-24 { reference CR-1273 ; } revision 2023-09-18 { reference CR-1043 ; } revision 2021-10-01 { reference "Initial revision"; } @@ -57,7 +58,7 @@ module _3gpp-nr-nrm-nroperatorcelldu { leaf nRTAC { description "The common 5GS Tracking Area Code for the PLMNs."; reference "3GPP TS 23.003, 3GPP TS 38.473"; - type types3gpp:Tac; + type types5g3gpp:NRTAC; } leaf-list nRCellDURef { diff --git a/yang-models/_3gpp-nr-nrm-ntnfunction.yang b/yang-models/_3gpp-nr-nrm-ntnfunction.yang new file mode 100644 index 000000000..5abe98f62 --- /dev/null +++ b/yang-models/_3gpp-nr-nrm-ntnfunction.yang @@ -0,0 +1,303 @@ +module _3gpp-nr-nrm-ntnfunction { + yang-version 1.1; + + namespace urn:3gpp:sa5:_3gpp-nr-nrm-ntnfunction; + prefix ntn3gpp; + + import _3gpp-common-top { prefix top3gpp; } + import _3gpp-5g-common-yang-types { prefix types5g3gpp; } + import ietf-yang-types { prefix yang; } + import _3gpp-common-managed-element { prefix me3gpp; } + import _3gpp-common-subnetwork { prefix subnet3gpp; } + + organization "3gpp SA5"; + contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; + description "Implements support the C-SON function of Capacity and + Coverage optimization . + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + TTA, TTC). All rights reserved."; + reference "3GPP TS 28.541"; + + revision 2024-05-24 { reference CR-1273 ; } + + feature NTNFunctionUnderSubNetwork { + description "The NTNFunction shall be contained under SubNetwork"; + } + + feature NTNFunctionUnderManagedElement { + description "The NTNFunction shall be contained under ManagedElement"; + } + + grouping PositionVelocityGrp { + description "This data type defines configuration parameters to support + satellite position and velocity state"; + + leaf positionX { + type uint32 { + range 0..604800; + } + config false; + default 0; + units meter; + description "X, Y, Z coordinate of satellite position state vector + in ECEF. Unit is meter. + Step of 1.3 m. Actual value = field value * 1.3."; + } + + leaf positionY { + type uint32 { + range 0..604800; + } + config false; + default 0; + units meter; + description "X, Y, Z coordinate of satellite position state vector + in ECEF. Unit is meter. + Step of 1.3 m. Actual value = field value * 1.3."; + } + + leaf positionZ { + type uint32 { + range 0..604800; + } + config false; + default 0; + units meter; + description "X, Y, Z coordinate of satellite position state vector + in ECEF. Unit is meter. + Step of 1.3 m. Actual value = field value * 1.3."; + } + + leaf velocityVX { + type int32 { + range -131072..131071; + } + config false; + default 0; + units meter/second; + description "X, Y, Z coordinate of satellite velocity state vector + in ECEF. + Step of 0.06 m/s. Actual value = field value * 0.06."; + } + + leaf velocityVY { + type int32 { + range -131072..131071; + } + config false; + default 0; + units meter/second; + description "X, Y, Z coordinate of satellite velocity state vector + in ECEF. + Step of 0.06 m/s. Actual value = field value * 0.06."; + } + + leaf velocityVZ { + type int32 { + range -131072..131071; + } + config false; + default 0; + units meter/second; + description "X, Y, Z coordinate of satellite velocity state vector + in ECEF. + Step of 0.06 m/s. Actual value = field value * 0.06."; + } + } + + grouping OrbitalGrp { + description "This data type defines configuration parameters of orbital + trajectory information to support satellite access."; + + leaf semiMajorAxis { + type uint64 { + range 0..8589934591; + } + config false; + default 0; + units meter; + description "Satellite orbital parameter: semi major axis alpha, + see NIMA TR 8350.2. + Step of 4.249 * 10**-3 m. + Actual value = 6500000 + field value * (4.249 * 10**-3)."; + } + + leaf eccentricity { + type int32 { + range -524288..524287; + } + config false; + default 0; + description "Satellite orbital parameter: eccentricity e, + see NIMA TR 8350.2. + Step 1.431 * 10**-8. + Actual value = field value * (1.431 * 10**-8)."; + } + + leaf periapsis { + type uint32 { + range 0..16777215; + } + config false; + default 0; + units radian; + description "Satellite orbital parameter: argument of periapsis omega, + see NIMA TR 8350.2. + Step of 2.341* 10**-8 rad. + Actual value = field value * (2.341* 10**-8)."; + } + + leaf longitude { + type uint32 { + range 0..2097151; + } + config false; + default 0; + units radian; + description "Satellite orbital parameter: longitude of ascending node + OMEGA, see NIMA TR 8350.2. + Step of 2.341* 10**-8 rad. + Actual value = field value * (2.341* 10**-8)."; + } + + leaf inclination { + type int32 { + range -524288..524287; + } + config false; + default 0; + units radian; + description "Satellite orbital parameter: inclination i, + see NIMA TR 8350.2. + Step of 2.341* 10**-8 rad. + Actual value = field value * (2.341* 10**-8)."; + } + + leaf meanAnomaly { + type uint32 { + range 0..16777215; + } + config false; + default 0; + units radian; + description "Satellite orbital parameter: Mean anomaly M at epoch time, + see NIMA TR 8350.2. + Step of 2.341* 10**-8 rad. + Actual value = field value * (2.341* 10**-8)."; + } + } + + grouping EphemerisGrp { + description "This data type represents the satellite ephemeris related + information. The ephemeris data format may be expressed either in + format of position and velocity state vector or in format of orbital + parameters."; + + leaf satelliteId { + type string { + pattern "00([01][0-9][0-9])|(2[0-4][0-9]|(25[0-5]))"; + } + config false; + description "This attribute indicates satellite Id.number. + It shall be formatted as a fixed 5-digit string, padding with + leading digits '0' to complete a 5-digit length. + allowedValues: 00000..00255"; + } + + leaf epochTime { + type yang:date-and-time; + config false; + description "It defines the ephemeris reference time."; + } + + choice positionVelocity-or-orbital { + list positionVelocity { + description "It indicates ephemeris is in format of NTN payload + position and velocity state vectors."; + max-elements 1; + config false; + uses PositionVelocityGrp; + } + + list orbital { + description "It indicates ephemeris is in orbital parameter ephemeris + format, as specified in NIMA TR 8350.2"; + max-elements 1; + config false; + uses OrbitalGrp; + } + } + } + + grouping EphemerisInfoSetGrp { + description "Represents the EphemerisInfoSet IOC"; + + list EphemerisInfos { + description "This is the list of Ephemeris related information."; + min-elements 1; + key idx; + leaf idx { type uint32; } + uses EphemerisGrp; + } + } + + grouping NTNFunctionGrp { + description "Represents the NTNFunction IOC"; + + list nTNpLMNInfoList { + description "It defines which PLMNs that can be served by the NR NTN cell, + and which S-NSSAIs can be supported by the NR NTN cell for + corresponding PLMN in case of network slicing feature is supported. + The pLMNId of the first entry of the list is the PLMNId used to + construct the nCGI for the NR cell."; + min-elements 1; + ordered-by user; + key idx; + leaf idx { type uint32; } + uses types5g3gpp:PLMNInfo; + } + + leaf-list nTNTAClist { + type types5g3gpp:NRTAC; + min-elements 1; + description "It is the list of Tracking Area Codes (either legacy TAC or + extended TAC) for NR NTN. + Legacy TAC and Extended TAC are defined in clause 9.3.3.10 of + TS 38.413."; + } + } + + grouping NTNFunctionSubtreeGrp { + list NTNFunction { + description "This IOC contains attributes to support the non-terrestrial + NR access."; + key id; + max-elements 1; + uses top3gpp:Top_Grp; + container attributes { + uses NTNFunctionGrp; + } + + list EphemerisInfoSet { + description "This IOC represents the satellite ephemeris information + describing the orbital trajectory information or coordinates for the + NTN vehicles."; + key id; + uses top3gpp:Top_Grp; + container attributes { + uses EphemerisInfoSetGrp; + } + } + } + } + + augment "/subnet3gpp:SubNetwork" { + if-feature NTNFunctionUnderSubNetwork; + uses NTNFunctionSubtreeGrp; + } + + augment "/me3gpp:ManagedElement" { + if-feature NTNFunctionUnderManagedElement; + uses NTNFunctionSubtreeGrp; + } +} \ No newline at end of file -- GitLab From 167a20b7ffba9426bcefeda51836d7d215189b9e Mon Sep 17 00:00:00 2001 From: "U-ERICSSON\\ETHBLL" Date: Thu, 30 May 2024 00:39:11 +0900 Subject: [PATCH 16/24] corrected yang format errors --- yang-models/_3gpp-5g-common-yang-types.yang | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/yang-models/_3gpp-5g-common-yang-types.yang b/yang-models/_3gpp-5g-common-yang-types.yang index 012065e2d..08b8fc721 100755 --- a/yang-models/_3gpp-5g-common-yang-types.yang +++ b/yang-models/_3gpp-5g-common-yang-types.yang @@ -28,12 +28,12 @@ module _3gpp-5g-common-yang-types { for the PLMNs. allowedValues: - a) It is the TAC or Extended-TAC. - b) A cell can only broadcast one TAC or Extended-TAC. See TS 36.300, + a) It is the TAC or Extended-TAC. + b) A cell can only broadcast one TAC or Extended-TAC. See TS 36.300, subclause 10.1.7 (PLMNID and TAC relation). - c) TAC is defined in subclause 19.4.2.3 of 3GPP TS 23.003 - [13] and Extended-TAC is defined in subclause 9.3.1.29 of 3GPP TS 38.473. - d) For a 5G SA (Stand Alone), it has a non-null value."; + c) TAC is defined in subclause 19.4.2.3 of 3GPP TS 23.003 + and Extended-TAC is defined in subclause 9.3.1.29 of 3GPP TS 38.473. + d) For a 5G SA (Stand Alone), it has a non-null value."; } grouping SNssai { -- GitLab From db6e8993719c754e39086965ca10cdd00c608416 Mon Sep 17 00:00:00 2001 From: "U-ERICSSON\\ETHBLL" Date: Thu, 30 May 2024 01:46:35 +0900 Subject: [PATCH 17/24] corrected revision and copyright --- yang-models/_3gpp-5gc-nrm-amfset.yang | 3 ++- yang-models/_3gpp-5gc-nrm-smffunction.yang | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/yang-models/_3gpp-5gc-nrm-amfset.yang b/yang-models/_3gpp-5gc-nrm-amfset.yang index 6550bd36a..9473afee3 100755 --- a/yang-models/_3gpp-5gc-nrm-amfset.yang +++ b/yang-models/_3gpp-5gc-nrm-amfset.yang @@ -13,10 +13,11 @@ module _3gpp-5gc-nrm-amfset { contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "This IOC represents the AMF Set which consists of some AMFs that serve a given area and Network Slice. - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; + revision 2024-05-24 { reference CR-1273 ; } revision 2023-09-18 { reference CR-1043 ; } revision 2022-01-07 { reference CR-0643; } revision 2020-11-06 { reference CR-0412 ; } diff --git a/yang-models/_3gpp-5gc-nrm-smffunction.yang b/yang-models/_3gpp-5gc-nrm-smffunction.yang index 68a8c353a..ca37a43d4 100755 --- a/yang-models/_3gpp-5gc-nrm-smffunction.yang +++ b/yang-models/_3gpp-5gc-nrm-smffunction.yang @@ -13,7 +13,7 @@ module _3gpp-5gc-nrm-smffunction { organization "3gpp SA5"; contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "SMFFunction derived from basic ManagedFunction. - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.541"; -- GitLab From 7972b43792e5e75c5759511cdbf7ddb8c63ef6ea Mon Sep 17 00:00:00 2001 From: lengyelb Date: Thu, 16 May 2024 08:49:56 +0000 Subject: [PATCH 18/24] Added missing attribute unreliableAlarmScope and corrected name of corelatedNotifications.notificationIds --- yang-models/_3gpp-common-fm.yang | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/yang-models/_3gpp-common-fm.yang b/yang-models/_3gpp-common-fm.yang index c0c1a8d08..70287588a 100755 --- a/yang-models/_3gpp-common-fm.yang +++ b/yang-models/_3gpp-common-fm.yang @@ -432,7 +432,7 @@ module _3gpp-common-fm { type types3gpp:DistinguishedName; } - leaf-list notificationId { + leaf-list notificationIds { type int32; min-elements 1; } @@ -480,6 +480,21 @@ module _3gpp-common-fm { yext3gpp:notNotifyable; uses AlarmRecordGrp; } + + leaf-list unreliableAlarmScope { + type types3gpp:DistinguishedName; + config false; + yext3gpp:notNotifyable; + description "Identifies, the part of the alarm scope that may not be + reliable. + + If this parameter is equal to the instance carried in systemDN, + then all AlarmRecord instances in the AlarmList may not be reliable. + + If this parameter is equal to some instance represented by + MonitoredEntity, then only AlarmRecord related to this instance and + its descendants may not be reliable."; + } } grouping FmSubtree { -- GitLab From 6662c66b5d2748b40f8c64ed89bb192dd67b0322 Mon Sep 17 00:00:00 2001 From: lengyelb Date: Thu, 16 May 2024 08:56:07 +0000 Subject: [PATCH 19/24] Added dummy revision statement --- yang-models/_3gpp-common-fm.yang | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/yang-models/_3gpp-common-fm.yang b/yang-models/_3gpp-common-fm.yang index 70287588a..95200768f 100755 --- a/yang-models/_3gpp-common-fm.yang +++ b/yang-models/_3gpp-common-fm.yang @@ -16,6 +16,7 @@ module _3gpp-common-fm { TTA, TTC). All rights reserved."; reference "3GPP TS 28.111"; + revision 2024-05-12 { reference CR-0xxx ; } revision 2024-03-06 { reference CR-0333 ; } revision 2024-02-24 { reference CR-0346; } revision 2024-01-18 { @@ -529,4 +530,4 @@ module _3gpp-common-fm { } } -} \ No newline at end of file +} -- GitLab From e2a65e139e3d3aeea4887b542cc8d333a2623bb5 Mon Sep 17 00:00:00 2001 From: lengyelb Date: Wed, 22 May 2024 13:20:21 +0000 Subject: [PATCH 20/24] Update _3gpp-common-fm.yang - updated revision statement --- yang-models/_3gpp-common-fm.yang | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/yang-models/_3gpp-common-fm.yang b/yang-models/_3gpp-common-fm.yang index 95200768f..1d7c76f0b 100755 --- a/yang-models/_3gpp-common-fm.yang +++ b/yang-models/_3gpp-common-fm.yang @@ -16,7 +16,10 @@ module _3gpp-common-fm { TTA, TTC). All rights reserved."; reference "3GPP TS 28.111"; - revision 2024-05-12 { reference CR-0xxx ; } + revision 2024-05-12 { + description "The definition of the module was from TS 28.623 to TS 28.111"; + reference CR-0008 ; + } revision 2024-03-06 { reference CR-0333 ; } revision 2024-02-24 { reference CR-0346; } revision 2024-01-18 { -- GitLab From 8648723a61e2456e8daf9db106ad945b992e9a60 Mon Sep 17 00:00:00 2001 From: lengyelb Date: Wed, 22 May 2024 13:25:41 +0000 Subject: [PATCH 21/24] Update _3gpp-common-fm.yang - Added comments to alarmrecord --- yang-models/_3gpp-common-fm.yang | 40 ++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/yang-models/_3gpp-common-fm.yang b/yang-models/_3gpp-common-fm.yang index 1d7c76f0b..223ea0033 100755 --- a/yang-models/_3gpp-common-fm.yang +++ b/yang-models/_3gpp-common-fm.yang @@ -98,6 +98,36 @@ module _3gpp-common-fm { description "The possible alarm severities"; } + grouping AlarmCommentGrp { + leaf commentTime { + type yang:date-and-time; + config false; + mandatory true; + description "Date and Time the comment was created."; + } + + leaf commentUserId { + type string; + mandatory true; + description "It carries the identification of the user who made the + comment."; + } + + leaf commentSystemId { + type string; + mandatory true; + description "It carries the identification of the system ( + Management System) from which the comment is made. That system + supports the user that made the comment."; + } + + leaf commentText { + type string; + mandatory true; + description "It carries the textual comment."; + } + } + grouping AlarmRecordGrp { description "Contains alarm information of an alarmed object instance. A new record is created in the alarm list when an alarmed object @@ -351,6 +381,16 @@ module _3gpp-common-fm { yext3gpp:notNotifyable; } + list comments { + yext3gpp:inVariant; + yext3gpp:notNotifyable; + description "List of comments and data about the comments."; + key idx; + leaf idx { type uint32; } + + uses AlarmCommentGrp; + } + leaf ackTime { if-feature AcknowledgeByConsumer; type yang:date-and-time ; -- GitLab From d86766ea30d96c806d7b41086096275d7bb4e822 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Mon, 13 May 2024 16:15:40 +0000 Subject: [PATCH 22/24] Update _3gpp-common-files.yang to remove "notifyFileDeletion" notification --- yang-models/_3gpp-common-files.yang | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/yang-models/_3gpp-common-files.yang b/yang-models/_3gpp-common-files.yang index 22e573959..1d1450cbf 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 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.623 Generic Network Resource Model (NRM) @@ -24,7 +24,8 @@ module _3gpp-common-files { Generic Network Resource Model (NRM) Integration Reference Point (IRP); Information Service (IS)"; - + + revision 2024-05-11 { reference CR-xxxx ; } revision 2023-09-18 { reference CR-0271 ; } revision 2022-09-28 { reference CR-0191; } @@ -207,10 +208,10 @@ module _3gpp-common-files { related to a job. The attribute '_linkToFiles' allows a MnS consumer to create simple - and targeted subscriptions for 'notifyFileReady', - 'notifyFilePreparationError' and 'notifyFileDeletion', or - 'notifyMOICreation', 'notifyMOIChanges', 'notifyFilePreparationError' - and 'notifyFileDeletion' related to 'File' instances created or deleted + and targeted subscriptions for 'notifyFileReady'and + 'notifyFilePreparationError', or + '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. @@ -323,4 +324,4 @@ module _3gpp-common-files { } } } -} \ No newline at end of file +} -- GitLab From dc0a4c5bf3fa49db7c42f89061cbde806e865c0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Fri, 17 May 2024 07:26:45 +0000 Subject: [PATCH 23/24] Update _3gpp-common-files.yang with the CR number --- 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 1d1450cbf..9317e769f 100644 --- a/yang-models/_3gpp-common-files.yang +++ b/yang-models/_3gpp-common-files.yang @@ -25,7 +25,7 @@ module _3gpp-common-files { Integration Reference Point (IRP); Information Service (IS)"; - revision 2024-05-11 { reference CR-xxxx ; } + revision 2024-05-11 { reference CR-0362 ; } revision 2023-09-18 { reference CR-0271 ; } revision 2022-09-28 { reference CR-0191; } -- GitLab From 107808a6336197761720aaad4340732c38791b49 Mon Sep 17 00:00:00 2001 From: "U-ERICSSON\\ETHBLL" Date: Fri, 7 Jun 2024 17:59:50 +0200 Subject: [PATCH 24/24] locally rebase and commit https://forge.3gpp.org/rep/sa5/MnS/-/merge_requests/1148 --- yang-models/_3gpp-common-trace.yang | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/yang-models/_3gpp-common-trace.yang b/yang-models/_3gpp-common-trace.yang index 5e2622027..af5327945 100755 --- a/yang-models/_3gpp-common-trace.yang +++ b/yang-models/_3gpp-common-trace.yang @@ -25,6 +25,7 @@ module _3gpp-common-trace { Integration Reference Point (IRP); Information Service (IS)" ; + revision 2024-05-12 { reference "CR-0401"; } revision 2024-05-06 { reference CR-0359; } revision 2024-04-06 { reference "CR-0342"; } revision 2024-01-29 { reference "CR-0316"; } @@ -1595,6 +1596,14 @@ module _3gpp-common-trace { uses types3gpp:PLMNId; } + leaf-list listOfTraceMetrics { + when '../jobType = "TRACE_ONLY"' + + ' or ../jobType = "IMMEDIATE_MDT_AND_TRACE"'; + type string; + description "Specifies the metrics to be reported."; + reference "Clause 10 of 3GPP TS 32.422"; + } + leaf traceCollectionEntityIPAddress { type inet:ip-address; description "It specifies the address of the Trace Collection Entity -- GitLab