Commit 0c43382b authored by cintiarosa's avatar cintiarosa
Browse files

aligne stage 2 to yang adding _3gpp-5gc-nrm-nsacffunction

parent 0b20af99
Loading
Loading
Loading
Loading
Loading
+278 −0
Original line number Diff line number Diff line
module _3gpp-5gc-nrm-nsacffunction {
  yang-version 1.1;

  namespace urn:3gpp:sa5:_3gpp-5gc-nrm-nsacffunction;
  prefix nsacf3gpp;

  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-5g-common-yang-types { prefix types5g3gpp; }
  import _3gpp-common-top { prefix top3gpp; }
  import _3gpp-5gc-nrm-managed-nfprofile { prefix mnfp3gpp; }

  organization "3gpp SA5";
  contact
    "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464";
  description "This IOC represents the NSACF function in 5GC.
    The NSACF monitors and controls the number of registered
    UEs per network slice for the network slices that are
    subject to Network Slice Admission Control (NSAC).
    For more information about the NSACF, see TS 23.501
    and TS 23.502.
    Copyright 2026, 3GPP Organizational Partners (ARIB, ATIS,
    CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.";
  reference "3GPP TS 28.541";

  revision 2026-03-25 { reference "CR-"; }

  grouping NsacfCapabilityGrp {
    description "This data type represents the NSACF service
      capability. (See TS 29.510).";
    reference "3GPP TS 29.510";

    leaf supportUeSAC {
      type boolean;
      description "This attribute indicates the service capability of the
      NSACF to monitor and control the number of
      registered UEs per network slice for the network
      slice that is subject to NSAC.";
    }

    leaf supportPduSAC {
      type boolean;
      description "This attribute indicates the service capability of the
      NSACF to monitor and control the number of
      established PDU sessions per network slice for the
      network slice that is subject to NSAC.";
    }
  }

  grouping NsacfInfoGrp {
    description "This data type represents the information
      of an NSACF NF Instance. (see TS 29.510).";
    reference "3GPP TS 29.510";

    list nsacfCapability {
      description "It represents the NSACF service
        capability.";
      min-elements 1;
      max-elements 1;
      key idx;
      leaf idx { type uint32; }
      uses NsacfCapabilityGrp;
    }

    list taiList {
      description "List of TAIs.";
      key idx;
      leaf idx { type uint32; }
      uses types3gpp:TaiGrp;
    }

    list taiRangeList {
      description "Range of TAIs.";
      key idx;
      leaf idx { type uint32; }
      uses types5g3gpp:TaiRangeGrp;
    }
  }

  grouping SnssaiInfoGrp {
    description "This data type defines generic information
      for a S-NSSAI.";

    list pLMNInfo {
      description "It represents the PLMN and S-NSSAI
        information.";
      min-elements 1;
      max-elements 1;
      key "mcc mnc sd sst";
      uses types5g3gpp:PLMNInfo;
    }

    leaf administrativeState {
      type types3gpp:BasicAdministrativeState;
      mandatory true;
      description "It represents the administrative state
        of the Network Slice.";
    }
  }

  grouping NsacfInfoSnssaiGrp {
    description "This data type defines NSACF specific
      information per S-NSSAI.";

    list snssaiInfo {
      description "It defines generic information for a
        S-NSSAI. The information includes global unique
        identifier of a Network Slice and
        administrativeState of the Network Slice.";
      min-elements 1;
      max-elements 1;
      key idx;
      leaf idx { type uint32; }
      uses SnssaiInfoGrp;
    }

    leaf isSubjectToNsac {
      type boolean;
      default false;
      mandatory true;
      description "It defines if the Network Slice subjects
        to network slice admission control. The value is
        set to False if the maxNumberofUEs attribute in
        corresponding SliceProfile is absent.";
    }

    leaf maxNumberofUEs {
      type uint16 {
        range "0..65535";
      }
      default 0;
      mandatory true;
      description "It defines the maximum number of UEs
        which are allowed to be served by the Network
        Slice that is subject to network slice admission
        control.";
    }

    leaf eACMode {
      type enumeration {
        enum ACTIVE;
        enum INACTIVE;
      }
      default INACTIVE;
      description "It represents if early admission
        control (EAC) mode is activated.";
    }

    leaf activeEacThreshold {
      type uint8 {
        range "0..100";
      }
      default 0;
      description "It defines threshold in percentage
        value of the number of the UEs registered with
        the network slice to the maximum number of UEs
        allowed to register with the network slice. The
        eACMode is set to active when the number of the
        UEs registered with the network slice is above
        this threshold.";
    }

    leaf deactiveEacThreshold {
      type uint8 {
        range "0..100";
      }
      default 100;
      description "It defines threshold in percentage
        value of the number of the UEs registered with
        the network slice to the maximum number of UEs
        allowed to register with the network slice. The
        eACMode is set to inactive when the number of
        the UEs registered with the network slice is
        below this threshold. If this attribute is
        absent, activeEacThreshold is used to trigger
        deactivation of eACMode.";
    }

    leaf numberofUEs {
      type uint16 {
        range "0..65535";
      }
      config false;
      description "It represents the number of the UEs
        registered with the network slice. This attribute
        is updated by NSACF.";
    }

    leaf-list uEIdList {
      type string;
      config false;
      description "It represents the UEs registered with
        the network slice. This attribute is updated by
        NSACF.";
    }

    list taiList {
      description "Tracking Area Identity list.";
      key idx;
      leaf idx { type uint32; }
      uses types3gpp:TaiGrp;
    }

    leaf maxNumberofPDUSessions {
      type uint32;
      mandatory true;
      description "It defines the maximum number of
        concurrent PDU sessions supported by the network
        slice.";
    }
  }

  grouping NSACFFunctionGrp {
    description "Represents the NSACFFunction IOC.";
    uses mf3gpp:ManagedFunctionGrp;

    list pLMNInfoList {
      description "List of at most six entries of PLMN
        Identifiers, but at least one (the primary
        PLMN Id). The PLMN Identifier is composed of a
        Mobile Country Code (MCC) and a Mobile Network
        Code (MNC).";
      min-elements 1;
      key idx;
      leaf idx { type uint32; }
      uses types5g3gpp:PLMNInfo;
    }

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

    list managedNFProfile {
      description "This data type represents a Profile
        definition of a Managed NF.";
      key idx;
      leaf idx { type uint32; }
      min-elements 1;
      max-elements 1;
      uses mnfp3gpp:ManagedNFProfileGrp;
    }

    list nsacfInfoSnssaiList {
      description "It represents a list of NSACF
        information per SNSSAI.";
      key idx;
      leaf idx { type uint32; }
      uses NsacfInfoSnssaiGrp;
    }

    list nsacfInfo {
      description "This attribute represents the
        information of an NSACF NF Instance.
        (see TS 29.510).";
      max-elements 1;
      key idx;
      leaf idx { type uint32; }
      uses NsacfInfoGrp;
    }
  }

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