8 Rules for NRM extensions

32.6633GPPCommon Object Request Broker Architecture (CORBA) Solution Set (SS)Configuration Management (CM)Kernel CM Integration Reference Point (IRP)Release 9Telecommunication managementTS

This clause discusses how the models and IDL definitions provided in the present document can be extended for a particular implementation and still remain compliant with 3GPP SA5’s specifications.

8.1 Void

8.2 Extensions not allowed

The IDL specifications in the present document cannot be edited or altered. Any additional IDL specifications shall be specified in separate IDL files.

IDL interfaces (note: not MOCs) specified in the present document may not be subclassed or extended. New interfaces may be defined with vendor-specific methods.

Annex A (normative):
IDL specification (file name "KernelCmConstDefs.idl")

//File: KernelCmConstDefs.idl

#ifndef _KERNEL_CM_CONST_DEFS_IDL_

#define _KERNEL_CM_CONST_DEFS_IDL_

// This statement must appear after all include statements

#pragma prefix "3gppsa5.org"

module KernelCmConstDefs

{

/**

* Information about one attribute

* – name defines the name of the attribute

* – value defines the value of the attribute

*

*/

struct MOAttribute

{

string name;

any value;

};

/**

* A set of attribute names and values

*/

typedef sequence<MOAttribute> MOAttributeSet;

/**

* ScopeType defines the kind of scope to use in a CM synchronization

* request together with ScopePara.level, in the SCOPE field.

*

* ScopePara.level is always >= 0. If a level is bigger than the

* depth of the tree there will be no exceptions thrown.

* BASE_ONLY: level ignored, just return the base object.

* BASE_NTH_LEVEL: return all subordinate objects that are on "level"

* distance from the base object, where 0 is the base object.

* BASE_SUBTREE: return the base object and all of its subordinates

* down to and including the nth level.

* BASE_ALL: level ignored, return the base object and all of it’s

* subordinates.

*/

enum ScopeType

{

BASE_ONLY,

BASE_NTH_LEVEL,

BASE_SUBTREE,

BASE_ALL

};

struct ScopePara

{

ScopeType type;

unsigned long level;

};

/* The format of Distinguished Name (DN) is specified in 3GPP TS 32.300

"Name Conventions for Managed Objects".

*/

typedef string DN;

typedef sequence <long> NotifIdSet;

/*

This holds identifiers of notifications that are correlated.

*/

struct CorrelatedNotification

{

DN source; // Contains DN of MO that emitted the set of notifications

// DN string format in compliance with Name Convention for

// Managed Object.

// This may be a zero-length string. In this case, the MO

// is identified by the value of the MOI attribute

// of the Structured Event, i.e., the notification.

NotifIdSet notif_id_set; // Set of related notification ids

};

/*

Correlated Notification sets are sets of Correlated Notification

structures.

*/

typedef sequence <CorrelatedNotification> CorrelatedNotificationSet;

/*

This block identifies attributes which are included as part of the Kernel

CM IRP. These attribute values should not clash with those defined for the

attributes of notification header (see IDL of Notification IRP).

*/

interface AttributeNameValue

{

const string SOURCE_INDICATOR = "SOURCE";

const string ADDITIONAL_TEXT = "ADD_TEXT";

const string CORRELATED_NOTIFICATIONS = "CORREL_NOTIFS";

const string BASE_MO_CLASS = "BASE_MOC";

const string BASE_MO_INSTANCE = "BASE_MOI";

const string SCOPE = "SCOPE";

};

};

#endif // _KERNEL_CM_CONST_DEFS_IDL_

Annex B (normative):
IDL specification (file name "KernelCmIRPSystem.idl")

//File: KernelCmIRPSystem.idl

#ifndef _KERNEL_CM_IRP_SYSTEM_IDL_

#define _KERNEL_CM_IRP_SYSTEM_IDL_

#include <ManagedGenericIRPConstDefs.idl>

#include <ManagedGenericIRPSystem.idl>

// This statement must appear after all include statements

#pragma prefix "3gppsa5.org"

module KernelCmIRPSystem

{

exception GetKernelCMIRPNotificationProfileException { string reason; };

exception GetKernelCMIRPOperationsProfileException { string reason; };

exception GetNRMIRPVersion { string reason; };

exception GetKernelCMIRPVersionsException { string reason; };

/**

* The KernelCmIrpOperations interface.

* Supports a number of Resource Model versions.

*/

interface KernelCmIrpOperations

{

/*

Return the list of all supported Kernel CM IRP versions.

*/

ManagedGenericIRPConstDefs::VersionNumberSet get_kernel_cm_irp_versions (

)

raises (GetKernelCMIRPVersionsException);

/**

* Get the version(s) of the interface

*

* @raises GetNRMIRPVersion when the system for some reason

* can not return the supported versions.

* @returns all supported versions.

*/

void get_nrm_irp_version

(

out ManagedGenericIRPConstDefs::VersionNumberSet version_number_list,

out ManagedGenericIRPConstDefs::VersionNumberSet vse_version_number_list

)

raises (GetNRMIRPVersion);

/*

Return the list of all supported operations and their supported

parameters for a specific KernelCM IRP version.

*/

ManagedGenericIRPConstDefs::MethodList get_kernel_cm_irp_operations_profile (

in ManagedGenericIRPConstDefs::VersionNumber kernel_cm_irp_version

)

raises (GetKernelCMIRPOperationsProfileException,

ManagedGenericIRPSystem::OperationNotSupported,

ManagedGenericIRPSystem::InvalidParameter);

/*

Return the list of all supported notifications and their supported

parameters for a specific KernelCM IRP version.

*/

ManagedGenericIRPConstDefs::MethodList

get_kernel_cm_irp_notification_profile

(

in ManagedGenericIRPConstDefs::VersionNumber kernel_cm_irp_version

)

raises (GetKernelCMIRPNotificationProfileException,

ManagedGenericIRPSystem::OperationNotSupported,

ManagedGenericIRPSystem::InvalidParameter);

};

};

#endif // _KERNEL_CM_IRP_SYSTEM_IDL_

Annex C (normative):
IDL specification (file name "KernelCmNotifications.idl")

//File: KernelCmNotifications.idl

#ifndef _KERNEL_CM_NOTIFICATIONS_IDL_

#define _KERNEL_CM_NOTIFICATIONS_IDL_

#include <KernelCmConstDefs.idl>

#include <NotificationIRPNotifications.idl>

// This statement must appear after all include statements

#pragma prefix "3gppsa5.org"

module KernelCmNotifications

{

/**

* This interface defines fields that are common for all

* notification types.

* All constants in the scope of this interface will be

* visible in the interfaces that inherits this.

* For instance constant

* NotificationCommon::MANAGED_OBJECT_CLASS

* can be addressed by MODeletion::MANAGED_OBJECT_CLASS

*/

interface NotificationCommon: NotificationIRPNotifications::Notify

{

/**

* This constant defines the name of the

* source indicator property.

*/

const string SOURCE_INDICATOR =

KernelCmConstDefs::AttributeNameValue::SOURCE_INDICATOR;

/**

* Valid values for the SOURCE_INDICATOR

* property

*/

const string RESOURCE_OPERATION = "RESOURCE OPERATION";

const string MANAGEMENT_OPERATION = "MANAGEMENT OPERATION";

const string SON_OPERATION = "SON OPERATION";

const string UNKNOWN_OPERATION = "UNKNOWN";

/**

* This constant defines the name of the

* additional text property.

* The data type for the value of this property

* is a string.

*/

const string ADDITIONAL_TEXT =

KernelCmConstDefs::AttributeNameValue::ADDITIONAL_TEXT;

/**

* This constant defines the name of the

* correlated notifications property.

* The value part of the property is

* KernelCmConstDefs::CorrelatedNotificationSet

*/

const string CORRELATED_NOTIFICATIONS =

KernelCmConstDefs::AttributeNameValue::CORRELATED_NOTIFICATIONS;

};

/**

* Constant definitions for the MO deleted notification

*/

interface MODeletion : NotificationCommon

{

const string EVENT_TYPE = "x7";

/**

* This information mapped into the remainder_of_body

* in the StructuredEvent

*/

typedef KernelCmConstDefs::MOAttributeSet AttributeValues;

};

/**

* Constant definitions for the MO created notification

*/

interface MOCreation : NotificationCommon

{

const string EVENT_TYPE = "x6";

/**

* This information mapped into the remainder_of_body

* in the StructuredEvent

*/

typedef KernelCmConstDefs::MOAttributeSet InitialAttributeValues;

};

/**

* Constant definitions for the Attribute Value Change

* notification

*/

interface AttributeValueChange : NotificationCommon

{

const string EVENT_TYPE = "x8";

/**

* Information about modified attributes for

* one MO instance.

* – name defines the name of the attribute

* – new_value defines the new value of the attribute

* – old_value defines the previous value of the attribute

* The value is optional, which means that it may contain

* an empty any (null inserted in the any).

*

*/

struct ModifiedAttribute

{

string name;

any new_value;

any old_value;

};

/**

* This information mapped into the remainder_of_body

* in the StructuredEvent.

*/

typedef sequence<ModifiedAttribute> ModifiedAttributeSet;

};

/**

* Constant definitions for the CM Synchronization Recommended notification

*/

interface CMSynchronizationRecommended: NotificationIRPNotifications::Notify

{

const string EVENT_TYPE = "x9";

/**

* This constant defines the name of the

* additional text property.

* The data type for the value of this property

* is a string.

*/

const string ADDITIONAL_TEXT =

KernelCmConstDefs::AttributeNameValue::ADDITIONAL_TEXT;

/**

* This constant defines the name of the

* base MO class property.

* The value part of this property will carry

* the base MO class name as a string.

*/

const string BASE_MO_CLASS =

KernelCmConstDefs::AttributeNameValue::BASE_MO_CLASS;

/**

* This constant defines the name of the

* base MO instance property.

* The value part of this property will carry

* the base MO distinguished name as a string.

*/

const string BASE_MO_INSTANCE =

KernelCmConstDefs::AttributeNameValue::BASE_MO_INSTANCE;

/**

* This constant defines the name of the

* scope property.

* The data type for the value of this property

* is KernelCmConstDefs::ScopePara.

*/

const string SCOPE =

KernelCmConstDefs::AttributeNameValue::SCOPE;

};

/**

* Constant definitions for the State Change notification

*/

interface StateChange : NotificationCommon

{

const string EVENT_TYPE = "xA";

};

};

#endif // _KERNEL_CM_NOTIFICATIONS_IDL_

Annex D (informative):
Change history

Change history

Date

TSG #

TSG Doc.

CR

Rev

Subject/Comment

Cat

Old

New

Sep 2002

SA_17

SP-020466

Submitted to TSG SA #17 for Approval

1.0.0

5.0.0

Mar 2003

SA_19

SP-030143

0001

CORBA IDL Compiler Errors

F

5.0.0

5.1.0

Mar 2003

SA_19

SP-030145

0002

Add IDL definition of notifyCMSynchronizationRecommended notification for KernelCM IRP

B

5.1.0

6.0.0

Jun 2004

SA_24

SP-040261

0004

Add Missing CorrelatedNotificationSetType definition

A

6.0.0

6.1.0

Sep 2004

SA_25

SP-040568

0007

Add missing DN definition

A

6.1.0

6.2.0

Sep 2004

SA_25

SP-040568

0009

Add missing IDL for get_kernel_CM_IRP_versions

A

6.1.0

6.2.0

Sep 2004

SA_25

SP-040569

0010

Add State Management Support to Kernel CM IRP CORBA SS

B

6.1.0

6.2.0

Dec 2004

SA_26

SP-040812

0011

Correct the mapping of IS-defined non-filterable parameters to SS-defined non-filterable fields (instead of filterable fields) – Align with IS in 32.662

F

6.2.0

6.3.0

Mar 2005

SA_27

SP-050050

0012

IDL incompliant to the style guide

F

6.3.0

6.4.0

Jun 2005

SA_28

SP-050299

0013

Correct CORBA SS mapping of notification filterable/non-filterable IS parameters

F

6.4.0

6.5.0

Sep 2005

SA_29

SP-050461

0014

Align the CORBA SS IDL with TS 32.150 Style Guide

F

6.5.0

6.6.0

Mar 2006

SA_31

SP-060089

0015

Correct case sensitive parameter name

F

6.6.0

6.7.0

Jun 2007

SA_36

Automatic upgrade to Rel-7 (no CR) at freeze of Rel-7. Deleted reference to CMIP SS, discontinued from R7 onwards.

6.7.0

7.0.0

Dec 2008

SA_42

Upgrade to Release 8

7.0.0

8.0.0

Mar 2009

SA_43

SP-090207

0016

Indicating Self-X in sourceIndicator of create-/delete-/change-notifications

F

8.0.0

8.1.0

Dec 2009

Update to Rel-9 version

8.1.0

9.0.0