Commit 10745a26 authored by cintiarosa's avatar cintiarosa
Browse files

add _3gpp-5gc-nrm-tsctsffunction.yang to aligne with stage2

parent d9466271
Loading
Loading
Loading
Loading
Loading
+190 −0
Original line number Diff line number Diff line
module _3gpp-5gc-nrm-tsctsffunction {
  yang-version 1.1;
  namespace urn:3gpp:sa5:_3gpp-5gc-nrm-tsctsffunction;
  prefix tsctsf3gpp;

  import _3gpp-common-managed-function { prefix mf3gpp; }
  import _3gpp-common-managed-element { prefix me3gpp; }
  import _3gpp-5g-common-yang-types { prefix types5g3gpp; }
  import _3gpp-common-top { prefix top3gpp; }
  import _3gpp-5gc-nrm-managed-nfprofile { prefix mnfp3gpp; }
  import ietf-inet-types { prefix inet; }

  organization "3gpp SA5";
  contact
    "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464";
  description "This IOC represents the TSCTSF function in
    5GC. For more information about the TSCTSF, see
    TS 23.501.
    Copyright 2026, 3GPP Organizational Partners (ARIB,
    ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
    All rights reserved.";
  reference "3GPP TS 28.541";

  revision 2025-04-25 { reference "CR-"; }

  grouping DnnTsctsfInfoItemGrp {
    description "This data type represents set of
      parameters supported by TSCTSF for a given DNN.
      (See clause 6.1.6.2.93 TS 29.510).";

    leaf dnn {
      type string;
      mandatory true;
      description "It represents supported DNN or
        Wildcard DNN if the TSCTSF 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 SnssaiTsctsfInfoItemGrp {
    description "This data type represents set of
      parameters supported by TSCTSF for a given
      S-NSSAI.";

    list sNssai {
      description "This attribute represents a S-NSSAI.";
      min-elements 1;
      max-elements 1;
      key idx;
      leaf idx { type uint32; }
      uses types5g3gpp:ExtSnssaiGrp;
    }

    list dnnInfoList {
      description "It represents list of parameters
        supported by the TSCTSF per DNN.";
      min-elements 1;
      key dnn;
      uses DnnTsctsfInfoItemGrp;
    }
  }

  grouping TsctsfInfoGrp {
    description "This data type represents the Specific
      data for the TSCTSF.
      (See clause 6.1.6.2.91 TS 29.510).";

    list sNssaiInfoList {
      //optional support
      description "This attribute represents the
        S-NSSAIs and DNNs supported by the TSCTSF.";
      key idx;
      leaf idx { type uint32; }
      uses SnssaiTsctsfInfoItemGrp;
    }

    list externalGroupIdentifiersRanges {
      //optional support
      description "This attribute represents the ranges
        of External Group Identifiers that can be served
        by the TSCTSF. The absence of this IE indicates
        that the TSCTSF can serve any external group
        managed by the PLMN (or SNPN) of the TSCTSF
        instance.";
      key idx;
      leaf idx { type uint32; }
      uses types5g3gpp:IdentityRangeGrp;
    }

    list supiRanges {
      //optional support
      description "This attribute represents the ranges
        of SUPIs that can be served by the TSCTSF
        instance.";
      key idx;
      leaf idx { type uint32; }
      uses types5g3gpp:SupiRangeGrp;
    }

    list gpsiRanges {
      //optional support
      description "This attribute represents the ranges
        of GPSIs that can be served by the TSCTSF
        instance.";
      key idx;
      leaf idx { type uint32; }
      uses types5g3gpp:IdentityRangeGrp;
    }

    list internalGroupIdentifiersRanges {
      //optional support
      description "This attribute represents the ranges
        of Internal Group Identifiers that can be served
        by the TSCTSF instance. The absence of this IE
        indicates that the TSCTSF can serve any internal
        group managed by the PLMN (or SNPN) of the
        TSCTSF instance.";
      key idx;
      leaf idx { type uint32; }
      uses types5g3gpp:InternalGroupIdRangeGrp;
    }
  }

  grouping TSCTSFFunctionGrp {
    description "Represents the TSCTSFFunction IOC.";
    uses mf3gpp:ManagedFunctionGrp;

    list pLMNInfoList {
      description "It defines the PLMN(s) of a Network
        Function.";
      key "mcc mnc sd sst";
      min-elements 1;
      uses types5g3gpp:PLMNInfo;
    }

    leaf sBIFQDN {
      description "The FQDN of the registered NF instance
        in the service-based interface.";
      type inet:domain-name;
    }

    list managedNFProfile {
      key idx;
      leaf idx { type uint32; }
      min-elements 1;
      max-elements 1;
      description "Profile definition of a Managed NF
        (See TS 23.501).";
      uses mnfp3gpp:ManagedNFProfileGrp;
    }

    list commModelList {
      min-elements 1;
      key "groupId";
      description "Specifies a list of commModel. It can
        be used by NF and NF services to interact with
        each other in 5G Core network.";
      reference "3GPP TS 23.501";
      uses types5g3gpp:CommModel;
    }

    list tsctsfInfo {
      //optional support
      description "This attribute represents information
        of a TSCTSF NF Instance.";
      max-elements 1;
      key idx;
      leaf idx { type uint32; }
      uses TsctsfInfoGrp;
    }
  }

  augment "/me3gpp:ManagedElement" {
    list TSCTSFFunction {
      description "5G Core TSCTSF Function";
      reference "3GPP TS 28.541";
      key id;
      uses top3gpp:Top_Grp;
      container attributes {
        uses TSCTSFFunctionGrp;
      }
      uses mf3gpp:ManagedFunctionContainedClasses;
    }
  }
}