Commit 9029946e authored by cintiarosa's avatar cintiarosa
Browse files

aligne stage 2 of managedNfProfile

parent 7ca13024
Loading
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -221,10 +221,11 @@ module _3gpp-5g-common-yang-types {
  }

  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.";
    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 {
+1 −1
Original line number Diff line number Diff line
@@ -66,7 +66,7 @@ module _3gpp-5gc-nrm-ausffunction {
        by the PCF instance.";
      key idx;
      leaf idx { type uint32 ; }
      uses mnfp3gpp:SupiRangeGrp;
      uses types5g3gpp:SupiRangeGrp;
    }

      leaf-list routingIndicators {
+41 −257
Original line number Diff line number Diff line
@@ -12,11 +12,12 @@ module _3gpp-5gc-nrm-managed-nfprofile {

organization "3gpp SA5";
contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464";
description "NF profile class.
Copyright 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI,
description "NF profile dataType.
Copyright 2026, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI,
TTA, TTC). All rights reserved.";
  reference "3GPP TS 29.510";

  revision 2026-03-25 { reference "CR-"; } 
  revision 2026-01-25 { reference "CR-0060"; }  // common for R19, R20
  revision 2025-07-25 { reference CR-1558 ; }
  revision 2025-07-25 { reference "initial revision"; }
@@ -54,220 +55,10 @@ TTA, TTC). All rights reserved.";
            type types3gpp:NfType;
        }
    }
    grouping SupiRangeGrp {
    leaf start {
        description "First value identifying the start ofa SUPI range.To be
        used when the range of SUPI's can be represented as a numeric range
        (e.g., IMSI ranges).";
        type string {
            pattern '^[0-9]+$';
            }
        }

    leaf end {
        description "Last value identifying the end of a SUPI range.To be
        used when the range of SUPI's can be represented as a numeric range
        (e.g. IMSI ranges).";
        type string {
            pattern '^[0-9]+$';
            }
        }

    leaf pattern {
        description "Pattern representing the set of SUPI's belonging to
        this range.A SUPI value is considered part of the range if and
        only if the SUPI string fully matches the regular expression.";
        type string;
        }
    }

    grouping ConditionItemGrp {
        description "This data type represents a single condition item that
        shall be evaluated to determine whether a discovered NF (Service)
        Instance shall be selected.";

        leaf consumerNfTypes {
            description "It represents the NF types of the consumers for
            which the conditions included in this ConditionItem apply.
            If this attribute is absent, the conditions are applicable
            to all NF consumer types.";
            type types3gpp:NfType;
        }
        leaf serviceFeature {
            description "It represents a feature number of that NF Service
                Instance,under CANARY_RELEASE status. This attribute only
                applies when the          selectionConditions, where this
                ConditionItem is included, is included in a NF Service Instance
                This condition is evaluated to <true> when the service requests
                froma consumer of this NF Service Instance require the support
                 of the indicated feature on the NF Service Instance.";
            type uint32; // positive integer, 0 excluded by context
        }
        leaf vsServiceFeature {
            description "It represents a Vendor-Specific feature
                number of thatNF Service Instance, under CANARY_RELEASE
                status. This attribute only applies when the
                selectionConditions, where this ConditionItem is included,
                is included in a NF Service Instance.This condition is
                evaluated to true when the service requests from a
                consumer of this NF Service Instance require the support
                of the indicated Vendor-Specific feature on the NF
                Service Instance.";
            type uint32;
        }
        list supiRangeList {
            description "It represents a set of SUPIs for which
                the NF (Service) instance under CANARY_RELEASE status shall
                 be selected.";
            key idx;
            leaf idx { type uint32; }
            uses SupiRangeGrp;
        }
        list gpsiRangeList {
            description "It represents a set of GPSIs for which the NF
                (Service)
                instance under CANARY_RELEASE status shall be selected";
            min-elements 1;
            key idx;
            leaf idx { type uint32; }
            uses IdentityRange;
        }
        list impuRangeList {
            description "It represents a set of IMS Public Identities
                for which the NF (Service) instance under CANARY_RELEASE
                 status shall be selected";
            min-elements 1;
            key idx;
            leaf idx { type uint32; }
            uses IdentityRange;
        }
        list impiRangeList {
            description "It represents a set of IMS Private Identities
                for which theNF (Service) instance under
                CANARY_RELEASE status shall be selected.";
            min-elements 1;
            key idx;
            leaf idx { type uint32; }
            uses IdentityRange;
        }
        leaf peiList {
            description "It represents a set of PEIs of the UEs for
                which the NF(Service) instance under CANARY_RELEASE status
                shall be selected";
            type string;
        }
        list taiRangeList {
            description "It represents a set of TAIs where the
                NF(Service) instance under CANARY_RELEASE status shall
                be selected for a certain UE";
            min-elements 1;
            key idx;
            leaf idx { type uint32; }
            uses types5g3gpp:TaiRangeGrp;
        }
        leaf dnnList {
            description " It represents a set of TAIs where the NF
                (Service) instance under CANARY_RELEASE status shall be
                selected for a certain UE";
             type string;
        }
    }
    grouping PlmnSnssai {
        list plmnId {
            description "PLMN ID for which list of supported S-NSSAI(s)
            is provided.";
            min-elements 1;
            max-elements 1;
            key "mcc mnc";
            uses types3gpp:PLMNId;
        }
        list sNssaiList {
            description "The specific list of S-NSSAIs supported
            by the given PLMN.";
            min-elements 1;
            max-elements 1;
            key "sst sd";
            uses types5g3gpp:SNssai;
        }
        leaf nid {
            description "Network Identity; Shall be present if PlmnIdNid
            identifies an SNPN ";
            reference "see clauses 5.30.2.3, 5.30.2.9, 6.3.4,
            and 6.3.8 in 3GPP TS 23.501 ";
            type string;
        }
    }

    grouping ConditionGroupGrp {
        description "This <<choice>> represents a group of conditions that
        shall be evaluated to determine whether a discovered NF (Service)
        Instanceshall be selected. (See clause 6.1.6.2.125 TS 29.510 [23]).";

        choice LogicalOperator{
          case and {
            list and {
              description "It represents a list of conditions where the
              overall evaluation is true only if all the conditions
              in the list are evaluated as true.";
              key idx;
              leaf idx { type uint32; }
              uses SelectionConditionsGrp;
            }

          }
          case or{
            list or {
              description "It represents a list of conditions where the
               overall evaluation is true if at least one of the conditions
               in the list evaluated as true";
               key idx;
               leaf idx { type uint32; }
               uses SelectionConditionsGrp;
               }
            }
        }

    }

    grouping SelectionConditionsGrp {
        description "This data type represents the list of conditions that
        shall be selected by an NF Service Consumer.";
        reference "(See clause 6.1.6.2.123 TS 29.510 [23])";

        list conditionItem{
            key "id";
            description "It represent a single condition item that shall be
            evaluated Instance shall be selected.";
            leaf id{
            type string;
            }
            uses ConditionItemGrp;
        }

    // circular dependency for grouping "ConditionGroupGrp" introduced in
    //stage 2
    //    container conditionGroup{
    //        description "It represents a group of conditions
    //        that shall be evaluated";
    //        uses ConditionGroupGrp;
    //        }

    }

    grouping IdentityRange {
        leaf start {
            description "First value identifying the start of an identity range.
            To be used when the range of identities can be represented
            as a numeric range (e.g., MSISDN ranges).";
            type string {
                pattern '^[0-9]+$';
                }
        }
        leaf end {type string; } // dummy
        leaf pattern {type string; } // dummy
    }

grouping ManagedNFProfileGrp {
      description "Represents the ManagedNFProfile <<dataType>> as defined in
      clause 5.3.54 of 3GPP TS 28.541.";

    leaf nfInstanceId {
        description "String uniquely identifying a NF instance.";
@@ -372,7 +163,7 @@ grouping ManagedNFProfileGrp {
       of the NFService(s).";
      key idx;
      leaf idx { type uint32; }
      uses PlmnSnssai;
      uses nfs3gpp:PlmnSnssai;
    }

    list allowedSNPNs {
@@ -406,12 +197,17 @@ grouping ManagedNFProfileGrp {
      uses types5g3gpp:SNssai;
    }

 //    list allowedRuleSet {
 //      description "S-NSSAI of the allowed slices to access the NF instance.
 //        If not provided, any slice is allowed to access the NF.";
 //      key "sst sd";
 //      uses RuleSet;?
//    }
    list allowedRuleSet {
      description "It represents map of rules specifying NF-Consumers
        allowed or denied to access the NF-Producer. It may be present
        when the NF-Producer and the NRF support Allowed-ruleset feature
        as specified in clause 6.1.9.";
      reference "3GPP TS 29.510";
      key idx;
      leaf idx { type uint32; }
      uses types5g3gpp:RuleSetGrp;
    }

    leaf locality {
      description "Operator defined information about the location
       of the NF instance (e.g. geographic location, data center).";
@@ -438,6 +234,7 @@ grouping ManagedNFProfileGrp {
      description "Dynamic load information, ranged from 0 to 100,
       indicates the current load percentage of the NF.";
      type types3gpp:Load;
      config false;
    }
    leaf loadTimeStamp {
      description "It indicates the point in time in which the latest load
@@ -446,13 +243,15 @@ grouping ManagedNFProfileGrp {
      the NRF should set it to the instant when the NRF received the message
      where the NF provided the latest load information.";
      type yang:date-and-time ;
      config false;
    }

    leaf-list recoveryTime {
    leaf recoveryTime {
      description "Timestamp when the NF was (re)started. The NRF shall notify
      NFs subscribed to receiving notifications of changes of the NF profile,
      if the NF recoveryTime is changed";
      type yang:date-and-time;
      config false;
    }
    leaf nfServicePersistence {
      description "This parameter indicates whether the different service
@@ -463,6 +262,7 @@ grouping ManagedNFProfileGrp {
      Service Consumer ";
      reference "TS 29.510";
      type boolean;
      config false;
    }
    leaf-list nfSetIdList {
      type string ;
@@ -486,17 +286,17 @@ grouping ManagedNFProfileGrp {
       max-elements 1;
      type boolean;
    }
     leaf-list nfProfilePartialUpdateChangesSupportInd {
     leaf nfProfilePartialUpdateChangesSupportInd {
      description "It represents NF Profile Partial Update Changes Support
      Indicator. TRUE: the NF Service Consumer supports receiving NF Profile
      Changes in the response to an NF Profile Partial Update operation.
      FALSE (default): the NF Service Consumer does not support receiving
      NF Profile Changes in the response to an NF Profile Partial Update
      operation";
      max-elements 1;
      type boolean;
      config false;
    }
    leaf-list nfProfileChangesInd {
    leaf nfProfileChangesInd {
      description "NF Profile Changes Indicator. This IE shall be absent
       in the request to the NRF and may be included by the NRF
       in NFRegister or NFUpdate (NF Profile Complete Replacement) response.
@@ -504,7 +304,7 @@ grouping ManagedNFProfileGrp {
                   false (default): complete NF Profile.";

      type boolean;
      max-elements 1;
      config false;
    }
    list defaultNotificationSubscriptions {
      description "Notification endpoints for different notification types.
@@ -513,6 +313,7 @@ grouping ManagedNFProfileGrp {
      as alternative notification endpoints.";
      key notificationType;
      min-elements 1;
      config false;
      uses types3gpp:DefaultNotificationSubscription;
    }
    leaf servingScope {
@@ -572,7 +373,7 @@ grouping ManagedNFProfileGrp {
        for inter-PLMN routing is specified.";
      type inet:domain-name;
    }
    list nfServices {
    list nfServiceList {
      description "List of NF Service Instances. It shall include
      the services produced by the NF that can be
      discovered by other NFs.";
@@ -580,37 +381,17 @@ grouping ManagedNFProfileGrp {
      min-elements 1;
      uses nfs3gpp:NFServiceGrp;
    }
     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 types5g3gpp:VendorSpecificFeatureGrp;
        }      
     }    
     uses types5g3gpp:SupportedVendorSpecificFeaturesGrp;   

    list selectionConditions {
      description "Identifications of Credentials Holder or Default Credentials
      Server. It is an array of FQDN.";
      leaf idx { type uint32; }
      key "idx";
      uses SelectionConditionsGrp;
      max-elements 1;
      uses nfs3gpp:SelectionConditionsGrp;
    }
    leaf-list canaryRelease {
    leaf canaryRelease {
        description "This attribute indicates whether an NF instance whose
        nfStatus is set to REGISTERED is in Canary Release condition,
        i.e. it should only be selected by NF Service Consumers under the
@@ -619,10 +400,10 @@ grouping ManagedNFProfileGrp {
        nfStatus is set to REGISTERED
        False: the NF instance indicates its Canary Release condition
        via the nfStatus attribute";
        max-elements 1;
        type boolean;
        default false;
    }
    leaf-list exclusiveCanaryReleaseSelection {
    leaf exclusiveCanaryReleaseSelection {
        description "This attribute indicates whether an NF Service
        Consumer should only select an NF Service Producer in Canary
        Release condition.
@@ -630,8 +411,8 @@ grouping ManagedNFProfileGrp {
        condition
        False: the consumer may select producers not in Canary Release
        condition";
        max-elements 1;
        type boolean;
        default false;
    }
    leaf sharedProfileDataId {
        description "This attribute indicates a string uniquely identifying
@@ -643,16 +424,18 @@ grouping ManagedNFProfileGrp {
        Example: 4ace9d34-2c69-4f99-92d5-a73a3fe8e23b";
       type string;
    }
    leaf-list shutdownTime {
    leaf shutdownTime {
      description "It indicates the timestamp when the NF Instance is
      planned to be shut down. This attribute may be present if the
      nfStatus is set to UNDISCOVERABLE due to scheduled shutdown";
      type yang:date-and-time ;
      max-elements 1;
      config false;
    }
    leaf supportedRcfs {
    leaf-list supportedRcfs {
        description "It represents a list of Resource Content Filter IDs";
        type string;
        min-elements 1;
        config false;
    }
    leaf canaryPrecedenceOverPreferred {
      description "ManagedNFProfile.canaryPrecedenceOverPreferred  This
@@ -671,6 +454,7 @@ grouping ManagedNFProfileGrp {
        in NF Service Producers shall not be prioritized over NF Service
        Consumer preferences at NF discovery requests)";
        type boolean;
        default false;
    }
    typedef NFStatus {
    type enumeration {
+2 −2
Original line number Diff line number Diff line
@@ -213,7 +213,7 @@ module _3gpp-5gc-nrm-neffunction {
      min-elements 1;
      key idx;
      leaf idx { type uint32 ; }
      uses mnfp3gpp:IdentityRange;
      uses types5g3gpp:IdentityRangeGrp;
    }

    list externalGroupIdentifiersRanges {
@@ -222,7 +222,7 @@ module _3gpp-5gc-nrm-neffunction {
      min-elements 1;
      key idx;
      leaf idx { type uint32 ; }
      uses mnfp3gpp:IdentityRange;
      uses types5g3gpp:IdentityRangeGrp;
    }

    leaf-list servedFqdnList {
+8 −7
Original line number Diff line number Diff line
@@ -76,9 +76,10 @@ module _3gpp-5gc-nrm-nrffunction {
    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";
      key idx;
      leaf idx { type uint32; }
      min-elements 1;
      uses mnfp3gpp:SupiRangeGrp;
      uses types5g3gpp:SupiRangeGrp;
    }

    list gpsiRangeList {
@@ -87,7 +88,7 @@ module _3gpp-5gc-nrm-nrffunction {
      key idx;
      leaf idx { type uint32; }
      min-elements 1;
      uses mnfp3gpp:IdentityRange;
      uses types5g3gpp:IdentityRangeGrp;
    }

    list plmnRangeList {
@@ -212,7 +213,7 @@ module _3gpp-5gc-nrm-nrffunction {
        description "Unique identifier for the IMSI range.";
        type string;
      }
      uses mnfp3gpp:IdentityRange;
      uses types5g3gpp:IdentityRangeGrp;
    }
    list imsPublicIdentityRanges{
      description "This attribute defines the list of ranges of MSISDNs whose
@@ -223,7 +224,7 @@ module _3gpp-5gc-nrm-nrffunction {
        description "Unique identifier for the IMSI range.";
        type string;
      }
      uses mnfp3gpp:IdentityRange;
      uses types5g3gpp:IdentityRangeGrp;
    }
    list msisdnRanges{
      description "This attribute defines the list of ranges of IMS Public
@@ -234,7 +235,7 @@ module _3gpp-5gc-nrm-nrffunction {
        description "Unique identifier for the IMSI range.";
        type string;
      }
      uses mnfp3gpp:IdentityRange;
      uses types5g3gpp:IdentityRangeGrp;
    }
    list externalGroupIdentifiersRanges{
      description "This attribute defines the list of ranges of external
@@ -246,7 +247,7 @@ module _3gpp-5gc-nrm-nrffunction {
        description "Unique identifier for the IMSI range.";
        type string;
      }
      uses mnfp3gpp:IdentityRange;
      uses types5g3gpp:IdentityRangeGrp;
    }
    list hssDiameterAddress{
      description "This attribute defines the Diameter Address of the HSS ";
Loading