Commit d71af106 authored by Mirko Cano Soveri's avatar Mirko Cano Soveri
Browse files

Merge branch 'Integration_Rel17_SA5_146_YANG_Rebase_helper' into 'Rel-17'

YANG R17 Merge after SA5#146 SA#98e - based on helper

See merge request sa5/MnS!506
parents 19d76f3c da989854
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ module _3gpp-common-filemanagement {
  import _3gpp-common-subnetwork { prefix subnet3gpp; }
  import _3gpp-common-top { prefix top3gpp; }
  import _3gpp-common-yang-types { prefix yang3gpp; }
  import _3gpp-common-yang-extensions { prefix yext3gpp; }
  import _3gpp-common-managed-element { prefix me3gpp; }
   
  organization "3GPP SA5";
@@ -14,6 +15,7 @@ module _3gpp-common-filemanagement {
    Class (IOC) that is part of the Generic Network Resource Model (NRM).";
  reference "3GPP TS 28.623 Generic Network Resource Model (NRM)";

  revision 2022-10-31 { reference CR-0195;   }
  revision 2022-02-10 { reference "Initial revision, S5-221757"; }

  grouping FileDownloadProcessMonitor {
@@ -50,11 +52,13 @@ module _3gpp-common-filemanagement {
        allowedValues:  File URI (See RFC 8089)";
      mandatory true;
      type string;
      yext3gpp:notNotifyable;
    }
    
    leaf notificationRecipientAddress {
      description "Address of the notification recipient.";
      type string;
      yext3gpp:notNotifyable;
    }

    leaf cancelJob {
+34 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ module _3gpp-common-fm {
  import ietf-yang-types { prefix yang; }
  import _3gpp-common-top { prefix top3gpp; }
  import _3gpp-common-yang-types { prefix types3gpp; }
  import _3gpp-common-yang-extensions { prefix yext3gpp; }

  organization "3GPP SA5";
  contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464";
@@ -22,6 +23,7 @@ module _3gpp-common-fm {
      Integration Reference Point (IRP);
      Information Service (IS)";

  revision 2022-10-31 { reference CR-0195;   }
  revision 2021-08-08 { reference "CR-0132"; }
  revision 2021-06-02 { reference "CR-0130"; }
  revision 2020-06-03 { reference "CR-0091"; }
@@ -107,58 +109,68 @@ module _3gpp-common-fm {
        type string;
        mandatory true;
        description "Identifies the alarmRecord";
        yext3gpp:notNotifyable;
      }

      leaf objectInstance {
        type string;
        config false ;
        mandatory true;
        yext3gpp:notNotifyable;
      }

      leaf notificationId {
        type int32;
        config false ;
        mandatory true;
        yext3gpp:notNotifyable;
      }

      leaf alarmRaisedTime {
        type yang:date-and-time ;
        config false ;
        yext3gpp:notNotifyable;
      }

      leaf alarmChangedTime {
        type yang:date-and-time ;
        config false ;
        description "not applicable if related alarm has not changed";
        yext3gpp:notNotifyable;
      }

      leaf alarmClearedTime {
        type yang:date-and-time ;
        config false ;
        description "not applicable if related alarm was not cleared";
        yext3gpp:notNotifyable;
      }

      leaf alarmType {
        type eventType;
        config false ;
        description "General category for the alarm.";
        yext3gpp:notNotifyable;
      }

      leaf probableCause {
        type string;
        config false ;
        yext3gpp:notNotifyable;
      }

      leaf specificProblem {
        type string;
        config false ;
        reference "ITU-T Recommendation X.733 clause 8.1.2.2.";
        yext3gpp:notNotifyable;
      }

      leaf perceivedSeverity {
        type severity-level;
        description "This is Writable only if producer supports consumer
          to set perceivedSeverity to CLEARED";
        yext3gpp:notNotifyable;
      }

      leaf backedUpStatus {
@@ -166,11 +178,13 @@ module _3gpp-common-fm {
        config false ;
        description "Indicates if an object (the MonitoredEntity) has a back
          up. See definition in ITU-T Recommendation X.733 clause 8.1.2.4.";
        yext3gpp:notNotifyable;
      }

      leaf backUpObject {
        type string;
        config false ;
        yext3gpp:notNotifyable;
      }

      leaf trendIndication {
@@ -179,6 +193,7 @@ module _3gpp-common-fm {
        description "Indicates if some observed condition is getting better,
          worse, or not changing. ";
        reference "ITU-T Recommendation X.733 clause 8.1.2.6.";
        yext3gpp:notNotifyable;
      }

      grouping ThresholdPackGrp {
@@ -227,6 +242,7 @@ module _3gpp-common-fm {
      list thresholdInfo {
        config false ;
        uses ThresholdInfoGrp;
        yext3gpp:notNotifyable;
      }

      leaf stateChangeDefinition {
@@ -234,6 +250,7 @@ module _3gpp-common-fm {
        config false ;
        description "Indicates MO attribute value changes. See definition
          in ITU-T Recommendation X.733 clause 8.1.2.11.";
        yext3gpp:notNotifyable;
      }

      leaf monitoredAttributes {
@@ -242,6 +259,7 @@ module _3gpp-common-fm {
        description "Indicates MO attributes whose value changes are being
          monitored.";
        reference "ITU-T Recommendation X.733 clause 8.1.2.11.";
        yext3gpp:notNotifyable;
      }

      leaf proposedRepairActions {
@@ -249,15 +267,18 @@ module _3gpp-common-fm {
        config false ;
        description "Indicates proposed repair actions. See definition in
          ITU-T Recommendation X.733 clause 8.1.2.12.";
        yext3gpp:notNotifyable;
      }

      leaf additionalText {
        type string;
        config false ;
        yext3gpp:notNotifyable;
      }

      anydata additionalInformation {
        config false ;
        yext3gpp:notNotifyable;
      }

      leaf rootCauseIndicator {
@@ -269,6 +290,7 @@ module _3gpp-common-fm {
        description "It indicates that this AlarmInformation is the root cause
          of the events captured by the notifications whose identifiers are in
          the related CorrelatedNotification instances.";
        yext3gpp:notNotifyable;
      }

      leaf ackTime  {
@@ -277,12 +299,14 @@ module _3gpp-common-fm {
        description "It identifies the time when the alarm has been
          acknowledged or unacknowledged the last time, i.e. it registers the
          time when ackState changes.";
        yext3gpp:notNotifyable;
      }

      leaf ackUserId  {
        type string;
        description "It identifies the last user who has changed the
          Acknowledgement State.";
        yext3gpp:notNotifyable;
      }

      leaf ackSystemId  {
@@ -290,6 +314,7 @@ module _3gpp-common-fm {
        description "It identifies the system (Management System) that last
          changed the ackState of an alarm, i.e. acknowledged or unacknowledged
          the alarm.";
        yext3gpp:notNotifyable;
      }

      leaf ackState  {
@@ -302,16 +327,19 @@ module _3gpp-common-fm {
              been acknowledged.";
          }
        }
        yext3gpp:notNotifyable;
      }

      leaf clearUserId {
        type string;
        description "Carries the identity of the user who invokes the
          clearAlarms operation.";
        yext3gpp:notNotifyable;
      }

      leaf clearSystemId {
        type string;
        yext3gpp:notNotifyable;
      }

      leaf serviceUser {
@@ -320,6 +348,7 @@ module _3gpp-common-fm {
        description "It identifies the service-user whose request for service
          provided by the serviceProvider led to the generation of the
          security alarm.";
        yext3gpp:notNotifyable;
      }

      leaf serviceProvider {
@@ -328,11 +357,13 @@ module _3gpp-common-fm {
        description "It identifies the service-provider whose service is
          requested by the serviceUser and the service request provokes the
          generation of the security alarm.";
        yext3gpp:notNotifyable;
      }

      leaf securityAlarmDetector {
        type string;
        config false ;
        yext3gpp:notNotifyable;
      }
  }

@@ -361,18 +392,21 @@ module _3gpp-common-fm {
      config false;
      mandatory true;
      description "The number of alarm records in the AlarmList";
      yext3gpp:notNotifyable;
    }

    leaf lastModification {
      type yang:date-and-time ;
      config false;
      description "The last time when an alarm record was modified";
      yext3gpp:notNotifyable;
    }

    list alarmRecords {
      key alarmId;
      description "List of alarmRecords";
      uses AlarmRecordGrp;
      yext3gpp:notNotifyable;
    }
  }

+4 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ module _3gpp-common-managed-function {
  prefix mf3gpp;

  import _3gpp-common-yang-types { prefix types3gpp; }
  import _3gpp-common-yang-extensions { prefix yext3gpp; }
  import _3gpp-common-top { prefix top3gpp; }
  import _3gpp-common-measurements { prefix meas3gpp; }
  import _3gpp-common-trace { prefix trace3gpp; }
@@ -20,6 +21,7 @@ module _3gpp-common-managed-function {
    
    3GPP TS 28.620 
    Umbrella Information Model (UIM)";
  revision 2022-10-31 { reference CR-0195;   }
  revision 2022-01-07 { reference "CR-0146"; }
  revision 2021-01-25 { reference "CR-0122"; }  
  revision 2020-09-30 { reference "CR-bbbb"; }  
@@ -46,6 +48,7 @@ module _3gpp-common-managed-function {
    leaf name {
      type string;
      mandatory true;
      yext3gpp:notNotifyable;
    }
    
    leaf-list allowedNFTypes {
@@ -83,6 +86,7 @@ module _3gpp-common-managed-function {
      type string; 
      description "The type of the managed NF service instance
        The specifc values allowed are described in clause 7.2 of TS 23.501";
      yext3gpp:notNotifyable;
    }
 
    list sAP {
+265 −0
Original line number Diff line number Diff line
module _3gpp-common-managementdatacollection {
  yang-version 1.1;
  namespace "urn:3gpp:sa5:_3gpp-common-managementdatacollection";
  prefix "mgtdatcol3gpp";

  import _3gpp-common-top { prefix top3gpp; }
  import _3gpp-common-yang-types {prefix types3gpp; }
  //import ietf-inet-types { prefix inet; }
  import ietf-yang-types { prefix yang; }
  import _3gpp-common-subnetwork { prefix subnet3gpp; }

  organization "3GPP SA5";
  contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464";
 
  description "Handling management data collection";

  reference "3GPP TS 28.623
      Generic Network Resource Model (NRM)
      Integration Reference Point (IRP);
      Solution Set (SS) definitions

      3GPP TS 28.622
      Generic Network Resource Model (NRM)
      Integration Reference Point (IRP);
      Information Service (IS)";

  revision 2022-11-03 { reference "CR-0193"; }


  grouping Tai {
    list plmnId {
      description "PLMN Identity.";
      min-elements 1;
      max-elements 1;
      key "mcc mnc";
      uses types3gpp:PLMNId;
    }

    leaf tac { type types3gpp:Tac; }
  }


  grouping NodeFilterGrp {

    list areaOfInterest {
      key idx;
      leaf idx {
        type string;
      }
      uses Tai;          // (Maybe type: types3gpp:Tai,if we define Tai there.)
      // mandatory false
      min-elements 1;
      description "It specifies a location(s) from where the management data
        shall be collected. It is defined in terms of TAI(s).";
    }

    leaf networkDomain {
      type enumeration {
        enum CN;
        enum RAN;
      }
      // mandatory false
      description "It specifies the network domain of the target node. This
        will also result in collecting appropriate management data from the
        nodes belonging to the specified domain.";
    }

    leaf cpUpType {
      type enumeration {
        enum CP;
        enum UP;
      }
      // mandatory false
     description "It specifies the traffic type of the target node. This will
       also result in collecting appropriate management data from the nodes
       handling the specified traffic (e.g AMF for CP and UPF for UP).";
    }

    leaf sst {
      type uint8;  // TS 28.003 clause 28.4.
      //mandatory false;
      description "It specifies the slice service type (SST) of which the slice
        subnet should be targeted. Please refer to 3GPP TS 23.501: 'System
        Architecture for the 5G System'";
    }
  }

  typedef mgtDataCategoryType {
    type enumeration {
      enum COVERAGE;
      enum CAPACITY;
      enum ENERGY_EFFICIENCY;
      enum MOBILITY;
      enum ACCESSIBILITY;
    }
    description "";
  }

  grouping TimeWindowGrp {
    leaf startTime {
      type yang:date-and-time;
    }
    leaf endTime {
      type yang:date-and-time;
    }
  }


  grouping ManagementDataCollectionGrp {

    choice managementData {
      case mgtDataCategory {
        leaf-list category  {
          type mgtDataCategoryType;
          min-elements 1;
          max-elements 5; // The ENUM contains 5 possible values
          description "This attributes defines the type of management data that
            are requested.

            Allowed values for data category are COVERAGE, CAPACITY,
            ENERGY_EFFICIENCY, MOBILITY, ACCESSIBILITY. The data categories
            will map to certain measurement families defined in TS 28.552, see
            below. In addition to the below mappings, MnS producer may map the
            provided categories to any additional proprietary management data,
            as appropriate.

            - The COVERAGE category will map to measurement families of MR
            (measurements related to Measurement Report) and L1M (measurements
            related to Layer 1 Measurement).

            - The CAPACITY category will map to measurement family RRU
            (measurements related to Radio Resource Utilization).

            - The ENERGY_EFFICIENCY category will map to measurement family PEE
            (measurements related to Power, Energy and Environment).

            - The MOBILITY category will map to measurement family MM
            (measurements related to Mobility Management).

            - The ACCESSIBILITY category will map to measurement family CE
            (measurements related to Connection Establishment).";
        }
      }
      case mgtDataName {
        leaf-list name {
          type string;
          min-elements 1;
          description "The list may include metrics or set of metrics defined
            in TS 28.552, TS 28.554 and TS 32.422.

            The metrics are identified with their names/identifiers.
            For performance measurements defined in TS 28.552 the name is
            constructed as follows:
              - 'family.measurementName.subcounter' for measurement types with
                subcounters
              - 'family.measurementName' for measurement types without
                subcounters
              - 'family' for measurement families

            For KPIs defined in TS 28.554 the name is defined according to the
            KPI definitions template as the component designated with a).

            For trace metrics (including trace messages, MDT measurements
            (Immediate MDT, Logged MDT, Logged MBSFN MDT), RLF and RCEF
            reports) defined in TS 32.422, the name (metric identifier) is
            defined in clause 10 of TS 32.422.";
          }
      }
      mandatory true;
    }

    list targetNodeFilter {
      key idx;
      leaf idx {
        type string;
      }
      min-elements 1;
      description "Set of information to target the Object Instance to collect
        the measurements from.";
      uses NodeFilterGrp;
    }

    list collectionTimeWindow {
        key "startTime endTime";
        max-elements 1;
        description "Collection time window for which the management data
          should be reported.";
        uses TimeWindowGrp;
   }

    list reportingCtrl {
      key idx;
      leaf idx {
        type string;
      }
       min-elements 1;
       max-elements 1;
       uses types3gpp:ReportingCtrl;
       description "Selecting the reporting method and defining associated
         control parameters.";
    }

    leaf dataScope {
        type enumeration {
          enum SNSSAI;
          enum 5QI;
        }
        // mandatory false; [Implicit]
        description "It specifies whether the required data is reported per
          S-NSSAI or per 5QI.";
    }
  }

  augment /subnet3gpp:SubNetwork {

    list ManagementDataCollection {
      key id;
      uses top3gpp:Top_Grp ;
      container attributes {
          uses ManagementDataCollectionGrp;
      }
      description "This IOC represents a management data collection request
        job. The requested data could be of kind Trace, MDT (Minimization
        of Drive Test), RLF (Radio Link Failure) report, RCEF (RRC Connection
        Establishment Failure) report, PM (performance measurements), KPI
        (end-to-end key performance indicators) or a combination of these.

        The attribute 'managementData' defines the management data which shall
        be reported. This may either include a list of data categories or a
        list of management data identified with their name. For further details
        see TS 28.622 clause 4.3.50. The 'targetNodeFilter' attribute can be
        used to target object instance(s) producing the required management
        data. It is assumed that the consumer may not have detailed knowledge
        of the network and hence may not identify the exact object instance
        producing the required management data. In this case consumer can
        request management data, specified by 3GPP, produced by certain network
        function(s) based on a particular location, the domain (CN or RAN) of
        the network function, and the handled traffic (CP or UP) of the network
        function.

        To activate the production of the requested data, a MnS consumer has to
        create a 'ManagementDataCollection' object instance on the MnS producer.

        The MnS producer will derive multiple jobs ('PerfMetricJob',
        'TraceJob') from a single 'ManagementDataCollection' job for collecting
        the required management data. Once it receives the measurement from
        multiple sources, it consolidates the data into a set of management data
        for reporting.

        The attribute 'collectionTimeWindow' specifies the time window for which
        the management data should be reported.

        The attribute 'reportingCtrl' specifies the method and associated
        control parameters for reporting the produced management data to MnS
        consumers. Three methods are available: file-based reporting with
        selection of the file location by the MnS producer, file-based
        reporting with selection of the file location by the MnS consumer and
        stream-based reporting.

        The attribute 'dataScope' configures, whether the management data
        should be reported per S-NSSAI or per 5QI, if applicable.";
    }
  }

}
+7 −52
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ module _3gpp-common-measurements {

  import _3gpp-common-top { prefix top3gpp; }
  import _3gpp-common-yang-types { prefix types3gpp; }
  import _3gpp-common-yang-extensions { prefix yext3gpp; }

  organization "3GPP SA5";
  contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464";
@@ -53,6 +54,8 @@ module _3gpp-common-measurements {
      Integration Reference Point (IRP);
      Information Service (IS)";

  revision 2022-11-03 { reference "CR-0193"; }
  revision 2022-10-31 { reference CR-0195;   }
  revision 2021-07-22 { reference "CR-0137"; }
  revision 2020-11-06 { reference "CR-0118"; }
  revision 2020-09-04 { reference "CR-000107"; }
@@ -273,62 +276,12 @@ module _3gpp-common-measurements {
      contains the root object and all descendant objects.";
    }

    choice reportingCtrl {
      mandatory true;
      description "This choice defines the method for reporting collected
        performance metrics to MnS consumers as well as the parameters for
        configuring the reporting function. It is a choice between the control
        parameter required for the reporting methods, whose presence selects
        the reporting method as follows:
        - When only the fileReportingPeriod attribute is present, the MnS
        producer shall store files on the MnS producer at a location selected
        by the MnS producer and inform the MnS consumer about the availability
        of new files and the file location using the notifyFileReady
        notification.
        - When only the fileReportingPeriod and fileLocation attributes are
        present, the MnS producer shall store the files on the MnS consumer at
        the location specified by fileLocation. No notification is emitted by
        the MnS producer.
        - When only the streamTarget attribute is present, the MnS producer
        shall stream the data to the location specified by streamTarget.

        For the file-based reporting methods the fileReportingPeriod attribute
        specifies the time window during which collected measurements are stored
        into the same file before the file is closed and a new file is opened.";

      case file-based-reporting {
        leaf fileReportingPeriod {
          type uint32 {
            range 1..max;
          }
          units minutes;
    uses types3gpp:ReportingCtrl {
      refine "reportingCtrl/file-based-reporting/fileReportingPeriod" {
          must '(number(.)*"60") mod number(../granularityPeriod) = "0"' {
            error-message
              "The time-period must be a multiple of the granularityPeriod.";
          }
          mandatory true;
          description "For the file-based reporting method this is the time
            window during which collected measurements are stored into the same
            file before the file is closed and a new file is opened.
            The time-period must be a multiple of the granularityPeriod.

            Applicable when the file-based reporting method is supported";
        }

        leaf fileLocation {
          type string ;
          description "Applicable and must be present when the file-based
            reporting method is supported, and the files are stored on the MnS
            consumer.";
        }
      }
      case stream-based-reporting {
        leaf streamTarget {
          type string;
          mandatory true;
          description "Applicable when stream-based reporting method is
            supported.";
        }
      }
    }
  }
@@ -371,12 +324,14 @@ module _3gpp-common-measurements {

     leaf-list objectInstances {
      type types3gpp:DistinguishedName;
      yext3gpp:notNotifyable;
    }

    leaf-list rootObjectInstances {
      type types3gpp:DistinguishedName;
      description "Each object instance designates the root of a subtree that
      contains the root object and all descendant objects.";
      yext3gpp:notNotifyable;
    }
  }

Loading