A.2 IDL specification (file name "PMIRPSystem.idl")

32.4133GPPPerformance Management (PM) Integration Reference Point (IRP): Common Object Request Broker Architecture (CORBA) Solution Set (SS)Telecommunication managementTS

//File: PMIRPSystem.idl

#ifndef _PM_IRP_SYSTEM_IDL_

#define _PM_IRP_SYSTEM_IDL_

#include <ManagedGenericIRPSystem.idl>

#include <ManagedGenericIRPConstDefs.idl>

#include <PMIRPConstDefs.idl>

// This statement must appear after all include statements

#pragma prefix "3gppsa5.org"

/* ## Module: PMIRPSystem

This module contains the specification of all operations of PM IRP Agent.

================================================================

*/

module PMIRPSystem

{

/**

* The reason specifies whether EM or NE has high workload. The value shall be one

* of following: emCpuBusy; emHDShortage, emLowMemory, {neCpuBusy, neObjectInstList},

* {neHDShortage neObjectInstList}, {neLowMemory, neObjectInstList}, maxJobReached,

* otherReason.

* In the case the reason is a tuple, the first element is the string such as

* "NE_CPU_BUSY" followed by a comma, then followed by a sequence of DN where

* each DN is separated by its adjacent DN, if any, by a colon. The DN is formatted

* as described in 32.300.

*/

exception HighWorkLoad { string reason; };

interface HighWorkLoadExceptionReason

{

const string EM_CPU_BUSY = "EM_CPU_BUSY";

const string EM_HD_SHORTAGE = "EM_HD_SHORTAGE";

const string EM_LOW_MEMORY = "EM_LOW_MEMORY";

const string NE_CPU_BUSY = "NE_CPU_BUSY";

const string NE_HD_SHORTAGE = "NE_HD_SHORTAGE";

const string NE_LOW_MEMORY = "NE_LOW_MEMORY";

const string MAX_JOB_REACHED = "MAX_JOB_REACHED";

const string OTHER_REASON = "OTHER_REASON";

};

exception UnknownJob { string reason; };

exception JobCannotBeStopped { string reason; };

exception JobAlreadySuspended { string reason; };

exception JobIsNotSuspended { string reason; };

exception UnknownThresholdMonitor { string reason; };

exception ThresholdMonitorAlreadySuspended { string reason; };

exception ThresholdMonitorIsNotSuspended { string reason; };

/**

* System fails to complete the operation. System can provide reason

* to qualify the exception. The semantics carried in reason

* is outside the scope of this IRP.

*/

exception GetPMIRPVersions { string reason; };

exception GetPMIRPOperationsProfile { string reason; };

exception GetPMIRPNotificationProfile { string reason; };

exception CreateMeasurementJob { string reason; };

exception StopMeasurementJob { string reason; };

exception SuspendMeasurementJob { string reason; };

exception ResumeMeasurementJob { string reason; };

exception ListMeasurementJobs { string reason; };

exception CreateThresholdMonitor { string reason; };

exception DeleteThresholdMonitor { string reason; };

exception ListThresholdMonitors { string reason; };

exception SuspendThresholdMonitor { string reason; };

exception ResumeThresholdMonitor { string reason; };

interface PMIRP

{

readonly attribute string iRPId;

/**

* Return the list of all supported PM IRP versions.

*/

ManagedGenericIRPConstDefs::VersionNumberSet get_pm_irp_versions (

)

raises (GetPMIRPVersions);

/**

* Return the list of all supported operations and their supported

* parameters for a specific PM IRP version.

*/

ManagedGenericIRPConstDefs::MethodList get_pm_irp_operations_profile (

in ManagedGenericIRPConstDefs::VersionNumber pm_irp_version

)

raises (GetPMIRPOperationsProfile,

ManagedGenericIRPSystem::OperationNotSupported,

ManagedGenericIRPSystem::InvalidParameter);

/**

* Return the list of all supported notifications and their supported

* parameters for a specific PM IRP version.

*/

ManagedGenericIRPConstDefs::MethodList get_pm_irp_notification_profile

(

in ManagedGenericIRPConstDefs::VersionNumber pm_irp_version

)

raises (GetPMIRPNotificationProfile,

ManagedGenericIRPSystem::OperationNotSupported,

ManagedGenericIRPSystem::InvalidParameter);

/**

* Request to create a MeasurementJob through Itf-N.

*/

ManagedGenericIRPConstDefs::Signal create_measurement_job (

in PMIRPConstDefs::MOClassName mo_class,

in PMIRPConstDefs::MOInstanceList mo_instance_list,

in PMIRPConstDefs::MeasurementCategoryList measurement_category_list,

in PMIRPConstDefs::GranularityPeriod granularity_period,

in PMIRPConstDefs::ReportingPeriod reporting_period,

in PMIRPConstDefs::IRPTimeOpt start_time,

in PMIRPConstDefs::IRPTimeOpt stop_time,

in PMIRPConstDefs::ScheduleOpt schedule,

in PMIRPConstDefs::JobPriorityOpt priority,

out PMIRPConstDefs::JobId job_id,

out PMIRPConstDefs::JUnsupportedList unsupported_list

)

raises (CreateMeasurementJob,

ManagedGenericIRPSystem::InvalidParameter,

ManagedGenericIRPSystem::ParameterNotSupported,

HighWorkLoad);

/**

* Request to stop a MeasurementJob through Itf-N, after which,

* the MeasurementJob will still be visible via Itf-N. Whether

* the MeasurementJob is thoroughly removed immediately from

* the managed system is vendor specific.

*/

PMIRPConstDefs::Result stop_measurement_job (

in PMIRPConstDefs::JobId job_id)

raises (StopMeasurementJob,

UnknownJob,

JobCannotBeStopped);

/**

* Request to suspend a MeasurementJob

*/

PMIRPConstDefs::Result suspend_measurement_job (

in PMIRPConstDefs::JobId job_id)

raises (SuspendMeasurementJob,

UnknownJob,

JobAlreadySuspended,

ManagedGenericIRPSystem::OperationNotSupported);

/**

* Request to resume a MeasurementJob

*/

PMIRPConstDefs::Result resume_measurement_job (

in PMIRPConstDefs::JobId job_id)

raises (ResumeMeasurementJob,

UnknownJob,

JobIsNotSuspended,

HighWorkLoad,

ManagedGenericIRPSystem::OperationNotSupported);

/**

* Request to list the information of all or of specified

* MeasurementJobs

*/

PMIRPConstDefs::Result list_measurement_jobs (

in PMIRPConstDefs::JobIdList job_list_id,

out PMIRPConstDefs::JobInfoList job_info_list)

raises (ListMeasurementJobs,

ManagedGenericIRPSystem::InvalidParameter);

/**

* Request to create a ThresholdMonitor to define the threshold

* for some specific measurementTypes or subCounters

*/

ManagedGenericIRPConstDefs::Signal create_threshold_monitor (

in PMIRPConstDefs::MOClassName mo_class,

in PMIRPConstDefs::MOInstanceList mo_instance_list,

in PMIRPConstDefs::ThresholdInfoList threshold_info_list,

in PMIRPConstDefs::MonitorGranularityPeriod monitor_granularity_period,

out PMIRPConstDefs::MonitorId monitor_id,

out PMIRPConstDefs::MUnsupportedList unsupported_list)

raises (CreateThresholdMonitor,

ManagedGenericIRPSystem::InvalidParameter,

ManagedGenericIRPSystem::OperationNotSupported);

/**

* Request to delete a specified ThresholdMonitor

*/

PMIRPConstDefs::Result delete_threshold_monitor (

in PMIRPConstDefs::MonitorId monitor_id)

raises (DeleteThresholdMonitor,

UnknownThresholdMonitor,

ManagedGenericIRPSystem::OperationNotSupported);

/**

* Request to list detailed information about all or

* specified ThresholdMonitors

*/

PMIRPConstDefs::Result list_threshold_monitors (

in PMIRPConstDefs::MonitorIdList monitor_id_list,

out PMIRPConstDefs::MonitorInfoList monitor_info_list)

raises (ListThresholdMonitors,

ManagedGenericIRPSystem::InvalidParameter,

ManagedGenericIRPSystem::OperationNotSupported);

/**

* Request to suspend a ThresholdMonitor

*/

PMIRPConstDefs::Result suspend_threshold_monitor (

in PMIRPConstDefs::MonitorId monitor_id)

raises (SuspendThresholdMonitor,

UnknownThresholdMonitor,

ThresholdMonitorAlreadySuspended,

ManagedGenericIRPSystem::OperationNotSupported);

/**

* Request to resume a ThresholdMonitor

*/

PMIRPConstDefs::Result resume_threshold_monitor (

in PMIRPConstDefs::MonitorId monitor_id)

raises (ResumeThresholdMonitor,

UnknownThresholdMonitor,

ThresholdMonitorIsNotSuspended,

ManagedGenericIRPSystem::OperationNotSupported);

};

};

#endif // _PM_IRP_SYSTEM_IDL_