Commit 9190fd0b authored by lengyelb's avatar lengyelb
Browse files

Updated neffunction to follow stage 2

parent 770d181c
Loading
Loading
Loading
Loading
Loading
+236 −0
Original line number Diff line number Diff line
@@ -7,9 +7,11 @@ module _3gpp-5gc-nrm-neffunction {
  import _3gpp-common-managed-function { prefix mf3gpp; }
  import _3gpp-common-managed-element { prefix me3gpp; }
  import ietf-inet-types { prefix inet; }
  import _3gpp-common-yang-types { prefix types3gpp; }
  import _3gpp-common-yang-extensions { prefix yext3gpp; }
  import _3gpp-common-top { prefix top3gpp; }
  import _3gpp-5g-common-yang-types { prefix types5g3gpp; }
  import _3gpp-5gc-nrm-nfprofile { prefix nfp3gpp; }
  
  organization "3gpp SA5";
  contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464";
@@ -25,6 +27,226 @@ module _3gpp-5gc-nrm-neffunction {
  revision 2020-11-06 { reference CR-0412 ; }
  revision 2019-10-20 { reference "initial revision"; }
  
  grouping DnnInfoItemGrp {
    description "This data type represents set of parameters supported by NF 
      for a given S-NSSAI. (See clause 6.1.6.2.97 of TS 29.510)";
    
    leaf dnn {
      type string;
      mandatory true;
      description "It represents supported DNN or Wildcard DNN if the NF 
        supports all DNNs for the related S-NSSAI. The DNN shall contain the 
        Network Identifier and it may additionally contain an Operator 
        Identifier. If the Operator Identifier is not included, the DNN is 
        supported for all the PLMNs in the plmnList of the NF Profile.";
    }
  }
  
  grouping SnssaiInfoItemGrp {
    description "This data type represents set of parameters supported by NF 
      for a given S-NSSAI. (See clause 6.1.6.2.97 of TS 29.510)";
      
    list sNssai {
      description "It represents the S-NSSAI the NetworkSlice managed object 
        is supporting. The S-NSSAI is defined in TS 23.003.";        
      min-elements 1;
      key idx;
      leaf idx { type uint32 ; }
      uses types5g3gpp:SNssai;
    }
    
    list dnnInfoList{
      description "It represents list of parameters supported by the 
        NF per DNN.";
      min-elements 1;
      key idx;
      leaf idx { type uint32 ; }
      uses DnnInfoItemGrp;
    }
  }
  
  grouping AfEventExposureDataGrp {
    description "This data type represents the AF Event Exposure data managed 
      by a given NEF Instance. (See clause 6.1.6.2.50 TS 29.510";
    
    leaf-list afEvents {  // stage 2 double defined
      type string;
      min-elements 1;
      description "It represents AF Event(s) exposed by the NEF after 
        registration of the AF(s) at the NEF.";
    }
    
    leaf-list afIds {
      type string;
      min-elements 1;
      description "It represents list of application function identifiers of 
        the managed PFDs.";
    }
    
    leaf-list appIds {  // stage 2 shaky
      type string;
      min-elements 1;
      description "It represents list of internal application identifiers.";
    }
  }
  
  grouping PfdDataGrp {
    description "This data type represents the list of Application IDs 
      and/or AF IDs managed by a given NEF Instance. 
      (See clause 6.1.6.2.49 TS 29.510)";
    
    leaf-list appIds {  // stage 2 shaky
      type string;
      min-elements 1;
      description "It represents list of internal application identifiers.";
    }
      
    leaf-list afIds {
      type string;
      min-elements 1;
      description "It represents list of application function identifiers of 
        the managed PFDs.";
    }
  }
  
  grouping UnTrustAfInfoGrp {
    description "This data type represents information of an untrusted AF 
      Instance. (See clause 6.1.6.2.95 TS 29.510)";
    
    leaf afId {
      type string;
      mandatory true;
      description "It represents associated AF id.";
    }
      
    list sNssaiInfoList {
      description "It represents S-NSSAIs and DNNs supported by the AF.";
      min-elements 1;
      key idx;
      leaf idx { type uint32 ; }
      uses SnssaiInfoItemGrp;
    }
      
    leaf mappingInd {
      type boolean;
      yext3gpp:initial-value false;
      description "When present, this attribute indicates whether the 
        AF supports mapping between UE IP address (IPv4 address or IPv6 prefix) 
        and UE ID (i.e. GPSI).
        True: the AF supports mapping between UE IP address and UE ID;
        False: the AF does not support mapping between UE IP address 
        and UE ID.";
    }
  }
  
  grouping NefInfoGrp {
    description "This data type represents information of an NEF Instance. 
      (See clause 6.1.6.2.48 TS 29.510).";

    list taiList {
      config false;
      description "List of TAIs";
      yext3gpp:inVariant;
      yext3gpp:notNotifyable;
      key idx;
      leaf idx { type uint32 ; }
      uses types3gpp:TaiGrp;
    }

    list taiRangelist {
      config false;
      description "Range of TAIs";
      yext3gpp:inVariant;
      yext3gpp:notNotifyable;
      key idx;
      leaf idx { type uint32 ; }
      uses nfp3gpp:TaiRange;
    }
             
    leaf nefId {
      type string;
      mandatory true;
      description "It represents the NEF ID. 
        (see clause 6.1.6.3.2 of TS 29.510)";
    }
    
    list pfdData {
      config false;
      description "It represents PFD data, containing the list of internal 
        application identifiers and/or the list of application function 
        identifiers for which the PFDs can be provided.

        Absence of this attribute indicates that the PFDs for any internal 
        application identifier and for any application function identifier 
        can be provided.";
      min-elements 1;
      key idx;
      leaf idx { type uint32 ; }
      uses PfdDataGrp;
    }
    
    list afEeData {
      config false;
      description "It represents the AF provided event exposure data. The NEF 
        registers such information in the NRF on behalf of the AF.";
      min-elements 1;
      key idx;
      leaf idx { type uint32 ; }
      uses AfEventExposureDataGrp;
    }
    
    list gpsiRanges {
      description "It represents list of ranges of GPSIs whose profile data 
        is available.";
      min-elements 1;
      key idx;
      leaf idx { type uint32 ; }
      uses nfp3gpp:IdentityRange;
    }
    
    list externalGroupIdentifiersRanges { 
      description "It represents list of ranges of external groups whose 
        profile data is available.";  // stage 2 definition is shaky
      min-elements 1;
      key idx;
      leaf idx { type uint32 ; }
      uses nfp3gpp:IdentityRange;
    }
    
    leaf-list servedFqdnList {
      type string;
      min-elements 1;
      description "It represents pattern (regular expression according to 
        the ECMA-262 dialect [75]) representing the Domain names served by 
        the NEF.";
    }
    
    leaf-list dnaiList {
      type string;
      min-elements 1;
      description "It represents list of Data network access identifiers 
        supported by the NEF. The absence of this attribute indicates that 
        the NEF can be selected for any DNAI.";
    }
    
    list unTrustAfInfoList {
      description "It represents list of information corresponding to the AFs.";
      min-elements 1;
      key idx;
      leaf idx { type uint32 ; }
      uses UnTrustAfInfoGrp;
    }
    
    leaf uasNfFunctionalityInd {
      type boolean;
      yext3gpp:initial-value false;
      description "When present, this attribute shall indicate whether the ,
        NEF supports UAS NF functionality:
        - True: UAS NF functionality is supported by the NEF.
        - False (default): UAS NF functionality is not supported by the NEF";
    }
  }
  
  grouping NEFFunctionGrp {
    description "Represents the NEFFunction IOC";
    uses mf3gpp:ManagedFunctionGrp;
@@ -44,6 +266,14 @@ module _3gpp-5gc-nrm-neffunction {
      uses types5g3gpp:SNssai;
    }

    list managedNFProfile {
      description "This parameter defines profile for managed NF(See TS 23.501)";
      min-elements 1;
      max-elements 1;
      key idx;
      uses types3gpp:ManagedNFProfile;
    }
    
    leaf-list capabilityList {
      description "List of supported capabilities of the NEF.";
      reference "3GPP TS 23.003";
@@ -55,6 +285,12 @@ module _3gpp-5gc-nrm-neffunction {
      yext3gpp:inVariant;
    }
    
    list nefInfo {
      description "This attribute represents information of an NEF NF Instance.";
      key idx;
      leaf idx { type uint32 ; }
      uses NefInfoGrp;
    }
  }
  
  augment "/me3gpp:ManagedElement" {