Commit 99fe3b9d authored by lengyelb's avatar lengyelb Committed by lengyelb
Browse files

moved and updated UpfInfo

parent 8d6a5110
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ module _3gpp-5g-common-yang-types {
  prefix "types5g3gpp";
  
  import ietf-yang-types { prefix yang; }
  import ietf-inet-types { prefix inet; }
  import _3gpp-common-yang-types { prefix types3gpp; }

  organization "3GPP SA5";
@@ -25,6 +26,27 @@ module _3gpp-5g-common-yang-types {
  revision 2020-11-05 { reference CR-0412 ; }
  revision 2019-10-20 { reference "Initial version."; }
 
  grouping IpInterfaceGrp {
    leaf-list ipv4EndpointAddresses {
      description "Available endpoint IPv4 address(es) of
        the User Plane interface.";
      type inet:ipv4-address;
      must '../ipv4EndpointAddresses or ../ipv6EndpointAddresses or ../fqdn';
    }

    leaf-list ipv6EndpointAddresses {
      description "Available endpoint IPv6 address(es) of
        the User Plane interface.";
      type inet:ipv6-address;
      must '../ipv4EndpointAddresses or ../ipv6EndpointAddresses or ../fqdn';    }

    leaf fqdn {
      description "This parameter defines FQDN of the Network Function 
        (See TS 23.003).";
      type inet:domain-name;
      must '../ipv4EndpointAddresses or ../ipv6EndpointAddresses or ../fqdn';    }  
  }
  
  grouping SdRangeGrp {
    leaf start {
      type string {
+2 −0
Original line number Diff line number Diff line
@@ -241,6 +241,8 @@ TTA, TTC). All rights reserved.";
                pattern '^[0-9]+$';
                }
        }
        leaf end {type string; } // dummy
        leaf pattern {type string; } // dummy
    }
    
grouping ManagedNFProfileGrp {
+3 −3
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@ module _3gpp-5gc-nrm-neffunction {
  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; }
  import _3gpp-5gc-nrm-managed-nfprofile { prefix mnfp3gpp; }
  
  organization "3gpp SA5";
  contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464";
@@ -212,7 +212,7 @@ module _3gpp-5gc-nrm-neffunction {
      min-elements 1;
      key idx;
      leaf idx { type uint32 ; }
      uses nfp3gpp:IdentityRange;
      uses mnfp3gpp:IdentityRange;
    }
    
    list externalGroupIdentifiersRanges { 
@@ -221,7 +221,7 @@ module _3gpp-5gc-nrm-neffunction {
      min-elements 1;
      key idx;
      leaf idx { type uint32 ; }
      uses nfp3gpp:IdentityRange;
      uses mnfp3gpp:IdentityRange;
    }
    
    leaf-list servedFqdnList {
+289 −38
Original line number Diff line number Diff line
@@ -9,6 +9,8 @@ module _3gpp-5gc-nrm-upffunction {
  import _3gpp-5g-common-yang-types { prefix types5g3gpp; }
  import _3gpp-common-top { prefix top3gpp; }
  import _3gpp-common-yang-extensions { prefix yext3gpp; }
  import _3gpp-5gc-nrm-neffunction { prefix nef3gpp; }
  import ietf-inet-types { prefix inet; }

  organization "3GPP SA5";
  contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464";
@@ -26,80 +28,329 @@ module _3gpp-5gc-nrm-upffunction {
  revision 2019-05-31 { reference "Ericsson refactoring."; }
  revision 2018-08-07 { reference "Initial revision"; }

  grouping UpfInfoGrp {
    description "Represents datatype UpfInfo";
  grouping SnssaiUpfInfoItemGrp { 
    list sNssai { 
      description "Supported S-NSSAI.";
      min-elements 1;
      max-elements 1;
      key idx;
      leaf idx { type uint32; }
      uses types5g3gpp:ExtSnssaiGrp;
    }
    
    /*sNssaiUpfInfoList {
      description "";
    list dnnUpfInfoList {
      description "It represents list of parameters supported by the UPF 
        per DNN.";
      min-elements 1;
      key dnn;
      uses nef3gpp:DnnInfoItemGrp;
    }
      
    smfServingAreat {
      description "";
    leaf redundantTransport {
      type boolean;
      default false;
      description "This attribute indicates whether the UPF supports redundant 
        transport path on the transport layer in the corresponding network 
        slice.
        true: supported
        false: not supported";
    }
  }

    interfaceUpfInfoListt {
      description "";
  typedef UPInterfaceType {
    type enumeration {
      enum N3;
      enum N6;
      enum N9;
      enum DATA_FORWARDING;
      enum N6MB;
      enum N19MB;
      enum N3MB;
      enum NMB9;
      enum S1U;
      enum S5U;
      enum S8U;
      enum S11U;
      enum S12;
      enum S2AU;
      enum S2BU;
      enum N3TRUSTEDN3GPP;
      enum N3UNTRUSTEDN3GPP;
      enum N9ROAMING;
      enum SGI;
      enum N19;
      enum SXAU;
      enum SXBU;
      enum N4U;
    }
  }  
  
  grouping InterfaceUpfInfoItemGrp {
    leaf interfaceType {
      description "User Plane interface type.
        See TS 29.510[23] clause 6.1.6.3.9";
      mandatory true;
      type UPInterfaceType;
      must '../ipv4EndpointAddresses or ../ipv6EndpointAddresses or ../fqdn';
    }
    
    iwkEpsIndt {
      description "";
    leaf-list ipv4EndpointAddresses {
      description "Available endpoint IPv4 address(es) of
        the User Plane interface.";
      type inet:ipv4-address;
    }

    pduSessionTypest {
      description "";
    leaf-list ipv6EndpointAddresses {
      description "Available endpoint IPv6 address(es) of
        the User Plane interface.";
      type inet:ipv6-address;
    }

    atsssCapabilityt {
      description "";
    leaf fqdn {
      description "This parameter defines FQDN of the Network Function 
        (See TS 23.003).";
      type inet:domain-name;
    }
    
    ueIpAddrIndt {
      description "";
    leaf networkInstance {
      description "Network Instance (See TS 29.244) associated to the User 
        Plane interface";
      type string;
      mandatory true;
    }
  }
  
    taiListt {
      description "";
  grouping AtsssCapabilityGrp {
    leaf atsssLL {
      description "Indicates the ATSSS-LL capability to support procedures 
        related to Access Traffic Steering, Switching, Splitting 
        (see clauses 4.2.10, 5.32 of TS 23.501).
        true: Supported
        false: Not Supported";
      type boolean;
      default false;
    }
    
    taiRangeListt {
      description "";
    leaf mptcp {
      description "Indicates the MPTCP capability to support procedures related 
        to Access Traffic Steering, Switching, Splitting 
        (see clauses 4.2.10, 5.32 of TS 23.501).
        true: Supported
        false: Not Supported";
      type boolean;
      default false;
    }
    
    wAgfInfot {
      description "";
    leaf rttWithoutPmf {
      description "Indicates whether the UPF supports RTT measurement without 
        PMF (see clauses 5.32.2, 6.3.3.3 of TS 23.501).
        true: Supported
        false: Not Supported";
      type boolean;
      default false;
    }
  }
  
    tngfInfot {
      description "";
  grouping UpfInfoGrp {
    description "Represents datatype UpfInfo. This data type represents 
      information of an UPF Instance";

    list sNssaiUpfInfoList {
      description "This attribute represents a list of parameters supported by 
        the UPF per S-NSSAI.";
      min-elements 1;
      key idx; 
      leaf idx { type uint32; }
      uses SnssaiUpfInfoItemGrp;
    }
    
    twifInfot {
      description "";
    leaf-list smfServingArea {
      type string;
      min-elements 1;
      description "The SMF service area(s) the UPF can serve. See TS 29.510.
        If not provided, the UPF can serve any SMF service area.";
    }
    
    priorityt {
      description "";
    list interfaceUpfInfoList {
      description "List of User Plane interfaces configured on the UPF. When 
        this parameter is provided in the NF Discovery response, the NF Service 
        Consumer (e.g., SMF) may use this information for UPF selection.";
      min-elements 1;
      key idx;
      leaf idx { type uint32; }
      uses InterfaceUpfInfoItemGrp;
    }
    
    redundantGtput {
      description "";
    leaf iwkEpsInd {
      type boolean;
      mandatory true;
      config false;
      description "Indicates whether interworking with EPS is supported by 
        the UPF.
        True: Supported
        False: Not Supported";
    }
    
    ipupst {
      description "";
    leaf-list pduSessionTypes {
      type enumeration {
        enum IPV4;
        enum IPV6;
        enum IPV4V6;
        enum UNSTRUCTURED;
        enum ETHERNET;
      }
      config false;
      min-elements 1;
      description "Indicates the type(s) of a PDU session.";
    }
    
    dataForwardingt {
      description "";
    list atsssCapability {
      config false;
      description "Indicate the ATSSS capability of the UPF";
      min-elements 1;
      max-elements 1;
      key idx;
      leaf idx { type uint32; }
      uses AtsssCapabilityGrp;
    }
    
    supportedPfcpFeaturest {
      description "";
    leaf ueIpAddrInd {
      type boolean;
      config false;
      default false;
      description "Indicates whether the UPF supports allocating UE IP 
        addresses/prefixes.
        true: supported
        false: not supported";
    }
    
    sxaIndt {
      description "";
    }*/
    list taiList {
      description "The list of TAIs.";
      min-elements 1;
      key idx;
      leaf idx { type uint32; }
      uses types3gpp:TaiGrp;
    }
    
    list taiRangeList {
      description "The range of TAIs.";
      min-elements 1;
      key idx;
      leaf idx { type uint32; }
      uses types5g3gpp:TaiRangeGrp;
    }
    
    list wAgfInfo {
      description "Indicate that the UPF is collocated with W-AGF. If not 
        present, the UPF is not collocated with Wireline Access Gateway 
        Function (W-AGF).";
      min-elements 1;
      max-elements 1;
      key idx;
      leaf idx { type uint32; }
      uses types5g3gpp:IpInterfaceGrp;
    }
    
    list tngfInfo {
      description "Indicate that the UPF is collocated with TNGF. If not 
        present, the UPF is not collocated with Trusted Non-3GPP Gateway 
        Function (TNGF).";
      min-elements 1;
      max-elements 1;
      key idx;
      leaf idx { type uint32; }
      uses types5g3gpp:IpInterfaceGrp;
    }
    
    list twifInfo {
      description "Indicate that the UPF is collocated with TWIF. If not 
        present, the UPF is not collocated with Trusted WLAN Interworking 
        Function (TWIF).";
      min-elements 1;
      max-elements 1;
      key idx;
      leaf idx { type uint32; }
      uses types5g3gpp:IpInterfaceGrp;
    }
    
    leaf priority {
      type uint16;
      mandatory true;
      description "This parameter defines Priority (relative to other NFs of 
        the same type) in the range of 0-65535, to be used for NF selection; 
        lower values indicate a higher priority. If priority is also present 
        in the nfServiceList parameters, those will have precedence over 
        this value (See TS 29.510).";
    }
    
    leaf redundantGtpu {
      type boolean;
      default false;
      config false;
      description "Indicates whether the UPF supports redundant GTP-U path.
        true: supported
        false: not supported";
    }
    
    leaf ipups {
      type boolean;
      default false;
      description "Indicates whether the UPF is configured for Inter-PLMN User 
        Plane Security (IPUPS). Any UPF can support the IPUPS functionality. 
        In network deployments where specific UPFs are used to provide IPUPS, 
        UPFs configured for providing IPUPS services shall be selected.
          true: The UPF is configured for IPUPS.
          false: The UPF is not configured for IPUPS";
    }
    
    leaf dataForwarding {
      type boolean;
      default false;
      description "Indicates whether the UPF is configured for data forwarding. 
        Based on operator policies, if dedicated UPFs are preferred to be used 
        for indirect data forwarding during handover scenarios, when setting 
        up the indirect data forwarding tunnel, the SMF should preferably 
        select a UPF configured for data forwarding and use the network 
        instance indicated in the Network Instance ID associated to the 
        DATA_FORWARDING interface type in the interfaceUpfInfoList attribute.
          true: the UPF is configured for data forwarding
          false: the UPF is not configured for data forwarding

        If the UPF is configured for data forwarding, it shall support UP 
        network interface with type 'DATA_FORWARDING'.";
    }
    
    leaf supportedPfcpFeatures {
      type string;
      config false;
      description "Supported Packet Forwarding Control Protocol (PFCP) Features.
        A string used to indicate the PFCP features supported by the UPF, 
        which encodes the 'UP Function Features' as specified in 
        Table 8.2.25-1 of TS 29.244 (starting from Octet 5), in hexadecimal 
        representation.

        Each character in the string shall take a value of '0' to '9', 'a' 
        to 'f' or 'A' to 'F' and each two characters shall represent one octet 
        of 'UP Function Features' (starting from Octet 5, to higher octets). 
        For each two characters representing one octet, the first character 
        representing the 4 most significant bits of the octet and the second 
        character the 4 least significant bits of the octet.

        The supported PFCP features shall be provisioned in addition and be 
        consistent with the existing UPF features (atsssCapability, ueIpAddrInd, 
        redundantGtpu and ipups), e.g., if the ueIpAddrInd is set to 'true', 
        then the UEIP flag shall also be set to '1' in the supported PFCP 
        features.";
    }
    
    leaf sxaInd {
      type boolean;
      config false;
      description "This attribute indicates whether the UPF is configured to 
        support Sxa interface.
        true: Supported
        false: Not Supported";
    }
  }
  
  grouping UPFFunctionGrp {