Commit 703a2c10 authored by cintiarosa's avatar cintiarosa
Browse files

update yang for NFService to aligne with state 2

parent 5841c7e4
Loading
Loading
Loading
Loading
Loading
+110 −0
Original line number Diff line number Diff line
@@ -348,6 +348,34 @@ module _3gpp-5g-common-yang-types {
    }
  }

  grouping PlmnSnssai {
    description "This data type represents the list of S-NSSAIs supported
      per PLMN.";
    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 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 PLMNInfo {
    description "The PLMNInfo data type define a S-NSSAI member in a specific
      PLMNId, and it have two attributes PLMNId and S-NSSAI (PLMNId, S-NSSAI).
@@ -597,6 +625,88 @@ module _3gpp-5g-common-yang-types {
    }
  }

  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 
      of an NR mobile node (e.g., IAB-node or MWAB).";
+1 −26
Original line number Diff line number Diff line
@@ -171,31 +171,6 @@ revision 2025-07-25 { reference CR-1558 ; }
             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
@@ -371,7 +346,7 @@ grouping ManagedNFProfileGrp {
       of the NFService(s).";
      key idx;
      leaf idx { type uint32; }
      uses PlmnSnssai;
      uses types5g3gpp:PlmnSnssai;
    }

    list allowedSNPNs {
+155 −6
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ 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";
@@ -134,7 +135,7 @@ module _3gpp-5gc-nrm-nfservice {
      type string;
    }
    
    list allowedNSSAI {
    list allowedNSSAIs {
      description "S-NSSAI of the allowed slices to access the service
      instance. The absence of this attribute indicates that any slice
      is allowed to access the service instance.";
@@ -162,16 +163,28 @@ module _3gpp-5gc-nrm-nfservice {
    leaf allowedOperationsPerNfInstanceOverrides {
      type boolean;
      default false;
      //optional support
      description "When it is present and set to true, indicates that
      the scopes defined in attribute allowedOperationsPerNfInstance 
      for a given NF Instance ID take precedence over the scopes defined
      in attribute allowedOperationsPerNfType for the corresponding 
      NF type of the NF Instance associated to such NF Instance ID..";
    } 
    list sNssais {
      description "S-NSSAIs of the Network Function. If not
       provided, the NF can serve any S-NSSAI. When present
        this IE represents the list of S-NSSAIs supported in
         all the PLMNs listed in the plmnList IE.";
      //optional support
      min-elements 1;
      key "sst sd";
      uses types5g3gpp:SNssai;
    }    

    leaf-list oauth2Required {
      type boolean;
      max-elements 1;
      //optional support
      description "It indicates whether the NF Service Instance requires 
      Oauth2-based authorization";
    } 
@@ -179,6 +192,7 @@ module _3gpp-5gc-nrm-nfservice {
    leaf-list sharedServiceDataId {
      type string;
      max-elements 1;
      //optional support
      description "String uniquely identifying SharedServiceData. The format
      of the sharedServiceDataId shall be a Universally Unique Identifier 
      (UUID) version 4, as described in IETF RFC 4122 [44]. The hexadecimal
@@ -213,13 +227,148 @@ module _3gpp-5gc-nrm-nfservice {
      //optional support
      type string;
    }
    leaf-list callbackUriPrefixList {
      description "It indicates the optional path segment(s) used to construct
        the prefix of the Callback URIs during the reselection of an NF
        service consumer.";
      //optional support
      reference "3GPP TS 29.501 [23], clause 4.4.3.";
      type inet:uri;
      min-elements 1;
    }
    leaf supportedFeatures {
      description "It is a string, which indicates the features of the service
      corresponding to the subscribed default notification, which are supported
      by the NF (Service) instance acting as NF service consumer.";
      reference "3GPP TS 29.571 table 5.2.2-3";
      //optional
      type types3gpp:SupportedFeatures;
      config false;
    }
     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;
        }      
     }    
    leaf load {
      description "Latest known load information of the NF, percentage.";
      type types3gpp:Load;
      config false;
    }
    leaf loadTimeStamp {
      description "Timestamp of the reported load information.";
      type yang:date-and-time;
      config false;
    }
    leaf-list nfServiceSetIdList {
      description "This attribute represents a list of NF Service Set ID.
        At most one NF Service Set ID shall be indicated per PLMN-ID or
        SNPN of the NF.";
      type string;
      min-elements 1;
    }
    list perPlmnSnssaiList {
      description "It includes the S-NSSAIs supported by the Network Function
        for each PLMN supported by the Network Function. When present, it
        shall override sNssais IE.";
      key idx;
      leaf idx { type uint32; }
      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.
        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.
        False: the NF instance indicates its Canary Release condition
        via the nfStatus attribute.";
      //optional support
      type boolean;
      default false;
    }

    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.
        False: the consumer may select producers not in Canary Release
        condition.";
      //optional support
      type boolean;
      default false;
    }

    leaf shutdownTime {
      description "This attribute may be present if the nfStatus is set to
        UNDISCOVERABLE due to scheduled shutdown. When present, it shall
        indicate the timestamp when the NF Instance is planned to be
        shut down.";
      //optional support
      type yang:date-and-time;
    }

  typedef SupportedFeatures {
    type string {
      pattern '[A-Fa-f0-9]*';
    leaf canaryPrecedenceOverPreferred {
      description "This attribute indicates whether the NRF shall prioritize
        the NF Service Producer in Canary Release condition over the
        preferences (preferred-xxx, ext-preferred-xxx) present in NF
        discovery requests.
        True: NRF shall prioritize NF Service Producers in Canary Release
        condition at NF discovery requests.
        False: NRF shall prioritize the NF Service Producers according to
        preferred-xxx and/or ext-preferred-xxx.";
      //optional support
      type boolean;
      default false;
    }

    leaf perPlmnOauth2ReqList {
      description "This attribute includes the Oauth2-based authorization
        requirement supported by the NF Service Instance per PLMN of the
        NF Service Consumer. This attribute may be included when the
        Oauth2.0 authorization requirement supported by the NF Service
        Instance for different PLMN is different. When the requester
        PLMN Id is available in perPlmnOauth2ReqList IE, this IE shall
        override the oauth2Required IE. If the requester PLMN ID is not
        present in perPlmnOauth2ReqList IE, then the value of
        oauth2Required IE shall be applicable if available.";
      //optional support
      type boolean;
      default false;
    }
  }
  

  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
+20 −7
Original line number Diff line number Diff line
@@ -786,6 +786,23 @@ module _3gpp-common-yang-types {
    }
  }

  typedef SupportedFeatures {
    type string {
      pattern '[A-Fa-f0-9]*';
    }
    description "It is a string, which indicates the features of the service
     corresponding to the subscribed default notification, which are supported
     by the NF (Service) instance acting as NF service consumer, when it is
     present of the attribute whose type is DefaultNotificationSubscription
     <<datatype>>. When it is present as the attribute of an NFService 
     instance, it indicates the supported features of the NF Service <datatype>
     A string containing a bitmask indicating supported features in hexadecimal
     representation. Each character in the string shall take
     a value of 0 to 9, a to f or A to F and shall represent the support
     of 4 features as described in table 5.2.2-3 of TS 29.571.";
    reference "3GPP TS 29.571";
  }

  typedef N1MessageClass {
    type enumeration {
      enum 5GMM;
@@ -857,14 +874,10 @@ module _3gpp-common-yang-types {
    leaf supportedFeatures {
      description "It is a string, which indicates the features of the service
      corresponding to the subscribed default notification, which are supported
      by the NF (Service) instance acting as NF service consumer. The string
      shall contain a bitmask indicating supported features in hexadecimal
      representation:Each character in the string shall take a value
      of 0 to 9, a to f or A to F ";
      reference "shall represent the support of 4 features as described in
      table 5.2.2-3 of TS 29.571 [61].";
      by the NF (Service) instance acting as NF service consumer.";
      reference "3GPP TS 29.571 table 5.2.2-3";
      //optional
      type string;
      type SupportedFeatures;
      config false;
    }
    leaf serviceInfoList {