Commit 25b61baf authored by cintiarosa's avatar cintiarosa
Browse files

align yang ManagedNFProfile to stage 2

parent 703a2c10
Loading
Loading
Loading
Loading
Loading
+172 −149
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@ 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.
description "NF profile dataType.
    Copyright 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI,
    TTA, TTC). All rights reserved.";
  reference "3GPP TS 29.510";
@@ -85,11 +85,12 @@ revision 2025-07-25 { reference CR-1558 ; }
        shall be evaluated to determine whether a discovered NF (Service)
        Instance shall be selected.";

        leaf consumerNfTypes {
        leaf-list consumerNfTypes {
            description "It represents the NF types of the consumers for
              which the conditions included in this ConditionItem apply.
              If this attribute is absent, the conditions are applicable
              to all NF consumer types.";
            min-elements 1;
            type types3gpp:NfType;
        }
        leaf serviceFeature {
@@ -149,10 +150,11 @@ revision 2025-07-25 { reference CR-1558 ; }
            leaf idx { type uint32; }
            uses IdentityRange;
        }
        leaf peiList {
        leaf-list peiList {
            description "It represents a set of PEIs of the UEs for
              which the NF (Service) instance under CANARY_RELEASE status
                shall be selected";
              shall be selected.";
            min-elements 1;
            type string;
        }
        list taiRangeList {
@@ -164,19 +166,37 @@ revision 2025-07-25 { reference CR-1558 ; }
            leaf idx { type uint32; }
            uses types5g3gpp:TaiRangeGrp;
        }
        leaf dnnList {
            description " It represents a set of TAIs where the NF
        leaf-list dnnList {
            description "It represents a set of DNNs where the NF
              (Service) instance under CANARY_RELEASE status shall be
                selected for a certain UE";
              selected.";
            min-elements 1;
            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]).";

    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 to determine whether a discovered NF (Service)
              Instance shall be selected.";
            leaf id {
              type string;
            }
            uses ConditionItemGrp;
        }

        container conditionGroup {
            description "It represents a group of conditions
              that shall be evaluated.";
            // Note: ConditionGroupGrp references SelectionConditionsGrp
            // creating a circular dependency. Inlined one level to avoid it.
            choice LogicalOperator {
              case and {
                list and {
@@ -185,47 +205,33 @@ revision 2025-07-25 { reference CR-1558 ; }
                    in the list are evaluated as true.";
                  key idx;
                  leaf idx { type uint32; }
              uses SelectionConditionsGrp;
                  list conditionItem {
                    key "id";
                    description "It represent a single condition item that
                      shall be evaluated.";
                    leaf id { type string; }
                    uses ConditionItemGrp;
                  }
                }

              }
              case or {
                list or {
                  description "It represents a list of conditions where the
               overall evaluation is true if at least one of the conditions
               in the list evaluated as true";
                    overall evaluation is true if at least one of the
                    conditions in the list is evaluated as true.";
                  key idx;
                  leaf idx { type uint32; }
               uses SelectionConditionsGrp;
               }
                  list conditionItem {
                    key "id";
                    description "It represent a single condition item that
                      shall be evaluated.";
                    leaf id { type string; }
                    uses ConditionItemGrp;
                  }
                }

              }

    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 {
@@ -242,6 +248,8 @@ revision 2025-07-25 { reference CR-1558 ; }
    }

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.";
@@ -380,12 +388,16 @@ 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).";
@@ -412,21 +424,24 @@ 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
        information (sent by the NF in the load attribute of the NF Profile)
      was generated at the NF Instance.If the NF did not provide a timestamp,
      the NRF should set it to the instant when the NRF received the message
      where the NF provided the latest load information.";
        was generated at the NF Instance. If the NF did not provide a
        timestamp, 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 {
      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";
    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
@@ -434,9 +449,10 @@ grouping ManagedNFProfileGrp {
        API version, are capable to persist their resource state in shared
        storage and therefore these resources are available after a new NF
        service instance supporting the same API version is selected by a NF
      Service Consumer ";
        Service Consumer.";
      reference "TS 29.510";
      type boolean;
      config false;
    }
    leaf-list nfSetIdList {
      type string ;
@@ -452,33 +468,32 @@ grouping ManagedNFProfileGrp {
      in a SNPN.At most one NF Set ID shall be indicated per PLMN-ID or SNPN
       of the NF.";
    }
    leaf-list nfProfileChangesSupportInd {
      description "This parameter indicates if the NF Service Consumer supports
       or does not support receiving NF Profile Changes. It may be present in
       the NFRegister or NFUpdate (NF Profile Complete Replacement) request and
       shall be absent in the response (see Annex B 3GPP TS 29.510 [23]).  ";
       max-elements 1;
    leaf nfProfileChangesSupportInd {
      description "This parameter indicates if the NF Service Consumer
        supports or does not support receiving NF Profile Changes. It may
        be present in the NFRegister or NFUpdate (NF Profile Complete
        Replacement) request and shall be absent in the response.";
      reference "Annex B 3GPP TS 29.510 [23]";
      type boolean;
      config false;
    }
     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;
        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.";
      type boolean;
    }
    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.
        in the request to the NRF and may be included by the NRF in
        NFRegister or NFUpdate (NF Profile Complete Replacement) response.
        true: the NF Profile contains NF Profile changes.
        false (default): complete NF Profile.";

      type boolean;
      max-elements 1;
      config false;
    }
    list defaultNotificationSubscriptions {
      description "Notification endpoints for different notification types.
@@ -487,6 +502,7 @@ grouping ManagedNFProfileGrp {
        as alternative notification endpoints.";
      key notificationType;
      min-elements 1;
      config false;
      uses types3gpp:DefaultNotificationSubscription;
    }
    leaf servingScope {
@@ -546,10 +562,10 @@ 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.";
        the services produced by the NF that can be discovered by
        other NFs.";
      key serviceInstanceID;
      min-elements 1;
      uses nfs3gpp:NFServiceGrp;
@@ -561,6 +577,7 @@ grouping ManagedNFProfileGrp {
        a list (array) of VendorSpecificFeature objects as defined
        in the clause 5.3.247.";
      key "enterpriseCode";
      config false;

      leaf enterpriseCode {
        type uint32;
@@ -577,34 +594,37 @@ grouping ManagedNFProfileGrp {
    }

    list selectionConditions {
      description "Identifications of Credentials Holder or Default Credentials
      Server. It is an array of FQDN.";
      description "This attribute includes the conditions under which an NF
        Instance with an NFStatus value set to CANARY_RELEASE, or with a
        canaryRelease attribute set to true, shall be selected by an NF
        Service Consumer.";
      leaf idx { type uint32; }
      key "idx";
      max-elements 1;
      uses 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
        conditions indicated by the selectionConditions attribute.
        True: the NF is under Canary Release condition, even if the
        nfStatus is set to REGISTERED
        nfStatus is set to REGISTERED.
        False: the NF instance indicates its Canary Release condition
        via the nfStatus attribute";
        max-elements 1;
        via the nfStatus attribute.";
      type boolean;
      default false;
    }
    leaf-list exclusiveCanaryReleaseSelection {
        description "This attribute indicates whether an NF Service
        Consumer should only select an NF Service Producer in Canary
        Release condition.
    leaf exclusiveCanaryReleaseSelection {
      description "This attribute indicates whether an NF Service Consumer
        should only select an NF Service Producer in Canary Release
        condition.
        True: the consumer shall only select producers in Canary Release
        condition
        condition.
        False: the consumer may select producers not in Canary Release
        condition";
        max-elements 1;
        condition.";
      type boolean;
      default false;
    }
    leaf sharedProfileDataId {
        description "This attribute indicates a string uniquely identifying
@@ -616,16 +636,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";
        nfStatus is set to UNDISCOVERABLE due to scheduled shutdown.";
      type yang:date-and-time;
      max-elements 1;
      config false;
    }
    leaf supportedRcfs {
        description "It represents a list of Resource Content Filter IDs";
    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
@@ -644,14 +666,15 @@ 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 {
      enum REGISTERED;
      enum SUSPENDED;
    }
  }

}
}
+20 −16
Original line number Diff line number Diff line
@@ -8,15 +8,16 @@ module _3gpp-5gc-nrm-nfservice {
  import ietf-yang-types { prefix yang; }
  import ietf-inet-types { prefix inet; }
  import _3gpp-5g-common-yang-types { prefix types5g3gpp; }
  import _3gpp-common-yang-extensions { prefix yext3gpp; }

  
  organization "3gpp SA5";
  contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464";
  description "NF service class.
  description "NF service dataType.
    Copyright 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, 
    TTA, TTC). All rights reserved.";
  reference "3GPP TS 29.510";
  
  revision 2025-03-25 { reference CR-; } 
  revision 2025-01-25 { reference CR-1442; } 
  revision 2023-09-18 { reference CR-1043 ; } 
  revision 2021-01-25 { reference CR-0454 ; }
@@ -24,7 +25,7 @@ module _3gpp-5gc-nrm-nfservice {
  revision 2019-06-17 { reference "initial revision"; }
  
  grouping NFServiceGrp {
    description "Represents the NFService IOC";
    description "This data type represents the NF Service defined in TS 29.510 [23].";
    leaf serviceInstanceID {
      description 
        "Unique ID of the service instance within a given NF Instance.";
@@ -144,6 +145,18 @@ module _3gpp-5gc-nrm-nfservice {
      key "sd sst";
      uses types5g3gpp:SNssai;
    }

    list allowedScopesRuleSet {
      description "It represents map of rules specifying scopes allowed or
        denied for NF-Consumers. This attribute may be present when the
        NF-Producer and the NRF support Allowed-ruleset feature as specified
        in clause 6.1.9 in TS 29.510.";
      //optional support
      key idx;
      leaf idx { type uint32; }
      uses types5g3gpp:RuleSetGrp;
    }

    leaf-list allowedOperationsPerNfType {
      description "It indicates the allowed operations on resources for
      each type of NF; the key of the map is the NF Type, and the value
@@ -255,7 +268,8 @@ module _3gpp-5gc-nrm-nfservice {

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

        list vendorSpecificFeature {
@@ -292,17 +306,6 @@ module _3gpp-5gc-nrm-nfservice {
      uses types5g3gpp:PlmnSnssai;
    }

    list allowedScopesRuleSet {
      description "It represents map of rules specifying scopes allowed or
        denied for NF-Consumers. This attribute may be present when the
        NF-Producer and the NRF support Allowed-ruleset feature as specified
        in clause 6.1.9 in TS 29.510.";
      //optional support
      key idx;
      leaf idx { type uint32; }
      uses types5g3gpp:RuleSetGrp;
    }

    leaf canaryRelease {
      description "This attribute indicates whether an NF instance whose
        nfStatus is set to REGISTERED is in Canary Release condition, i.e.
@@ -379,7 +382,8 @@ module _3gpp-5gc-nrm-nfservice {
     
     leaf enterpriseCode {
       type uint32;
       description "IANA-assigned SMI Network Management Private Enterprise Code";
       description "IANA-assigned SMI Network Management Private Enterprise
        Code";
     }

     list vendorSpecificFeature {