Skip to content
......@@ -52,7 +52,7 @@ TTA, TTC). All rights reserved.";
type types3gpp:NfType;
}
}
grouping SupiRange {
grouping SupiRangeGrp {
leaf start {
description "First value identifying the start ofa SUPI range.To be
used when the range of SUPI's can be represented as a numeric range
......@@ -119,7 +119,7 @@ TTA, TTC). All rights reserved.";
be selected.";
key idx;
leaf idx { type uint32; }
uses SupiRange;
uses SupiRangeGrp;
}
list gpsiRangeList {
description "It represents a set of GPSIs for which the NF
......
......@@ -11,6 +11,17 @@ module _3gpp-5gc-nrm-nrffunction {
import _3gpp-common-top { prefix top3gpp; }
import _3gpp-5g-common-yang-types { prefix types5g3gpp; }
import _3gpp-5gc-nrm-managed-nfprofile { prefix mnfp3gpp; }
import _3gpp-5gc-nrm-udrfunction { prefix udr3gpp; }
import _3gpp-5gc-nrm-udmfunction { prefix udm3gpp; }
import _3gpp-5gc-nrm-ausffunction { prefix ausf3gpp; }
import _3gpp-5gc-nrm-amffunction { prefix amf3gpp;}
import _3gpp-5gc-nrm-smffunction { prefix smf3gpp;}
import _3gpp-5gc-nrm-upffunction { prefix upf3gpp;}
import _3gpp-5gc-nrm-pcffunction { prefix pcf3gpp;}
import _3gpp-5gc-nrm-nwdaffunction { prefix nwdaf3gpp;}
import _3gpp-5gc-nrm-gmlcfunction { prefix gmlc3gpp;}
import _3gpp-5gc-nrm-lmffunction { prefix lmf3gpp;}
organization "3gpp SA5";
contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464";
......@@ -20,6 +31,7 @@ module _3gpp-5gc-nrm-nrffunction {
TTA, TTC). All rights reserved.";
reference "3GPP TS 28.541";
revision 2025-07-25 { reference CR-1558 ; }
revision 2025-01-25 { reference CR-1442 ; }
revision 2023-09-18 { reference CR-1043 ; }
revision 2023-04-26 { reference CR-0916; }
......@@ -28,6 +40,591 @@ module _3gpp-5gc-nrm-nrffunction {
revision 2019-10-28 { reference S5-193518 ; }
revision 2019-05-15 { reference "initial revision"; }
grouping bsfInfo {
list ipv4AddressRanges {
description "List of ranges of IPv4 addresses handled by BSF.
If not provided, the BSF can serve any IPv4 address.";
key "start end";
uses types3gpp:Ipv4AddressRange;
}
leaf-list dnnList {
description "List of DNNs handled by the BSF
If not provided, the BSF can serve any DNN.";
min-elements 1;
type string;
}
leaf-list ipDomainList {
description "List of IPv4 address domains, as described in
subclause 6.2 of 3GPP TS 29.513, handled by the BSF.
If not provided, the BSF can serve any IP domain.";
min-elements 1;
type string;
}
list ipv6PrefixRanges {
description "List of ranges of IPv6 prefixes handled by the BSF.
If not provided, the BSF can serve any IPv6 prefix.";
key "start end";
uses types3gpp:Ipv6PrefixRange;
}
}
grouping chfInfo {
list supiRangeList {
description "List of ranges of SUPIs that can be served by
the CHF instance. If not provided, the CHF can serve any SUPI.";
key "start end pattern";
min-elements 1;
uses mnfp3gpp:SupiRangeGrp;
}
list gpsiRangeList {
description "List of ranges of GPSI that can be served
by the CHF instance. If not provided, the CHF can serve any GPSI.";
key idx;
leaf idx { type uint32; }
min-elements 1;
uses mnfp3gpp:IdentityRange;
}
list plmnRangeList {
description "List of ranges of PLMNs (including the PLMN
IDs of the CHF instance) that can be served by the CHF instance.
If not provided, the CHF can serve any PLMN.";
min-elements 1;
key "mcc mnc";
uses types3gpp:PLMNId;
}
leaf primaryChfInstance {
//optional
description "This attribute represents the NF Instance Id of the
primary CHF instance. This attribute shall be absent if the
secondaryChfInstance is present.";
type string;
}
leaf secondaryChfInstance {
//optional
description "This attribute represents the NF Instance Id of the
secondary CHF instance.This attribute shall be absent if the
primaryChfInstance is present.";
type string;
}
}
grouping pcscfInfo {
description "This data type represents the information of a P-CSCF NF Instance.
For more information, see clause 6.1.6.2.53 of TS 29.510.";
leaf-list accessType {
description "It provides the condition of access type of the UE when
the session AMBR shall be enforced, see TS 29.512 [60].If this
attribute is included in SmfInfo, it shall contain the access type
(3GPP_ACCESS and/or NON_3GPP_ACCESS) supported by the SMF.If not
included, it shall be assumed the both access types are supported.";
type enumeration {
enum 3GPP_ACCESS;
enum NON_3GPP_ACCESS;
}
min-elements 1;
max-elements 2;
}
leaf-list dnnList {
description "It represents the DNNs supported by the PCF. The DNN,
as defined in clause 9A of TS 23.003 [13], shall contain the Network
Identifier and it may additionally contain an Operator Identifier,
as specified in TS 23.003 [13] clause 9.1.1 and 9.1.2. If the Operator
Identifier is not included, the DNN is supported for all the PLMNs in
the plmnList of the NF Profile.If not provided, the PCF can serve any
DNN.";
min-elements 1;
type string;
}
leaf-list gmFqdn {
description "This attribute represents FQDN of the P-CSCF for the Gm
interface..";
max-elements 1;
type string;
//optional
}
leaf-list gmIpv4Addresses {
description "This attribute represents list of IPv4 addresses of of
the P-CSCF for the Gm interface.";
type inet:ipv4-address;
//optional
}
leaf-list gmIpv6Addresses {
description "This attribute represents list of IPv6 addresses of of the
P-CSCF for the Gm interface.";
type inet:ipv6-address;
//optional
}
leaf mwFqdn {
description "This attribute represents FQDN of the P-CSCF for the Mw
interface.";
type string;
//optional
}
leaf-list mwIpv4Addresses {
description "List of ranges of PLMNs (including the PLMN
IDs of the CHF instance) that can be served by the CHF instance.
If not provided, the CHF can serve any PLMN.";
type inet:ipv4-address;
//optional
}
leaf-list mwIpv6Addresses {
description "This attribute represents list of IPv4 addresses of
the P-CSCF for the Mw interface.";
type inet:ipv6-address;
//optional
}
list servedIpv4AddressRanges {
description "List of ranges of PLMNs (including the PLMN
IDs of the CHF instance) that can be served by the CHF instance.
If not provided, the CHF can serve any PLMN.";
min-elements 1;
key "mcc mnc";
uses types3gpp:PLMNId;
//optional
}
}
grouping HssInfoGrp {
description " Information of an HSS NF Instance";
leaf groupID{
description "This attribute defines the identity of the HSS group
that is served by the HSS instance.If not provided, the HSS instance
does not pertain to any HSS group.";
type string;
}
list imsiRanges {
description "This attribute defines the list of ranges of IMSIs whose
profile data is available in the HSS instance.";
min-elements 1;
key "id";
leaf id {
description "Unique identifier for the IMSI range.";
type string;
}
uses ImsiRange;
}
list imsPrivateIdentityRanges{
description "This attribute defines the list of ranges of IMS Private
Identities whose profile data is available in the HSS instance.";
min-elements 1;
key "id";
leaf id {
description "Unique identifier for the IMSI range.";
type string;
}
uses mnfp3gpp:IdentityRange;
}
list imsPublicIdentityRanges{
description "This attribute defines the list of ranges of MSISDNs whose
profile data is available in the HSS instance. ";
min-elements 1;
key "id";
leaf id {
description "Unique identifier for the IMSI range.";
type string;
}
uses mnfp3gpp:IdentityRange;
}
list msisdnRanges{
description "This attribute defines the list of ranges of IMS Public
Identities whose profile data is available in the HSS instance ";
min-elements 1;
key "id";
leaf id {
description "Unique identifier for the IMSI range.";
type string;
}
uses mnfp3gpp:IdentityRange;
}
list externalGroupIdentifiersRanges{
description "This attribute defines the list of ranges of external
group IDs that can be served by this HSS instance.If not provided,
the HSS instance does not serve any external groups. ";
min-elements 1;
key "id";
leaf id {
description "Unique identifier for the IMSI range.";
type string;
}
uses mnfp3gpp:IdentityRange;
}
list hssDiameterAddress{
description "This attribute defines the Diameter Address of the HSS ";
max-elements 1;
key "id";
leaf id {
description "Unique identifier for the IMSI range.";
type string;
}
uses NetworkNodeDiameterAddress;
}
list additionalDiamAddresses{
description "This attribute defines the Additional Diameter Addresses
of the HSS;may be present if hssDiameterAddress is present ";
min-elements 1;
key "id";
leaf id {
description "Unique identifier for the IMSI range.";
type string;
}
uses NetworkNodeDiameterAddress;
}
}
grouping NrfInfoGrp {
list servedUdrInfo {
description "This attribute contains all the udrInfo
attributes
locally configured in the NRF or the NRF received
during NF registration.";
key nfInstanceId;
leaf nfInstanceId {
description "String uniquely identifying a NF instance.";
type string;
}
min-elements 1;
uses udr3gpp:UdrInfoGrp;
}
list servedUdmInfo {
description "This attribute contains all the udmInfo
attributes
locally configured in the NRF or the NRF
received during NF registration.";
key nfInstanceId;
leaf nfInstanceId {
description "String uniquely identifying a NF instance.";
type string;
}
min-elements 1;
uses udm3gpp:UdmInfoGrp;
}
list servedAusfInfo {
description "This attribute contains all the
ausfInfo attributes
locally configured in the NRF or the NRF
received during NF registration.";
key nfInstanceId;
leaf nfInstanceId {
description "String uniquely identifying a NF instance.";
type string;
}
min-elements 1;
uses ausf3gpp:AusfInfoGrp;
}
list servedAmfInfo {
description "This attribute contains all the amfInfo
attributes
locally configured in the NRF or the NRF received
during NF registration.";
key nfInstanceId;
leaf nfInstanceId {
description "String uniquely identifying a NF instance.";
type string;
}
min-elements 1;
uses amf3gpp:AmfInfoGrp;
}
list servedSmfInfo {
description "This attribute contains all the smfInfo
attributes
locally configured in the NRF or the NRF received
during NF registration.";
key nfInstanceId;
leaf nfInstanceId {
description "String uniquely identifying a NF instance.";
type string;
}
min-elements 1;
uses smf3gpp:SmfInfoGrp;
}
list servedUpfInfo {
description "This attribute contains all the upfInfo
attributes
locally configured in the NRF or the NRF received
during NF registration.";
key nfInstanceId;
leaf nfInstanceId {
description "String uniquely identifying a NF instance.";
type string;
}
min-elements 1;
uses upf3gpp:UpfInfoGrp;
}
list servedPcfInfo {
description "This attribute contains all the pcfInfo
attributes
locally configured in the NRF or the NRF received
during NF registration.";
key nfInstanceId;
leaf nfInstanceId {
description "String uniquely identifying a NF instance.";
type string;
}
min-elements 1;
uses pcf3gpp:pcfInfoGrp;
}
list servedBsfInfo {
description "This attribute contains all the bsfInfo
attributes
locally configured in the NRF or the NRF received
during NF registration.";
key nfInstanceId;
leaf nfInstanceId{
description "String uniquely identifying a NF instance.";
type string;
}
min-elements 1;
uses bsfInfo;
}
list servedChfInfo {
description "This attribute contains all the bsfInfo
attributes
locally configured in the NRF or the NRF received
during NF registration.";
key nfInstanceId;
leaf nfInstanceId {
description "String uniquely identifying a NF instance.";
type string;
}
min-elements 1;
uses chfInfo;
}
list servedNwdafInfo {
description "This attribute contains all the nwdafInfo attributes
locally configured in the NRF or the NRF received during NF
registration. The key of the map is the nfInstanceId of which
the nwdafInfo belongs to.";
key nfInstanceId;
leaf nfInstanceId {
description "String uniquely identifying a NF instance.";
type string;
}
min-elements 1;
uses nwdaf3gpp:NwdafInfoGrp;
}
list servedPcscfInfoList {
description "This attribute contains all the pcscfInfo attributes
locally configured in the NRF or the NRF received during NF
registration. The key of the map is the nfInstanceId to which
the map entry belongs to.";
key nfInstanceId;
leaf nfInstanceId {
description "String uniquely identifying a NF instance.";
type string;
}
min-elements 1;
uses pcscfInfo;
}
list servedGmlcInfo {
description "This attribute contains all the gmlcInfo attributes
locally configured in the NRF or the NRF received during NF
registration. The key of the map is the nfInstanceId of which
the nefInfo belongs to.";
key nfInstanceId;
leaf nfInstanceId {
description "String uniquely identifying a NF instance.";
type string;
}
min-elements 1;
uses gmlc3gpp:GmlcInfoGrp;
}
list servedLmfInfo {
description "This attribute contains all the lmfInfo attributes
locally configured in the NRF or the NRF received during NF
registration. The key of the map is the nfInstanceId of which
the lmfInfo belongs to.";
key nfInstanceId;
leaf nfInstanceId {
description "String uniquely identifying a NF instance.";
type string;
}
min-elements 1;
uses lmf3gpp:LmfInfoGrp;
}
list servedNfInfo {
description "This attribute contains information of other NFs
without corresponding NF type specific Info extensions locally
configured in the NRF or the NRF received during NF registration.
The key of the map is the nfInstanceId of the NF. The map entry
is the NfInfo as defined in clause 5.3.229 representing the
information of a generic NF instance.";
key nfInstanceId;
leaf nfInstanceId {
description "String uniquely identifying a NF instance.";
type string;
}
min-elements 1;
uses nfInfoGrp;
}
list servedHssInfoList {
description "This attribute contains list of HssInfo attribute
locally configured in the NRF or that the NRF received during NF
registration. The key of the map is the nfInstanceId to which the
map entry belongs to.";
key nfInstanceId;
leaf nfInstanceId {
description "String uniquely identifying a NF instance.";
type string;
}
min-elements 1;
uses HssInfoGrp;
}
list served5gDdnmfInfo {
description "This attribute contains all the 5gDdnmfInfo
attribute locally configured in the NRF or that the NRF
received during NF registration. The key of the map is
the nfInstanceId to which the map entry belongs to.";
key nfInstanceId;
leaf nfInstanceId {
description "String uniquely identifying a NF instance.";
type string;
}
min-elements 1;
uses FiveGDdnmfInfo ;
}
}
grouping ImsiRange{
leaf start{
description "This attribute indicates the first value identifying
the start of a IMSI range. ";
type string{
pattern "^[0-9]+$";
}
}
leaf end{
description "This attribute indicates the last value identifying
the end of a IMSI range.";
type string{
pattern "^[0-9]+$";
}
}
leaf pattern{
description "This attribute indicates pattern (regular expression
according to the ECMA-262 dialect [75]) representing the set of
IMSIs belonging to this range. An IMSI value is considered part
of the range if and only if the IMSI string fully matches the
regular expression.Either the start and end attributes, or the
pattern attribute, shall be present.";
type string;
}
}
grouping NetworkNodeDiameterAddress {
leaf-list name{
description "This attribute indicates the Diameter
name of the network node diameter address.";
reference " See TS 29.571 [61]. String contains a Diameter Identity
(FQDN).";
type string;
min-elements 1;
max-elements 1;
}
leaf-list realm{
description "This attribute indicates the Diameter realm of the
network node diameter addres. See TS 29.571 [61]. String contains
a Diameter Identity (FQDN).";
type string;
min-elements 1;
max-elements 1;
}
}
typedef PduSessionType {
type enumeration {
enum IPV4;
enum IPV6;
enum IPV4V6;
enum UNSTRUCTURED;
enum ETHERNET;
}
}
grouping DnnUpfInfoItem {
leaf dnn {
description "String representing a Data Network.";
mandatory true;
type string;
}
leaf-list dnaiList {
description "List of Data network access identifiers supported
by the UPF for this DNN.
The absence of this attribute indicates that the UPF
can be selected for this DNN for any DNAI.";
min-elements 1;
type string; //dnai is the type but its only a string with
//desc: DNAI (Data network access identifier),
//is this needed as its own typedef or string is ok
}
leaf-list pduSessionTypes {
description "List of PDU session type(s) supported by
the UPF for a specific DNN.";
min-elements 1;
type PduSessionType;
}
}
grouping nfInfoGrp {
description "This data type represents the information of a
generic NF Instance. (See clause 6.1.6.2.56 TS 29.510 [23]).";
leaf nfType {
description "This parameter defines type of Network Function";
type uint16;
}
}
grouping FiveGDdnmfInfo {
description "This data type represents the specific data for the 5G DDMF NF.
See clause 6.1.6.2.74 of TS 29.510.";
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;
}
}
grouping NRFFunctionGrp {
description "Represents the NRFFunction IOC";
uses mf3gpp:ManagedFunctionGrp;
......@@ -44,6 +641,7 @@ module _3gpp-5gc-nrm-nrffunction {
uses types3gpp:PLMNId;
}
leaf sBIFQDN {
description "The FQDN of the registered NF instance in the service-based
interface.";
......@@ -70,6 +668,21 @@ module _3gpp-5gc-nrm-nrffunction {
uses types5g3gpp:SNssai;
}
list nrfInfo {
description "";
key idx;
leaf idx {type uint32;}
uses NrfInfoGrp;
}
list nFProfileList {
description "It is a set of NFProfile(s) to be registered in the NRF
instance. NFProfile is defined in 3GPP TS 29.510 ";
key idx;
leaf idx { type uint32; }
min-elements 1;
max-elements 1;
uses mnfp3gpp:ManagedNFProfileGrp;
}
list managedNFProfile {
key idx;
leaf idx { type uint32; }
......
......@@ -113,9 +113,10 @@ module _3gpp-5gc-nrm-pcffunction {
list supiRanges {
description "List of ranges of SUPIs that can be served by
the PCF instance. If not provided, the PCF can serve any SUPI.";
key "start end pattern";
key idx;
leaf idx { type uint32; }
min-elements 1;
uses mnfp3gpp:SupiRange;
uses mnfp3gpp:SupiRangeGrp;
}
leaf rxDiamHost {
......
......@@ -29,7 +29,7 @@ module _3gpp-5gc-nrm-smffunction {
revision 2018-08-07 { reference "Initial revision";}
grouping smfInfo {
grouping SmfInfoGrp {
list sNssaiSmfInfoList {
description "List of parameters supported by the SMF per S-NSSAI.";
......
......@@ -85,7 +85,7 @@ module _3gpp-5gc-nrm-udmfunction {
available in the UDM instance.";
key "start end pattern";
min-elements 1;
uses mnfp3gpp:SupiRange;
uses mnfp3gpp:SupiRangeGrp;
}
list gpsiRanges {
......
......@@ -28,7 +28,7 @@ module _3gpp-5gc-nrm-udrfunction {
revision 2019-05-22 {reference "initial revision"; }
grouping udrInfo {
grouping UdrInfoGrp {
leaf groupId {
description "Identity of the UDR group that is served
......@@ -43,7 +43,7 @@ module _3gpp-5gc-nrm-udrfunction {
is available in the UDR instance.";
key "start end pattern";
min-elements 1;
uses mnfp3gpp:SupiRange;
uses mnfp3gpp:SupiRangeGrp;
}
list gpsiRanges {
......