From 699d013712a3599537a44552cfd0195d0498ba22 Mon Sep 17 00:00:00 2001 From: "U-ERICSSON\\ETHBLL" Date: Thu, 13 Jul 2023 10:41:37 +0200 Subject: [PATCH 1/8] paul's eutran updates --- .../_3gpp-nr-nrm-eutrancellrelation.yang | 31 +++++++------------ .../_3gpp-nr-nrm-eutranfreqrelation.yang | 29 ++++++++--------- 2 files changed, 24 insertions(+), 36 deletions(-) diff --git a/yang-models/_3gpp-nr-nrm-eutrancellrelation.yang b/yang-models/_3gpp-nr-nrm-eutrancellrelation.yang index 4eee4a401..29d2d1d1e 100755 --- a/yang-models/_3gpp-nr-nrm-eutrancellrelation.yang +++ b/yang-models/_3gpp-nr-nrm-eutrancellrelation.yang @@ -4,21 +4,20 @@ module _3gpp-nr-nrm-eutrancellrelation { prefix "eutrancellrel3gpp"; import _3gpp-common-yang-types { prefix types3gpp; } - import _3gpp-common-managed-function { prefix mf3gpp; } import _3gpp-common-managed-element { prefix me3gpp; } import _3gpp-nr-nrm-gnbcucpfunction { prefix gnbcucp3gpp; } import _3gpp-nr-nrm-nrcellcu { prefix nrcellcu3gpp; } import _3gpp-common-top { prefix top3gpp; } organization "3GPP SA5"; + contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "Defines the YANG mapping of the EUtranCellRelation Information Object Class (IOC) that is part of the NR Network Resource Model (NRM)."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; + revision 2023-06-25 { reference CR0932 ; } revision 2019-10-28 { reference S5-193518 ; } - revision 2019-06-17 { - description "Initial revision"; - } + revision 2019-06-17 { reference "Initial revision"; } typedef ActionAllowed { type enumeration { @@ -38,7 +37,6 @@ module _3gpp-nr-nrm-eutrancellrelation { grouping EUtranCellRelationGrp { description "Represents the EUtranCellRelation IOC."; reference "3GPP TS 28.541, EUtranRelation in 3GPP TS 28.658"; - uses mf3gpp:ManagedFunctionGrp; leaf tCI { description "Target Cell Identifier. Consists of E-UTRAN Cell Global @@ -55,7 +53,7 @@ module _3gpp-nr-nrm-eutrancellrelation { be removed (deleted). If NO, the subject EUtranCellRelation instance shall not be removed (deleted) by any entity but an IRPManager."; mandatory true; - type ActionAllowed; + type boolean; } leaf isHOAllowed { @@ -65,18 +63,9 @@ module _3gpp-nr-nrm-eutrancellrelation { cell referenced by this EUtranCellRelation instance. If NO, handover shall not be allowed."; mandatory true; - type ActionAllowed; - } - leaf isENDCAllowed { - description "Indicates if EN-DC is allowed or prohibited. If TRUE, - the target cell is allowed to be used for EN-DC. The target cell is - referenced by the NRCellRelation that contains this isENDCAllowed. - If FALSE, EN-DC shall not be allowed."; - mandatory true; - type ActionAllowed; + type boolean; } - leaf isICICInformationSendAllowed { description "Indicates if ICIC (Inter Cell Interference Coordination) load information message sending is allowed or prohibited. If YES, @@ -133,6 +122,7 @@ module _3gpp-nr-nrm-eutrancellrelation { Balancing Optimization (LBO) function."; reference "3GPP TS 36.331"; config false; + mandatory true; type types3gpp:QOffsetRange; } @@ -144,17 +134,18 @@ module _3gpp-nr-nrm-eutrancellrelation { } } - augment /me3gpp:ManagedElement/gnbcucp3gpp:GNBCUCPFunction/nrcellcu3gpp:NRCellCU { + augment "/me3gpp:ManagedElement/gnbcucp3gpp:GNBCUCPFunction/" + + "nrcellcu3gpp:NRCellCU" { list EUtranCellRelation { - description "Represents a relation between an NR cell and an E-UTRAN cell."; - reference "3GPP TS 28.541"; + description "Represents a relation between an NR cell + and an E-UTRAN cell."; + reference "3GPP TS 28.541"; key id; uses top3gpp:Top_Grp; container attributes { uses EUtranCellRelationGrp; } - uses mf3gpp:ManagedFunctionContainedClasses; } } } \ No newline at end of file diff --git a/yang-models/_3gpp-nr-nrm-eutranfreqrelation.yang b/yang-models/_3gpp-nr-nrm-eutranfreqrelation.yang index fce8aa7ff..69a683f0d 100755 --- a/yang-models/_3gpp-nr-nrm-eutranfreqrelation.yang +++ b/yang-models/_3gpp-nr-nrm-eutranfreqrelation.yang @@ -4,26 +4,24 @@ module _3gpp-nr-nrm-eutranfreqrelation { prefix "eutranfreqrel3gpp"; import _3gpp-common-yang-types { prefix types3gpp; } - import _3gpp-common-managed-function { prefix mf3gpp; } import _3gpp-common-managed-element { prefix me3gpp; } import _3gpp-common-top { prefix top3gpp; } import _3gpp-nr-nrm-gnbcucpfunction { prefix gnbcucp3gpp; } import _3gpp-nr-nrm-nrcellcu { prefix nrcellcu3gpp; } organization "3GPP SA5"; + contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "Defines the YANG mapping of the EUtranFreqRelation Information Object Class (IOC) that is part of the NR Network Resource Model (NRM)."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; + revision 2023-06-25 { reference CR0932 ; } revision 2019-10-28 { reference S5-193518 ; } - revision 2019-06-17 { - description "Initial revision"; - } + revision 2019-06-17 { reference "Initial revision"; } grouping EUtranFreqRelationGrp { description "Represents the EUtranFreqRelation IOC."; reference "3GPP TS 28.541"; - uses mf3gpp:ManagedFunctionGrp; leaf cellIndividualOffset { description "Offset applicable to a neighbouring cell. Used for @@ -31,22 +29,19 @@ module _3gpp-nr-nrm-eutranfreqrelation { Used by the HandOver parameter Optimization (HOO) function or Load Balancing Optimization (LBO) function."; reference "cellIndividualOffset in MeasObjectEUTRA in 3GPP TS 38.331"; - default 0; type types3gpp:QOffsetRange; } - leaf-list blackListEntry { + leaf-list blockListEntry { description "A list of Physical Cell Identities (PCIs) that are blacklisted 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."; - min-elements 0; type uint16 { range "0..1007"; } } @@ -83,7 +78,9 @@ module _3gpp-nr-nrm-eutranfreqrelation { leaf qOffsetFreq { description "The frequency specific offset applied when evaluating candidates for cell reselection."; - type int32; + type int32 { range "-24 | -22 | -20 | -18 | -16 | -14 | -12 | -10 " + + "| -8 | -6 | -5 | -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 " + + "| 8 | 10 | 12 | 14 | 16 | 18 | 20 | 22 | 24"; } default 0; } @@ -148,7 +145,7 @@ module _3gpp-nr-nrm-eutranfreqrelation { serving frequency. Each frequency of NR and E-UTRAN might have a specific threshold."; reference "ThreshX, LowQ in 3GPP TS 38.304"; - mandatory false; + mandatory true; type int32 { range "0..31"; } units dB; } @@ -186,12 +183,13 @@ module _3gpp-nr-nrm-eutranfreqrelation { leaf eUtranFrequencyRef { description "Reference to a corresponding EUtranFrequency instance."; - mandatory true; - type types3gpp:DistinguishedName; + mandatory true; + type types3gpp:DistinguishedName; } } - augment /me3gpp:ManagedElement/gnbcucp3gpp:GNBCUCPFunction/nrcellcu3gpp:NRCellCU { + augment "/me3gpp:ManagedElement/gnbcucp3gpp:GNBCUCPFunction/" + + "nrcellcu3gpp:NRCellCU" { list EUtranFreqRelation { description "Represents a frequency relation between an NR cell and an @@ -202,7 +200,6 @@ module _3gpp-nr-nrm-eutranfreqrelation { container attributes { uses EUtranFreqRelationGrp; } - uses mf3gpp:ManagedFunctionContainedClasses; } } } \ No newline at end of file -- GitLab From dc44dc95db35be9bc9e37e56e4e5e17cf358c9c2 Mon Sep 17 00:00:00 2001 From: "U-ERICSSON\\ETHBLL" Date: Fri, 11 Aug 2023 23:40:35 +0200 Subject: [PATCH 2/8] 28.623_Rel17_CR0252_28.541_Rel17_CR0932_YANG_Corrections --- yang-models/_3gpp-common-mnsregistry.yang | 8 ++- yang-models/_3gpp-common-trace.yang | 15 ++-- .../_3gpp-nr-nrm-eutranfreqrelation.yang | 4 +- yang-models/_3gpp-nr-nrm-nrcellrelation.yang | 69 +++++++++++++------ yang-models/_3gpp-nr-nrm-nrfreqrelation.yang | 9 +-- 5 files changed, 69 insertions(+), 36 deletions(-) diff --git a/yang-models/_3gpp-common-mnsregistry.yang b/yang-models/_3gpp-common-mnsregistry.yang index 84bb4332f..52023243a 100755 --- a/yang-models/_3gpp-common-mnsregistry.yang +++ b/yang-models/_3gpp-common-mnsregistry.yang @@ -13,7 +13,7 @@ module _3gpp-common-mnsregistry { Class (IOC) that is part of the Generic Network Resource Model (NRM)."; reference "3GPP TS 28.623 Generic Network Resource Model (NRM)"; - revision 2023-05-09 { reference "S5-216090"; } + revision 2023-07-25 { reference CR00252; } revision 2021-11-23 { reference "S5-216090"; } revision 2021-10-18 { reference "S5-215263"; } revision 2021-08-29 { reference "Initial revision, S5-214388"; } @@ -85,9 +85,11 @@ module _3gpp-common-mnsregistry { defined as the set of managed object instances that can be accessed using the Management Service."; - uses top3gpp:Top_Grp; key id; - uses MnsInfoGrp; + uses top3gpp:Top_Grp; + container attributes { + uses MnsInfoGrp; + } } } } diff --git a/yang-models/_3gpp-common-trace.yang b/yang-models/_3gpp-common-trace.yang index c81c0866b..a1fdd2546 100755 --- a/yang-models/_3gpp-common-trace.yang +++ b/yang-models/_3gpp-common-trace.yang @@ -22,6 +22,7 @@ module _3gpp-common-trace { Integration Reference Point (IRP); Information Service (IS)"; + revision 2023-07-25 { reference CR00252; } revision 2023-02-17 { reference "CR-0232"; } revision 2023-02-15 { reference "CR-0236"; } revision 2022-04-27 { reference "CR-0159"; } @@ -379,7 +380,7 @@ module _3gpp-common-trace { } } - leaf-list listOfNeTypes { + leaf-list listOfNETypes { type enumeration { enum MSC_SERVER; enum SGSN; @@ -404,19 +405,19 @@ module _3gpp-common-trace { allowed values"; } - leaf PLMNTarget { - type string; - mandatory true; + list pLMNTarget { + key "mcc mnc"; description "Specifies which PLMN that the subscriber of the session to be recorded uses as selected PLMN. PLMN Target might differ from the PLMN specified in the Trace Reference"; reference "Clause 5.9b of 3GPP TS 32.422"; + + uses types3gpp:PLMNId; } - leaf streamingTraceConsumerURI { + leaf traceReportingConsumerUri { when '../traceReportingFormat = "STREAMING"'; type inet:uri; - mandatory true; 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 @@ -425,7 +426,7 @@ module _3gpp-common-trace { reference "Clause 5.9 of 3GPP TS 32.422"; } - leaf traceCollectionEntityAddress { + leaf traceCollectionEntityIPAddress { when '../traceReportingFormat = "FILE_BASED" or ' +'../jobType = "LOGGED_MDT_ONLY" or ../jobType = "LOGGED_MBSFN_MDT"'; type union { diff --git a/yang-models/_3gpp-nr-nrm-eutranfreqrelation.yang b/yang-models/_3gpp-nr-nrm-eutranfreqrelation.yang index 69a683f0d..38d337f0c 100755 --- a/yang-models/_3gpp-nr-nrm-eutranfreqrelation.yang +++ b/yang-models/_3gpp-nr-nrm-eutranfreqrelation.yang @@ -34,14 +34,14 @@ module _3gpp-nr-nrm-eutranfreqrelation { leaf-list blockListEntry { description "A list of Physical Cell Identities (PCIs) that are - blacklisted in E-UTRAN measurements."; + exclude-listed in E-UTRAN measurements."; reference "3GPP TS 38.331"; type uint16 { range "0..1007"; } } leaf-list blockListEntryIdleMode { description "A list of Physical Cell Identities (PCIs) that are - blacklisted in SIB4 and SIB5."; + exclude-listed in SIB4 and SIB5."; type uint16 { range "0..1007"; } } diff --git a/yang-models/_3gpp-nr-nrm-nrcellrelation.yang b/yang-models/_3gpp-nr-nrm-nrcellrelation.yang index 6e2a77b91..861b3b370 100755 --- a/yang-models/_3gpp-nr-nrm-nrcellrelation.yang +++ b/yang-models/_3gpp-nr-nrm-nrcellrelation.yang @@ -15,6 +15,7 @@ module _3gpp-nr-nrm-nrcellrelation { Object Class (IOC) that is part of the NR Network Resource Model (NRM)."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; + revision 2023-06-25 { reference CR0932 ; } revision 2021-01-25 { reference CR-0454 ; } revision 2020-06-03 { reference S5-202333 ; } revision 2020-04-23 { reference CR0281 ; } @@ -36,11 +37,11 @@ module _3gpp-nr-nrm-nrcellrelation { description "Represents the NRCellRelation IOC."; reference "3GPP TS 28.541"; - leaf nRTCI { + leaf nRTCI { description "Target NR Cell Identifier. It consists of NR Cell Identifier (NCI) and Physical Cell Identifier of the target NR cell (nRPCI)."; - type uint64; + type uint64; } container cellIndividualOffset { @@ -50,64 +51,64 @@ module _3gpp-nr-nrm-nrcellrelation { sinrOffsetCSI-RS."; reference "cellIndividualOffset in MeasObjectNR in 3GPP TS 38.331"; - leaf rsrpOffsetSsb { + leaf rsrpOffsetSsb { description "Offset value of rsrpOffsetSSB."; default 0; - type types3gpp:QOffsetRange; + type types3gpp:QOffsetRange; } - leaf rsrqOffsetSsb{ + leaf rsrqOffsetSsb{ description "Offset value of rsrqOffsetSSB."; default 0; - type types3gpp:QOffsetRange; + type types3gpp:QOffsetRange; } - leaf sinrOffsetSsb { + leaf sinrOffsetSsb { description "Offset value of sinrOffsetSSB."; default 0; - type types3gpp:QOffsetRange; + type types3gpp:QOffsetRange; } - leaf rsrpOffsetCsiRs{ + leaf rsrpOffsetCsiRs{ description "Offset value of rsrpOffsetCSI-RS."; default 0; - type types3gpp:QOffsetRange; + type types3gpp:QOffsetRange; } - leaf rsrqOffsetCsiRs { + leaf rsrqOffsetCsiRs { description "Offset value of rsrqOffsetCSI-RS."; default 0; - type types3gpp:QOffsetRange; + type types3gpp:QOffsetRange; } - leaf sinrOffsetCsiRs { + leaf sinrOffsetCsiRs { description "Offset value of sinrOffsetCSI-RS."; default 0; - type types3gpp:QOffsetRange; + type types3gpp:QOffsetRange; } } - leaf nRFreqRelationRef { + leaf nRFreqRelationRef { description "Reference to a corresponding NRFreqRelation instance."; mandatory true; type types3gpp:DistinguishedName; } - leaf adjacentNRCellRef { + leaf adjacentNRCellRef { description "Reference to an adjacent NR cell (NRCellCU or ExternalNRCellCU)."; mandatory true; type types3gpp:DistinguishedName; } - leaf isRemoveAllowed { - type boolean; + leaf isRemoveAllowed { + type boolean; default true; description "True if the ANR function in the node is allowed to remove this relation."; } - leaf isHOAllowed { - type boolean; + leaf isHOAllowed { + type boolean; default true; description "True if handovers are allowed over this relation."; } @@ -124,6 +125,34 @@ module _3gpp-nr-nrm-nrcellrelation { changed to energy saving state."; type EnergySavingCoverage; } + + leaf isENDCAllowed { + type boolean; + mandatory true; + description "This indicates if EN-DC is allowed or prohibited. + If TRUE, the target cell is allowed to be used for EN-DC. + The target cell is referenced by the NRCellRelation that + contains this isENDCAllowed. + + If FALSE, EN-DC shall not be allowed."; + } + + leaf isMLBAllowed { + type boolean; + mandatory true; + description "This indicates if mobility load balancing is allowed or + prohibited from source cell to target cell. + + If TRUE, load balancing is allowed from source cell to target cell. + The source cell is identified by the name-containing NRCellCU of + the NRCellRelation that contains the isMLBAllowed. The target cell + is referenced by the NRCellRelation that contains this isLBAllowed. + In case of isHOAllowed is FALSE, mobility load balancing is + prohibited by handover from source cell to target cell. + + If FALSE, load balancing shall be prohibited from source cell to + target cell."; + } } augment /me3gpp:ManagedElement/gnbcucp3gpp:GNBCUCPFunction/nrcellcu3gpp:NRCellCU { diff --git a/yang-models/_3gpp-nr-nrm-nrfreqrelation.yang b/yang-models/_3gpp-nr-nrm-nrfreqrelation.yang index 3d25d85d0..0c571f295 100755 --- a/yang-models/_3gpp-nr-nrm-nrfreqrelation.yang +++ b/yang-models/_3gpp-nr-nrm-nrfreqrelation.yang @@ -15,6 +15,7 @@ module _3gpp-nr-nrm-nrfreqrelation { Object Class (IOC) that is part of the NR Network Resource Model (NRM)."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; + revision 2023-06-25 { reference CR0932 ; } revision 2020-04-23 { reference CR0281 ; } revision 2019-10-28 { reference S5-193518 ; } revision 2019-06-17 { @@ -72,17 +73,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."; + exclude-listed 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."; + exclude-listed in SIB4 and SIB5."; min-elements 0; type uint16 { range "0..1007"; } } -- GitLab From b3f9f1f4b1883b0c20e02418433927b917609213 Mon Sep 17 00:00:00 2001 From: "U-ERICSSON\\ETHBLL" Date: Fri, 11 Aug 2023 21:47:06 +0200 Subject: [PATCH 3/8] 28.623_Rel17_CR0265_Improve_Distinguished_Name_pattern_in_YANG --- yang-models/_3gpp-common-yang-types.yang | 82 +++++++++++++++++++++--- 1 file changed, 74 insertions(+), 8 deletions(-) diff --git a/yang-models/_3gpp-common-yang-types.yang b/yang-models/_3gpp-common-yang-types.yang index a837ccbb5..6cad18ea6 100755 --- a/yang-models/_3gpp-common-yang-types.yang +++ b/yang-models/_3gpp-common-yang-types.yang @@ -14,6 +14,7 @@ module _3gpp-common-yang-types { network slicing."; reference "3GPP TS 28.623"; + revision 2023-08-09 { reference CR-0265; } revision 2023-05-09 { reference CR-0249; } revision 2022-11-03 { reference "CR-0193"; } revision 2022-10-31 { reference CR-0195; } @@ -710,14 +711,79 @@ module _3gpp-common-yang-types { } } - typedef DistinguishedName { // TODO is this equivalent to TS 32.300 ? + /* DistinguishedName pattern is built up based on the + EBNF in 32.300 clause 7.3 EBNF of DN String Representation + + leaf DN { type string { // Same pattern as LocalDN + pattern '[A-Z][^,=+<>#;\\"\r\n*.]*=([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2}))(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?(,[A-Z][^,=+<>#;\\"\r\n*.]*=([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2}))(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?)*'; + } } + + leaf fullLocalDN { type string { // LocalRDN , { RDNSeparator , LocalRDN } RDNSeparator is a single , no space or \R allowed Me.mykey=1 allowed + // (fullLocalRDN)(,(fullLocalRDN))* + pattern '(([A-Z][^,=+<>#;\\"\r\n*.]*|([A-Z][^,=+<>#;\\"\r\n*.]*\.[a-z][^,=+<>#;\\"\r\n*.]*))=(([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2}))(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?))(,(([A-Z][^,=+<>#;\\"\r\n*.]*|([A-Z][^,=+<>#;\\"\r\n*.]*\.[a-z][^,=+<>#;\\"\r\n*.]*))=(([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2}))(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?)))*'; + } } + + leaf LocalDN { type string { // LocalRDN , { RDNSeparator , LocalRDN } RDNSeparator is a single , no space or \R allowed + // LocalRDN(,LocalRDN)* + pattern '[A-Z][^,=+<>#;\\"\r\n*.]*=([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2}))(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?(,[A-Z][^,=+<>#;\\"\r\n*.]*=([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2}))(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?)*'; + } } + + leaf fullLocalRDN { type string { // same as fullLocalDNAttributeTypeAndValue + pattern '([A-Z][^,=+<>#;\\"\r\n*.]*|([A-Z][^,=+<>#;\\"\r\n*.]*\.[a-z][^,=+<>#;\\"\r\n*.]*))=(([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2}))(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?)'; + } } + + leaf LocalRDN { type string { // same as LocalDNAttributeTypeAndValue + pattern '[A-Z][^,=+<>#;\\"\r\n*.]*=([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2}))(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?'; + } } + + leaf fullLocalDNAttributeTypeAndValue { type string { // LocalDNAttributeType , AttributeTypeAndValueSeparator , RegularAttributeValue + // pattern LocalDNAttributeType=RegularAttributeValue + pattern '([A-Z][^,=+<>#;\\"\r\n*.]*|([A-Z][^,=+<>#;\\"\r\n*.]*\.[a-z][^,=+<>#;\\"\r\n*.]*))=(([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2}))(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?)'; + } } + + // limitation: NamesOfClassAndNamingAttributenot supported Me.mykey=1 + leaf LocalDNAttributeTypeAndValue { type string { + // ebnf1 LocalDNAttributeType , AttributeTypeAndValueSeparator , RegularAttributeValue + // ebnf2-limited NameOfClassWithIdAttribute , AttributeTypeAndValueSeparator , RegularAttributeValue + // pattern NameOfClassWithIdAttribute=RegularAttributeValue + pattern '[A-Z][^,=+<>#;\\"\r\n*.]*=([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2}))(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?'; + } } + + leaf LocalDNAttributeType { type string { // NameOfClassWithIdAttribute | NamesOfClassAndNamingAttribute RDNSeparator is a single , no space or \R allowed + // NameOfClassWithIdAttribute|NamesOfClassAndNamingAttribute + pattern '[A-Z][^,=+<>#;\\"\r\n*.]*|([A-Z][^,=+<>#;\\"\r\n*.]*\.[a-z][^,=+<>#;\\"\r\n*.]*)'; + } } + + leaf RegularAttributeValue { type string { // ( AttributeValueChar – SpaceChar ) , [ { AttributeValueChar } , ( AttributeValueChar – SpaceChar ) ] + pattern '([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2}))(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?' ; + } } + + leaf NamesOfClassAndNamingAttribute { type string { // ClassName , ClassNamingAttributeSeparator , NamingAttributeName + // pattern: ClassName\.NamingAttributeName + pattern '[A-Z][^,=+<>#;\\"\r\n*.]*\.[a-z][^,=+<>#;\\"\r\n*.]*' ; + } } + + leaf restrictiveClassName { type string { // + pattern '[a-zA-Z][a-zA-Z0-9-_]*' ; + } } + + leaf ClassName { type string { // CapitalLetterChar , { LocalDNAttributeTypeChar } + pattern '[A-Z][^,=+<>#;\\"\r\n*.]*' ; + } } + + leaf NamingAttributeName { type string { // SmallLetterChar , { LocalDNAttributeTypeChar } + pattern '[a-z][^,=+<>#;\\"\r\n*.]*' ; + } } + + */ + typedef DistinguishedName { type string { - pattern '([a-zA-Z][a-zA-Z0-9-]*=(\\( |#|\\|>|<|;|"|\+|,|[a-fA-F0-9]{2})|[^\\><;"+,# ])' - + '((\\( |#|\\|>|<|;|"|\+|,|[a-fA-F0-9]{2})|[^\\><;"+,])*' - + '(\\( |#|\\|>|<|;|"|\+|,|[a-fA-F0-9]{2})|[^\\><;"+, ]))?' - + '[,\+])*[a-zA-Z][a-zA-Z0-9-]*=(\\( |#|\\|>|<|;|"|\+|,|[a-fA-F0-9]{2})|[^\\><;"+,# ])' - + '((\\( |#|\\|>|<|;|"|\+|,|[a-fA-F0-9]{2})' - + '|[^\\><;"+,])*(\\( |#|\\|>|<|;|"|\+|,|[a-fA-F0-9]{2})|[^\\><;"+, ]))?'; + pattern '[A-Z][^,=+<>#;\\"\r\n*.]*=([^,=+<>#;\\"\r\n* ]|' + + '(\\[a-fA-F0-9]{2}))(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*' + + '([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?' + + '(,[A-Z][^,=+<>#;\\"\r\n*.]*=([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2}))' + + '(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*' + + '([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?)*'; } description "Represents the international standard for the representation of Distinguished Name (RFC 4512). @@ -737,7 +803,7 @@ module _3gpp-common-yang-types { CN=John Smith,OU=Sales,O=ACME Limited,L=Moab,ST=Utah,C=US"; reference "RFC 4512 Lightweight Directory Access Protocol (LDAP): Directory Information Models"; - } // recheck regexp it doesn't handle posix [:cntrl:] + } typedef QOffsetRange { type int8 { -- GitLab From b7d6f79dd347650451a3430766d1bed44c82e36d Mon Sep 17 00:00:00 2001 From: "U-ERICSSON\\ETHBLL" Date: Fri, 11 Aug 2023 22:07:01 +0200 Subject: [PATCH 4/8] Updated DistinguishedName description --- yang-models/_3gpp-common-yang-types.yang | 26 ++++++++---------------- 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/yang-models/_3gpp-common-yang-types.yang b/yang-models/_3gpp-common-yang-types.yang index 6cad18ea6..cc2323312 100755 --- a/yang-models/_3gpp-common-yang-types.yang +++ b/yang-models/_3gpp-common-yang-types.yang @@ -785,24 +785,14 @@ module _3gpp-common-yang-types { + '(([^,=+<>#;\\"\r\n*]|(\\[a-fA-F0-9]{2}))*' + '([^,=+<>#;\\"\r\n* ]|(\\[a-fA-F0-9]{2})))?)*'; } - description "Represents the international standard for the representation - of Distinguished Name (RFC 4512). - The format of the DistinguishedName REGEX is: - {AttributeType = AttributeValue} - - AttributeType consists of alphanumeric and hyphen (OIDs not allowed). - All other characters are restricted. - The Attribute value cannot contain control characters or the - following characters : \\ > < ; \" + , (Comma) and White space - The Attribute value can contain the following characters if they - are excaped : \\ > < ; \" + , (Comma) and White space - The Attribute value can contain control characters if its an escaped - double digit hex number. - Examples could be - UID=nobody@example.com,DC=example,DC=com - CN=John Smith,OU=Sales,O=ACME Limited,L=Moab,ST=Utah,C=US"; - reference "RFC 4512 Lightweight Directory Access Protocol (LDAP): - Directory Information Models"; + description "Represents the 3GPP standard for DistinguishedName. + + Limitations: + - RDNSeparator: don't allow SpaceChar or CarriageReturnChar + - NullDN: Disallow nullDN that is the same as not providing a DN + - NamesOfClassAndNamingAttribute format not allowed + (eg. ManagedElement.mykey=345436)"; + reference "3GPP TS 32.300"; } typedef QOffsetRange { -- GitLab From f03d835ab4c0b948365a85b13d3caa303de86888 Mon Sep 17 00:00:00 2001 From: Jan Groenendijk Date: Wed, 26 Jul 2023 10:14:18 +0000 Subject: [PATCH 5/8] Update _3gpp-ns-nrm-serviceprofile.yang, replace models with mode --- yang-models/_3gpp-ns-nrm-serviceprofile.yang | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/yang-models/_3gpp-ns-nrm-serviceprofile.yang b/yang-models/_3gpp-ns-nrm-serviceprofile.yang index d3630dc23..db3fcd9e7 100755 --- a/yang-models/_3gpp-ns-nrm-serviceprofile.yang +++ b/yang-models/_3gpp-ns-nrm-serviceprofile.yang @@ -362,7 +362,7 @@ submodule _3gpp-ns-nrm-serviceprofile { type ns3cmn:Support-enum; } } - list v2XCommModels { + list v2XCommMode { description "An attribute specifies whether or not the V2X communication mode is supported by the network slice."; config false; @@ -500,4 +500,4 @@ submodule _3gpp-ns-nrm-serviceprofile { } } } -} \ No newline at end of file +} -- GitLab From 95ad9ffbe834be41b9608169ae1bfc258d522695 Mon Sep 17 00:00:00 2001 From: scottma Date: Fri, 11 Aug 2023 14:43:27 +0000 Subject: [PATCH 6/8] Update _3gpp-common-subscription-control.yang --- yang-models/_3gpp-common-subscription-control.yang | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/yang-models/_3gpp-common-subscription-control.yang b/yang-models/_3gpp-common-subscription-control.yang index 6594d1857..d31016d0c 100755 --- a/yang-models/_3gpp-common-subscription-control.yang +++ b/yang-models/_3gpp-common-subscription-control.yang @@ -16,6 +16,7 @@ module _3gpp-common-subscription-control { Solution Set (SS) definitions 3GPP TS 28.623"; + revision 2023-08-11 { reference "CR-0259"; } revision 2022-10-31 { reference CR-0195; } revision 2021-01-16 { reference "CR-0120"; } revision 2020-08-26 { reference "CR-0106"; } @@ -172,8 +173,8 @@ module _3gpp-common-subscription-control { list HeartbeatControl { description "MnS consumers (i.e. notification recipients) use heartbeat - notifications to monitor the communication channels between them and - data reporting MnS producers emitting notifications such as + notifications to monitor the communication channels between themselves + and MnS producers configured to emit notifications such as notifyNewAlarm and notifyFileReady. A HeartbeatControl instance allows controlling the emission of @@ -205,7 +206,9 @@ module _3gpp-common-subscription-control { Creation and deletion of HeartbeatControl instances by MnS Consumers is optional; when not supported, the HeartbeatControl instances may be - created and deleted by the system or be pre-installed. + created and deleted by the system or be pre-installed. A single + HeartbeatControl instance may emit heartbeats for multiple MnS, + identified by MNSAgent in the notification. Whether and when to emit heartbeat notifications is controlled by HeartbeatControl. Subscription for heartbeat is not supported via the @@ -221,4 +224,4 @@ module _3gpp-common-subscription-control { } } } -} \ No newline at end of file +} -- GitLab From 2cbc7498d95009110037ef52bf775a1f1e165e0a Mon Sep 17 00:00:00 2001 From: scottma Date: Thu, 24 Aug 2023 15:03:10 +0000 Subject: [PATCH 7/8] Update _3gpp-common-subscription-control.yang --- yang-models/_3gpp-common-subscription-control.yang | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/yang-models/_3gpp-common-subscription-control.yang b/yang-models/_3gpp-common-subscription-control.yang index d31016d0c..58688a029 100755 --- a/yang-models/_3gpp-common-subscription-control.yang +++ b/yang-models/_3gpp-common-subscription-control.yang @@ -174,8 +174,7 @@ module _3gpp-common-subscription-control { list HeartbeatControl { description "MnS consumers (i.e. notification recipients) use heartbeat notifications to monitor the communication channels between themselves - and MnS producers configured to emit notifications such as - notifyNewAlarm and notifyFileReady. + and MnS producers configured to emit notifications. A HeartbeatControl instance allows controlling the emission of heartbeat notifications by MnS producers. The recipients of heartbeat @@ -206,9 +205,7 @@ module _3gpp-common-subscription-control { Creation and deletion of HeartbeatControl instances by MnS Consumers is optional; when not supported, the HeartbeatControl instances may be - created and deleted by the system or be pre-installed. A single - HeartbeatControl instance may emit heartbeats for multiple MnS, - identified by MNSAgent in the notification. + created and deleted by the system or be pre-installed. Whether and when to emit heartbeat notifications is controlled by HeartbeatControl. Subscription for heartbeat is not supported via the -- GitLab From c7f61e213e41a3658f82ae68a71ed8e4a42e97a5 Mon Sep 17 00:00:00 2001 From: "U-ERICSSON\\ETHBLL" Date: Fri, 15 Sep 2023 14:25:50 +0200 Subject: [PATCH 8/8] Adding the content of 28.623 CR0242 https://forge.3gpp.org/rep/sa5/MnS/-/merge_requests/638 because it needed local rebasing --- yang-models/_3gpp-common-mnsregistry.yang | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/yang-models/_3gpp-common-mnsregistry.yang b/yang-models/_3gpp-common-mnsregistry.yang index 52023243a..f0c3a3d07 100755 --- a/yang-models/_3gpp-common-mnsregistry.yang +++ b/yang-models/_3gpp-common-mnsregistry.yang @@ -13,6 +13,7 @@ module _3gpp-common-mnsregistry { Class (IOC) that is part of the Generic Network Resource Model (NRM)."; reference "3GPP TS 28.623 Generic Network Resource Model (NRM)"; + revision 2023-09-09 { reference CR0242; } revision 2023-07-25 { reference CR00252; } revision 2021-11-23 { reference "S5-216090"; } revision 2021-10-18 { reference "S5-215263"; } @@ -70,6 +71,9 @@ module _3gpp-common-mnsregistry { and provides the data required to support its discovery. It is name-contained by MnsRegistry. + This specification does not specify how 'MnsInfo' objects are + created and maintained. + This information is used by the consumer to discover the producers of specific Management Services and to derive the addresses of the Management Service. @@ -92,5 +96,5 @@ module _3gpp-common-mnsregistry { } } } - } + } } \ No newline at end of file -- GitLab