Loading yang-models/_3gpp-5g-common-yang-types.yang +153 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ module _3gpp-5g-common-yang-types { TTA, TTC). All rights reserved."; reference "3GPP TS 28.541"; revision 2026-03-25 { reference "CR-"; } revision 2026-01-25 { reference "CR-0060"; } // common for R19, R20 revision 2025-11-07 { reference CR-1640 ; } revision 2025-11-02 { reference CR-1658 ; } Loading Loading @@ -179,6 +180,77 @@ module _3gpp-5g-common-yang-types { } } grouping SupiRangeGrp { description "This <<dataType>> represents a range of SUPIs."; leaf start { description "First value identifying the start of a SUPI range."; type string { pattern '^[0-9]+$'; } } leaf end { description "Last value identifying the end of a SUPI range."; type string { pattern '^[0-9]+$'; } } leaf pattern { description "Pattern representing the set of SUPIs belonging to this range."; type string; } } grouping IdentityRangeGrp { description "This <<dataType>> represents a range of identities."; leaf start { description "First value identifying the start of an identity range."; type string { pattern '^[0-9]+$'; } } leaf end { description "Last value identifying the end of an identity range."; type string; } leaf pattern { description "Pattern representing the set of identities belonging to this range."; type string; } } grouping SupportedVendorSpecificFeaturesGrp { description "This <<dataType>> represents a map of Vendor-Specific features, where the key of the map is the IANA-assigned SMI Network Management Private Enterprise Codes and the value of each entry of the map shall be a list (array) of VendorSpecificFeature objects as defined in clause 5.3.247."; reference "3GPP TS 29.510 clause 5.3.247"; list supportedVendorSpecificFeatures { description "It indicates a map of Vendor-Specific features, where the key of the map is the IANA-assigned SMI Network Management Private Enterprise Codes and the value of each entry of the map shall be a list (array) of VendorSpecificFeature objects as defined in the clause 5.3.247."; key "enterpriseCode"; leaf enterpriseCode { type uint32; description "IANA-assigned SMI Network Management Private Enterprise Code"; } list vendorSpecificFeature { key "featureName"; config false; description "VendorSpecificFeature objects as defined in the clause 5.3.247."; uses VendorSpecificFeatureGrp; } } } grouping SnssaiExtensionGrp { list sdRanges { min-elements 1; Loading Loading @@ -596,6 +668,87 @@ module _3gpp-5g-common-yang-types { type inet:host; } } grouping RuleSetGrp { description "This data type represents list of rules specifying whether access/scopes are allowed/denied for NF-Consumers."; reference "3GPP TS 29.510 clause 6.2.6.2.121"; leaf priority { description "It indicates the unique Priority of the rule. Lower value means higher priority."; mandatory true; type uint32; } list plmns { description "It indicates PLMNs allowed/dis-allowed to access the service instance. When absent, NF-Consumers of all PLMNs are assumed to match this criteria."; key "mcc mnc"; uses types3gpp:PLMNId; } list snpns { description "It indicates SNPNs allowed/dis-allowed to access the service instance. When absent, NF-Consumers of all SNPNs are assumed to match this criteria."; key "mcc mnc"; uses PlmnIdNid; } leaf-list nfTypes { description "It indicates type of the NFs allowed/dis-allowed to access the service instance. When absent, NF-Consumers of all nfTypes are assumed to match this criteria."; type types3gpp:NfType; } leaf-list nfDomains { description "It represents pattern (regular expression according to the ECMA-262 dialect) representing the NF domain names within the PLMN of the NRF allowed/dis-allowed to access the service instance. When absent, NF-Consumers of all nfDomains are assumed to match this criteria."; type string; } list nssais { description "It represents S-NSSAIs of the NF-Consumers allowed/dis-allowed to access the service instance. When absent, NF-Consumers of all slices are assumed to match this criteria."; key idx; leaf idx { type uint32; } uses ExtSnssaiGrp; } leaf-list nfInstances { description "It represents NF-Instance IDs of the NF-Consumers allowed/dis-allowed to access the NF/NF-Service instance. When absent, all the NF-Consumers are assumed to match this criteria."; type string; } leaf-list scopes { description "It represents list of scopes allowed or denied to the NF-Consumers matching the rule. The scopes shall be any of those defined in the API that defines the current service. When absent, the NF-Consumer is allowed or denied full access to all the resources/operations of service instance."; type string; } leaf action { description "It specifies whether the scopes/access mentioned are allowed or denied for a specific NF-Consumer. ALLOW: The NF consumer is allowed to access NF producer. DENY: The NF consumer is not allowed to access NF Producer."; mandatory true; type enumeration { enum ALLOW; enum DENY; } } } grouping LocationInfoGrp { description "This data type contains location information Loading yang-models/_3gpp-5gc-nrm-nfservice.yang +369 −10 Original line number Diff line number Diff line Loading @@ -11,11 +11,12 @@ module _3gpp-5gc-nrm-nfservice { organization "3gpp SA5"; contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "NF service class. Copyright 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, description "NF service dataType. Copyright 2026, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 29.510"; revision 2026-01-25 { reference "C"; } // common for R19, R20 revision 2026-01-25 { reference "CR-0060"; } // common for R19, R20 revision 2025-01-25 { reference CR-1442; } revision 2023-09-18 { reference CR-1043 ; } Loading @@ -24,7 +25,8 @@ module _3gpp-5gc-nrm-nfservice { revision 2019-06-17 { reference "initial revision"; } grouping NFServiceGrp { description "Represents the NFService IOC"; description "This data type represents the NF Service defined in TS 29.510 [23]"; leaf serviceInstanceID { description "Unique ID of the service instance within a given NF Instance."; Loading @@ -36,14 +38,16 @@ module _3gpp-5gc-nrm-nfservice { description "Name of the service instance (e.g. 'nudm-sdm')."; mandatory true; type ServiceName; config false; } list versions { //check in review if key is ok (unique) list versions { description "API versions supported by the NF Service and if available, the corresponding retirement date of the NF Service."; min-elements 1; key "apiVersionInUri apiFullVersion"; uses NFServiceVersion; config false; } leaf scheme { Loading Loading @@ -135,7 +139,7 @@ module _3gpp-5gc-nrm-nfservice { type string; } list allowedNSSAI { list allowedNSSAIs { description "S-NSSAI of the allowed slices to access the service instance. The absence of this attribute indicates that any slice is allowed to access the service instance."; Loading @@ -144,6 +148,16 @@ module _3gpp-5gc-nrm-nfservice { key "sd sst"; uses types5g3gpp:SNssai; } list allowedScopesRuleSet { description "It represents map of rules specifying scopes allowed or denied for NF-Consumers. This attribute may be present when the NF-Producer and the NRF support Allowed-ruleset feature as specified in clause 6.1.9 in TS 29.510."; //optional support key idx; leaf idx { type uint32; } uses types5g3gpp:RuleSetGrp; } leaf-list allowedOperationsPerNfType { description "It indicates the allowed operations on resources for each type of NF; the key of the map is the NF Type, and the value Loading @@ -168,18 +182,28 @@ module _3gpp-5gc-nrm-nfservice { for a given NF Instance ID take precedence over the scopes defined in attribute allowedOperationsPerNfType for the corresponding NF type of the NF Instance associated to such NF Instance ID.."; //optional support } list sNssais { description "S-NSSAIs of the Network Function. If not provided, the NF can serve any S-NSSAI. When present this IE represents the list of S-NSSAIs supported in all the PLMNs listed in the plmnList IE."; //optional support min-elements 1; key "sst sd"; uses types5g3gpp:SNssai; } leaf-list oauth2Required { leaf oauth2Required { type boolean; max-elements 1; //optional support description "It indicates whether the NF Service Instance requires Oauth2-based authorization"; } leaf-list sharedServiceDataId { leaf sharedServiceDataId { type string; max-elements 1; description "String uniquely identifying SharedServiceData. The format of the sharedServiceDataId shall be a Universally Unique Identifier (UUID) version 4, as described in IETF RFC 4122 [44]. The hexadecimal Loading Loading @@ -214,6 +238,129 @@ module _3gpp-5gc-nrm-nfservice { //optional support type string; } list callbackUriPrefixList { description "It indicates the optional path segment(s) used to construct the prefix of the Callback URIs during the reselection of an NF service consumer."; //optional support reference "3GPP TS 29.501 [23], clause 4.4.3."; key callbackUriPrefix; min-elements 1; uses CallbackUriPrefixItemGrp; } leaf supportedFeatures { description "It is a string, which indicates the features of the service corresponding to the subscribed default notification, which are supported by the NF (Service) instance acting as NF service consumer."; reference "3GPP TS 29.571 table 5.2.2-3"; //optional type types3gpp:SupportedFeatures; } uses types5g3gpp:SupportedVendorSpecificFeaturesGrp; leaf load { description "Latest known load information of the NF, percentage."; type types3gpp:Load; config false; } leaf loadTimeStamp { description "Timestamp of the reported load information."; type yang:date-and-time; config false; } leaf-list nfServiceSetIdList { description "This attribute represents a list of NF Service Set ID. At most one NF Service Set ID shall be indicated per PLMN-ID or SNPN of the NF."; type string; min-elements 1; } list perPlmnSnssaiList { description "It includes the S-NSSAIs supported by the Network Function for each PLMN supported by the Network Function. When present, it shall override sNssais IE."; key idx; leaf idx { type uint32; } uses PlmnSnssai; } leaf canaryRelease { description "This attribute indicates whether an NF instance whose nfStatus is set to REGISTERED is in Canary Release condition, i.e. it should only be selected by NF Service Consumers under the conditions indicated by the selectionConditions attribute. True: the NF is under Canary Release condition, even if the nfStatus is set to REGISTERED. False: the NF instance indicates its Canary Release condition via the nfStatus attribute."; //optional support type boolean; default false; } leaf exclusiveCanaryReleaseSelection { description "This attribute indicates whether an NF Service Consumer should only select an NF Service Producer in Canary Release condition. True: the consumer shall only select producers in Canary Release condition. False: the consumer may select producers not in Canary Release condition."; //optional support type boolean; default false; } leaf shutdownTime { description "This attribute may be present if the nfStatus is set to UNDISCOVERABLE due to scheduled shutdown. When present, it shall indicate the timestamp when the NF Instance is planned to be shut down."; //optional support type yang:date-and-time; config false; } leaf canaryPrecedenceOverPreferred { description "This attribute indicates whether the NRF shall prioritize the NF Service Producer in Canary Release condition over the preferences (preferred-xxx, ext-preferred-xxx) present in NF discovery requests. True: NRF shall prioritize NF Service Producers in Canary Release condition at NF discovery requests. False: NRF shall prioritize the NF Service Producers according to preferred-xxx and/or ext-preferred-xxx."; //optional support type boolean; default false; } list perPlmnOauth2ReqList { description "This attribute includes the Oauth2-based authorization requirement supported by the NF Service Instance per PLMN of the NF Service Consumer. This attribute may be included when the Oauth2.0 authorization requirement supported by the NF Service Instance for different PLMN is different. When the requester PLMN Id is available in perPlmnOauth2ReqList IE, this IE shall override the oauth2Required IE. If the requester PLMN ID is not present in perPlmnOauth2ReqList IE, then the value of oauth2Required IE shall be applicable if available."; //optional support key idx; leaf idx { type uint32; } max-elements 1; uses PlmnOauth2Grp; } list selectionConditions { description "This attribute includes the conditions under which an NF Instance with an NFStatus value set to CANARY_RELEASE, or with a canaryRelease attribute set to true, shall be selected by an NF Service Consumer."; //optional support key idx; leaf idx { type uint32; } max-elements 1; uses SelectionConditionsGrp; } } typedef SupportedFeatures { Loading Loading @@ -243,6 +390,218 @@ module _3gpp-5gc-nrm-nfservice { uses types5g3gpp:VendorSpecificFeatureGrp; } } grouping CallbackUriPrefixItemGrp { description "This <<dataType>> represents Callback URI prefix value to be used for specific notification types."; reference "3GPP TS 29.510 clause 6.1.6.2.127"; leaf callbackUriPrefix { description "It indicates the optional path segment(s) used to construct the prefix of the Callback URIs during the reselection of an NF service consumer."; mandatory true; type inet:uri; reference "3GPP TS 29.501 clause 4.4.3"; } leaf-list notificationTypes { description "List of notification type values using the callback URI prefix of the callbackUriPrefix."; type string; } } grouping PlmnOauth2Grp { description "This <<dataType>> represents the per PLMN Oauth2.0 indication."; reference "3GPP TS 29.510 clause 6.1.6.2.102"; list oauth2RequiredPlmnIdList { description "List of PLMN IDs for which Oauth2.0 authorization is required."; //optional support min-elements 1; key "mcc mnc"; uses types3gpp:PLMNId; } list oauth2NotRequiredPlmnIdList { description "List of PLMN IDs for which Oauth2.0 authorization is not required."; //optional support min-elements 1; key "mcc mnc"; uses types3gpp:PLMNId; } } grouping PlmnSnssai { description "This data type represents the list of S-NSSAIs supported per PLMN."; list plmnId { description "PLMN ID for which list of supported S-NSSAI(s) is provided."; min-elements 1; max-elements 1; key "mcc mnc"; uses types3gpp:PLMNId; } list sNssaiList { description "The specific list of S-NSSAIs supported by the given PLMN."; min-elements 1; max-elements 1; key "sst sd"; uses types5g3gpp:SNssai; } leaf nid { description "Network Identity; Shall be present if PlmnIdNid identifies an SNPN."; reference "see clauses 5.30.2.3, 5.30.2.9, 6.3.4, and 6.3.8 in 3GPP TS 23.501"; type string; } } grouping ConditionItemGrp { description "This <<dataType>> represents a single condition item that shall be evaluated to determine whether a discovered NF (Service) Instance shall be selected."; reference "3GPP TS 29.510 clause 6.1.6.2.124"; leaf-list consumerNfTypes { description "It represents the NF types of the consumers for which the conditions included in this ConditionItem apply. If this attribute is absent, the conditions are applicable to all NF consumer types."; min-elements 1; type types3gpp:NfType; } leaf serviceFeature { description "It represents a feature number of that NF Service Instance, under CANARY_RELEASE status."; type uint32; } leaf vsServiceFeature { description "It represents a Vendor-Specific feature number of that NF Service Instance, under CANARY_RELEASE status."; type uint32; } list supiRangeList { description "It represents a set of SUPIs for which the NF (Service) instance under CANARY_RELEASE status shall be selected."; key idx; leaf idx { type uint32; } min-elements 1; uses types5g3gpp:SupiRangeGrp; } list gpsiRangeList { description "It represents a set of GPSIs for which the NF (Service) instance under CANARY_RELEASE status shall be selected."; key idx; leaf idx { type uint32; } min-elements 1; uses types5g3gpp:IdentityRangeGrp; } list impuRangeList { description "It represents a set of IMS Public Identities for which the NF (Service) instance under CANARY_RELEASE status shall be selected."; key idx; leaf idx { type uint32; } min-elements 1; uses types5g3gpp:IdentityRangeGrp; } list impiRangeList { description "It represents a set of IMS Private Identities for which the NF (Service) instance under CANARY_RELEASE status shall be selected."; key idx; leaf idx { type uint32; } min-elements 1; uses types5g3gpp:IdentityRangeGrp; } leaf-list peiList { description "It represents a set of PEIs of the UEs for which the NF (Service) instance under CANARY_RELEASE status shall be selected."; min-elements 1; type string; } list taiRangeList { description "It represents a set of TAIs where the NF (Service) instance under CANARY_RELEASE status shall be selected for a certain UE."; key idx; leaf idx { type uint32; } min-elements 1; uses types5g3gpp:TaiRangeGrp; } leaf-list dnnList { description "It represents a set of DNNs where the NF (Service) instance under CANARY_RELEASE status shall be selected."; min-elements 1; type string; } } grouping SelectionConditionsGrp { description "This <<dataType>> represents the list of conditions that shall be selected by an NF Service Consumer."; reference "3GPP TS 29.510 clause 6.1.6.2.123"; list conditionItem { key "id"; description "It represent a single condition item that shall be evaluated to determine whether a discovered NF (Service) Instance shall be selected."; leaf id { type string; } uses ConditionItemGrp; } list conditionGroup { description "It represents a group of conditions that shall be evaluated."; key idx; leaf idx { type uint32; } max-elements 1; // Note: ConditionGroup references SelectionConditions creating a // circular dependency. Inlined one level to avoid it. choice LogicalOperator { case and { list and { description "It represents a list of conditions where the overall evaluation is true only if all the conditions in the list are evaluated as true."; key idx; leaf idx { type uint32; } list conditionItem { key "id"; description "Condition item to be evaluated."; leaf id { type string; } uses ConditionItemGrp; } } } case or { list or { description "It represents a list of conditions where the overall evaluation is true if at least one of the conditions in the list is evaluated as true."; key idx; leaf idx { type uint32; } list conditionItem { key "id"; description "Condition item to be evaluated."; leaf id { type string; } uses ConditionItemGrp; } } } } } } grouping ipEndPoint { choice address { leaf ipv4Address { Loading yang-models/_3gpp-common-yang-types.yang +18 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ module _3gpp-common-yang-types { TTA, TTC). All rights reserved."; reference "3GPP TS 28.623"; revision 2026-03-25 { reference "CR-xxxx"; } revision 2026-03-20 { reference "CR-0619"; } revision 2025-10-07 { reference "CR-0573 CR-0582 CR-583"; } revision 2025-10-01 { reference "CR-0578" ; } Loading Loading @@ -799,6 +800,22 @@ module _3gpp-common-yang-types { range 0..100; } } typedef SupportedFeatures { type string { pattern '[A-Fa-f0-9]*'; } description "It is a string, which indicates the features of the service corresponding to the subscribed default notification, which are supported by the NF (Service) instance acting as NF service consumer, when it is present of the attribute whose type is DefaultNotificationSubscription <<datatype>>. When it is present as the attribute of an NFService instance, it indicates the supported features of the NF Service <datatype> A string containing a bitmask indicating supported features in hexadecimal representation. Each character in the string shall take a value of 0 to 9, a to f or A to F and shall represent the support of 4 features as described in table 5.2.2-3 of TS 29.571."; reference "3GPP TS 29.571"; } typedef N1MessageClass { type enumeration { Loading Loading @@ -878,7 +895,7 @@ module _3gpp-common-yang-types { reference "shall represent the support of 4 features as described in table 5.2.2-3 of TS 29.571 [61]."; //optional type string; type SupportedFeatures; config false; } leaf serviceInfoList { Loading Loading
yang-models/_3gpp-5g-common-yang-types.yang +153 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ module _3gpp-5g-common-yang-types { TTA, TTC). All rights reserved."; reference "3GPP TS 28.541"; revision 2026-03-25 { reference "CR-"; } revision 2026-01-25 { reference "CR-0060"; } // common for R19, R20 revision 2025-11-07 { reference CR-1640 ; } revision 2025-11-02 { reference CR-1658 ; } Loading Loading @@ -179,6 +180,77 @@ module _3gpp-5g-common-yang-types { } } grouping SupiRangeGrp { description "This <<dataType>> represents a range of SUPIs."; leaf start { description "First value identifying the start of a SUPI range."; type string { pattern '^[0-9]+$'; } } leaf end { description "Last value identifying the end of a SUPI range."; type string { pattern '^[0-9]+$'; } } leaf pattern { description "Pattern representing the set of SUPIs belonging to this range."; type string; } } grouping IdentityRangeGrp { description "This <<dataType>> represents a range of identities."; leaf start { description "First value identifying the start of an identity range."; type string { pattern '^[0-9]+$'; } } leaf end { description "Last value identifying the end of an identity range."; type string; } leaf pattern { description "Pattern representing the set of identities belonging to this range."; type string; } } grouping SupportedVendorSpecificFeaturesGrp { description "This <<dataType>> represents a map of Vendor-Specific features, where the key of the map is the IANA-assigned SMI Network Management Private Enterprise Codes and the value of each entry of the map shall be a list (array) of VendorSpecificFeature objects as defined in clause 5.3.247."; reference "3GPP TS 29.510 clause 5.3.247"; list supportedVendorSpecificFeatures { description "It indicates a map of Vendor-Specific features, where the key of the map is the IANA-assigned SMI Network Management Private Enterprise Codes and the value of each entry of the map shall be a list (array) of VendorSpecificFeature objects as defined in the clause 5.3.247."; key "enterpriseCode"; leaf enterpriseCode { type uint32; description "IANA-assigned SMI Network Management Private Enterprise Code"; } list vendorSpecificFeature { key "featureName"; config false; description "VendorSpecificFeature objects as defined in the clause 5.3.247."; uses VendorSpecificFeatureGrp; } } } grouping SnssaiExtensionGrp { list sdRanges { min-elements 1; Loading Loading @@ -596,6 +668,87 @@ module _3gpp-5g-common-yang-types { type inet:host; } } grouping RuleSetGrp { description "This data type represents list of rules specifying whether access/scopes are allowed/denied for NF-Consumers."; reference "3GPP TS 29.510 clause 6.2.6.2.121"; leaf priority { description "It indicates the unique Priority of the rule. Lower value means higher priority."; mandatory true; type uint32; } list plmns { description "It indicates PLMNs allowed/dis-allowed to access the service instance. When absent, NF-Consumers of all PLMNs are assumed to match this criteria."; key "mcc mnc"; uses types3gpp:PLMNId; } list snpns { description "It indicates SNPNs allowed/dis-allowed to access the service instance. When absent, NF-Consumers of all SNPNs are assumed to match this criteria."; key "mcc mnc"; uses PlmnIdNid; } leaf-list nfTypes { description "It indicates type of the NFs allowed/dis-allowed to access the service instance. When absent, NF-Consumers of all nfTypes are assumed to match this criteria."; type types3gpp:NfType; } leaf-list nfDomains { description "It represents pattern (regular expression according to the ECMA-262 dialect) representing the NF domain names within the PLMN of the NRF allowed/dis-allowed to access the service instance. When absent, NF-Consumers of all nfDomains are assumed to match this criteria."; type string; } list nssais { description "It represents S-NSSAIs of the NF-Consumers allowed/dis-allowed to access the service instance. When absent, NF-Consumers of all slices are assumed to match this criteria."; key idx; leaf idx { type uint32; } uses ExtSnssaiGrp; } leaf-list nfInstances { description "It represents NF-Instance IDs of the NF-Consumers allowed/dis-allowed to access the NF/NF-Service instance. When absent, all the NF-Consumers are assumed to match this criteria."; type string; } leaf-list scopes { description "It represents list of scopes allowed or denied to the NF-Consumers matching the rule. The scopes shall be any of those defined in the API that defines the current service. When absent, the NF-Consumer is allowed or denied full access to all the resources/operations of service instance."; type string; } leaf action { description "It specifies whether the scopes/access mentioned are allowed or denied for a specific NF-Consumer. ALLOW: The NF consumer is allowed to access NF producer. DENY: The NF consumer is not allowed to access NF Producer."; mandatory true; type enumeration { enum ALLOW; enum DENY; } } } grouping LocationInfoGrp { description "This data type contains location information Loading
yang-models/_3gpp-5gc-nrm-nfservice.yang +369 −10 Original line number Diff line number Diff line Loading @@ -11,11 +11,12 @@ module _3gpp-5gc-nrm-nfservice { organization "3gpp SA5"; contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "NF service class. Copyright 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, description "NF service dataType. Copyright 2026, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 29.510"; revision 2026-01-25 { reference "C"; } // common for R19, R20 revision 2026-01-25 { reference "CR-0060"; } // common for R19, R20 revision 2025-01-25 { reference CR-1442; } revision 2023-09-18 { reference CR-1043 ; } Loading @@ -24,7 +25,8 @@ module _3gpp-5gc-nrm-nfservice { revision 2019-06-17 { reference "initial revision"; } grouping NFServiceGrp { description "Represents the NFService IOC"; description "This data type represents the NF Service defined in TS 29.510 [23]"; leaf serviceInstanceID { description "Unique ID of the service instance within a given NF Instance."; Loading @@ -36,14 +38,16 @@ module _3gpp-5gc-nrm-nfservice { description "Name of the service instance (e.g. 'nudm-sdm')."; mandatory true; type ServiceName; config false; } list versions { //check in review if key is ok (unique) list versions { description "API versions supported by the NF Service and if available, the corresponding retirement date of the NF Service."; min-elements 1; key "apiVersionInUri apiFullVersion"; uses NFServiceVersion; config false; } leaf scheme { Loading Loading @@ -135,7 +139,7 @@ module _3gpp-5gc-nrm-nfservice { type string; } list allowedNSSAI { list allowedNSSAIs { description "S-NSSAI of the allowed slices to access the service instance. The absence of this attribute indicates that any slice is allowed to access the service instance."; Loading @@ -144,6 +148,16 @@ module _3gpp-5gc-nrm-nfservice { key "sd sst"; uses types5g3gpp:SNssai; } list allowedScopesRuleSet { description "It represents map of rules specifying scopes allowed or denied for NF-Consumers. This attribute may be present when the NF-Producer and the NRF support Allowed-ruleset feature as specified in clause 6.1.9 in TS 29.510."; //optional support key idx; leaf idx { type uint32; } uses types5g3gpp:RuleSetGrp; } leaf-list allowedOperationsPerNfType { description "It indicates the allowed operations on resources for each type of NF; the key of the map is the NF Type, and the value Loading @@ -168,18 +182,28 @@ module _3gpp-5gc-nrm-nfservice { for a given NF Instance ID take precedence over the scopes defined in attribute allowedOperationsPerNfType for the corresponding NF type of the NF Instance associated to such NF Instance ID.."; //optional support } list sNssais { description "S-NSSAIs of the Network Function. If not provided, the NF can serve any S-NSSAI. When present this IE represents the list of S-NSSAIs supported in all the PLMNs listed in the plmnList IE."; //optional support min-elements 1; key "sst sd"; uses types5g3gpp:SNssai; } leaf-list oauth2Required { leaf oauth2Required { type boolean; max-elements 1; //optional support description "It indicates whether the NF Service Instance requires Oauth2-based authorization"; } leaf-list sharedServiceDataId { leaf sharedServiceDataId { type string; max-elements 1; description "String uniquely identifying SharedServiceData. The format of the sharedServiceDataId shall be a Universally Unique Identifier (UUID) version 4, as described in IETF RFC 4122 [44]. The hexadecimal Loading Loading @@ -214,6 +238,129 @@ module _3gpp-5gc-nrm-nfservice { //optional support type string; } list callbackUriPrefixList { description "It indicates the optional path segment(s) used to construct the prefix of the Callback URIs during the reselection of an NF service consumer."; //optional support reference "3GPP TS 29.501 [23], clause 4.4.3."; key callbackUriPrefix; min-elements 1; uses CallbackUriPrefixItemGrp; } leaf supportedFeatures { description "It is a string, which indicates the features of the service corresponding to the subscribed default notification, which are supported by the NF (Service) instance acting as NF service consumer."; reference "3GPP TS 29.571 table 5.2.2-3"; //optional type types3gpp:SupportedFeatures; } uses types5g3gpp:SupportedVendorSpecificFeaturesGrp; leaf load { description "Latest known load information of the NF, percentage."; type types3gpp:Load; config false; } leaf loadTimeStamp { description "Timestamp of the reported load information."; type yang:date-and-time; config false; } leaf-list nfServiceSetIdList { description "This attribute represents a list of NF Service Set ID. At most one NF Service Set ID shall be indicated per PLMN-ID or SNPN of the NF."; type string; min-elements 1; } list perPlmnSnssaiList { description "It includes the S-NSSAIs supported by the Network Function for each PLMN supported by the Network Function. When present, it shall override sNssais IE."; key idx; leaf idx { type uint32; } uses PlmnSnssai; } leaf canaryRelease { description "This attribute indicates whether an NF instance whose nfStatus is set to REGISTERED is in Canary Release condition, i.e. it should only be selected by NF Service Consumers under the conditions indicated by the selectionConditions attribute. True: the NF is under Canary Release condition, even if the nfStatus is set to REGISTERED. False: the NF instance indicates its Canary Release condition via the nfStatus attribute."; //optional support type boolean; default false; } leaf exclusiveCanaryReleaseSelection { description "This attribute indicates whether an NF Service Consumer should only select an NF Service Producer in Canary Release condition. True: the consumer shall only select producers in Canary Release condition. False: the consumer may select producers not in Canary Release condition."; //optional support type boolean; default false; } leaf shutdownTime { description "This attribute may be present if the nfStatus is set to UNDISCOVERABLE due to scheduled shutdown. When present, it shall indicate the timestamp when the NF Instance is planned to be shut down."; //optional support type yang:date-and-time; config false; } leaf canaryPrecedenceOverPreferred { description "This attribute indicates whether the NRF shall prioritize the NF Service Producer in Canary Release condition over the preferences (preferred-xxx, ext-preferred-xxx) present in NF discovery requests. True: NRF shall prioritize NF Service Producers in Canary Release condition at NF discovery requests. False: NRF shall prioritize the NF Service Producers according to preferred-xxx and/or ext-preferred-xxx."; //optional support type boolean; default false; } list perPlmnOauth2ReqList { description "This attribute includes the Oauth2-based authorization requirement supported by the NF Service Instance per PLMN of the NF Service Consumer. This attribute may be included when the Oauth2.0 authorization requirement supported by the NF Service Instance for different PLMN is different. When the requester PLMN Id is available in perPlmnOauth2ReqList IE, this IE shall override the oauth2Required IE. If the requester PLMN ID is not present in perPlmnOauth2ReqList IE, then the value of oauth2Required IE shall be applicable if available."; //optional support key idx; leaf idx { type uint32; } max-elements 1; uses PlmnOauth2Grp; } list selectionConditions { description "This attribute includes the conditions under which an NF Instance with an NFStatus value set to CANARY_RELEASE, or with a canaryRelease attribute set to true, shall be selected by an NF Service Consumer."; //optional support key idx; leaf idx { type uint32; } max-elements 1; uses SelectionConditionsGrp; } } typedef SupportedFeatures { Loading Loading @@ -243,6 +390,218 @@ module _3gpp-5gc-nrm-nfservice { uses types5g3gpp:VendorSpecificFeatureGrp; } } grouping CallbackUriPrefixItemGrp { description "This <<dataType>> represents Callback URI prefix value to be used for specific notification types."; reference "3GPP TS 29.510 clause 6.1.6.2.127"; leaf callbackUriPrefix { description "It indicates the optional path segment(s) used to construct the prefix of the Callback URIs during the reselection of an NF service consumer."; mandatory true; type inet:uri; reference "3GPP TS 29.501 clause 4.4.3"; } leaf-list notificationTypes { description "List of notification type values using the callback URI prefix of the callbackUriPrefix."; type string; } } grouping PlmnOauth2Grp { description "This <<dataType>> represents the per PLMN Oauth2.0 indication."; reference "3GPP TS 29.510 clause 6.1.6.2.102"; list oauth2RequiredPlmnIdList { description "List of PLMN IDs for which Oauth2.0 authorization is required."; //optional support min-elements 1; key "mcc mnc"; uses types3gpp:PLMNId; } list oauth2NotRequiredPlmnIdList { description "List of PLMN IDs for which Oauth2.0 authorization is not required."; //optional support min-elements 1; key "mcc mnc"; uses types3gpp:PLMNId; } } grouping PlmnSnssai { description "This data type represents the list of S-NSSAIs supported per PLMN."; list plmnId { description "PLMN ID for which list of supported S-NSSAI(s) is provided."; min-elements 1; max-elements 1; key "mcc mnc"; uses types3gpp:PLMNId; } list sNssaiList { description "The specific list of S-NSSAIs supported by the given PLMN."; min-elements 1; max-elements 1; key "sst sd"; uses types5g3gpp:SNssai; } leaf nid { description "Network Identity; Shall be present if PlmnIdNid identifies an SNPN."; reference "see clauses 5.30.2.3, 5.30.2.9, 6.3.4, and 6.3.8 in 3GPP TS 23.501"; type string; } } grouping ConditionItemGrp { description "This <<dataType>> represents a single condition item that shall be evaluated to determine whether a discovered NF (Service) Instance shall be selected."; reference "3GPP TS 29.510 clause 6.1.6.2.124"; leaf-list consumerNfTypes { description "It represents the NF types of the consumers for which the conditions included in this ConditionItem apply. If this attribute is absent, the conditions are applicable to all NF consumer types."; min-elements 1; type types3gpp:NfType; } leaf serviceFeature { description "It represents a feature number of that NF Service Instance, under CANARY_RELEASE status."; type uint32; } leaf vsServiceFeature { description "It represents a Vendor-Specific feature number of that NF Service Instance, under CANARY_RELEASE status."; type uint32; } list supiRangeList { description "It represents a set of SUPIs for which the NF (Service) instance under CANARY_RELEASE status shall be selected."; key idx; leaf idx { type uint32; } min-elements 1; uses types5g3gpp:SupiRangeGrp; } list gpsiRangeList { description "It represents a set of GPSIs for which the NF (Service) instance under CANARY_RELEASE status shall be selected."; key idx; leaf idx { type uint32; } min-elements 1; uses types5g3gpp:IdentityRangeGrp; } list impuRangeList { description "It represents a set of IMS Public Identities for which the NF (Service) instance under CANARY_RELEASE status shall be selected."; key idx; leaf idx { type uint32; } min-elements 1; uses types5g3gpp:IdentityRangeGrp; } list impiRangeList { description "It represents a set of IMS Private Identities for which the NF (Service) instance under CANARY_RELEASE status shall be selected."; key idx; leaf idx { type uint32; } min-elements 1; uses types5g3gpp:IdentityRangeGrp; } leaf-list peiList { description "It represents a set of PEIs of the UEs for which the NF (Service) instance under CANARY_RELEASE status shall be selected."; min-elements 1; type string; } list taiRangeList { description "It represents a set of TAIs where the NF (Service) instance under CANARY_RELEASE status shall be selected for a certain UE."; key idx; leaf idx { type uint32; } min-elements 1; uses types5g3gpp:TaiRangeGrp; } leaf-list dnnList { description "It represents a set of DNNs where the NF (Service) instance under CANARY_RELEASE status shall be selected."; min-elements 1; type string; } } grouping SelectionConditionsGrp { description "This <<dataType>> represents the list of conditions that shall be selected by an NF Service Consumer."; reference "3GPP TS 29.510 clause 6.1.6.2.123"; list conditionItem { key "id"; description "It represent a single condition item that shall be evaluated to determine whether a discovered NF (Service) Instance shall be selected."; leaf id { type string; } uses ConditionItemGrp; } list conditionGroup { description "It represents a group of conditions that shall be evaluated."; key idx; leaf idx { type uint32; } max-elements 1; // Note: ConditionGroup references SelectionConditions creating a // circular dependency. Inlined one level to avoid it. choice LogicalOperator { case and { list and { description "It represents a list of conditions where the overall evaluation is true only if all the conditions in the list are evaluated as true."; key idx; leaf idx { type uint32; } list conditionItem { key "id"; description "Condition item to be evaluated."; leaf id { type string; } uses ConditionItemGrp; } } } case or { list or { description "It represents a list of conditions where the overall evaluation is true if at least one of the conditions in the list is evaluated as true."; key idx; leaf idx { type uint32; } list conditionItem { key "id"; description "Condition item to be evaluated."; leaf id { type string; } uses ConditionItemGrp; } } } } } } grouping ipEndPoint { choice address { leaf ipv4Address { Loading
yang-models/_3gpp-common-yang-types.yang +18 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ module _3gpp-common-yang-types { TTA, TTC). All rights reserved."; reference "3GPP TS 28.623"; revision 2026-03-25 { reference "CR-xxxx"; } revision 2026-03-20 { reference "CR-0619"; } revision 2025-10-07 { reference "CR-0573 CR-0582 CR-583"; } revision 2025-10-01 { reference "CR-0578" ; } Loading Loading @@ -799,6 +800,22 @@ module _3gpp-common-yang-types { range 0..100; } } typedef SupportedFeatures { type string { pattern '[A-Fa-f0-9]*'; } description "It is a string, which indicates the features of the service corresponding to the subscribed default notification, which are supported by the NF (Service) instance acting as NF service consumer, when it is present of the attribute whose type is DefaultNotificationSubscription <<datatype>>. When it is present as the attribute of an NFService instance, it indicates the supported features of the NF Service <datatype> A string containing a bitmask indicating supported features in hexadecimal representation. Each character in the string shall take a value of 0 to 9, a to f or A to F and shall represent the support of 4 features as described in table 5.2.2-3 of TS 29.571."; reference "3GPP TS 29.571"; } typedef N1MessageClass { type enumeration { Loading Loading @@ -878,7 +895,7 @@ module _3gpp-common-yang-types { reference "shall represent the support of 4 features as described in table 5.2.2-3 of TS 29.571 [61]."; //optional type string; type SupportedFeatures; config false; } leaf serviceInfoList { Loading