Commit 0a5cadfe authored by sigovich's avatar sigovich
Browse files

Merge branch 'Integration_Rel20_SA5_167_YANG' into 'Rel-20'

Integration_Rel20_SA5_167_YANG into Rel-20

See merge request !2136
parents d24dad23 deb77816
Loading
Loading
Loading
Loading
Loading
+277 −2
Original line number Diff line number Diff line
@@ -6,16 +6,18 @@ module _3gpp-5g-common-yang-types {
  import ietf-yang-types { prefix yang; }
  import ietf-inet-types { prefix inet; }
  import _3gpp-common-yang-types { prefix types3gpp; }
  import _3gpp-common-yang-extensions { prefix yext3gpp; }

  organization "3GPP SA5";
  contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464";
  description "The model defines common types for 5G networks and
    network slicing.
    Copyright 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI,
    Copyright 2026, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI,
    TTA, TTC). All rights reserved.";
  reference "3GPP TS 28.541";

  revision 2026-01-25 { reference "CR-0060"; }  // common for R19, R20
  revision 2026-03-25 { reference "CR-"; }  
  revision 2026-01-25 { reference "CR-0060"; }  
  revision 2025-11-07 { reference CR-1640 ; }
  revision 2025-11-02 { reference CR-1658 ; }
  revision 2025-07-25 { reference CR-1558 ; }
@@ -29,6 +31,92 @@ module _3gpp-5g-common-yang-types {
  revision 2020-11-05 { reference CR-0412 ; }
  revision 2019-10-20 { reference "Initial version."; }

  typedef NwdafEvent {
    description "The detailed ENUM value for NwdafEvent see the
      Table 5.1.6.3.4-1 in TS 29.520";
    type union {
      type enumeration {
        enum SLICE_LOAD_LEVEL;
        enum NETWORK_PERFORMANCE;
        enum NF_LOAD;
        enum SERVICE_EXPERIENCE;
        enum UE_MOBILITY;
        enum UE_COMMUNICATION;
        enum QOS_SUSTAINABILITY;
        enum ABNORMAL_BEHAVIOUR;
        enum USER_DATA_CONGESTION;
        enum NSI_LOAD_LEVEL;
        enum DN_PERFORMANCE;
        enum DISPERSION;
        enum RED_TRANS_EXP;
        enum WLAN_PERFORMANCE;
        enum SM_CONGESTION;
      }
      type string;
    }
  }  
  
  grouping VflInfoGrp {
    description "Represents the data type VflInfo";
    
    leaf-list vflAnalyticsIds {
      min-elements 1;
      type NwdafEvent;
      description "This attribute indicates the Analytics Id(s) (identified by z
        nwdafEvent defined in TS 29.520) for which VFL is supported.
        The included Analytics Id(s) shall have the same attribute values, 
        e.g. they shall share the same vflCapabilityType.";
    }

    leaf vflCapabilityType {
      type enumeration {
        enum VFL_SERVER;
        enum VFL_CLIENT;
        enum VFL_SERVER_AND_CLIENT;
      }
      mandatory true;
      description "This attribute indicates the type of the supported VFL
        capability as specified in clause 5.2 of 3GPP TS 23.288.";
    }
    leaf vflClientAggrCap {
      type boolean;
      yext3gpp:initial-value false;
      description "This attribute indicates whether a VFL client supports 
        aggregating the intermediate results of other VFL clients.
        This attribute shall be present if aggregating the intermediate results 
        of other VFL clients is supported and the vflCapabilityType is set 
        to 'VFL_CLIENT' or 'VFL_SERVER_AND_CLIENT'.";
    }

    list vflTimeInterval {
      key idx ;
      leaf idx { type uint32; }
      description "This attribute indicate the Time interval supporting VFL as 
        specified in clause 5.2 of 3GPP TS 23.288.
        This attribute shall be present if the vflCapabilityType attribute is 
        present.";
      uses types3gpp:TimeWindowGrp;
    }

    leaf vflInterInfo {
      type string;
      description "This attribute indicate the VFL interoperability indicator.
      This attribute shall be present if the NWDAF or AF supports the VFL 
      interoperability for the provided Analytics Id(s). If none are provided 
      the NWDAF is not allowed to perform the VFL operation.";
    }

    leaf-list featureId {
      type string;
      description "This attribute indicate the different feature information 
        supported by the NWDAF or AF for the provided Analytics Id(s). Only 
        the VFL clients and the VFL server sharing the same VFL interoperability 
        indicator can understand the content of feature ID(s).
        This attribute shall be present if the vflCapabilityType attribute is 
        present.";
    }
  }
  
  grouping AreaScopeGrp {
    description "This <<dataType>> defines an area scope.";

@@ -179,6 +267,112 @@ module _3gpp-5g-common-yang-types {
    }
  }

  grouping SupiRangeGrp {
    description "This <<dataType>> represents a range of SUPIs.";
    leaf start {
      description "First value identifying the start of a SUPI range.";
      type string {
        pattern '^[0-9]+$';
      }
    }
    leaf end {
      description "Last value identifying the end of a SUPI range.";
      type string {
        pattern '^[0-9]+$';
      }
    }
    leaf pattern {
      description "Pattern representing the set of SUPIs belonging to
        this range.";
      type string;
    }
  }

  grouping IdentityRangeGrp {
    description "This <<dataType>> represents a range of identities.";
    leaf start {
      description "First value identifying the start of an identity range.";
      type string {
        pattern '^[0-9]+$';
      }
    }
    leaf end {
      description "Last value identifying the end of an identity range.";
      type string;
    }
    leaf pattern {
      description "Pattern representing the set of identities belonging to
        this range.";
      type string;
    }
  }

  grouping InternalGroupIdRangeGrp {
    description "This data type represents a range of Group
      IDs (internal group identities), either based on a
      numeric range, or based on regular-expression
      matching. (See TS 29.510).";
    reference "3GPP TS 28.541 clause 5.3.132";

    leaf start {
      description "It indicates first value identifying
        the start of an identity range, to be used when
        the range of identities can be represented as a
        consecutive numeric range.";
      type string;
    }

    leaf end {
      description "It indicates last value identifying
        the end of an identity range, to be used when
        the range of identities can be represented as a
        consecutive numeric range.";
      type string;
    }

    leaf pattern {
      description "It indicates pattern (regular
        expression according to the ECMA-262 dialect)
        representing the set of identities belonging to
        this range. An identity value is considered part
        of the range if and only if the identity string
        fully matches the regular expression.";
      type string;
    }
  }

  grouping SupportedVendorSpecificFeaturesGrp {
    description "This <<dataType>> represents a map of Vendor-Specific 
    features,  where the key of the map is the IANA-assigned SMI 
    Network Management Private Enterprise Codes and the value of each
    entry of the map shall be a list (array) of VendorSpecificFeature
    objects as defined in  clause 5.3.247.";
    reference "3GPP TS 29.510 clause 5.3.247";

    list supportedVendorSpecificFeatures {
      description "It indicates a map of Vendor-Specific features, where the
        key of the map is the IANA-assigned SMI Network Management Private
        Enterprise Codes and the value of each entry of the map shall be
        a list (array) of VendorSpecificFeature objects as defined
        in the clause 5.3.247.";
      key "enterpriseCode";

      leaf enterpriseCode {
        type uint32;
        description "IANA-assigned SMI Network Management Private
          Enterprise Code";
      }

      list vendorSpecificFeature {
        key "featureName";
        config false;
        description "VendorSpecificFeature objects as defined
          in the clause 5.3.247.";
        uses VendorSpecificFeatureGrp;
      }
    }
  }

  grouping SnssaiExtensionGrp {
    list sdRanges {
      min-elements 1;
@@ -596,6 +790,87 @@ module _3gpp-5g-common-yang-types {
      type inet:host; 
    }
  }
  grouping RuleSetGrp {
    description "This data type represents list of rules specifying whether
      access/scopes are allowed/denied for NF-Consumers.";
    reference "3GPP TS 29.510 clause 6.2.6.2.121";

    leaf priority {
      description "It indicates the unique Priority of the rule. Lower value
        means higher priority.";
      mandatory true;
      type uint32;
    }

    list plmns {
      description "It indicates PLMNs allowed/dis-allowed to access the
        service instance. When absent, NF-Consumers of all PLMNs are
        assumed to match this criteria.";
      key "mcc mnc";
      uses types3gpp:PLMNId;
    }

    list snpns {
      description "It indicates SNPNs allowed/dis-allowed to access the
        service instance. When absent, NF-Consumers of all SNPNs are
        assumed to match this criteria.";
      key "mcc mnc";
      uses PlmnIdNid;
    }

    leaf-list nfTypes {
      description "It indicates type of the NFs allowed/dis-allowed to
        access the service instance. When absent, NF-Consumers of all
        nfTypes are assumed to match this criteria.";
      type types3gpp:NfType;
    }

    leaf-list nfDomains {
      description "It represents pattern (regular expression according to
        the ECMA-262 dialect) representing the NF domain names within the
        PLMN of the NRF allowed/dis-allowed to access the service instance.
        When absent, NF-Consumers of all nfDomains are assumed to match
        this criteria.";
      type string;
    }

    list nssais {
      description "It represents S-NSSAIs of the NF-Consumers
        allowed/dis-allowed to access the service instance. When absent,
        NF-Consumers of all slices are assumed to match this criteria.";
      key idx;
      leaf idx { type uint32; }
      uses ExtSnssaiGrp;
    }

    leaf-list nfInstances {
      description "It represents NF-Instance IDs of the NF-Consumers
        allowed/dis-allowed to access the NF/NF-Service instance. When
        absent, all the NF-Consumers are assumed to match this criteria.";
      type string;
    }

    leaf-list scopes {
      description "It represents list of scopes allowed or denied to the
        NF-Consumers matching the rule. The scopes shall be any of those
        defined in the API that defines the current service. When absent,
        the NF-Consumer is allowed or denied full access to all the
        resources/operations of service instance.";
      type string;
    }

    leaf action {
      description "It specifies whether the scopes/access mentioned are
        allowed or denied for a specific NF-Consumer.
        ALLOW: The NF consumer is allowed to access NF producer.
        DENY: The NF consumer is not allowed to access NF Producer.";
      mandatory true;
      type enumeration {
        enum ALLOW;
        enum DENY;
      }
    }
  }

  grouping LocationInfoGrp {
    description "This data type contains location information 
+102 −0
Original line number Diff line number Diff line
module _3gpp-5gc-nrm-aanffunction {
  yang-version 1.1;
  namespace urn:3gpp:sa5:_3gpp-5gc-nrm-aanffunction;
  prefix aanf3gpp;

  import _3gpp-common-managed-function { prefix mf3gpp; }
  import _3gpp-common-managed-element { prefix me3gpp; }
  import _3gpp-5g-common-yang-types { prefix types5g3gpp; }
  import _3gpp-common-top { prefix top3gpp; }
  import _3gpp-5gc-nrm-managed-nfprofile { prefix mnfp3gpp; }
  import ietf-inet-types { prefix inet; }

  organization "3gpp SA5";
  contact
    "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464";
  description "This IOC represents the AAnF function in 5GC.
    For more information about the AANF, see TS 33.535.
    Copyright 2026, 3GPP Organizational Partners (ARIB, ATIS,
    CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.";
  reference "3GPP TS 28.541";

  revision 2026-04-26 { reference CR-1703; }

  grouping AanfInfoGrp {
    description "This data type represents the Specific
      data for the AAnF.";
      reference "See clause 6.1.6.2.73 TS 29.510).";

    leaf-list routingIndicators {
      description "It represents list of Routing Indicator
        information that allows to route network
        signalling with SUCI (see TS 23.003) to the
        AAnF instance. If not provided, the AAnF can
        serve any Routing Indicator.";
      type string {
        pattern '[0-9]{1,4}';
      }
      min-elements 1;
    }
  }

  grouping AANFFunctionGrp {
    description "Represents the AANFFunction IOC.";
    uses mf3gpp:ManagedFunctionGrp;

    list pLMNInfoList {
      description "It defines the PLMN(s) of a Network
        Function.";
      key "mcc mnc sd sst";
      min-elements 1;
      uses types5g3gpp:PLMNInfo;
    }

    leaf sBIFQDN {
      description "The FQDN of the registered NF instance
        in the service-based interface.";
      type inet:domain-name;
    }

    list managedNFProfile {
      key idx;
      leaf idx { type uint32; }
      min-elements 1;
      max-elements 1;
      description "Profile definition of a Managed NF
        (See TS 23.501).";
      uses mnfp3gpp:ManagedNFProfileGrp;
    }

    list commModelList {
      min-elements 1;
      key "groupId";
      description "Specifies a list of commModel. It can
        be used by NF and NF services to interact with
        each other in 5G Core network.";
      reference "3GPP TS 23.501";
      uses types5g3gpp:CommModel;
    }

    list aanfInfo {
      description "This attribute represents information
        of an AAnF NF Instance.";
      max-elements 1;
      key idx;
      leaf idx { type uint32; }
      uses AanfInfoGrp;
    }
  }

  augment "/me3gpp:ManagedElement" {
    list AANFFunction {
      description "5G Core AAnF Function";
      reference "3GPP TS 28.541";
      key id;
      uses top3gpp:Top_Grp;
      container attributes {
        uses AANFFunctionGrp;
      }
      uses mf3gpp:ManagedFunctionContainedClasses;
    }
  }
}
+120 −1
Original line number Diff line number Diff line
@@ -6,24 +6,143 @@ module _3gpp-5gc-nrm-affunction {
  
  import _3gpp-common-managed-function { prefix mf3gpp; }
  import _3gpp-common-managed-element { prefix me3gpp; }
  import _3gpp-common-yang-types { prefix types3gpp; }
  import _3gpp-5g-common-yang-types { prefix types5g3gpp; }
  import _3gpp-5gc-nrm-neffunction { prefix nef3gpp; }
  import _3gpp-common-top { prefix top3gpp; }
  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 "This IOC is defined only to describe the IOCs representing
               its interaction interface with 5GC (i.e. EP_Rx and EP_N5).
               It has no attributes defined.
    Copyright 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, 
    Copyright 2026, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, 
    TTA, TTC). All rights reserved.";
  reference "3GPP TS 28.541";
  
  revision 2026-05-20 { reference CR-1703 ; } 
  revision 2023-09-18 { reference CR-1043 ; } 
  revision 2023-04-26 { reference CR-0916; }
  revision 2019-10-28 { reference S5-193518 ; }
  revision 2019-05-15 {reference "initial revision"; }
  
  grouping TrustAfInfoGrp {
    description "Represent the data type TrustAfInfo.";
    
    list sNssaiInfoList {
      description "It represents S-NSSAIs and DNNs supported by the trust AF.";
      min-elements 1;
      key idx;
      leaf idx { type uint32 ; }
      uses nef3gpp:SnssaiInfoItemGrp;
    }

    leaf-list afEvents {                   
      type enumeration {
        enum SVC_EXPERIENCE;
        enum UE_MOBILITY;
        enum UE_COMM;
        enum EXCEPTIONS;
        enum USER_DATA_CONGESTION;
        enum PERF_DATA;
        enum COLLECTIVE_BEHAVIOUR;
        enum DISPERSION;
        enum MS_QOE_METRICS;
        enum MS_CONSUMPTION;
        enum MS_NET_ASSIST_INVOCATION;
        enum MS_DYN_POLICY_INVOCATION;
        enum MS_ACCESS_ACTIVITY;
      }                                                    
      description "This attribute represents list of AF Event(s) supported 
        by the trusted AF.";   
      reference "Clause 5.6.3.3 TS 29.517";
    }                                                                 

    leaf-list appIds {  
      type string;
      description "This attribute represents a list of Application ID(s) 
        supported by the trusted AF. The absence of this attribute indicate 
        that the AF can be selected for any Application.";
    }

    leaf-list internalGroupId {
      type string {
        pattern 
          '[A-Fa-f0-9]{8}-[0-9]{3}-[0-9]{2,3}-([A-Fa-f0-9][A-Fa-f0-9]){1,10}';
      }
      description "This attribute represents a list of Internal Group 
        Identifiers supported by the trusted AF.
        If not provided, it does not imply that the AF supports all internal 
        groups.";
    }

    leaf mappingInd {
      type boolean;
      default false;
      description "This attribute indicates whether the trusted AF supports 
        mapping between UE IP address (IPv4 address or IPv6 prefix) and UE ID 
        (i.e. SUPI).";
    }

    list taiList {                              
      description "Indicates the list of TAIs the trusted AF can serve.";
      key idx;                                  
      min-elements 1;                           
      leaf idx { type uint32; }                 
      uses types3gpp:TaiGrp;                    
    }                                           

    list taiRangeList {                
      description "Indicates the range of TAIs the trusted AF can serve.";
      min-elements 1;                  
      key idx;                         
      leaf idx { type uint32; }        
      uses types5g3gpp:TaiRangeGrp;    
    }                                  

    list vflInfo {
      description "";
      key idx;
      leaf idx { type uint32 ; }
      uses types5g3gpp:VflInfoGrp;
    }
  }
  
  grouping AFFunctionGrp {
    uses mf3gpp:ManagedFunctionGrp;
    
    list pLMNIdList {
      description "List of PLMN IDs.";
      key "mcc mnc";
      uses types3gpp:PLMNId;
    }

    list managedNFProfile {                                            
      key idx;                                                         
      leaf idx { type uint32;}                                         
      min-elements 1;                                                  
      max-elements 1;                                                  
      description "Profile definition of a Managed NF (See TS 23.501)";
      uses mnfp3gpp:ManagedNFProfileGrp;                               
    }                                                                  

    list commModelList {
      min-elements 1;
      key "groupId";
      description "Specifies a list of commModel. It can be used by NF and
        NF services to interact with each other in 5G Core network ";
      reference "3GPP TS 23.501";
      uses types5g3gpp:CommModel;
    }

    list trustAfInfo {
      description "Represents information of a trusted AF Instance.";
      key idx;                                                         
      leaf idx { type uint32;}                                         
      max-elements 1;                                                  
      uses TrustAfInfoGrp;                               
     }
  }
  
  augment "/me3gpp:ManagedElement" {
+36 −1
Original line number Diff line number Diff line
@@ -14,11 +14,12 @@ module _3gpp-5gc-nrm-aiot {
  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,
    Copyright 2026, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI,
    TTA, TTC). All rights reserved.";
  reference "3GPP TS 28.541 
    3GPP TS 23.369";

  revision 2026-03-19 { reference "CR-1695 CR-1694"; } //common r19-20
  revision 2025-11-01 { reference CR-1640; }

  grouping ServedAIOTAreaIDGrp {
@@ -169,6 +170,30 @@ module _3gpp-5gc-nrm-aiot {
  
  //////////////////////////////////////////////////////////////////////
  
  grouping AdmInfoGrp {
    description "Represents the datatype AdmInfo";
    
    leaf-list deviceIdList {
      type string;
      description "This attribute represents a list of device IDs served by 
        ADM as defined in TS 29.510 [23]. The format of String is specified 
        in TS 29.510.";
    }
    
    leaf devIdRegEx {
      type string;
      description "This attribute represents a regular expression (according to 
        the ECMA-262 dialect) identifying the set of device IDs served by 
        the ADM as defined in TS 29.510.";
    }
    
    leaf-list afIdList {
      type string;
      description "This attribute represents a list of AF IDs served by ADM as 
        defined in TS 29.510.";
    }
  }
  
  grouping ADMFunctionGrp {
    description "Attributes of the IOC ADMFunction";
  
@@ -200,6 +225,16 @@ module _3gpp-5gc-nrm-aiot {
      description "This parameter defines profile for managed NF";
      reference "3gpp TS 23.501";
    }

    list admInfo { 
      description "This attribute represents ADM-specific information for 
        management purposes. The information carried by this attribute is 
        aligned with the ADM-related information defined in TS 29.510.";
      max-elements 1;
      key idx;
      leaf idx { type uint32; }
      uses AdmInfoGrp;
    }
  }  
  
  feature ADMFunctionUnderManagedElement {
+21 −3
Original line number Diff line number Diff line
@@ -17,10 +17,11 @@ module _3gpp-5gc-nrm-amffunction {
  organization "3gpp SA5";
  contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464";
  description "AMFFunction derived from basic ManagedFunction.
    Copyright 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI,
    Copyright 2026, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI,
    TTA, TTC). All rights reserved.";
  reference "3GPP TS 28.541 5G Network Resource Model (NRM)";

  revision 2026-05-25 { reference CR-1703 ; }
  revision 2025-07-25 { reference CR-1558 ; }
  revision 2025-03-25 { reference "CR-1489 CR-1512" ; }
  revision 2024-11-01 { reference CR-1405; }
@@ -368,14 +369,14 @@ module _3gpp-5gc-nrm-amffunction {
  grouping AmfInfoGrp {
    description "Represents the data type AmfInfo.";

    leaf amfRegionId {
    leaf aMFRegionId {
      type int64;
      mandatory true;
      description "It represents the AMF Region ID, which identifies the
        region. AllowedValues: defined in subclause 2.10.1 of 3GPP TS 23.003 ";
    }

    leaf amfSetId {
    leaf aMFSetId {
      type int64;
      mandatory true;
      description "It represents the AMF Set ID, which is uniquely identifies
@@ -455,6 +456,23 @@ module _3gpp-5gc-nrm-amffunction {
        NR RedCap UE;
        - TRUE: AMF supports High Latency communication e.g. for NR RedCap UE;";
    }

    leaf-list amfEvents {
      type string;
      min-elements 1;
      description "This attribute indicates AMF event types supported
        by the AMF, see TS 29.510.
        allowedValues: See clause 6.2.6.3.3 of TS 29.518 for
        AmfEventType.";
    }

    leaf-list praIdList {
      type string;
      min-elements 1;
      description "This attribute indicates the identifier of the Core
        Network predefined PRA(s) supported by the AMF, see
        TS 29.510.";
    }
  }

  grouping AMFFunctionGrp {
Loading