Loading yang-models/_3gpp-common-mnsregistry.yang +10 −4 Original line number Diff line number Diff line Loading @@ -13,7 +13,8 @@ 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-09-09 { reference CR0242; } 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"; } Loading Loading @@ -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. Loading @@ -85,10 +89,12 @@ 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 top3gpp:Top_Grp; container attributes { uses MnsInfoGrp; } } } } } No newline at end of file yang-models/_3gpp-common-subscription-control.yang +5 −5 Original line number Diff line number Diff line Loading @@ -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"; } Loading Loading @@ -172,9 +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 notifyNewAlarm and notifyFileReady. notifications to monitor the communication channels between themselves and MnS producers configured to emit notifications. A HeartbeatControl instance allows controlling the emission of heartbeat notifications by MnS producers. The recipients of heartbeat Loading yang-models/_3gpp-common-trace.yang +8 −7 Original line number Diff line number Diff line Loading @@ -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"; } Loading Loading @@ -379,7 +380,7 @@ module _3gpp-common-trace { } } leaf-list listOfNeTypes { leaf-list listOfNETypes { type enumeration { enum MSC_SERVER; enum SGSN; Loading @@ -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 Loading @@ -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 { Loading yang-models/_3gpp-common-yang-types.yang +83 −27 Original line number Diff line number Diff line Loading @@ -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; } Loading Loading @@ -710,34 +711,89 @@ 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})|[^\\><;"+, ]))?'; } 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"; } // recheck regexp it doesn't handle posix [:cntrl:] 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 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 { type int8 { Loading yang-models/_3gpp-nr-nrm-eutrancellrelation.yang +11 −20 Original line number Diff line number Diff line Loading @@ -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 { Loading @@ -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 Loading @@ -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 { Loading @@ -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, Loading Loading @@ -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; } Loading @@ -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."; 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 Loading
yang-models/_3gpp-common-mnsregistry.yang +10 −4 Original line number Diff line number Diff line Loading @@ -13,7 +13,8 @@ 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-09-09 { reference CR0242; } 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"; } Loading Loading @@ -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. Loading @@ -85,10 +89,12 @@ 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 top3gpp:Top_Grp; container attributes { uses MnsInfoGrp; } } } } } No newline at end of file
yang-models/_3gpp-common-subscription-control.yang +5 −5 Original line number Diff line number Diff line Loading @@ -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"; } Loading Loading @@ -172,9 +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 notifyNewAlarm and notifyFileReady. notifications to monitor the communication channels between themselves and MnS producers configured to emit notifications. A HeartbeatControl instance allows controlling the emission of heartbeat notifications by MnS producers. The recipients of heartbeat Loading
yang-models/_3gpp-common-trace.yang +8 −7 Original line number Diff line number Diff line Loading @@ -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"; } Loading Loading @@ -379,7 +380,7 @@ module _3gpp-common-trace { } } leaf-list listOfNeTypes { leaf-list listOfNETypes { type enumeration { enum MSC_SERVER; enum SGSN; Loading @@ -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 Loading @@ -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 { Loading
yang-models/_3gpp-common-yang-types.yang +83 −27 Original line number Diff line number Diff line Loading @@ -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; } Loading Loading @@ -710,34 +711,89 @@ 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})|[^\\><;"+, ]))?'; } 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"; } // recheck regexp it doesn't handle posix [:cntrl:] 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 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 { type int8 { Loading
yang-models/_3gpp-nr-nrm-eutrancellrelation.yang +11 −20 Original line number Diff line number Diff line Loading @@ -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 { Loading @@ -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 Loading @@ -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 { Loading @@ -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, Loading Loading @@ -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; } Loading @@ -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."; 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