From 324f4af61b6afc8302d8ce02f3ca1ed28bdbd9fe Mon Sep 17 00:00:00 2001 From: Zu Qiang Date: Sat, 27 Sep 2025 12:34:34 -0500 Subject: [PATCH 01/15] Update file _3gpp-common-trace.yang --- yang-models/_3gpp-common-trace.yang | 71 +++++++++++++++++++++-------- 1 file changed, 52 insertions(+), 19 deletions(-) diff --git a/yang-models/_3gpp-common-trace.yang b/yang-models/_3gpp-common-trace.yang index cbcf5b179..5b69bbd7e 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 2025-10-07 { reference "CR-0xxx" ; } revision 2025-08-07 { reference "CR-0551 CR-0552 CR-0562" ; } revision 2025-05-07 { reference "CR-0532 CR-0536 CR-0540" ; } revision 2025-02-07 { reference "CR-0504" ; } @@ -118,12 +119,12 @@ module _3gpp-common-trace { choice AreaScopeChoice { case eutran-only { - leaf-list eutraCellIdList { - type types3gpp:EutraCellId; - min-elements 1; - max-elements 32; - description "List of E-UTRAN cells identified by E-UTRAN-CGI"; - } + leaf-list eutraCellIdList { + type types3gpp:EutraCellId; + min-elements 1; + max-elements 32; + description "List of E-UTRAN cells identified by E-UTRAN-CGI"; + } } case tac { leaf-list tacList { @@ -153,23 +154,31 @@ module _3gpp-common-trace { min-elements 1; uses types3gpp:NpnIdGrp; leaf idx { type string; } - } + } leaf-list nrCellIdList { - must 'not(../taiList)'; - type types3gpp:NrCellId; - max-elements 32; - description "List of NR cells identified by NG-RAN CGI"; + must 'not(../taiList)'; + type types3gpp:NrCellId; + max-elements 32; + description "List of NR cells identified by NG-RAN CGI"; + } + list taiList { + must 'not(../nrCellIdList)'; + description "Tracking Area Identity list"; + key idx; + max-elements 8; + leaf idx { type string; } + uses types3gpp:TaiGrp; + } + list nTNGeographicalList { + must 'not(../nrCellIdList)'; + description "NTN Geographical Area"; + key idx; + max-elements 8; + leaf idx { type string; } + uses types3gpp:NTNGeographicalGrp; } - list taiList { - must 'not(../nrCellIdList)'; - description "Tracking Area Identity list"; - key idx; - max-elements 8; - leaf idx { type string; } - uses types3gpp:TaiGrp; } } - } list sliceIdList { description "Network Slice Id list"; @@ -181,6 +190,30 @@ module _3gpp-common-trace { } } + grouping NTNGeographicalGrp{ + description "represents the NTN Geographical Area"; + leaf referenceLocation { + description "It specifies the geographical coordinates of the reference + point, defined as ReferenceLocation-r17 in TS 38.331"; + type string; + } + leaf distanceRadius { + description "It specifies the radius distance from a geographical + coordinates reference point, defined by referenceLocation. Each value + represents 50m distance."; + type int64; + } + + list geoPolygon { + max-elements 1; + key idx; + leaf idx { type string; } + uses types5g3gpp:GeoCoordinateGrp; + description "It specifies the geographical area with a polygon. The + polygon is specified by its corners."; + } + } + grouping ExcessPacketDelayThresholdsGrp { description "Represents the ExcessPacketDelayThresholds dataType. This <> defines a excess packet delay threshold information -- GitLab From fdb1bf0701f2673eb8b914160af9cd85d0d6c5ca Mon Sep 17 00:00:00 2001 From: Zu Qiang Date: Sat, 27 Sep 2025 12:37:31 -0500 Subject: [PATCH 02/15] Update file _3gpp-common-trace.yang --- yang-models/_3gpp-common-trace.yang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yang-models/_3gpp-common-trace.yang b/yang-models/_3gpp-common-trace.yang index 5b69bbd7e..3718dac70 100755 --- a/yang-models/_3gpp-common-trace.yang +++ b/yang-models/_3gpp-common-trace.yang @@ -175,7 +175,7 @@ module _3gpp-common-trace { key idx; max-elements 8; leaf idx { type string; } - uses types3gpp:NTNGeographicalGrp; + uses NTNGeographicalGrp; } } } -- GitLab From a3103555edb6e53d0b49b462ca414cc50474685f Mon Sep 17 00:00:00 2001 From: Zu Qiang Date: Sat, 27 Sep 2025 12:42:09 -0500 Subject: [PATCH 03/15] Update file _3gpp-common-trace.yang --- yang-models/_3gpp-common-trace.yang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yang-models/_3gpp-common-trace.yang b/yang-models/_3gpp-common-trace.yang index 3718dac70..2ad8c7f7a 100755 --- a/yang-models/_3gpp-common-trace.yang +++ b/yang-models/_3gpp-common-trace.yang @@ -208,7 +208,7 @@ module _3gpp-common-trace { max-elements 1; key idx; leaf idx { type string; } - uses types5g3gpp:GeoCoordinateGrp; + uses types3gpp:GeoCoordinateGrp; description "It specifies the geographical area with a polygon. The polygon is specified by its corners."; } -- GitLab From 2e9b682c36122309a58f1d36b01b7ce6bf29d8b2 Mon Sep 17 00:00:00 2001 From: Zu Qiang Date: Sun, 28 Sep 2025 08:35:10 -0500 Subject: [PATCH 04/15] Update 2 files - /yang-models/_3gpp-common-trace.yang - /yang-models/_3gpp-common-yang-types.yang --- yang-models/_3gpp-common-trace.yang | 30 +++--------------------- yang-models/_3gpp-common-yang-types.yang | 19 ++++++++++++++- 2 files changed, 21 insertions(+), 28 deletions(-) diff --git a/yang-models/_3gpp-common-trace.yang b/yang-models/_3gpp-common-trace.yang index 2ad8c7f7a..772bf2163 100755 --- a/yang-models/_3gpp-common-trace.yang +++ b/yang-models/_3gpp-common-trace.yang @@ -163,19 +163,19 @@ module _3gpp-common-trace { } list taiList { must 'not(../nrCellIdList)'; - description "Tracking Area Identity list"; + description "geographical areas for NTN MDT"; key idx; max-elements 8; leaf idx { type string; } uses types3gpp:TaiGrp; } - list nTNGeographicalList { + list nTNGeoAreaList { must 'not(../nrCellIdList)'; description "NTN Geographical Area"; key idx; max-elements 8; leaf idx { type string; } - uses NTNGeographicalGrp; + uses types3gpp:GeoAreaGrp; } } } @@ -190,30 +190,6 @@ module _3gpp-common-trace { } } - grouping NTNGeographicalGrp{ - description "represents the NTN Geographical Area"; - leaf referenceLocation { - description "It specifies the geographical coordinates of the reference - point, defined as ReferenceLocation-r17 in TS 38.331"; - type string; - } - leaf distanceRadius { - description "It specifies the radius distance from a geographical - coordinates reference point, defined by referenceLocation. Each value - represents 50m distance."; - type int64; - } - - list geoPolygon { - max-elements 1; - key idx; - leaf idx { type string; } - uses types3gpp:GeoCoordinateGrp; - description "It specifies the geographical area with a polygon. The - polygon is specified by its corners."; - } - } - grouping ExcessPacketDelayThresholdsGrp { description "Represents the ExcessPacketDelayThresholds dataType. This <> defines a excess packet delay threshold information diff --git a/yang-models/_3gpp-common-yang-types.yang b/yang-models/_3gpp-common-yang-types.yang index bba864e28..8f32f4c57 100755 --- a/yang-models/_3gpp-common-yang-types.yang +++ b/yang-models/_3gpp-common-yang-types.yang @@ -16,7 +16,7 @@ module _3gpp-common-yang-types { TTA, TTC). All rights reserved."; reference "3GPP TS 28.623"; - + revision 2025-10-07 { reference "CR-0xxx" ; } revision 2025-08-31 { reference "CR-0551 CR-0556 CR-0562"; } revision 2025-02-19 { reference CR-0512; } revision 2025-02-07 { reference CR-0492; } @@ -665,6 +665,23 @@ module _3gpp-common-yang-types { uses GeoCoordinateGrp; } + + list geoCircle { + description "a geographical circle identified by reference location and + associated distance radius" + leaf referenceLocation { + description "Reference location of the serving cell provided via NTN + (quasi)-Earth fixed cell. This field is only present in an NTN cell. + It is defined as ReferenceLocation-r17 in TS 38.331"; + type string; + } + leaf distanceRadius { + description "It specifies the radius distance from a geographical + coordinates reference point, defined by referenceLocation. Each value + represents 50m distance. This field is only present in an NTN cell."; + type uint16; + } + } } typedef AmfRegionId { -- GitLab From c134eb6322e7e92270bfc1775255212c1e5065c7 Mon Sep 17 00:00:00 2001 From: Zu Qiang Date: Sun, 28 Sep 2025 08:36:50 -0500 Subject: [PATCH 05/15] Update file _3gpp-common-yang-types.yang --- yang-models/_3gpp-common-yang-types.yang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yang-models/_3gpp-common-yang-types.yang b/yang-models/_3gpp-common-yang-types.yang index 8f32f4c57..2d2d1ef78 100755 --- a/yang-models/_3gpp-common-yang-types.yang +++ b/yang-models/_3gpp-common-yang-types.yang @@ -668,7 +668,7 @@ module _3gpp-common-yang-types { list geoCircle { description "a geographical circle identified by reference location and - associated distance radius" + associated distance radius"; leaf referenceLocation { description "Reference location of the serving cell provided via NTN (quasi)-Earth fixed cell. This field is only present in an NTN cell. -- GitLab From 63a1ff389d4ef55ab9aee2c245c922a62b1be01f Mon Sep 17 00:00:00 2001 From: Zu Qiang Date: Sun, 28 Sep 2025 08:42:20 -0500 Subject: [PATCH 06/15] Update file _3gpp-common-yang-types.yang --- yang-models/_3gpp-common-yang-types.yang | 76 ++++++++++++++++++------ 1 file changed, 58 insertions(+), 18 deletions(-) diff --git a/yang-models/_3gpp-common-yang-types.yang b/yang-models/_3gpp-common-yang-types.yang index 2d2d1ef78..afc6dd8fc 100755 --- a/yang-models/_3gpp-common-yang-types.yang +++ b/yang-models/_3gpp-common-yang-types.yang @@ -958,50 +958,90 @@ module _3gpp-common-yang-types { 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})))?)*'; + 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 + 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})))?)))*'; + 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 + 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})))?)*'; + 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 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})))?'; + 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 + 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})))?)'; + 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 + // 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})))?'; + 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 + 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*.]*)'; + 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 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 + leaf NamesOfClassAndNamingAttribute { type string { // ClassName , + ClassNamingAttributeSeparator , NamingAttributeName // pattern: ClassName\.NamingAttributeName pattern '[A-Z][^,=+<>#;\\"\r\n*.]*\.[a-z][^,=+<>#;\\"\r\n*.]*' ; } } -- GitLab From ba6358050534e2c966ee73d245305cd9a2990106 Mon Sep 17 00:00:00 2001 From: Zu Qiang Date: Sun, 28 Sep 2025 08:44:28 -0500 Subject: [PATCH 07/15] Update file _3gpp-common-yang-types.yang --- yang-models/_3gpp-common-yang-types.yang | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/yang-models/_3gpp-common-yang-types.yang b/yang-models/_3gpp-common-yang-types.yang index afc6dd8fc..567dba4db 100755 --- a/yang-models/_3gpp-common-yang-types.yang +++ b/yang-models/_3gpp-common-yang-types.yang @@ -1050,11 +1050,13 @@ module _3gpp-common-yang-types { pattern '[a-zA-Z][a-zA-Z0-9-_]*' ; } } - leaf ClassName { type string { // CapitalLetterChar , { LocalDNAttributeTypeChar } + leaf ClassName { type string { // CapitalLetterChar , + { LocalDNAttributeTypeChar } pattern '[A-Z][^,=+<>#;\\"\r\n*.]*' ; } } - leaf NamingAttributeName { type string { // SmallLetterChar , { LocalDNAttributeTypeChar } + leaf NamingAttributeName { type string { // SmallLetterChar , + { LocalDNAttributeTypeChar } pattern '[a-z][^,=+<>#;\\"\r\n*.]*' ; } } -- GitLab From 44dc5194bee9803e252f25bf413fee010f9f457b Mon Sep 17 00:00:00 2001 From: Zu Qiang Date: Sun, 28 Sep 2025 08:48:01 -0500 Subject: [PATCH 08/15] Update file _3gpp-common-yang-types.yang --- yang-models/_3gpp-common-yang-types.yang | 82 ++++++------------------ 1 file changed, 20 insertions(+), 62 deletions(-) diff --git a/yang-models/_3gpp-common-yang-types.yang b/yang-models/_3gpp-common-yang-types.yang index 567dba4db..2d2d1ef78 100755 --- a/yang-models/_3gpp-common-yang-types.yang +++ b/yang-models/_3gpp-common-yang-types.yang @@ -958,90 +958,50 @@ module _3gpp-common-yang-types { 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})))?)*'; + 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 + 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})))?)))*'; + 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 + 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})))?)*'; + 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 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})))?'; + 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 + 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})))?)'; + 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 + // 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})))?'; + 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 + 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*.]*)'; + 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 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 + leaf NamesOfClassAndNamingAttribute { type string { // ClassName , ClassNamingAttributeSeparator , NamingAttributeName // pattern: ClassName\.NamingAttributeName pattern '[A-Z][^,=+<>#;\\"\r\n*.]*\.[a-z][^,=+<>#;\\"\r\n*.]*' ; } } @@ -1050,13 +1010,11 @@ module _3gpp-common-yang-types { pattern '[a-zA-Z][a-zA-Z0-9-_]*' ; } } - leaf ClassName { type string { // CapitalLetterChar , - { LocalDNAttributeTypeChar } + leaf ClassName { type string { // CapitalLetterChar , { LocalDNAttributeTypeChar } pattern '[A-Z][^,=+<>#;\\"\r\n*.]*' ; } } - leaf NamingAttributeName { type string { // SmallLetterChar , - { LocalDNAttributeTypeChar } + leaf NamingAttributeName { type string { // SmallLetterChar , { LocalDNAttributeTypeChar } pattern '[a-z][^,=+<>#;\\"\r\n*.]*' ; } } -- GitLab From 33f9964025de2cff58ff45bfd9174367598420b3 Mon Sep 17 00:00:00 2001 From: Zu Qiang Date: Mon, 29 Sep 2025 07:01:11 -0500 Subject: [PATCH 09/15] Update file _3gpp-common-trace.yang --- yang-models/_3gpp-common-trace.yang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yang-models/_3gpp-common-trace.yang b/yang-models/_3gpp-common-trace.yang index 772bf2163..46fbe960e 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 2025-10-07 { reference "CR-0xxx" ; } + revision 2025-10-07 { reference "CR-0xxy" ; } revision 2025-08-07 { reference "CR-0551 CR-0552 CR-0562" ; } revision 2025-05-07 { reference "CR-0532 CR-0536 CR-0540" ; } revision 2025-02-07 { reference "CR-0504" ; } -- GitLab From bcd22fd07f9b0bf2f22f4bb2ae35258c595f780e Mon Sep 17 00:00:00 2001 From: Zu Qiang Date: Mon, 29 Sep 2025 07:15:33 -0500 Subject: [PATCH 10/15] Update file _3gpp-common-yang-types.yang --- yang-models/_3gpp-common-yang-types.yang | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/yang-models/_3gpp-common-yang-types.yang b/yang-models/_3gpp-common-yang-types.yang index 2d2d1ef78..0877a201b 100755 --- a/yang-models/_3gpp-common-yang-types.yang +++ b/yang-models/_3gpp-common-yang-types.yang @@ -662,13 +662,16 @@ module _3gpp-common-yang-types { key "latitude longitude"; min-elements 3; ordered-by user; - + key idx; + leaf idx { type string; } uses GeoCoordinateGrp; } list geoCircle { description "a geographical circle identified by reference location and associated distance radius"; + key idx; + leaf idx { type string; } leaf referenceLocation { description "Reference location of the serving cell provided via NTN (quasi)-Earth fixed cell. This field is only present in an NTN cell. -- GitLab From f6c193407e24d68c4f799fefa344705c6b74c765 Mon Sep 17 00:00:00 2001 From: Zu Qiang Date: Mon, 29 Sep 2025 07:31:40 -0500 Subject: [PATCH 11/15] Update file _3gpp-common-yang-types.yang --- yang-models/_3gpp-common-yang-types.yang | 39 +++++++++++++----------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/yang-models/_3gpp-common-yang-types.yang b/yang-models/_3gpp-common-yang-types.yang index 0877a201b..51b798efe 100755 --- a/yang-models/_3gpp-common-yang-types.yang +++ b/yang-models/_3gpp-common-yang-types.yang @@ -650,11 +650,29 @@ module _3gpp-common-yang-types { type Altitude; } } + + grouping geoCircleGrp { + description "a geographical circle identified by reference location and + associated distance radius"; + + leaf referenceLocation { + description "Reference location of the serving cell provided via NTN + (quasi)-Earth fixed cell. This field is only present in an NTN cell. + It is defined as ReferenceLocation-r17 in TS 38.331"; + type string; + } + leaf distanceRadius { + description "It specifies the radius distance from a geographical + coordinates reference point, defined by referenceLocation. Each value + represents 50m distance. This field is only present in an NTN cell."; + type uint16; + } + } + grouping GeoAreaGrp { description "This data type defines a geographical area. - The geo-area is defined using a convex polygon in the attribute - 'geoPolygon'."; + The geo-area is either a 'geoPolygon' or a 'geoCircle'."; list geoPolygon { description "Specifies the geographical area with a convex polygon. @@ -662,8 +680,6 @@ module _3gpp-common-yang-types { key "latitude longitude"; min-elements 3; ordered-by user; - key idx; - leaf idx { type string; } uses GeoCoordinateGrp; } @@ -671,19 +687,8 @@ module _3gpp-common-yang-types { description "a geographical circle identified by reference location and associated distance radius"; key idx; - leaf idx { type string; } - leaf referenceLocation { - description "Reference location of the serving cell provided via NTN - (quasi)-Earth fixed cell. This field is only present in an NTN cell. - It is defined as ReferenceLocation-r17 in TS 38.331"; - type string; - } - leaf distanceRadius { - description "It specifies the radius distance from a geographical - coordinates reference point, defined by referenceLocation. Each value - represents 50m distance. This field is only present in an NTN cell."; - type uint16; - } + leaf idx { type uint16; } + uses geoCircleGrp; } } -- GitLab From 0be19f958a6f9f70925ea39b47c345828b9da64d Mon Sep 17 00:00:00 2001 From: Zu Qiang Date: Mon, 29 Sep 2025 07:39:59 -0500 Subject: [PATCH 12/15] Update file _3gpp-common-yang-types.yang --- yang-models/_3gpp-common-yang-types.yang | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/yang-models/_3gpp-common-yang-types.yang b/yang-models/_3gpp-common-yang-types.yang index 51b798efe..e00506bc7 100755 --- a/yang-models/_3gpp-common-yang-types.yang +++ b/yang-models/_3gpp-common-yang-types.yang @@ -651,7 +651,7 @@ module _3gpp-common-yang-types { } } - grouping geoCircleGrp { + grouping GeoCircleGrp { description "a geographical circle identified by reference location and associated distance radius"; @@ -667,6 +667,7 @@ module _3gpp-common-yang-types { coordinates reference point, defined by referenceLocation. Each value represents 50m distance. This field is only present in an NTN cell."; type uint16; + units "50 meters"; } } @@ -688,7 +689,7 @@ module _3gpp-common-yang-types { associated distance radius"; key idx; leaf idx { type uint16; } - uses geoCircleGrp; + uses GeoCircleGrp; } } -- GitLab From 6856fce4f2449ce293031704e920b5205d144246 Mon Sep 17 00:00:00 2001 From: Zu Qiang Date: Tue, 30 Sep 2025 06:28:14 -0500 Subject: [PATCH 13/15] Update file _3gpp-common-trace.yang --- yang-models/_3gpp-common-trace.yang | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/yang-models/_3gpp-common-trace.yang b/yang-models/_3gpp-common-trace.yang index 46fbe960e..e874e0da1 100755 --- a/yang-models/_3gpp-common-trace.yang +++ b/yang-models/_3gpp-common-trace.yang @@ -163,20 +163,27 @@ module _3gpp-common-trace { } list taiList { must 'not(../nrCellIdList)'; - description "geographical areas for NTN MDT"; + description "Tracking Area Identity list"; key idx; max-elements 8; leaf idx { type string; } uses types3gpp:TaiGrp; } - list nTNGeoAreaList { + list ntnGeoAreaList { must 'not(../nrCellIdList)'; - description "NTN Geographical Area"; + description "geographical areas for NTN MDT"; key idx; max-elements 8; leaf idx { type string; } uses types3gpp:GeoAreaGrp; } + list ntnPlmnIdList { + must 'not(../nrCellIdList)'; + description "PLMN ID List for NTN MDT"; + key idx; + leaf idx { type string; } + uses types3gpp:PLMNId; + } } } -- GitLab From 51a08f374458cc631c840a7db1316540fe7e16ee Mon Sep 17 00:00:00 2001 From: Zu Qiang Date: Tue, 30 Sep 2025 15:44:47 -0500 Subject: [PATCH 14/15] Update 2 files - /yang-models/_3gpp-common-trace.yang - /yang-models/_3gpp-common-yang-types.yang --- yang-models/_3gpp-common-trace.yang | 2 +- yang-models/_3gpp-common-yang-types.yang | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/yang-models/_3gpp-common-trace.yang b/yang-models/_3gpp-common-trace.yang index e874e0da1..995c06aa3 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 2025-10-07 { reference "CR-0xxy" ; } + revision 2025-10-07 { reference "CR-0573" ; } revision 2025-08-07 { reference "CR-0551 CR-0552 CR-0562" ; } revision 2025-05-07 { reference "CR-0532 CR-0536 CR-0540" ; } revision 2025-02-07 { reference "CR-0504" ; } diff --git a/yang-models/_3gpp-common-yang-types.yang b/yang-models/_3gpp-common-yang-types.yang index e00506bc7..b9692d11c 100755 --- a/yang-models/_3gpp-common-yang-types.yang +++ b/yang-models/_3gpp-common-yang-types.yang @@ -16,7 +16,7 @@ module _3gpp-common-yang-types { TTA, TTC). All rights reserved."; reference "3GPP TS 28.623"; - revision 2025-10-07 { reference "CR-0xxx" ; } + revision 2025-10-07 { reference "CR-0573" ; } revision 2025-08-31 { reference "CR-0551 CR-0556 CR-0562"; } revision 2025-02-19 { reference CR-0512; } revision 2025-02-07 { reference CR-0492; } -- GitLab From 7086cbca1472d0b01859df888add6b316c6b7b96 Mon Sep 17 00:00:00 2001 From: Zu Qiang Date: Wed, 1 Oct 2025 06:54:22 -0500 Subject: [PATCH 15/15] Update file _3gpp-common-trace.yang --- yang-models/_3gpp-common-trace.yang | 7 ------- 1 file changed, 7 deletions(-) diff --git a/yang-models/_3gpp-common-trace.yang b/yang-models/_3gpp-common-trace.yang index 995c06aa3..a7d3c0f7a 100755 --- a/yang-models/_3gpp-common-trace.yang +++ b/yang-models/_3gpp-common-trace.yang @@ -177,13 +177,6 @@ module _3gpp-common-trace { leaf idx { type string; } uses types3gpp:GeoAreaGrp; } - list ntnPlmnIdList { - must 'not(../nrCellIdList)'; - description "PLMN ID List for NTN MDT"; - key idx; - leaf idx { type string; } - uses types3gpp:PLMNId; - } } } -- GitLab