diff --git a/yang-models/_3gpp-5g-common-yang-types.yang b/yang-models/_3gpp-5g-common-yang-types.yang index 59ddcb2c3d8f01c7259d7c1def06aa58ec5da1ee..1021911acbcc75989c822bdfafd4956964d35264 100755 --- a/yang-models/_3gpp-5g-common-yang-types.yang +++ b/yang-models/_3gpp-5g-common-yang-types.yang @@ -15,6 +15,8 @@ module _3gpp-5g-common-yang-types { TTA, TTC). All rights reserved."; reference "3GPP TS 28.541"; + revision 2025-11-07 { reference CR-1640 ; } + revision 2025-11-01 { reference CR-1657 ; } revision 2025-07-25 { reference CR-1558 ; } revision 2025-03-25 { reference CR-1489 ; } revision 2024-11-01 { reference CR-1405; } @@ -26,6 +28,88 @@ module _3gpp-5g-common-yang-types { revision 2020-11-05 { reference CR-0412 ; } revision 2019-10-20 { reference "Initial version."; } + grouping AreaScopeGrp { + description "This <> defines an area scope."; + + choice AreaScopeChoice { + + case eutran-only { // choice 1 + 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 { // choice 3 + leaf-list tacList { + type types3gpp:Tac; + min-elements 1; + max-elements 8; + description "Tracking Area Code list"; + } + leaf-list cAGIdList { + type types3gpp:CagId; + max-elements 256; + description "It identifies a CAG list containing up to + 256 CAG-identifiers per UE or up to 12 CAG-identifiers + per cell, see TS 38.331 [38]. CAG ID is used to combine + with PLMN ID to identify a PNI-NPN.AG ID is a hexadecimal + range with size 32 bit."; + } + } + + case ntnGeoAreaList{ // choice 6 + list ntnGeoAreaList { + must 'not(../nrCellIdList)'; + description "geographical areas for NTN MDT"; + key idx; + max-elements 8; + leaf idx { type string; } + uses types3gpp:GeoAreaGrp; + } + } + + case else { + list nPNIdentityList { // choice 2, 4 , 5 + description "list of NPN IDs of in NR. It is either + a list of PNI-NPNs identified by CAG ID with + associated plmn-Identity or a list of SNPN + identified by Network ID with associated plmn-Identity"; + key idx; + 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"; + } + 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"; + key idx; + uses PLMNInfo; + min-elements 1; + max-elements 16384; + leaf idx { type string; } + } + } + grouping IpInterfaceGrp { leaf-list ipv4EndpointAddresses { description "Available endpoint IPv4 address(es) of @@ -114,7 +198,7 @@ module _3gpp-5g-common-yang-types { min-elements 1; max-elements 1; key "sst sd"; - uses types5g3gpp:SNssai; + uses SNssai; } list dnnSmfInfoList { @@ -405,4 +489,132 @@ module _3gpp-5g-common-yang-types { } } + grouping CaraConfigurationGrp { + description "This data type represents the configuration used for + an NR mobile node (e.g., IAB-node or MWAB), to perform certificate enrolment procedure with + Certification Authority server (CA/RA) as specified in TS 28.315 clause 5.3"; + + leaf caraAddress { + type inet:host; + description "IP address or FQDN of the CMP (Certificate Management Protocol) server"; + } + + leaf portNumber { + type inet:port-number; + description "This parameter specifies the port number used by + CMP (Certificate Management Protocol) server. The port for HTTP/HTTPSs + transfer of CMP messages is not explicitly given in RFC 9811, therefore + this parameter is required. The port number is usually + represented as 2 octets."; + } + + leaf path { + type inet:uri; + mandatory true; + description "This parameter specifies the path (in ASCII string) to + the CMP server directory. A CMP server may be located in an + arbitrary path other than root."; + } + + leaf subjectName { + type string; + mandatory true; + description "This parameter specifies the subject name (in ASCII + string) of the CA/RA. The use is described in 3GPP TS 33.310 + clause 9.5.3."; + } + + leaf protocol { + type enumeration { + enum HTTP; + enum HTTPS; + } + description "This parameter specifies the protocol (HTTP or HTTPS) + to be used for certificate enrolment. The use is described in + 3GPP TS 33.310 clause 9.6."; + } + } + + grouping MnrOamIPConfigGrp { + description "This data type includes the configutation for OAM connectivity + used for an NR mobile node (e.g., IAB-node or MWAB), to establish connection with + management system. The configuration attributes include: + Configuration of certification authority (CA/RA) server, + Configuration of security gateway (SeGW), and + Configuration of software configuration server (SCS)"; + + list caraConfiguration { + description "configuration used for an NR mobile node (e.g., IAB-node or MWAB), + to perform certificate enrolment procedure as specified in + TS 28.315."; + uses CaraConfigurationGrp; + max-elements 1; + key caraAddress; + } + + leaf seGwConfiguration { + description "this parameter specifies IP address or + FQDN of security gateway (SeGW) used for an + an NR mobile node (e.g., IAB-node or MWAB) + to establish secure connection as specified in TS 28.315."; + type inet:host; + + } + + leaf scsConfiguration { + description "this parameter specifies IP address or FQDN of + configuration server (SCS) used for + an NR mobile node (e.g., IAB-node or MWAB) + to establish connection as specified in TS 28.315."; + type inet:host; + } + } + + grouping LocationInfoGrp { + description "This data type contains location information + of an NR mobile node (e.g., IAB-node or MWAB)."; + + leaf gNBId { + type int64 { range "0..4294967295"; } + description "It is either the gNB ID of the IAB-donor-CU that target IAB-DU + connects to or the gNB Id of the IAB-nonor-CU that serves IAB-MT, or + the gNBId of the gNB that serves MWAB-UE."; + } + + list pLMNId { + uses types3gpp:PLMNId; + max-elements 1; + description "The PLMN ID where IAB-MT or MWAB-UE is connected to"; + key "mcc mnc"; + } + + leaf cellLocalId { + type int32 { range "0..16383"; } + description "Identifies an NR cell where IAB-MT or MWAB-UE + is connected to."; + } + + leaf nRTAC { + type types5g3gpp:NRTAC; + description "It is TAC pertaining to the cells where IAB-MT or MWAB-UE is + connected."; + } + + list tAI { + uses types3gpp:TaiGrp; + key idx; + leaf idx { type string; } + max-elements 1; + description "It is the TAI (see subclause 9.3.3.11 in TS 38.413) pertaining + to the cells where IAB-MT or MWAB-UE is connected"; + } + list geoArea { + uses types3gpp:GeoAreaGrp; + key idx; + leaf idx {type string;} + max-elements 1; + description "It specifies geographical area of mobile NR node + (e.g., IAB-node or MWAB-node)."; + } + } } \ No newline at end of file diff --git a/yang-models/_3gpp-5gc-nrm-aiot-ep.yang b/yang-models/_3gpp-5gc-nrm-aiot-ep.yang new file mode 100644 index 0000000000000000000000000000000000000000..9c8a843958f306599fd8be60ffa1de872802be45 --- /dev/null +++ b/yang-models/_3gpp-5gc-nrm-aiot-ep.yang @@ -0,0 +1,243 @@ +module _3gpp-5gc-nrm-aiot-ep { + yang-version 1.1; + namespace "urn:3gpp:sa5:_3gpp-5gc-nrm-aiot-ep"; + prefix "aiotep3gpp"; + + import _3gpp-common-managed-element { prefix me3gpp; } + import _3gpp-common-top { prefix top3gpp; } + import _3gpp-common-ep-rp { prefix eprp3gpp; } + import _3gpp-5gc-nrm-amffunction { prefix amf3gpp; } + import _3gpp-5gc-nrm-nrffunction { prefix nrf3gpp; } + import _3gpp-5gc-nrm-neffunction { prefix nef3gpp; } + import _3gpp-5gc-nrm-aiot { prefix aiot3gpp; } + + organization "3GPP SA5"; + contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; + description "Defines AIOT related endpoint Classes (IOCs). + Copyright 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + TTA, TTC). All rights reserved."; + reference "3GPP TS 28.541"; + + revision 2025-11-01 { reference CR-1640; } + + grouping EP_AIOT2Grp { + description "Represents the EP_AIOT2 IOC."; + uses eprp3gpp:EP_Common; + } + + grouping EP_AIOT3Grp { + description "Represents the EP_AIOT3 IOC."; + uses eprp3gpp:EP_Common; + } + + grouping EP_AIOT4Grp { + description "Represents the EP_AIOT4 IOC."; + uses eprp3gpp:EP_Common; + } + + grouping EP_AIOT5Grp { + description "Represents the EP_AIOT5 IOC."; + uses eprp3gpp:EP_Common; + } + + grouping EP_AIOT6Grp { + description "Represents the EP_AIOT6 IOC."; + uses eprp3gpp:EP_Common; + } + + grouping EP_AIOT7Grp { + description "Represents the EP_AIOT7 IOC."; + uses eprp3gpp:EP_Common; + } + + grouping EP_AIOT8Grp { + description "Represents the EP_AIOT8 IOC."; + uses eprp3gpp:EP_Common; + } + + feature EP_AIOT2UnderAMFFunction { + description "EP_AIOT2 shall be contained under AMFFunction."; + } + + augment /me3gpp:ManagedElement/amf3gpp:AMFFunction { + if-feature EP_AIOT2UnderAMFFunction; + list EP_AIOT2 { + description "This IOC represents the AIOT2 interface between NG-RAN and + AIOTF, which is defined in 3GPP TS 23.369."; + + key id; + uses top3gpp:Top_Grp; + container attributes { + uses EP_AIOT2Grp; + } + } + } + + feature EP_AIOT5UnderNRFFunction { + description "EP_AIOT5 shall be contained under NRFFunction."; + } + + augment /me3gpp:ManagedElement/nrf3gpp:NRFFunction { + if-feature EP_AIOT5UnderNRFFunction; + list EP_AIOT5 { + description "This IOC represents the AIOT5 interface between AIOTF and + NRF, which is defined in 3GPP TS 23.369."; + + key id; + uses top3gpp:Top_Grp; + container attributes { + uses EP_AIOT5Grp; + } + } + } + + feature EP_AIOT4UnderNEFFunction { + description "EP_AIOT4 shall be contained under NEFFunction."; + } + + feature EP_AIOT8UnderNEFFunction { + description "EP_AIOT8 shall be contained under NEFFunction."; + } + + augment /me3gpp:ManagedElement/nef3gpp:NEFFunction { + if-feature EP_AIOT4UnderNEFFunction; + list EP_AIOT4 { + description "This IOC represents the AIOT4 interface between AIOTF and + NEF, which is defined in 3GPP TS 23.369."; + + key id; + uses top3gpp:Top_Grp; + container attributes { + uses EP_AIOT4Grp; + } + } + + if-feature EP_AIOT8UnderNEFFunction; + list EP_AIOT8 { + description "This IOC represents the AIOT8 interface between NEF and ADM, + which is defined in 3GPP TS 23.369."; + + key id; + uses top3gpp:Top_Grp; + container attributes { + uses EP_AIOT8Grp; + } + } +} + + feature EP_AIOT3UnderAIOTFFunction { + description "EP_AIOT3 shall be contained under AIOTFFunction."; + } + + feature EP_AIOT4UnderAIOTFFunction { + description "EP_AIOT4 shall be contained under AIOTFFunction."; + } + + feature EP_AIOT5UnderAIOTFFunction { + description "EP_AIOT5 shall be contained under AIOTFFunction."; + } + + feature EP_AIOT6UnderAIOTFFunction { + description "EP_AIOT6 shall be contained under AIOTFFunction."; + } + + augment /me3gpp:ManagedElement/aiot3gpp:AIOTFFunction { + if-feature EP_AIOT3UnderAIOTFFunction; + list EP_AIOT3 { + description "This IOC represents the AIOT3 interface between AMF and + AIOTF, which is defined in 3GPP TS 23.369."; + + key id; + uses top3gpp:Top_Grp; + container attributes { + uses EP_AIOT3Grp; + } + } + + if-feature EP_AIOT4UnderAIOTFFunction; + list EP_AIOT4 { + description "This IOC represents the AIOT4 interface between AIOTF and + NEF, which is defined in 3GPP TS 23.369."; + + key id; + uses top3gpp:Top_Grp; + container attributes { + uses EP_AIOT4Grp; + } + } + + if-feature EP_AIOT5UnderAIOTFFunction; + list EP_AIOT5 { + description "This IOC represents the AIOT5 interface between AIOTF and + NRF, which is defined in 3GPP TS 23.369."; + + key id; + uses top3gpp:Top_Grp; + container attributes { + uses EP_AIOT5Grp; + } + } + + if-feature EP_AIOT6UnderAIOTFFunction; + list EP_AIOT6 { + description "This IOC represents the AIOT6 interface between AIOTF and + ADM, which is defined in 3GPP TS 23.369."; + + key id; + uses top3gpp:Top_Grp; + container attributes { + uses EP_AIOT6Grp; + } + } + } + + feature EP_AIOT6UnderADMFunction { + description "EP_AIOT6 shall be contained under ADMFunction."; + } + + feature EP_AIOT7UnderADMFunction { + description "EP_AIOT7 shall be contained under ADMFunction."; + } + + feature EP_AIOT8UnderADMFunction { + description "EP_AIOT8 shall be contained under ADMFunction."; + } + + augment /me3gpp:ManagedElement/aiot3gpp:ADMFunction { + if-feature EP_AIOT6UnderADMFunction; + list EP_AIOT6 { + description "This IOC represents the AIOT6 interface between AIOTF and + ADM, which is defined in 3GPP TS 23.369."; + + key id; + uses top3gpp:Top_Grp; + container attributes { + uses EP_AIOT6Grp; + } + } + + if-feature EP_AIOT7UnderADMFunction; + list EP_AIOT7 { + description "This IOC represents the AIOT7 interface between UDR and ADM, + which is defined in 3GPP TS 23.369."; + + key id; + uses top3gpp:Top_Grp; + container attributes { + uses EP_AIOT7Grp; + } + } + + if-feature EP_AIOT8UnderADMFunction; + list EP_AIOT8 { + description "This IOC represents the AIOT8 interface between NEF and ADM, + which is defined in 3GPP TS 23.369."; + + key id; + uses top3gpp:Top_Grp; + container attributes { + uses EP_AIOT8Grp; + } + } + } +} \ No newline at end of file diff --git a/yang-models/_3gpp-5gc-nrm-aiot.yang b/yang-models/_3gpp-5gc-nrm-aiot.yang new file mode 100644 index 0000000000000000000000000000000000000000..be123060a171542c252449387fffffacf19cc2ff --- /dev/null +++ b/yang-models/_3gpp-5gc-nrm-aiot.yang @@ -0,0 +1,222 @@ +module _3gpp-5gc-nrm-aiot { + yang-version 1.1; + namespace "urn:3gpp:sa5:_3gpp-5gc-nrm-aiot"; + prefix "aiot3gpp"; + + import _3gpp-common-managed-element { prefix me3gpp; } + import _3gpp-common-top { prefix top3gpp; } + import _3gpp-common-yang-types { prefix types3gpp; } + import ietf-inet-types { prefix inet; } + import _3gpp-common-managed-function { prefix mf3gpp; } + import _3gpp-5gc-nrm-managed-nfprofile { prefix mnfp3gpp; } + + organization "3GPP SA5"; + contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; + description "Defines the YANG mapping AIOT (Ambient power-enabled Internet + of Things). + Copyright 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + TTA, TTC). All rights reserved."; + reference "3GPP TS 28.541 + 3GPP TS 23.369"; + + revision 2025-11-01 { reference CR-1640; } + + grouping ServedAIOTAreaIDGrp { + description "ServedAIOTAreaID datatype"; + + list pLMNId { + description "It defines which PLMN that can be served by the AIOT reader."; + + min-elements 1; // error not well defined on stage 2 clause 4.4.1 + max-elements 1; + key "mcc mnc"; + uses types3gpp:PLMNId; + } + + // error nID is only defined in 5.4.1 not 4.4.1> The text states it is not + // always needed, but the multiplicity is strictly 1. + leaf nID { + type string { + pattern '[A-Fa-f0-9]{11}'; + } + description "Network Identity; Shall be present if PlmnIdNid identifies + an SNPN (see clauses 5.30.2.3, 5.30.2.9, 6.3.4, and 6.3.8 in 3GPP + TS 23.501"; + } + + leaf aIotAreaCode { + type string; + mandatory true; + description "This specifies the identity of the A-IoT Area Code which is + one of the components of A-IoT Area ID. It's a 3-octet string defined + in TS 38.413."; + } + } + + grouping ServedReaderInfoGrp { + description "ServedReaderInfo datatype"; + + leaf readerId { + type int32; + mandatory true; + description "It defines the reader identifier to uniquely identify a + reader within a gNB."; + } + + list servedAIOTAreas { + min-elements 1; + key idx; + leaf idx { type uint32; } + uses ServedAIOTAreaIDGrp; + description "This attribute is used to specify the A-IoT areas supported + by the A-IoT reader. It contains one or multiple A-IoT Area ID, which + is used to uniquely identify an A-IoT Area. + + A-IoT Area ID = PLMN ID +NID (optional) + A-IoT Area Code + (OCTET STRING (SIZE(3))), which is defined in TS 38.413."; + } + + leaf readerLocation { + type string; + mandatory true; + description "This specifies the geographical location of a A-IoT reader. + Reader Location may represent any of latitude/longitude, or any + geographical location/coordinate/area polygon."; + } + } + + grouping AIoTgNBInfoGrp { + description "AIoTgNBInfo datatype"; + + leaf gNBId { + type int64 { range "0..4294967295"; } + mandatory true; + description "It identifies a gNB within a PLMN"; + } + + list servedReaderInfoList { + description "Represents the information of served Readers of a gNB, + which includes the reader ID (indexes), served A-IoT areas of the RAN + and Reader and optionally the Reader location."; + min-elements 1; + key idx; + leaf idx { type uint32; } + uses ServedReaderInfoGrp; + } + } + + grouping AIOTFFunctionGrp { + description "Attributes of the IOC AIOTFFunction"; + + uses mf3gpp:ManagedFunctionGrp; + + list pLMNId { + description "Represents a PLMN Identity."; + + min-elements 1; + max-elements 1; + key "mcc mnc"; + uses types3gpp:PLMNId; + } + + leaf sBIFQDN { + description "It is used to indicate the FQDN of the registered NF instance + in service-based interface, for example, NF instance FQDN structure is: + nftype.slicetype.mnc.mcc.3gppnetwork.org"; + type inet:domain-name; + mandatory true; + } + + list managedNFProfile { + key idx; + leaf idx { type uint32; } + min-elements 1; + max-elements 1; + uses mnfp3gpp:ManagedNFProfileGrp; + description "This parameter defines profile for managed NF"; + reference "3gpp TS 23.501"; + } + + list aIOTgNBInfo { + key idx; + leaf idx { type uint32; } + min-elements 1; + description "It represents the information that a AIOTF needs for + selecting the NG-RAN i.e.of gNB supporting Ambient-IoT service, + which includes gNB ID, served NG-RAN A-IoT area and the information + of served Readers of the gNB."; + uses AIoTgNBInfoGrp; + } + } + + feature AIOTFFunctionUnderManagedElement { + description "AIOTFFunction shall be contained under ManagedElement."; + } + + augment /me3gpp:ManagedElement { + if-feature AIOTFFunctionUnderManagedElement; + list AIOTFFunction { + description "This IOC represents the AIOTF function defined in TS 23.369"; + + key id; + uses top3gpp:Top_Grp; + container attributes { + uses AIOTFFunctionGrp; + } + uses mf3gpp:ManagedFunctionContainedClasses; + } + } + + ////////////////////////////////////////////////////////////////////// + + grouping ADMFunctionGrp { + description "Attributes of the IOC ADMFunction"; + + uses mf3gpp:ManagedFunctionGrp; + + list pLMNId { + description "Represents a PLMN Identity."; + + min-elements 1; + max-elements 1; + key "mcc mnc"; + uses types3gpp:PLMNId; + } + + leaf sBIFQDN { + description "It is used to indicate the FQDN of the registered NF instance + in service-based interface, for example, NF instance FQDN structure is: + nftype.slicetype.mnc.mcc.3gppnetwork.org"; + type inet:domain-name; + mandatory true; + } + + list managedNFProfile { + key idx; + leaf idx { type uint32; } + min-elements 1; + max-elements 1; + uses mnfp3gpp:ManagedNFProfileGrp; + description "This parameter defines profile for managed NF"; + reference "3gpp TS 23.501"; + } + } + + feature ADMFunctionUnderManagedElement { + description "ADMFunction shall be contained under ManagedElement."; + } + + augment /me3gpp:ManagedElement { + if-feature ADMFunctionUnderManagedElement; + list ADMFunction { + description "This IOC represents the ADM function defined in TS 23.369"; + + key id; + uses top3gpp:Top_Grp; + container attributes { + uses ADMFunctionGrp; + } + uses mf3gpp:ManagedFunctionContainedClasses; + } + } +} \ No newline at end of file diff --git a/yang-models/_3gpp-5gc-nrm-neffunction.yang b/yang-models/_3gpp-5gc-nrm-neffunction.yang index f2646d93e68a8b2cda55b07b413cfb2eb2cc4bfb..6f8b80c808fa35400eb36ff932da668762934cb7 100755 --- a/yang-models/_3gpp-5gc-nrm-neffunction.yang +++ b/yang-models/_3gpp-5gc-nrm-neffunction.yang @@ -21,6 +21,7 @@ module _3gpp-5gc-nrm-neffunction { TTA, TTC). All rights reserved."; reference "3GPP TS 28.541"; + revision 2025-11-07 { reference CR-1640 ; } revision 2025-07-25 { reference CR-1558 ; } revision 2025-03-25 { reference CR-1489 ; } revision 2025-01-25 { reference CR-1442 ; } @@ -282,6 +283,33 @@ module _3gpp-5gc-nrm-neffunction { } } + grouping AIoTNEFMappingGrp { + description "Represents the data type AIoTNEFMapping"; + + list targetAreaAF { + description "It represents the external target area provided by an AF + to NEF for triggering A-IoT services. It could refer to a geographical + location."; + min-elements 1; + max-elements 1; + key idx; + leaf idx { type uint32 ; } + uses types3gpp:GeoAreaGrp; + } + + list internalTargetArea { + description "This is the (internal) target area mapped to external + target area. It is provided to NEF by NRF. + It could refer to any of TAC/TAI(list), PLMN or any geographical + location/coordinate/area polygon"; + min-elements 1; + max-elements 1; + key idx; + leaf idx { type uint32 ; } + uses types5g3gpp:AreaScopeGrp; + } + } + grouping NEFFunctionGrp { description "Represents the NEFFunction IOC"; uses mf3gpp:ManagedFunctionGrp; @@ -327,6 +355,19 @@ module _3gpp-5gc-nrm-neffunction { leaf idx { type uint32 ; } uses NefInfoGrp; } + + list AIoTNEFMapping { + description "It represents mapping information between external target + area (provided by AF) and (5G core internal) target area that is to + be provided to NRF"; + config false; + min-elements 1; + yext3gpp:inVariant; + yext3gpp:notNotifyable; + key idx; + leaf idx { type uint32 ; } + uses AIoTNEFMappingGrp; + } } augment "/me3gpp:ManagedElement" { diff --git a/yang-models/_3gpp-5gc-nrm-nrffunction.yang b/yang-models/_3gpp-5gc-nrm-nrffunction.yang index fed4e61593bd619257b1a0d44c8f35891f9228df..0355794cd7dde57359989dba4249a475b4a959b8 100755 --- a/yang-models/_3gpp-5gc-nrm-nrffunction.yang +++ b/yang-models/_3gpp-5gc-nrm-nrffunction.yang @@ -10,6 +10,7 @@ module _3gpp-5gc-nrm-nrffunction { import _3gpp-common-yang-types { prefix types3gpp; } import _3gpp-common-top { prefix top3gpp; } import _3gpp-5g-common-yang-types { prefix types5g3gpp; } + import _3gpp-common-yang-extensions { prefix yext3gpp; } import _3gpp-5gc-nrm-managed-nfprofile { prefix mnfp3gpp; } import _3gpp-5gc-nrm-udrfunction { prefix udr3gpp; } import _3gpp-5gc-nrm-udmfunction { prefix udm3gpp; } @@ -21,7 +22,7 @@ module _3gpp-5gc-nrm-nrffunction { import _3gpp-5gc-nrm-nwdaffunction { prefix nwdaf3gpp;} import _3gpp-5gc-nrm-gmlcfunction { prefix gmlc3gpp;} import _3gpp-5gc-nrm-lmffunction { prefix lmf3gpp;} - + import _3gpp-5gc-nrm-aiot { prefix aiot3gpp;} organization "3gpp SA5"; contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; @@ -31,6 +32,7 @@ module _3gpp-5gc-nrm-nrffunction { TTA, TTC). All rights reserved."; reference "3GPP TS 28.541"; + revision 2025-11-01 { reference CR-1640 ; } revision 2025-07-25 { reference CR-1558 ; } revision 2025-01-25 { reference CR-1442 ; } revision 2023-09-18 { reference CR-1043 ; } @@ -40,160 +42,148 @@ 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; + } - 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; - } + 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; + } - 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; - } + 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; } - 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 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 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."; + 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; + min-elements 1; + key "mcc mnc"; + uses types3gpp:PLMNId; + } + leaf primaryChfInstance { + 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 + leaf secondaryChfInstance { + 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."; - 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 - } + max-elements 1; + type string; + } + leaf-list gmIpv4Addresses { + description "This attribute represents list of IPv4 addresses of of + the P-CSCF for the Gm interface."; + type inet:ipv4-address; + } + leaf-list gmIpv6Addresses { + description "This attribute represents list of IPv6 addresses of of the + P-CSCF for the Gm interface."; + type inet:ipv6-address; + } + leaf mwFqdn { + description "This attribute represents FQDN of the P-CSCF for the Mw + interface."; + type string; + } + 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; + } + leaf-list mwIpv6Addresses { + description "This attribute represents list of IPv4 addresses of + the P-CSCF for the Mw interface."; + type inet:ipv6-address; } + 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; + } + } grouping HssInfoGrp { description " Information of an HSS NF Instance"; leaf groupID{ @@ -280,253 +270,253 @@ module _3gpp-5gc-nrm-nrffunction { 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."; + grouping NrfInfoGrp { - key nfInstanceId; - leaf nfInstanceId { - description "String uniquely identifying a NF instance."; - type string; - } + list servedUdrInfo { + description "This attribute contains all the udrInfo + attributes + locally configured in the NRF or the NRF received + during NF registration."; - min-elements 1; - uses udr3gpp:UdrInfoGrp; + key nfInstanceId; + leaf nfInstanceId { + description "String uniquely identifying a NF instance."; + type string; } - list servedUdmInfo { - description "This attribute contains all the udmInfo - attributes - locally configured in the NRF or the NRF - received during NF registration."; + min-elements 1; + uses udr3gpp:UdrInfoGrp; + } - key nfInstanceId; - leaf nfInstanceId { - description "String uniquely identifying a NF instance."; - type string; - } + list servedUdmInfo { + description "This attribute contains all the udmInfo + attributes + locally configured in the NRF or the NRF + received during NF registration."; - min-elements 1; - uses udm3gpp:UdmInfoGrp; + key nfInstanceId; + leaf nfInstanceId { + description "String uniquely identifying a NF instance."; + type string; } - list servedAusfInfo { - description "This attribute contains all the - ausfInfo attributes - locally configured in the NRF or the NRF - received during NF registration."; + min-elements 1; + uses udm3gpp:UdmInfoGrp; + } - key nfInstanceId; - leaf nfInstanceId { - description "String uniquely identifying a NF instance."; - type string; - } + list servedAusfInfo { + description "This attribute contains all the + ausfInfo attributes + locally configured in the NRF or the NRF + received during NF registration."; - min-elements 1; - uses ausf3gpp:AusfInfoGrp; + key nfInstanceId; + leaf nfInstanceId { + description "String uniquely identifying a NF instance."; + type string; } - list servedAmfInfo { - description "This attribute contains all the amfInfo - attributes - locally configured in the NRF or the NRF received - during NF registration."; + min-elements 1; + uses ausf3gpp:AusfInfoGrp; + } - key nfInstanceId; - leaf nfInstanceId { - description "String uniquely identifying a NF instance."; - type string; - } + list servedAmfInfo { + description "This attribute contains all the amfInfo + attributes + locally configured in the NRF or the NRF received + during NF registration."; - min-elements 1; - uses amf3gpp:AmfInfoGrp; + key nfInstanceId; + leaf nfInstanceId { + description "String uniquely identifying a NF instance."; + type string; } - list servedSmfInfo { - description "This attribute contains all the smfInfo - attributes - locally configured in the NRF or the NRF received - during NF registration."; + min-elements 1; + uses amf3gpp:AmfInfoGrp; + } - key nfInstanceId; - leaf nfInstanceId { - description "String uniquely identifying a NF instance."; - type string; - } + list servedSmfInfo { + description "This attribute contains all the smfInfo + attributes + locally configured in the NRF or the NRF received + during NF registration."; - min-elements 1; - uses smf3gpp:SmfInfoGrp; + key nfInstanceId; + leaf nfInstanceId { + description "String uniquely identifying a NF instance."; + type string; } - list servedUpfInfo { - description "This attribute contains all the upfInfo - attributes - locally configured in the NRF or the NRF received - during NF registration."; + min-elements 1; + uses smf3gpp:SmfInfoGrp; + } - key nfInstanceId; - leaf nfInstanceId { - description "String uniquely identifying a NF instance."; - type string; - } + list servedUpfInfo { + description "This attribute contains all the upfInfo + attributes + locally configured in the NRF or the NRF received + during NF registration."; - min-elements 1; - uses upf3gpp:UpfInfoGrp; + key nfInstanceId; + leaf nfInstanceId { + description "String uniquely identifying a NF instance."; + type string; } - list servedPcfInfo { - description "This attribute contains all the pcfInfo - attributes - locally configured in the NRF or the NRF received - during NF registration."; + min-elements 1; + uses upf3gpp:UpfInfoGrp; + } - key nfInstanceId; - leaf nfInstanceId { - description "String uniquely identifying a NF instance."; - type string; - } + list servedPcfInfo { + description "This attribute contains all the pcfInfo + attributes + locally configured in the NRF or the NRF received + during NF registration."; - min-elements 1; - uses pcf3gpp:pcfInfoGrp; + key nfInstanceId; + leaf nfInstanceId { + description "String uniquely identifying a NF instance."; + type string; } - list servedBsfInfo { - description "This attribute contains all the bsfInfo - attributes - locally configured in the NRF or the NRF received - during NF registration."; + min-elements 1; + uses pcf3gpp:pcfInfoGrp; + } - key nfInstanceId; - leaf nfInstanceId{ - description "String uniquely identifying a NF instance."; - type string; - } + list servedBsfInfo { + description "This attribute contains all the bsfInfo + attributes + locally configured in the NRF or the NRF received + during NF registration."; - min-elements 1; - uses bsfInfo; + key nfInstanceId; + leaf nfInstanceId{ + description "String uniquely identifying a NF instance."; + type string; } - list servedChfInfo { - description "This attribute contains all the bsfInfo - attributes - locally configured in the NRF or the NRF received - during NF registration."; + min-elements 1; + uses bsfInfo; + } - key nfInstanceId; - leaf nfInstanceId { - description "String uniquely identifying a NF instance."; - type string; - } + list servedChfInfo { + description "This attribute contains all the bsfInfo + attributes + locally configured in the NRF or the NRF received + during NF registration."; - min-elements 1; - uses chfInfo; + key nfInstanceId; + leaf nfInstanceId { + description "String uniquely identifying a NF instance."; + type string; } - 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."; + min-elements 1; + uses chfInfo; + } - key nfInstanceId; - leaf nfInstanceId { - description "String uniquely identifying a NF instance."; - type string; - } + 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."; - min-elements 1; - uses nwdaf3gpp:NwdafInfoGrp; + key nfInstanceId; + leaf nfInstanceId { + description "String uniquely identifying a NF instance."; + type string; } - 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; + + 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; } - 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; + + 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; } - 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; + + 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; } - 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; + + 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; } - 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; + + 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; } - 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 ; + 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 @@ -571,15 +561,15 @@ module _3gpp-5gc-nrm-nrffunction { max-elements 1; } } - typedef PduSessionType { - type enumeration { - enum IPV4; - enum IPV6; - enum IPV4V6; - enum UNSTRUCTURED; - enum ETHERNET; - } + typedef PduSessionType { + type enumeration { + enum IPV4; + enum IPV6; + enum IPV4V6; + enum UNSTRUCTURED; + enum ETHERNET; } + } grouping DnnUpfInfoItem { leaf dnn { description "String representing a Data Network."; @@ -625,29 +615,54 @@ module _3gpp-5gc-nrm-nrffunction { uses types3gpp:PLMNId; } } + grouping AIoTNRFMappingGrp { + description "Data type AIoTNRFMapping"; + + leaf aIOTFdN { + type types3gpp:DistinguishedName; + mandatory true; + description "Represents the distinguished name (DN) identifier of the + AIOTF that serves the (internal) target area provided by NEF to NRF"; + } + + list internalTargetArea { + description "It is the (internal) target area used by NRF (as provided + by NEF) to accurately locate the AIOTF instance. It is mapped to aIOTFdN. + It could refer to a list of AIoT Areas."; + key idx; + leaf idx { type uint32; } + min-elements 1; + uses aiot3gpp:ServedAIOTAreaIDGrp; + } + } grouping NRFFunctionGrp { description "Represents the NRFFunction IOC"; uses mf3gpp:ManagedFunctionGrp; - list pLMNIdList { - description "List of at most six entries of PLMN Identifiers, but at - least one (the primary PLMN Id). - The PLMN Identifier is composed of a Mobile Country Code (MCC) and a - Mobile Network Code (MNC)."; + list pLMNInfoList { + description "It defines the PLMN(s) of a Network Function."; min-elements 1; - max-elements 6; - key "mcc mnc"; - uses types3gpp:PLMNId; + key "mcc mnc sd sst"; + uses types5g3gpp:PLMNInfo; } - leaf sBIFQDN { - description "The FQDN of the registered NF instance in the service-based - interface."; + description "It is used to indicate the FQDN of the registered NF instance + in service-based interface, for example, NF instance FQDN structure is: + nftype.slicetype.mnc.mcc.3gppnetwork.org"; type inet:domain-name; + mandatory true; } + 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; } + uses mnfp3gpp:ManagedNFProfileGrp; + } + leaf-list cNSIIdList { description "NSI ID. NSI ID is an identifier for identifying the Core Network part of a Network Slice instance when multiple Network Slice @@ -657,32 +672,14 @@ module _3gpp-5gc-nrm-nrffunction { type string; } - list sNSSAIList { - description "List of S-NSSAIs the managed object is capable of supporting. - (Single Network Slice Selection Assistance Information) - An S-NSSAI has an SST (Slice/Service type) and an optional SD - (Slice Differentiator) field."; - //optional support - reference "3GPP TS 23.003"; - key "sd sst"; - uses types5g3gpp:SNssai; - } - list nrfInfo { - description ""; + description "Represents information of an NRF NF Instance."; + max-elements 1; 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; } @@ -692,6 +689,19 @@ module _3gpp-5gc-nrm-nrffunction { description "This parameter defines profile for managed NF"; reference "3gpp TS 23.501"; } + + list aIoTNRFMapping { + config false; + yext3gpp:inVariant; + yext3gpp:notNotifyable; + description "Represents mapping information between (Internal) target + area (provided by NEF) and AIOTF DN."; + min-elements 1; + key idx; + leaf idx { type uint32; } + + uses AIoTNRFMappingGrp; + } } augment "/me3gpp:ManagedElement" { diff --git a/yang-models/_3gpp-common-ep-rp.yang b/yang-models/_3gpp-common-ep-rp.yang index 3b4d22dd97c390af97e3d8078daedb03d17e1126..a3c14b50f0230bedf8c6e5592db6ab9021e9920a 100755 --- a/yang-models/_3gpp-common-ep-rp.yang +++ b/yang-models/_3gpp-common-ep-rp.yang @@ -12,7 +12,7 @@ module _3gpp-common-ep-rp { description "Common/basic class/grouping to be inherited/reused. This IOC represents an end point of a link used across a reference point between two network entities. - Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + Copyright 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved."; reference "3GPP TS 28.622 @@ -23,6 +23,7 @@ module _3gpp-common-ep-rp { 3GPP TS 28.620 Umbrella Information Model (UIM)"; + revision 2025-10-01 { reference CR-0578 ; } revision 2023-09-18 { reference CR-0271 ; } revision 2020-06-08 { reference "CR-0092"; } @@ -49,11 +50,12 @@ module _3gpp-common-ep-rp { config false; type types3gpp:DistinguishedName; } + + uses meas3gpp:SupportedPerfMetricGroupGrp; } grouping EP_Common { uses EP_RPGrp; - uses meas3gpp:SupportedPerfMetricGroupGrp; list localAddress { description "Local IP address and VLAN ID."; key "ipAddress vlanId"; diff --git a/yang-models/_3gpp-common-fm.yang b/yang-models/_3gpp-common-fm.yang index e9d3b2defb0c4675535b8b5d7e3a2ff10b6dcbd2..ee2023e30bc8b3d24910e098382d774922305f6d 100755 --- a/yang-models/_3gpp-common-fm.yang +++ b/yang-models/_3gpp-common-fm.yang @@ -16,6 +16,7 @@ module _3gpp-common-fm { TTA, TTC). All rights reserved."; reference "3GPP TS 28.111"; + revision 2025-11-07 { reference "CR-0057"; } revision 2025-08-13 { reference "CR-0050 CR-0051 CR-0053 CR-0054"; } revision 2025-05-01 { reference "CR-0042 CR-0043"; } // common for R18, R19 revision 2025-03-25 { reference "CR-0025 CR-0026"; } @@ -283,7 +284,7 @@ module _3gpp-common-fm { enum EXTERNAL_TRANSMISSION_DEVICE_FAILURE { value 552; } enum REDUCED_ALARM_REPORTING { value 561; } enum REDUCED_EVENT_REPORTING { value 562; } - enum RECUCED_LOGGING_CAPABILITY { value 563; } + enum REDUCED_LOGGING_CAPABILITY { value 563; } enum SYSTEM_RESOURCES_OVERLOAD { value 564; } enum BROADCAST_CHANNEL_FAILURE { value 565; } enum CONNECTION_ESTABLISHMENT_ERROR { value 566; } @@ -529,6 +530,7 @@ module _3gpp-common-fm { mandatory true; config false ; yext3gpp:notNotifyable; + yext3gpp:inVariant; } leaf alarmChangedTime { @@ -702,6 +704,7 @@ module _3gpp-common-fm { } list comments { + config false ; yext3gpp:notNotifyable; description "List of comments and data about the comments."; key idx; @@ -785,10 +788,14 @@ module _3gpp-common-fm { type string; config false ; yext3gpp:notNotifyable; + description "It carries the identity of the detector of the security + alarm."; } list correlatedNotifications { key sourceObjectInstance; + config false ; + yext3gpp:notNotifyable; description "List of correlated notifications"; leaf sourceObjectInstance { diff --git a/yang-models/_3gpp-common-mnsregistry.yang b/yang-models/_3gpp-common-mnsregistry.yang index 29bd57ebbc6ea8094b15708c45b16c054a4e999a..4f0c36cad4d1860ce6efe7d193afa940dba29b2b 100755 --- a/yang-models/_3gpp-common-mnsregistry.yang +++ b/yang-models/_3gpp-common-mnsregistry.yang @@ -17,6 +17,7 @@ module _3gpp-common-mnsregistry { TTA, TTC). All rights reserved."; reference "3GPP TS 28.623 Generic Network Resource Model (NRM)"; + revision 2025-11-02 { reference CR-0586; } revision 2025-07-19 { reference CR-0551; } revision 2023-09-30 { reference CR-0278; } revision 2023-09-18 { reference CR-0271 ; } @@ -199,22 +200,28 @@ module _3gpp-common-mnsregistry { enum FAULT_NOTIFICATION; enum TRACE_MDT_DATA_COLLECTION_CONTROL; enum TRACE_MDT_DATA_REPORT; + enum STM_PROVISIONING; + enum STM_STREAMING; enum QOE_DATA_COLLECTION_CONTROL; enum QOE_DATA_REPORT; enum FILE_RETRIEVAL; enum FILE_DOWNLOAD; + enum CONFIGURATION_PLAN_MGMT; enum SUBSCRIPTION_CONTROL; enum HEARTBEAT_CONTROL; enum HEARTBEAT_NOTIFICATION; - enum ML_MODEL_MANAGEMENT; enum MANAGEMENT_DATA_ANALYTIC; enum RANSC_MANAGEMENT; enum SON_POLICY; enum COMMUNICATION_SERVICE_ASSURANCE_CONTROL; + enum CLOSED_CONTROL_LOOP_MANAGEMENT; enum INTENT_DRIVEN_MANAGEMENT; + enum ML_MODEL_MANAGEMENT; + enum NDT_LCM; enum MNS_REGISTRY_AND_DISCOVERY; enum MNS_ACCESS_CONTROL_MANAGEMENT; enum DSO_RAPID_RECOVERY_AND_THRESHOLD_MONITORING; + enum EXTERNALDATA_DISCOVERY_AND_REQUEST; } type string; } diff --git a/yang-models/_3gpp-common-qmcjob.yang b/yang-models/_3gpp-common-qmcjob.yang index 9d58855f52eec7ff62c51f9a7a9dcb3beaac8d00..0660143f310523e03fe73cdcbe33cbd48e82aea5 100644 --- a/yang-models/_3gpp-common-qmcjob.yang +++ b/yang-models/_3gpp-common-qmcjob.yang @@ -27,6 +27,7 @@ module _3gpp-common-qmcjob { Integration Reference Point (IRP); Information Service (IS)"; + revision 2025-11-07 { reference CR-0586; } revision 2025-02-06 { reference CR-0508; } revision 2024-11-05 { reference CR-0480; } revision 2024-04-04 { reference CR-0334; } @@ -54,7 +55,7 @@ module _3gpp-common-qmcjob { leaf idx { type uint32 ; } description "It defines the area scope of QoE, which is specified in clause 5.4 of TS 28.405."; - uses trace3gpp:AreaScopeGrp; + uses types5g3gpp:AreaScopeGrp; } leaf qoECollectionEntityAddress { diff --git a/yang-models/_3gpp-common-subscription-control.yang b/yang-models/_3gpp-common-subscription-control.yang index 5cc3cdd461c46c62b62f313264927272b65a5c49..8fbbbdf949ce04a4cae0823043b6051990e7f318 100755 --- a/yang-models/_3gpp-common-subscription-control.yang +++ b/yang-models/_3gpp-common-subscription-control.yang @@ -21,6 +21,7 @@ module _3gpp-common-subscription-control { Solution Set (SS) definitions 3GPP TS 28.623"; + revision 2025-11-07 { reference "CR-0551 CR-0586"; } //common for r19, r20 revision 2025-08-13 { reference "CR-0551 CR-0561"; } revision 2025-05-13 { reference "CR-0548"; } revision 2025-03-24 { reference "CR-0516 0518"; } @@ -308,7 +309,7 @@ module _3gpp-common-subscription-control { description "Scopes (selects) data nodes in an object tree."; key idx; max-elements 1; - leaf idx { type string; } + leaf idx { type uint32; } uses ScopeGrp; } diff --git a/yang-models/_3gpp-common-trace.yang b/yang-models/_3gpp-common-trace.yang index cbcf5b179aad55ff78b7c65b6e3e42e098e4e275..7a2a5cbb19cefd9943b1d48ac2a453d9ff7c072c 100755 --- a/yang-models/_3gpp-common-trace.yang +++ b/yang-models/_3gpp-common-trace.yang @@ -25,6 +25,8 @@ module _3gpp-common-trace { Integration Reference Point (IRP); Information Service (IS)" ; + revision 2025-10-07 { reference "CR-0573" ; } // common for rel-19, rel-20 + revision 2025-10-01 { reference "CR-0578" ; } 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" ; } @@ -112,75 +114,6 @@ module _3gpp-common-trace { } } - grouping AreaScopeGrp { - description "This <> defines an area scope."; - - 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"; - } - } - case tac { - leaf-list tacList { - type types3gpp:Tac; - min-elements 1; - max-elements 8; - description "Tracking Area Code list"; - } - leaf-list cAGIdList { - type types3gpp:CagId; - max-elements 256; - description "It identifies a CAG list containing up to - 256 CAG-identifiers per UE or up to 12 CAG-identifiers - per cell, see TS 38.331 [38]. CAG ID is used to combine - with PLMN ID to identify a PNI-NPN.AG ID is a hexadecimal - range with size 32 bit."; - } - } - - case else { - list nPNIdentityList { - description "list of NPN IDs of in NR. It is either - a list of PNI-NPNs identified by CAG ID with - associated plmn-Identity or a list of SNPN - identified by Network ID with associated plmn-Identity"; - key idx; - 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"; - } - 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"; - key idx; - uses types5g3gpp:PLMNInfo; - min-elements 1; - max-elements 16384; - leaf idx { type string; } - } - } - grouping ExcessPacketDelayThresholdsGrp { description "Represents the ExcessPacketDelayThresholds dataType. This <> defines a excess packet delay threshold information @@ -1585,7 +1518,7 @@ module _3gpp-common-trace { reference "clause 5.10.38 of TS 32.422"; } - list areaConfigurationForNeighCells { + list areaConfigurationForNeighCell { when '../../../jobType = "LOGGED_MDT_ONLY" or' + ' ../../../jobType = "IMMEDIATE_MDT_AND_LOGGED_MDT"'; key "idx"; @@ -1671,7 +1604,7 @@ module _3gpp-common-trace { leaf idx { type uint32 ; } description "It specifies the area where data shall be collected. "; max-elements 1; - uses AreaScopeGrp; + uses types5g3gpp:AreaScopeGrp; } leaf-list sensorInformation { @@ -1731,7 +1664,7 @@ module _3gpp-common-trace { trsrPrefixLength defines the size of base TRSR prefix."; reference "Clause 5.10 of 3GPP TS 32.422."; leaf idx { type uint32 ; } - uses trace3gpp:trsrPrefixCfgGrp ; + uses trace3gpp:TrsrPrefixCfgGrp ; } } @@ -1786,8 +1719,8 @@ module _3gpp-common-trace { } } - grouping trsrPrefixCfgGrp { - leaf trstPrefix { + grouping TrsrPrefixCfgGrp { + leaf trsrPrefix { type string; mandatory true; description "A 2 byte Octet String. This is the base TRSR prefix"; diff --git a/yang-models/_3gpp-common-yang-types.yang b/yang-models/_3gpp-common-yang-types.yang index bba864e2836d03deb76227e5011b19e97053e9a6..51e946c7b1057ae9785d53944963425f61a8cf01 100755 --- a/yang-models/_3gpp-common-yang-types.yang +++ b/yang-models/_3gpp-common-yang-types.yang @@ -16,7 +16,9 @@ module _3gpp-common-yang-types { TTA, TTC). All rights reserved."; reference "3GPP TS 28.623"; - + // common for rel-19, rel-20 + revision 2025-10-07 { reference "CR-0573 CR-0582 CR-583"; } + revision 2025-10-01 { reference "CR-0578" ; } 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; } @@ -103,7 +105,7 @@ module _3gpp-common-yang-types { } typedef FullTime { - type yang:time-with-zone-offset; + type yang:time; } grouping DayInYearGrp { @@ -651,10 +653,29 @@ module _3gpp-common-yang-types { } } + 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; + units "50 meters"; + } + } + 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,7 +683,6 @@ module _3gpp-common-yang-types { key "latitude longitude"; min-elements 3; ordered-by user; - uses GeoCoordinateGrp; } } @@ -677,6 +697,14 @@ module _3gpp-common-yang-types { } reference "clause 2.10.1 of 3GPP TS 23.003"; } + + list geoCircle { + description "a geographical circle identified by reference location and + associated distance radius"; + key idx; + leaf idx { type uint16; } + uses GeoCircleGrp; + } typedef AmfSetId { type union { @@ -1070,10 +1098,10 @@ module _3gpp-common-yang-types { location specified by 'fileLocation'. The file location may identify any entity such as a file server or a MnS consumer. The identified MnS consumer may or may not be identical to the MnS consumer creating - the 'PerfMetricJob'. As for CHOICE_1 the MnS producer may emit - 'notifyFileReady' and 'notifyFilePreparationError' notifications to - inform subscribers that a file has been made available at the location - specified by 'fileLocation'. + the 'PerfMetricJob'. The MnS producer may emit 'notifyFileReady' and + 'notifyFilePreparationError' notifications to inform subscribers that + a file has been made available at the location specified by + 'fileLocation'. - When only the streamTarget attribute is present, the MnS producer shall stream the data to the location specified by streamTarget. diff --git a/yang-models/_3gpp-eqp-antennafunction.yang b/yang-models/_3gpp-eqp-antennafunction.yang index 9a7e4bfbd53a990ea56021f11ca3703ff12e6c69..eae727bf5ce6ddc9b6ed862dca94cd4d2e9a08ea 100644 --- a/yang-models/_3gpp-eqp-antennafunction.yang +++ b/yang-models/_3gpp-eqp-antennafunction.yang @@ -16,10 +16,10 @@ module _3gpp-eqp-antennafunction { TTA, TTC). All rights reserved."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; + revision 2025-11-07 { reference "CR1660"; } revision 2025-08-13 { reference "CR1581"; } - revision 2025-05-01 { reference "Initial revision"; + revision 2025-05-01 { reference "Initial revision"; } - } grouping AntennaFunctionGrp { description "Represents the AntennaFunction."; uses mf3gpp:ManagedFunctionGrp; @@ -122,7 +122,7 @@ module _3gpp-eqp-antennafunction { } } - leaf-list referencedBy { + leaf-list referenceFrom { description "This attribute contains the DNs of one or more objects that refer to this object. @@ -168,17 +168,6 @@ module _3gpp-eqp-antennafunction { range "0..180"; } } - - leaf-list theCellList { - description "This attribute contains the DNs of EUtranGenericCell - or UtranGenericCell if associations between them exist. - This attribute contains the DNs of GSMCellPart if association - between them exist. "; - config false; - status deprecated; - type types3gpp:DistinguishedName; - } - } augment "/me3gpp:ManagedElement" { diff --git a/yang-models/_3gpp-eqp-sectorequipmentfunction.yang b/yang-models/_3gpp-eqp-sectorequipmentfunction.yang index a21d4173fc5b10ed50ad054fc8e7fb995febfbab..3a5564a775333ade16d581cd0076ecfe4033b653 100644 --- a/yang-models/_3gpp-eqp-sectorequipmentfunction.yang +++ b/yang-models/_3gpp-eqp-sectorequipmentfunction.yang @@ -17,6 +17,7 @@ module _3gpp-eqp-sectorequipmentfunction { TTA, TTC). All rights reserved."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; + revision 2025-11-07 { reference "CR1660"; } revision 2025-08-13 { reference "CR1581"; } revision 2025-05-01 { reference "Initial revision"; } @@ -53,12 +54,26 @@ module _3gpp-eqp-sectorequipmentfunction { type string; } - leaf-list referencedBy { + leaf-list referenceFrom { description "This attribute contains the DNs of one or more objects that refer to this object. In the case of SectorEquipmentFunction , these referring objects - may include Cells, NRSectorCarriers if associations between them + may include e.g. Cells, NRSectorCarriers if associations from them + and the SectorEquipmentFunction exist. + + Note: referencedBy is a DN datatype and so can reference an MOI + under a different ME"; + config false; + type types3gpp:DistinguishedName; + } + + leaf-list referenceTo { + description "This attribute contains the DNs of one or more objects + referred to by this object. + + In the case of SectorEquipmentFunction , these referred to objects + may include e.g. TMAFunction if associations to them and the SectorEquipmentFunction exist. Note: referencedBy is a DN datatype and so can reference an MOI diff --git a/yang-models/_3gpp-nr-nrm-aiotreader.yang b/yang-models/_3gpp-nr-nrm-aiotreader.yang new file mode 100644 index 0000000000000000000000000000000000000000..435949e48244ed15a96b103d1fc6bf8eb0bbc0f1 --- /dev/null +++ b/yang-models/_3gpp-nr-nrm-aiotreader.yang @@ -0,0 +1,98 @@ +module _3gpp-nr-nrm-aiotreader { + yang-version 1.1; + namespace "urn:3gpp:sa5:_3gpp-nr-nrm-aiotreader"; + prefix "aiotread3gpp"; + + import _3gpp-common-managed-element { prefix me3gpp; } + import _3gpp-common-top { prefix top3gpp; } + import _3gpp-common-yang-types { prefix types3gpp; } + import _3gpp-5gc-nrm-aiot { prefix aiot3gpp; } + import _3gpp-nr-nrm-gnbdufunction { prefix gnbdu3gpp; } + + organization "3GPP SA5"; + contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; + description "Defines the YANG mapping the AIoT Reader. + Copyright 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, + TTA, TTC). All rights reserved."; + reference "3GPP TS 28.541"; + + revision 2025-11-07 { reference CR-1640; } + + grouping AIOTReaderGrp { + description "Attributes of the IOC AIOTReader"; + + leaf readerId { + type int32; + mandatory true; + description "It defines the reader identifier to uniquely identify a + reader within a gNB."; + } + + leaf administrativeState { + type types3gpp:BasicAdministrativeState; + default LOCKED; + description "It indicates the administrative state of the AIOTReader. + It describes the permission to use or prohibition against using the + AIOT reader, imposed through the OAM services."; + } + + leaf-list supportedAIOTServices { + type enumeration { + enum INVENTORY; + enum COMMAND; + } + min-elements 1; + description "It indicates the supported AIOT service type for an + AIOT reader."; + } + + list pLMNId { + description "Defines which PLMN that can be served by the AIOT reader."; + + min-elements 1; + max-elements 1; + key "mcc mnc"; + uses types3gpp:PLMNId; + } + + list servedAIOTAreas { + description "This attribute is used to specify the A-IoT areas supported + by the A-IoT reader. It contains one or multiple A-IoT Area ID, which + is used to uniquely identify an A-IoT Area. + + A-IoT Area ID = PLMN ID +NID (optional) + A-IoT Area Code + (OCTET STRING (SIZE(3))), which is defined in TS 38.413."; + min-elements 1; + key idx; + leaf idx { type uint32; } + uses aiot3gpp:ServedAIOTAreaIDGrp; + } + + leaf readerLocation { + type string; + mandatory true; + description "This specifies the geographical location of a A-IoT reader. + Reader Location may represent any of latitude/longitude, or any + geographical location/coordinate/area polygon."; + } + + leaf-list nRSectorCarrierRef { + type types3gpp:DistinguishedName; + description "This attribute contains the DN of the referenced + NRSectorCarrier."; + } + } + + augment /me3gpp:ManagedElement/gnbdu3gpp:GNBDUFunction { + list AIOTReader { + description "This IOC represents AIoT Reader which supports AIOT + services."; + + key id; + uses top3gpp:Top_Grp; + container attributes { + uses AIOTReaderGrp; + } + } + } +} \ No newline at end of file diff --git a/yang-models/_3gpp-nr-nrm-ep.yang b/yang-models/_3gpp-nr-nrm-ep.yang index 60bc8091fcc1b17b7b30dca317f29792c6872d3e..d5392a2b7060915926d358bb656569c750293dd5 100755 --- a/yang-models/_3gpp-nr-nrm-ep.yang +++ b/yang-models/_3gpp-nr-nrm-ep.yang @@ -9,6 +9,7 @@ module _3gpp-nr-nrm-ep { import _3gpp-nr-nrm-gnbcucpfunction { prefix gnbcucp3gpp; } import _3gpp-nr-nrm-gnbcuupfunction { prefix gnbcuup3gpp; } import _3gpp-nr-nrm-gnbdufunction { prefix gnbdu3gpp; } + import _3gpp-common-yang-types { prefix types3gpp ; } organization "3GPP SA5"; contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; @@ -19,6 +20,8 @@ module _3gpp-nr-nrm-ep { TTA, TTC). All rights reserved."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; + revision 2025-11-07 { reference "CR-1640 CR-1643"; } // common for R19, R20 + revision 2025-10-01 { reference "CR-1616 CR-1617" ; } revision 2025-05-06 { reference "CR-1526 CR-1527" ; } // common for R18, R19 revision 2023-09-18 { reference CR-1043 ; } revision 2022-01-07 { reference CR-0643; } @@ -47,6 +50,11 @@ module _3gpp-nr-nrm-ep { uses eprp3gpp:EP_Common; } + grouping EP_F1CGrp { + description "Attributes of IOC EP_F1U"; + uses eprp3gpp:EP_Common; + } + grouping EP_F1CSubtree { list EP_F1C { description "Represents the local end point of the control plane @@ -55,11 +63,24 @@ module _3gpp-nr-nrm-ep { key id; uses top3gpp:Top_Grp; container attributes { - uses eprp3gpp:EP_Common; + uses EP_F1CGrp; } } } + grouping EP_F1UGrp { + description "Attributes of IOC EP_F1U"; + uses eprp3gpp:EP_Common; + + leaf-list epTransportRef { + type types3gpp:DistinguishedName; + config false; + description "This parameter specifies a list of transport level EPs + associated with the application level EP (i.e. EP_N3 or EP_NgU or + EP_F1U) or network slice subnet."; + } + } + grouping EP_F1USubtree { list EP_F1U { description "Represents the local end point of the user plane @@ -68,7 +89,7 @@ module _3gpp-nr-nrm-ep { key id; uses top3gpp:Top_Grp; container attributes { - uses eprp3gpp:EP_Common; + uses EP_F1UGrp; } } } @@ -132,9 +153,17 @@ module _3gpp-nr-nrm-ep { uses EP_F1CSubtree; list EP_NgC { - description "Represents the local end point of the control plane - interface (NG-C) between the gNB and AMF."; - reference "3GPP TS 28.541, 3GPP TS 38.470"; + description "This IOC represents the local end point of the control + plane interface (NG-C) between the gNB and AMF or the gNB and AIOTF. + The transport network layer is built on IP transport. For the reliable + transport of signalling messages, SCTP is added on top of IP. + The application layer signalling protocol is referred to as NG-AP + (NG Application Protocol). + + 3GPP TS 38.470 noted that 'one gNB-CU and a set of gNB-DUs are + visible to other logical nodes as a gNB or an en-gNB where the gNB + terminates the Xn and the NG interfaces, and the en-gNB terminates + the X2 and the S1-U interfaces'."; key id; uses top3gpp:Top_Grp; container attributes { diff --git a/yang-models/_3gpp-nr-nrm-iabfunction.yang b/yang-models/_3gpp-nr-nrm-iabfunction.yang index 12592ba498c406202cd9e263dde2aa917d8414b5..df170cf81fbaa7d8b16c0c9389ec1ed61a1ae8f6 100644 --- a/yang-models/_3gpp-nr-nrm-iabfunction.yang +++ b/yang-models/_3gpp-nr-nrm-iabfunction.yang @@ -3,8 +3,6 @@ module _3gpp-nr-nrm-iabfunction { namespace "urn:3gpp:sa5:_3gpp-nr-nrm-iabfunction"; prefix "iab3gpp"; - import ietf-inet-types { prefix inet; } - import _3gpp-common-yang-types { prefix types3gpp; } import _3gpp-common-top { prefix top3gpp; } import _3gpp-5g-common-yang-types { prefix types5g3gpp; } import _3gpp-common-managed-element { prefix me3gpp; } @@ -18,132 +16,11 @@ module _3gpp-nr-nrm-iabfunction { reference "3GPP TS 28.541; 3GPP TS 28.314; 3GPP TS 28.315; 3GPP TS 33.310, IETF RFC 9811"; + revision 2025-11-01 { reference "CR-1657" ; } + revision 2025-10-01 { reference "CR-1616" ; } revision 2025-08-15 { reference "CR-1598"; } - grouping CaraConfigurationGrp { - description "This data type represents the configuration used for mobile - NR node (e.g., IAB-node) to perform certificate enrolment procedure with - Certification Authority server (CA/RA) as specified in TS 28.315 clause 5.3"; - - leaf caraAddress { - type inet:host; - description "IP address or FQDN of CA/RA server"; - } - - leaf portNumber { - type inet:port-number; - description "This parameter specifies the port number used by - CMP (Certificate Management Protocol) server. The port for HTTP/HTTPSs - transfer of CMP messages is not explicitly given in RFC 9811, therefore - this parameter is required. The port number is usually - represented as 2 octets."; - } - - leaf path { - type inet:uri; - mandatory true; - description "This parameter specifies the path (in ASCII string) to - the CMP server directory. A CMP server may be located in an - arbitrary path other than root."; - } - - leaf subjectName { - type string; - mandatory true; - description "This parameter specifies the subject name (in ASCII - string) of the CA/RA. The use is described in 3GPP TS 33.310 - clause 9.5.3."; - } - - leaf protocol { - type enumeration { - enum HTTP; - enum HTTPS; - } - description "This parameter specifies the protocol (HTTP or HTTPS) - to be used for certificate enrolment. The use is described in - 3GPP TS 33.310 clause 9.6."; - } - } - grouping MnrOamIPConfigGrp { - description "This data type includes the configutation for OAM connectivity - used for mobile NR node (e.g., IAB-node) to establish connection with - management system. The configuration attributes include: - Configuration of certification authority (CA/RA) server, - Configuration of security gateway (SeGW), and - Configuration of software configuration server (SCS)"; - - list caraConfiguration { - description "configuration used for mobile NR node (e.g., IAB-node) - to perform certificate enrolment procedure as specified in TS 28.315."; - uses CaraConfigurationGrp; - max-elements 1; - key caraAddress; - } - - leaf seGwConfiguration { - description "configuration of security - gateway (SeGW) used for mobile NR node (e.g., IAB-node) to establish - secure connection as specified in TS 28.315."; - type inet:host; - - } - - leaf scsConfiguration { - description "configuration of software - configuration server (SCS) used for mobile NR node (e.g., IAB-node) - to establish connection to SCS as specified in TS 28.315."; - type inet:host; - } - } - - grouping LocationInfoGrp { - description "This data type contains location information - of mobile NR node (e.g., IAB-node)."; - - leaf gNBId { - type int64 { range "0..4294967295"; } - description "It is either the gNB ID of the IAB-donor-CU that target IAB-DU - connects to or the gNB Id of the IAB-nonor-CU that serves IAB-MT"; - } - - list pLMNId { - uses types3gpp:PLMNId; - max-elements 1; - description "The PLMN ID where IAB-MT or MWAB-UE is connected to"; - key "mcc mnc"; - } - - leaf cellLocalId { - type int32 { range "0..16383"; } - description "Identifies an NR cell where IAB-MT or MWAB-UE - is connected to."; - } - - leaf nRTAC { - type types5g3gpp:NRTAC; - description "It is TAC pertaining to the cells where IAB-MT or MWAB-UE is - connected."; - } - - list tAI { - uses types3gpp:TaiGrp; - key idx; - leaf idx { type string; } - max-elements 1; - description "It is the TAI (see subclause 9.3.3.11 in TS 38.413) pertaining - to the cells where IAB-MT or MWAB-UE is connected"; - } - list geoArea { - uses types3gpp:GeoAreaGrp; - key idx; - leaf idx {type string;} - max-elements 1; - description "It specifies geographical area of mobile NR node - (e.g., IAB-node or MWAB)."; - } - } grouping IABGrp { description "IAB-node architecture is specified in TS 38.401. This IOC @@ -151,29 +28,30 @@ module _3gpp-nr-nrm-iabfunction { contained by SubNetwork or ManagedElement"; list mnrOamIPConfig { - description "It is IP configutation for OAM connectivity used IAB-node + description "It is IP configutation for OAM connectivity used + by a mobile NR node (e.g., IAB-node, MWAB-node) to establish connection with management system as specified in TS 28.314[x] clause 6.1.2"; key id; leaf id { type uint32; } - uses MnrOamIPConfigGrp ; + uses types5g3gpp:MnrOamIPConfigGrp ; } - list locationInfo { - description "It is Location information of IAB-node that is used for - IAB-node OAM connection and IAB configuration as specified in - TS 28.314 clause 6.1.2 and TS 28.531 clause 5.1.27"; + list currentLocation { + description "This parameter specifies the current location + of mobile NR node (e.g., IAB-node, MWAB-node)."; key id; leaf id { type uint32; } - uses LocationInfoGrp; + uses types5g3gpp:LocationInfoGrp; } } - grouping IabSubTree { + + grouping IABSubTree { description "Contains classes that manage IAB function management"; - list IAB { + list IAB { description "IAB-node architecture is specified in TS 38.401. This IOC defines the configuration information for the IAB management"; @@ -191,7 +69,7 @@ module _3gpp-nr-nrm-iabfunction { augment /me3gpp:ManagedElement { if-feature IABUnderManagedElement; - uses IabSubTree; + uses IABSubTree; } feature IABUnderSubNetwork { @@ -200,6 +78,6 @@ module _3gpp-nr-nrm-iabfunction { augment /subnet3gpp:SubNetwork { if-feature IABUnderSubNetwork; - uses IabSubTree; + uses IABSubTree; } } \ No newline at end of file diff --git a/yang-models/_3gpp-nr-nrm-mwab.yang b/yang-models/_3gpp-nr-nrm-mwab.yang index 9f8af2af9575b54b16c11f95b2ac6c136b62f2cc..d25676c5987b5cbee0a83a3067f9d4b842d9c5df 100644 --- a/yang-models/_3gpp-nr-nrm-mwab.yang +++ b/yang-models/_3gpp-nr-nrm-mwab.yang @@ -5,6 +5,7 @@ module _3gpp-nr-nrm-mwab { import _3gpp-common-yang-types { prefix types3gpp; } import _3gpp-common-top { prefix top3gpp; } + import _3gpp-5g-common-yang-types { prefix types5g3gpp; } organization "3GPP SA5"; contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; @@ -15,10 +16,21 @@ module _3gpp-nr-nrm-mwab { TTA, TTC). All rights reserved."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; + revision 2025-11-01 { reference CR-1656 ; } revision 2025-04-25 { reference CR-1527 ; } grouping MWABGrp { - description "Represets the ExternalENBFunction IOC."; + description "Represents the MWAB IOC."; + + list mnrOamIPConfig { + description "It is IP configutation for OAM connectivity used + by a mobile NR node (e.g., IAB-node, MWAB-node) + to establish connection with management system as specified + in TS 28.314[x] clause 6.1.2"; + key id; + leaf id { type uint32; } + uses types5g3gpp:MnrOamIPConfigGrp ; + } leaf operationalState { description "It indicates the operational state of the MWAB instance. @@ -58,6 +70,13 @@ module _3gpp-nr-nrm-mwab { leaf idx { type uint32 ; } uses types3gpp:TimeWindowGrp; } + list currentLocation { + description "This parameter specifies the current location + of mobile NR node (e.g., IAB-node, MWAB-node)."; + key id; + leaf id { type uint32; } + uses types5g3gpp:LocationInfoGrp; + } } grouping MWABSubTree { diff --git a/yang-models/_3gpp-nr-nrm-nrcelldu.yang b/yang-models/_3gpp-nr-nrm-nrcelldu.yang index 40245e23e7bc11ae461ca272de3df0cb9506c44b..a6b8fd775c89e35c0cffa0bc814e1cf206bc7fb6 100755 --- a/yang-models/_3gpp-nr-nrm-nrcelldu.yang +++ b/yang-models/_3gpp-nr-nrm-nrcelldu.yang @@ -19,6 +19,7 @@ module _3gpp-nr-nrm-nrcelldu { TTA, TTC). All rights reserved."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; + revision 2025-11-07 { reference "CR-1640 CR-1643"; } // common for r19, r20 revision 2025-07-25 { reference CR-1558 ; } revision 2025-02-07 { reference CR-1442; } revision 2024-05-25 { reference CR-1412 ; } @@ -340,8 +341,8 @@ module _3gpp-nr-nrm-nrcelldu { } leaf-list nRSectorCarrierRef { - description "Reference to corresponding NRSectorCarrier instance."; - min-elements 1; + description "This attribute contains the DN of the referenced + NRSectorCarrier."; type types3gpp:DistinguishedName; } diff --git a/yang-models/_3gpp-nr-nrm-nrfreqrelation.yang b/yang-models/_3gpp-nr-nrm-nrfreqrelation.yang index f3f80a3d9ffe8a1384771dd290be72f86da94294..9a80eddf1022678bc158639eda9662cf4133ea64 100755 --- a/yang-models/_3gpp-nr-nrm-nrfreqrelation.yang +++ b/yang-models/_3gpp-nr-nrm-nrfreqrelation.yang @@ -8,6 +8,7 @@ module _3gpp-nr-nrm-nrfreqrelation { import _3gpp-common-top { prefix top3gpp; } import _3gpp-nr-nrm-gnbcucpfunction { prefix gnbcucp3gpp; } import _3gpp-nr-nrm-nrcellcu { prefix nrcellcu3gpp; } + import _3gpp-nr-nrm-redcapaccess { prefix redcap3gpp; } organization "3GPP SA5"; contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; @@ -17,6 +18,7 @@ module _3gpp-nr-nrm-nrfreqrelation { TTA, TTC). All rights reserved."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; + revision 2025-11-07 { reference CR-1640; } revision 2025-01-25 { reference CR-1442; } revision 2024-02-24 { reference CR-1218; } revision 2023-09-18 { reference CR-1043; } @@ -112,6 +114,15 @@ module _3gpp-nr-nrm-nrfreqrelation { type uint8 { range "2 | 4 | 6 | 8"; } units "0.1"; } + list cellReselectionRedcap { + description "This attribute indicates the configuration parameters + to allow relaxation of RRM measurement requirements for redcap UE + cell reselection"; + key idx; + leaf idx{ type uint32;} + reference "see clause 6.3.1 TS 38.331 "; + uses redcap3gpp:CellReselectionRedcapGrp; + } leaf pMax { description "Used for calculation of the parameter Pcompensation @@ -194,7 +205,7 @@ module _3gpp-nr-nrm-nrfreqrelation { units dB; } - leaf tReselectionNR { + leaf tReselectionNR { description "Cell reselection timer for NR."; reference "TreselectionRAT for NR in 3GPP TS 38.331"; mandatory true; @@ -213,7 +224,7 @@ module _3gpp-nr-nrm-nrfreqrelation { units %; } - leaf tReselectionNRSfMedium { + leaf tReselectionNRSfMedium { description "The attribute tReselectionNr (parameter TreselectionNR in 3GPP TS 38.304) multiplied with this scaling factor if the UE is in medium mobility state."; diff --git a/yang-models/_3gpp-nr-nrm-redcapaccess.yang b/yang-models/_3gpp-nr-nrm-redcapaccess.yang index 51e91f203ccc0532906c7999450df437b299cde0..ffc0a39a8dcf6d9058a9585dfc8eb9bbf783c9b5 100755 --- a/yang-models/_3gpp-nr-nrm-redcapaccess.yang +++ b/yang-models/_3gpp-nr-nrm-redcapaccess.yang @@ -15,6 +15,7 @@ module _3gpp-nr-nrm-redcapaccess { reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; + revision 2025-11-07 { reference CR-1640; } revision 2025-07-07 { reference CR-; } feature redcapaccesscriteriasubnertwork { @@ -43,18 +44,71 @@ module _3gpp-nr-nrm-redcapaccess { will be created providing following information: The performance metrics (KPIs and performance measurements) that are to be considered in the criteria for deciding whether the cell in a - RAN node is barred or allowed for RedCap/eRedCap UEs + RAN node is barred or allowed for (e)RedCap UEs The direction (up and down) that is to be considered for crossing the threshold value of the given performance metrics for taking a decision whether the RAN node is barred or allowed for - RedCap/eRedCap UEs. + (e)RedCap UEs. The threshold level of performance metrics value which when crossed - the RAN node is barred or allowed for RedCap/eRedCap UEs"; + the RAN node is barred or allowed for (e)RedCap UEs"; } } + grouping CellReselectionRedcapGrp { + description "This data type defines configuration parameters + to allow relaxation of RRM measurement requirements for (e)RedCap UE + cell reselection. "; + reference "TS 38.331 , clasue 6.3.1 and TS 38.304 , clause 5.2.4.9"; + leaf sSearchDeltaPStationary { + type uint8 { + range "2 | 3 | 6 | 9 | 12 | 15"; + } + mandatory true; + description "This specifies the threshold (in dB) on Srxlev variation + to evaluate stationary criterion for relaxed measurement. It + corresponds to the SSearchDeltaP-Stationary in TS 38.304 [49]. + Its unit is 1 dB. Where Srxlev is the cell selection received + signal level value. "; + // optional + } + leaf tSearchDeltaPStationary { + type uint16 { + range "5 | 10 | 20 | 30 | 60 | 120 | 180 | 240 | 300"; + } + mandatory true; + description "TThis specifies the time period over which the Srxlev + variation is evaluated for stationary criterion for relaxed measurement. + It corresponds to the TSearchDeltaP-Stationary in TS 38.304 [49]. Its + unit is seconds. Where Srxlev is the cell selection received signal + level value. "; + //optional + } + leaf sSearchThresholdP2 { + type uint16 { + range "0..31"; + } + mandatory true; + description "This specifies the Srxlev threshold (in dB) to evaluate + not at cell edge criterion for relaxed measurement. It corresponds + to the SSearchThresholdP2 in TS 38.304 [49]. Its unit is 1 dB. + Where Srxlev is the cell selection received signal level value. "; + //optional + } + leaf sSearchThresholdQ2 { + type uint16 { + range "0..31"; + } + mandatory true; + description "This specifies the Squal threshold (in dB) to + evaluate not at cell edge criterion for relaxed measurement. It + corresponds to the SSearchThresholdQ2 in TS 38.304 [49]. Its unit + is 1 dB. Where Srxlev is the cell selection quality level value. "; + //optional + } + + } augment "/subnet3gpp:SubNetwork" { if-feature redcapaccesscriteriasubnertwork; list RedCapAccessCriteria { diff --git a/yang-models/external-yams/ietf-inet-types.yang b/yang-models/external-yams/ietf-inet-types.yang index 8101ea4bc5978aa27e86fbcaf41f6513ce86aedc..a7da0952342a163ea835d574d0c2bba36cd52be0 100755 --- a/yang-models/external-yams/ietf-inet-types.yang +++ b/yang-models/external-yams/ietf-inet-types.yang @@ -16,14 +16,13 @@ module ietf-inet-types { description "This module contains a collection of generally useful derived YANG data types for Internet addresses and related things. - The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document are to be interpreted as described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here. - Copyright (c) 2022 IETF Trust and the persons identified as + Copyright (c) 2025 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -36,13 +35,14 @@ module ietf-inet-types { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-01-23 { + revision 2025-06-23 { description "This revision adds the following new data types: - inet:ip-address-and-prefix - inet:ipv4-address-and-prefix - inet:ipv6-address-and-prefix - inet:protocol-number + - inet:upper-layer-protocol-number - inet:host-name - inet:email-address - inet:ip-address-link-local @@ -64,7 +64,6 @@ module ietf-inet-types { reference "RFC 6991: Common YANG Data Types"; } - revision 2010-09-24 { description "Initial revision."; @@ -171,10 +170,7 @@ module ietf-inet-types { "The protocol-number type represents an 8-bit Internet protocol number, carried in the 'protocol' field of the IPv4 header or in the 'next header' field of the IPv6 - header. If IPv6 extension headers are present, then the - protocol number type represents the upper layer protocol - number, i.e., the number of the last next header' field - of the IPv6 extension headers. + header. Protocol numbers are assigned by IANA. The current list of all assignments is available from ."; @@ -183,6 +179,19 @@ module ietf-inet-types { RFC 8200: Internet Protocol, Version 6 (IPv6) Specification"; } + typedef upper-layer-protocol-number { + type protocol-number; + description + "The upper-layer-protocol-number represents the upper-layer + protocol number carried in an IP packet. For IPv6 packets + with extension headers, this is the protocol number carried + in the last 'next header' field of the chain of IPv6 extension + headers."; + reference + "RFC 791: Internet Protocol + RFC 8200: Internet Protocol, Version 6 (IPv6) Specification"; + } + /*** collection of types related to autonomous systems ***/ typedef as-number { @@ -219,8 +228,8 @@ module ietf-inet-types { typedef ip-address { type union { - type inet:ipv4-address; - type inet:ipv6-address; + type ipv4-address; + type ipv6-address; } description "The ip-address type represents an IP address and is IP @@ -236,12 +245,16 @@ module ietf-inet-types { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' - + '(%[A-Za-z0-9][A-Za-z0-9\-\._~/]*)?'; + + '(%.+)?'; } description "The ipv4-address type represents an IPv4 address in dotted-quad notation. The IPv4 address may include a zone - index, separated by a % sign. + index, separated by a % sign. If a system uses zone names + that are not represented in UTF-8, then an implementation + needs to use some mechanism to transform the local name + into UTF-8. The definition of such a mechanism is outside + the scope of this document. The zone index is used to disambiguate identical address values. For link-local addresses, the zone index will @@ -268,6 +281,10 @@ module ietf-inet-types { "The ipv6-address type represents an IPv6 address in full, mixed, shortened, and shortened-mixed notation. The IPv6 address may include a zone index, separated by a % sign. + If a system uses zone names that are not represented in + UTF-8, then an implementation needs to use some mechanism + to transform the local name into UTF-8. The definition of + such a mechanism is outside the scope of this document. The zone index is used to disambiguate identical address values. For link-local addresses, the zone index will @@ -288,8 +305,8 @@ module ietf-inet-types { typedef ip-address-no-zone { type union { - type inet:ipv4-address-no-zone; - type inet:ipv6-address-no-zone; + type ipv4-address-no-zone; + type ipv6-address-no-zone; } description "The ip-address-no-zone type represents an IP address and is @@ -302,23 +319,25 @@ module ietf-inet-types { } typedef ipv4-address-no-zone { - type inet:ipv4-address { + type ipv4-address { pattern '[0-9\.]*'; } description - "An IPv4 address without a zone index. This type, derived from - ipv4-address, may be used in situations where the zone is known - from the context and hence no zone index is needed."; + "An IPv4 address without a zone index. This type, derived + from the type ipv4-address, may be used in situations where + the zone is known from the context and no zone index is + needed."; } typedef ipv6-address-no-zone { - type inet:ipv6-address { + type ipv6-address { pattern '[0-9a-fA-F:\.]*'; } description - "An IPv6 address without a zone index. This type, derived from - ipv6-address, may be used in situations where the zone is known - from the context and hence no zone index is needed."; + "An IPv6 address without a zone index. This type, derived + from the type ipv6-address, may be used in situations where + the zone is known from the context and no zone index is + needed."; reference "RFC 4291: IP Version 6 Addressing Architecture RFC 4007: IPv6 Scoped Address Architecture @@ -328,8 +347,8 @@ module ietf-inet-types { typedef ip-address-link-local { type union { - type inet:ipv4-address-link-local; - type inet:ipv6-address-link-local; + type ipv4-address-link-local; + type ipv6-address-link-local; } description "The ip-address-link-local type represents a link-local IP @@ -361,8 +380,8 @@ module ietf-inet-types { typedef ip-prefix { type union { - type inet:ipv4-prefix; - type inet:ipv6-prefix; + type ipv4-prefix; + type ipv6-prefix; } description "The ip-prefix type represents an IP prefix and is IP @@ -381,7 +400,6 @@ module ietf-inet-types { "The ipv4-prefix type represents an IPv4 prefix. The prefix length is given by the number following the slash character and must be less than or equal to 32. - A prefix length value of n corresponds to an IP address mask that has n contiguous 1-bits from the most significant bit (MSB) and all other bits set to 0. @@ -436,8 +454,8 @@ module ietf-inet-types { typedef ip-address-and-prefix { type union { - type inet:ipv4-address-and-prefix; - type inet:ipv6-address-and-prefix; + type ipv4-address-and-prefix; + type ipv6-address-and-prefix; } description "The ip-address-and-prefix type represents an IP address and @@ -454,7 +472,7 @@ module ietf-inet-types { } description "The ipv4-address-and-prefix type represents an IPv4 - address and an associated ipv4 prefix. + address and an associated IPv4 prefix. The prefix length is given by the number following the slash character and must be less than or equal to 32. @@ -476,7 +494,7 @@ module ietf-inet-types { } description "The ipv6-address-and-prefix type represents an IPv6 - address and an associated ipv4 prefix. + address and an associated IPv6 prefix. The prefix length is given by the number following the slash character and must be less than or equal to 128. @@ -516,6 +534,7 @@ module ietf-inet-types { recommendations in RFCs 1034 and 1123. Schema nodes representing host names should use the host-name type instead of the domain-type. + The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL @@ -544,7 +563,8 @@ module ietf-inet-types { (DNS SRV) RFC 4592: The Role of Wildcards in the Domain Name System RFC 5890: Internationalized Domain Names in Applications - (IDNA): Definitions and Document Framework"; + (IDNA): Definitions and Document Framework + RFC 9499: DNS Terminology"; } typedef host-name { @@ -565,14 +585,13 @@ module ietf-inet-types { typedef host { type union { - type inet:ip-address; - type inet:host-name; + type ip-address; + type host-name; } description "The host type represents either an IP address or a (fully qualified) host name."; } - typedef uri { type string { pattern '[a-z][a-z0-9+.-]*:.*'; @@ -583,11 +602,13 @@ module ietf-inet-types { Objects using the uri type MUST be in US-ASCII encoding, and MUST be normalized as described by RFC 3986 Sections - 6.2.1, 6.2.2.1, and 6.2.2.2. All unnecessary - percent-encoding is removed, and all case-insensitive - characters are set to lowercase except for hexadecimal - digits, which are normalized to uppercase as described in - Section 6.2.2.1. + 6.2.1, 6.2.2.1, and 6.2.2.2. Characters that can be + represented without using percent-encoding are represented + as characters (without percent-encoding), and all + case-insensitive characters are set to lowercase except + for hexadecimal digits within a percent-encoded triplet, + which are normalized to uppercase as described in + Section 6.2.2.1 of RFC 3986. The purpose of this normalization is to help provide unique URIs. Note that this normalization is not @@ -616,25 +637,29 @@ module ietf-inet-types { typedef email-address { type string { - pattern '(([a-zA-Z0-9!#$%&'+"'"+'*+/=?\^_`{|}~-]+' - + '(\.[a-zA-Z0-9!#$%&'+"'"+'*+/=?\^_`{|}~-]+)*)|' - + '("[a-zA-Z0-9!#$%&'+"'"+'()*+,./\[\]\^_`{|}~-]*"))' - + '@' - + '(([a-zA-Z0-9!#$%&'+"'"+'*+/=?\^_`{|}~-]+' - + '(\.[a-zA-Z0-9!#$%&'+"'"+'*+/=?\^_`{|}~-]+)*)|' - + '\[[a-zA-Z0-9!"#$%&'+"'"+'()*+,./:;<=>?@\^_`{|}~-]+\])'; + pattern '.+@.+'; } description - "The email-address type represents an email address as - defined as addr-spec in RFC 5322 section 3.4.1 except - that obs-local-part, obs-domain and obs-qtext of the - quoted-string are not supported. - - The email-address type uses US-ASCII characters. The - canonical format of the domain part of an email-address - uses lowercase US-ASCII characters."; + "The email-address type represents an internationalized + email address. + + The email address format is defined by the addr-spec + ABNF rule in RFC 5322 section 3.4.1. This format has + been extended by RFC 6532 to support internationalized + email addresses. Implementations MUST support the + internationalization extensions of RFC 6532. Support + of the obsolete obs-local-part, obs-domain, and + obs-qtext parts of RFC 5322 is not required. + + The domain part may use both A-labels and U-labels + (see RFC 5890). The canonical format of the domain part + uses lowercase characters and U-labels (RFC 5890) where + applicable."; reference - "RFC 5322: Internet Message Format"; + "RFC 5322: Internet Message Format + RFC 5890: Internationalized Domain Names in Applications + (IDNA): Definitions and Document Framework + RFC 6531: SMTP Extension for Internationalized Email"; } } diff --git a/yang-models/external-yams/ietf-yang-schema-mount@2019-01-14.yang b/yang-models/external-yams/ietf-yang-schema-mount.yang old mode 100755 new mode 100644 similarity index 100% rename from yang-models/external-yams/ietf-yang-schema-mount@2019-01-14.yang rename to yang-models/external-yams/ietf-yang-schema-mount.yang diff --git a/yang-models/external-yams/ietf-yang-types.yang b/yang-models/external-yams/ietf-yang-types.yang index 39e390cba870289d46e7185101f0d7c81253a11f..c67167fd00c3807146d552f09443f4f3c050ea73 100644 --- a/yang-models/external-yams/ietf-yang-types.yang +++ b/yang-models/external-yams/ietf-yang-types.yang @@ -23,7 +23,7 @@ module ietf-yang-types { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here. - Copyright (c) 2022 IETF Trust and the persons identified as + Copyright (c) 2025 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or @@ -36,12 +36,12 @@ module ietf-yang-types { This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; - revision 2023-01-23 { + revision 2025-06-23 { description "This revision adds the following new data types: - - yang:date-with-zone-offset + - yang:date - yang:date-no-zone - - yang:time-with-zone-offset + - yang:time - yang:time-no-zone - yang:hours32 - yang:minutes32 @@ -53,8 +53,11 @@ module ietf-yang-types { - yang:nanoseconds32 - yang:nanoseconds64 - yang:language-tag - The yang-identifier definition has been aligned with YANG 1.1. - Several pattern statements have been improved."; + The yang-identifier definition has been aligned with YANG + 1.1 and types representing time support the representation + of leap seconds. The representation of time zone offsets + has been aligned with RFC 9557. Several description and + pattern statements have been improved."; reference "RFC XXXX: Common YANG Data Types"; } @@ -111,20 +114,21 @@ module ietf-yang-types { } typedef zero-based-counter32 { - type yang:counter32; + type counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero. - A schema node instance of this type will be set to zero (0) + + A data tree node using this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero. - Provided that an application discovers a new schema node - instance of this type within the minimum time to wrap, it - can use the 'initial' value as a delta. It is important for - a management station to be aware of this minimum time and the + Provided that an application discovers a new data tree node + using this type within the minimum time to wrap, it can use + the 'initial' value as a delta. It is important for a + management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. @@ -167,22 +171,22 @@ module ietf-yang-types { } typedef zero-based-counter64 { - type yang:counter64; + type counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero. - A schema node instance of this type will be set to zero (0) + A data tree node using this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero. - Provided that an application discovers a new schema node - instance of this type within the minimum time to wrap, it - can use the 'initial' value as a delta. It is important for - a management station to be aware of this minimum time and the + Provided that an application discovers a new data tree node + using this type within the minimum time to wrap, it can use + the 'initial' value as a delta. It is important for a + management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. @@ -208,7 +212,6 @@ module ietf-yang-types { If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases). - In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference @@ -301,27 +304,30 @@ module ietf-yang-types { typedef date-and-time { type string { - pattern '[0-9]{4}-(1[0-2]|0[1-9])-(0[1-9]|[1-2][0-9]|3[0-1])' - + 'T(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)?' - + '(Z|[\+\-]((1[0-3]|0[0-9]):([0-5][0-9])|14:00))?'; + pattern + '[0-9]{4}-(1[0-2]|0[1-9])-(0[1-9]|[1-2][0-9]|3[0-1])' + + 'T(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]+)?' + + '(Z|[\+\-]((1[0-3]|0[0-9]):([0-5][0-9])|14:00))?'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the - date-time production in Section 5.6 of RFC 3339. + date-time production in Section 5.6 of RFC 3339 and the + update defined in Section 2 of RFC 9557 . The value of + 60 for seconds is allowed only in the case of leap seconds. The date-and-time type is compatible with the dateTime XML schema dateTime type with the following notable exceptions: (a) The date-and-time type does not allow negative years. - (b) The time-offset -00:00 indicates that the date-and-time + (b) The time-offset Z indicates that the date-and-time value is reported in UTC and that the local time zone - reference point is unknown. The time-offsets +00:00 and Z - both indicate that the date-and-time value is reported in - UTC and that the local time reference point is UTC (see RFC - 3339 section 4.3). + reference point is unknown. The time-offsets +00:00 + indicates that the date-and-time value is reported in + UTC and that the local time reference point is UTC + (see RFC 9557 section 2). This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different @@ -335,34 +341,39 @@ module ietf-yang-types { to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for - date-and-time values with an unknown time zone (usually - referring to the notion of local time) uses the time-offset - -00:00, i.e., date-and-time values must be reported in UTC."; + date-and-time values reported in UTC with an unknown local + time zone offset SHOULD use the time-offset Z and MAY use + -00:00 for backwards compatibility."; reference "RFC 3339: Date and Time on the Internet: Timestamps + RFC 9557: Date and Time on the Internet: Timestamps + with Additional Information RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes"; } - typedef date-with-zone-offset { + typedef date { type string { - pattern '[0-9]{4}-(1[0-2]|0[1-9])-(0[1-9]|[1-2][0-9]|3[0-1])' - + '(Z|[\+\-]((1[0-3]|0[0-9]):([0-5][0-9])|14:00))?'; + pattern + '[0-9]{4}-(1[0-2]|0[1-9])-(0[1-9]|[1-2][0-9]|3[0-1])' + + '(Z|[\+\-]((1[0-3]|0[0-9]):([0-5][0-9])|14:00))?'; } description "The date type represents a time-interval of the length - of a day, i.e., 24 hours. + of a day, i.e., 24 hours. It includes an optional time + zone offset. The date type is compatible with the XML schema date type with the following notable exceptions: + (a) The date type does not allow negative years. - (b) The time-offset -00:00 indicates that the date value is - reported in UTC and that the local time zone reference point - is unknown. The time-offsets +00:00 and Z both indicate that - the date value is reported in UTC and that the local time - reference point is UTC (see RFC 3339 section 4.3). + (b) The time-offset Z indicates that the date value is + reported in UTC and that the local time zone reference + point is unknown. The time-offset +00:00 indicates that + the date value is reported in UTC and that the local + time reference point is UTC (see RFC 9557 section 2). The canonical format for date values with a known time zone uses a numeric time zone offset that is calculated using @@ -371,17 +382,18 @@ module ietf-yang-types { to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for - date values with an unknown time zone (usually referring - to the notion of local time) uses the time-offset -00:00, - i.e., date values must be reported in UTC."; + date values reported in UTC with an unknown local time zone + offset uses the time-offset Z."; reference "RFC 3339: Date and Time on the Internet: Timestamps + RFC 9557: Date and Time on the Internet: Timestamps + with Additional Information XSD-TYPES: XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes"; } typedef date-no-zone { - type date-with-zone-offset { + type date { pattern '[0-9]{4}-(1[0-2]|0[1-9])-(0[1-9]|[1-2][0-9]|3[0-1])'; } description @@ -389,23 +401,26 @@ module ietf-yang-types { time zone offset information."; } - typedef time-with-zone-offset { + typedef time { type string { - pattern '(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)?' - + '(Z|[\+\-]((1[0-3]|0[0-9]):([0-5][0-9])|14:00))?'; + pattern + '(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]+)?' + + '(Z|[\+\-]((1[0-3]|0[0-9]):([0-5][0-9])|14:00))?'; } description "The time type represents an instance of time of zero-duration - that recurs every day. + that recurs every day. It includes an optional time zone + offset. The value of 60 for seconds is allowed only in the + case of leap seconds. The time type is compatible with the XML schema time type with the following notable exception: - (a) The time-offset -00:00 indicates that the time value is - reported in UTC and that the local time zone reference point - is unknown. The time-offsets +00:00 and Z both indicate that - the time value is reported in UTC and that the local time - reference point is UTC (see RFC 3339 section 4.3). + (a) The time-offset Z indicates that the time value is + reported in UTC and that the local time zone reference + point is unknown. The time-offset +00:00 indicates that + the time value is reported in UTC and that the local + time reference point is UTC (see RFC 9557 section 2). The canonical format for time values with a known time zone uses a numeric time zone offset that is calculated using @@ -414,18 +429,20 @@ module ietf-yang-types { to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for - time values with an unknown time zone (usually referring - to the notion of local time) uses the time-offset -00:00, - i.e., time values must be reported in UTC."; + time values reported in UTC with an unknown local time zone + offset uses the time-offset Z."; reference "RFC 3339: Date and Time on the Internet: Timestamps + RFC 9557: Date and Time on the Internet: Timestamps + with Additional Information XSD-TYPES: XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes"; } typedef time-no-zone { - type time-with-zone-offset { - pattern '(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)?'; + type time { + pattern + '(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]+)?'; } description "The time-no-zone type represents a time without the optional @@ -575,7 +592,7 @@ module ietf-yang-types { } typedef timestamp { - type yang:timeticks; + type timeticks; description "The timestamp type represents the value of an associated timeticks schema node instance at which a specific occurrence @@ -621,9 +638,12 @@ module ietf-yang-types { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description - "The mac-address type represents an IEEE 802 MAC address. - The canonical representation uses lowercase characters. - + "The mac-address type represents a 48-bit IEEE 802 MAC + address. The canonical representation uses lowercase + characters. Note that there are IEEE 802 MAC addresses + with a different length that this type cannot represent. + The phys-address type may be used to represent physical + addresses of varying length. In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference @@ -724,7 +744,7 @@ module ietf-yang-types { numeric characters, underscores, hyphens, or dots. This definition conforms to YANG 1.1 defined in RFC - 7950. An earlier version of this definition did exclude + 7950. An earlier version of this definition excluded all identifiers starting with any possible combination of the lowercase or uppercase character sequence 'xml', as required by YANG 1 defined in RFC 6020. If this type