-- =============================================================================
--               GDMO definitions extracted from ITU-T Rec. M.3650 (1997)
-- =============================================================================

callPerformanceLog MANAGED OBJECT CLASS
  DERIVED FROM               "Recommendation X.721 : 1992":log;
  CHARACTERIZED BY        callPerformanceLog-package;
REGISTERED AS { m3650ManagedObjectClass 1 };


layer1PerformanceLogRecord MANAGED OBJECT CLASS
  DERIVED FROM               "Recommendation X.721 : 1992":eventLogRecord;
  CHARACTERIZED BY        layer1PerformanceLogRecord-package;
REGISTERED AS { m3650ManagedObjectClass 2 };


layer2PerformanceLogRecord MANAGED OBJECT CLASS
  DERIVED FROM               "Recommendation X.721 : 1992":eventLogRecord;
  CHARACTERIZED BY        layer2PerformanceLogRecord-package;
REGISTERED AS { m3650ManagedObjectClass 3 };


layer3PerformanceLogRecord MANAGED OBJECT CLASS
  DERIVED FROM               "Recommendation X.721 : 1992":eventLogRecord;
  CHARACTERIZED BY        layer3PerformanceLogRecord-package;
  CONDITIONAL PACKAGES
    layer3AccessDelay-package        PRESENT IF
      "The implementation supports monitoring of layer 3 access delay",
    layer3AccessDependability-package      PRESENT IF
      "The implementation supports monitoring of layer 3 access dependability",
    layer3InformationTransferTime-package      PRESENT IF
      "The implementation supports monitoring of layer 3 information transfer time",
    layer3InformationTransferDependability-package  PRESENT IF
      "The implementation supports monitoring of layer 3 information transfer
      dependability",
    layer3DisengagementDelay-package      PRESENT IF
      "The implementation supports monitoring of layer 3 disengagement delay",
    layer3DisengagementDependability-package    PRESENT IF
      "The implementation supports monitoring of layer 3 disengagement dependability";
REGISTERED AS { m3650ManagedObjectClass 4 };


monitoredAccess MANAGED OBJECT CLASS
  DERIVED FROM               "Recommendation X.721 : 1992":top;
  CHARACTERIZED BY        monitoredAccess-package;
  CONDITIONAL PACKAGES
    layer1PerformanceNotification-package      PRESENT IF
      "The implementation supports monitoring of layer 1",
    layer2PerformanceNotification-package      PRESENT IF
      "The implementation supports monitoring of layer 2",
    layer3PerformanceNotification-package      PRESENT IF
      "The implementation supports monitoring of layer 3";
REGISTERED AS { m3650ManagedObjectClass 5 };


callPerformanceLog-package PACKAGE
  BEHAVIOUR
    callPerformanceLogBehaviour BEHAVIOUR
      DEFINED AS
        "The callPerformanceLog contains all log records for performance
        management of ISDN calls.";;
REGISTERED AS { m3650Package 1 };


layer1PerformanceLogRecord-package PACKAGE
  BEHAVIOUR
    layer1PerformanceLogRecordBehaviour BEHAVIOUR
      DEFINED AS
        "This package characterizes the layer 1 performance log record object
        and contains information on the performance of layer 1 establishment.
        The layer1PerformanceLogRecord managed object is used to represent
        logged information from the layer1PerformanceRecorded notification
        received from the monitoredAccess managed object.";;
  ATTRIBUTES
    typeOfCall            GET,
    layer1AccessDelay          GET,
    layer1AccessDependability      GET,
    layer1InformationTransferDependability  GET;
REGISTERED AS { m3650Package 2 };


layer1PerformanceNotification-package PACKAGE
  BEHAVIOUR
    layer1PerformanceNotificationBehaviour BEHAVIOUR
      DEFINED AS
        "This package defines the layer1PerformanceRecorded notification.";;
  NOTIFICATIONS
    layer1PerformanceRecorded;
REGISTERED AS { m3650Package 3 };


layer2PerformanceLogRecord-package PACKAGE
  BEHAVIOUR
    layer2PerformanceLogRecordBehaviour BEHAVIOUR
      DEFINED AS
        "This package characterizes the layer 2 performance log record object
        and contains information on the performance of layer 2 establishment.
        The layer2PerformanceLogRecord managed object is used to represent
        logged information from the layer2PerformanceRecorded notification
        received from the monitoredAccess managed object.";;
  ATTRIBUTES
    typeOfCall          GET,
    layer2AccessDelay        GET,
    layer2AccessDependability    GET;
REGISTERED AS { m3650Package 4 };


layer2PerformanceNotification-package PACKAGE
  BEHAVIOUR
    layer2PerformanceNotificationBehaviour BEHAVIOUR
      DEFINED AS
        "This package defines the layer2PerformanceRecorded notification.";;
  NOTIFICATIONS
    layer2PerformanceRecorded;
REGISTERED AS { m3650Package 5 };


layer3AccessDelay-package PACKAGE
  BEHAVIOUR
    layer3AccessDelayPackageBehaviour BEHAVIOUR
      DEFINED AS
        "This package contains information on the layer 3 access delay.";;
  ATTRIBUTES
    layer3AccessDelay        GET;
REGISTERED AS { m3650Package 6 };


layer3AccessDependability-package PACKAGE
  BEHAVIOUR
    layer3AccessDependabilityPackageBehaviour BEHAVIOUR
      DEFINED AS
        "This package contains information on the layer 3 access dependability.";;
  ATTRIBUTES
    layer3AccessDependability    GET;
REGISTERED AS { m3650Package 7 };


layer3DisengagementDelay-package PACKAGE
  BEHAVIOUR
    layer3DisengagementDelayPackageBehaviour BEHAVIOUR
      DEFINED AS
        "This package contains information on the layer 3 disengagement delay.";;
  ATTRIBUTES
    layer3DisengagementDelay      GET;
REGISTERED AS { m3650Package 8 };


layer3DisengagementDependability-package PACKAGE
  BEHAVIOUR
    layer3DisengagementDependabilityPackageBehaviour BEHAVIOUR
      DEFINED AS
        "This package contains information on the layer 3 disengagement
        dependability.";;
  ATTRIBUTES
    layer3DisengagementDependability    GET;
REGISTERED AS { m3650Package 9 };


layer3InformationTransferDependability-package PACKAGE
  BEHAVIOUR
    layer3InformationTransferDependabilityPackageBehaviour BEHAVIOUR
      DEFINED AS
        "This package contains information on the layer 3 information transfer
        dependability.";;
  ATTRIBUTES
    layer3InformationTransferDependability  GET;
REGISTERED AS { m3650Package 10 };


layer3InformationTransferTime-package PACKAGE
  BEHAVIOUR
    layer3InformationTransferTimePackageBehaviour BEHAVIOUR
      DEFINED AS
        "This package characterizes the layer 3 performance log record object
        and contains information on the performance of layer 3 establishment.";;
  ATTRIBUTES
    layer3InformationTransferTime      GET;
REGISTERED AS { m3650Package 11 };


layer3PerformanceLogRecord-package PACKAGE
  BEHAVIOUR
    layer3PerformanceLogRecordBehaviour BEHAVIOUR
      DEFINED AS
        "This package characterizes the layer 3 performance log record object
        and contains information on ISDN layer 3 parameters and on the
        performance results of call. The layer3PerformanceLogRecord managed
        object is used to represent logged information from the
        layer3PerformanceRecorded notification received from the monitoredAccess
        managed object.";;
  ATTRIBUTES
    typeOfCall            GET,
    callingNumber          GET,
    calledNumber          GET,
    callingSubaddress          GET,
    calledSubaddress          GET,
    informationTransferCapability      GET,
    informationTransferMode      GET,
    informationTransferRate        GET;
REGISTERED AS { m3650Package 12 };


layer3PerformanceNotification-package PACKAGE
  BEHAVIOUR
    layer3PerformanceNotificationBehaviour BEHAVIOUR
      DEFINED AS
        "This package defines the layer3PerformanceRecorded notification.";;
  NOTIFICATIONS
    layer3PerformanceRecorded;
REGISTERED AS { m3650Package 13 };


monitoredAccess-package PACKAGE
  BEHAVIOUR
    monitoredAccessBehaviour BEHAVIOUR
      DEFINED AS
        "This package is used by the Monitored Access managed object class. It
        contains actions to start and stop call performance monitoring for a
        specific ISDN access.";;
  ATTRIBUTES
    monitoredAccessId  GET,
    typesMonitoring    INITIAL VALUE ASN1TypeModule.initialTypesMonitoring GET-REPLACE;
  ACTIONS
    startMonitoring,
    stopMonitoring;
REGISTERED AS { m3650Package 14 };


callPerformanceLog-monitoredAccess NAME BINDING
  SUBORDINATE OBJECT CLASS  callPerformanceLog AND SUBCLASSES;
  NAMED BY
    SUPERIOR OBJECT CLASS    monitoredAccess
      AND SUBCLASSES;
  WITH ATTRIBUTE      "Recommendation X.721 : 1992":logId;
  CREATE
    WITH-REFERENCE-OBJECT,
    WITH-AUTOMATIC-INSTANCE-NAMING;
  DELETE
    DELETES-CONTAINED-OBJECTS;
REGISTERED AS { m3650NameBinding 1 };


monitoredAccess-accessPortISDN NAME BINDING
  SUBORDINATE OBJECT CLASS  monitoredAccess AND SUBCLASSES;
  NAMED BY
    SUPERIOR OBJECT CLASS    "ITU-T Rec. Q.824.0 (1995)":accessPort
      AND SUBCLASSES;
  WITH ATTRIBUTE      monitoredAccessId;
  CREATE
    WITH-REFERENCE-OBJECT,
    WITH-AUTOMATIC-INSTANCE-NAMING;
  DELETE
    DELETES-CONTAINED-OBJECTS;
REGISTERED AS { m3650NameBinding 2 };


monitoredAccess-dChannel NAME BINDING
  SUBORDINATE OBJECT CLASS  monitoredAccess AND SUBCLASSES;
  NAMED BY
    SUPERIOR OBJECT CLASS    "Recommendation Q.824.1:1995":dChannel
      AND SUBCLASSES;
  WITH ATTRIBUTE      monitoredAccessId;
  CREATE
    WITH-REFERENCE-OBJECT,
    WITH-AUTOMATIC-INSTANCE-NAMING;
  DELETE
    DELETES-CONTAINED-OBJECTS;
REGISTERED AS { m3650NameBinding 3 };


calledNumber ATTRIBUTE
  WITH ATTRIBUTE SYNTAX   ASN1TypeModule.DirectoryNumber;
  MATCHES FOR        EQUALITY;
  BEHAVIOUR
    calledNumberBehaviour    BEHAVIOUR
      DEFINED AS
        "This attribute contains the called party number.";;
REGISTERED AS { m3650Attribute 1 };


calledSubaddress ATTRIBUTE
  WITH ATTRIBUTE SYNTAX   ASN1TypeModule.Subaddress;
  MATCHES FOR        EQUALITY;
  BEHAVIOUR
    calledSubaddressBehaviour  BEHAVIOUR
      DEFINED AS
        "This attribute contains the called party subaddress.";;
REGISTERED AS { m3650Attribute 2 };


callingNumber ATTRIBUTE
  WITH ATTRIBUTE SYNTAX   ASN1TypeModule.DirectoryNumber;
  MATCHES FOR        EQUALITY;
  BEHAVIOUR
    callingNumberBehaviour    BEHAVIOUR
      DEFINED AS
        "This attribute contains the calling party number.";;
REGISTERED AS { m3650Attribute 3 };


callingSubaddress ATTRIBUTE
  WITH ATTRIBUTE SYNTAX   ASN1TypeModule.Subaddress;
  MATCHES FOR        EQUALITY;
  BEHAVIOUR
    callingSubaddressBehaviour  BEHAVIOUR
      DEFINED AS
        "This attribute contains the calling party subaddress.";;
REGISTERED AS { m3650Attribute 4 };


informationTransferCapability ATTRIBUTE
  WITH ATTRIBUTE SYNTAX   ASN1TypeModule.InformationTransferCapability;
  MATCHES FOR        EQUALITY;
  BEHAVIOUR
    informationTransferCapabilityBehaviour  BEHAVIOUR
      DEFINED AS
        "This attribute contains the information transfer capability of the
        call, see Recommendation       Q.931.";;
REGISTERED AS { m3650Attribute 5 };


informationTransferMode ATTRIBUTE
  WITH ATTRIBUTE SYNTAX   ASN1TypeModule.InformationTransferMode;
  MATCHES FOR        EQUALITY;
  BEHAVIOUR
    informationTransferModeBehaviour  BEHAVIOUR
      DEFINED AS
        "This attribute contains the information transfer mode of the call, see
        Recommendation       Q.931.";;
REGISTERED AS { m3650Attribute 6 };


informationTransferRate ATTRIBUTE
  WITH ATTRIBUTE SYNTAX   ASN1TypeModule.InformationTransferRate;
  MATCHES FOR        EQUALITY;
  BEHAVIOUR
    informationTransferRateBehaviour  BEHAVIOUR
      DEFINED AS
        "This attribute contains the information transfer capability of the
        call, see Recommendation       Q.931.";;
REGISTERED AS { m3650Attribute 7 };


layer1AccessDelay ATTRIBUTE
  WITH ATTRIBUTE SYNTAX   ASN1TypeModule.Layer1AccessDelay;
  MATCHES FOR        EQUALITY;
  BEHAVIOUR
    layer1AccessDelayBehaviour  BEHAVIOUR
      DEFINED AS
        "This attribute contains the several important events for layer 1 access
        delay. The events that did not happen in an aborted call get a value -1
        for all integers in the TimeStamp type.";;
REGISTERED AS { m3650Attribute 8 };


layer1AccessDependability ATTRIBUTE
  WITH ATTRIBUTE SYNTAX   ASN1TypeModule.Layer1AccessDependability;
  MATCHES FOR        EQUALITY;
  BEHAVIOUR
    layer1AccessDependabilityBehaviour  BEHAVIOUR
      DEFINED AS
        "This attribute indicates successful or unsuccessful layer 1 establishment.";;
REGISTERED AS { m3650Attribute 9 };


layer1InformationTransferDependability ATTRIBUTE
  WITH ATTRIBUTE SYNTAX   ASN1TypeModule.Layer1InformationTransferDependability;
  MATCHES FOR        EQUALITY;
  BEHAVIOUR
    layer1InformationTransferDependabilityBehaviour  BEHAVIOUR
      DEFINED AS
        "This attribute indicates successful or unsuccessful layer 1 information
        transfer. In the latter case, it contains the cause of the unsuccessful
        information transfer. For a call that was not

        successfully established, this attribute gets the value not applicable.";;
REGISTERED AS { m3650Attribute 10 };


layer2AccessDelay ATTRIBUTE
  WITH ATTRIBUTE SYNTAX   ASN1TypeModule.Layer2AccessDelay;
  MATCHES FOR        EQUALITY;
  BEHAVIOUR
    layer2AccessDelayBehaviour  BEHAVIOUR
      DEFINED AS
        "This attribute contains the several important events for layer 2 access
        delay. The events that did not happen in an aborted call get a value 0
        for all digits in the GeneralizedTime type.";;
REGISTERED AS { m3650Attribute 11 };


layer2AccessDependability ATTRIBUTE
  WITH ATTRIBUTE SYNTAX   ASN1TypeModule.Layer2AccessDependability;
  MATCHES FOR        EQUALITY;
  BEHAVIOUR
    layer2AccessDependabilityBehaviour  BEHAVIOUR
      DEFINED AS
        "This attribute indicates successful or unsuccessful layer 2 establishment.";;
REGISTERED AS { m3650Attribute 12 };


layer3AccessDelay ATTRIBUTE
  WITH ATTRIBUTE SYNTAX   ASN1TypeModule.Layer3AccessDelay;
  MATCHES FOR        EQUALITY;
  BEHAVIOUR
    layer3AccessDelayBehaviour  BEHAVIOUR
      DEFINED AS
        "This attribute contains the several important events for layer 3 access
        delay. The events that did not happen in an aborted call get a value -1
        for all integers in the TimeStamp type.";;
REGISTERED AS { m3650Attribute 13 };


layer3AccessDependability ATTRIBUTE
  WITH ATTRIBUTE SYNTAX   ASN1TypeModule.Layer3AccessDependability;
  MATCHES FOR        EQUALITY;
  BEHAVIOUR
    layer3AccessDependabilityBehaviour      BEHAVIOUR
      DEFINED AS
        "This attribute indicates successful or unsuccessful layer 3 establishment.";;
REGISTERED AS { m3650Attribute 14 };


layer3DisengagementDelay ATTRIBUTE
  WITH ATTRIBUTE SYNTAX   ASN1TypeModule.Layer3DisengagementDelay;
  MATCHES FOR        EQUALITY;
  BEHAVIOUR
    layer3DisengagementDelayBehaviour  BEHAVIOUR
      DEFINED AS
        "This attribute contains the several important events for layer 3
        disengagement delay. The events that did not happen in an aborted call
        get a value -1 for all integers in the TimeStamp type.";;
REGISTERED AS { m3650Attribute 15 };


layer3DisengagementDependability ATTRIBUTE
  WITH ATTRIBUTE SYNTAX   ASN1TypeModule.Layer3DisengagementDependability;
  MATCHES FOR        EQUALITY;
  BEHAVIOUR
    layer3DisengagementDependabilityBehaviour  BEHAVIOUR
      DEFINED AS
        "This attribute indicates successful or unsuccessful layer 3
        disengagement. In the latter case, it       contains the cause of the
        unsuccessful disengagement. For a call that was not successfully
        established, this attribute gets the value not applicable.";;
REGISTERED AS { m3650Attribute 16 };


layer3InformationTransferDependability ATTRIBUTE
  WITH ATTRIBUTE SYNTAX   ASN1TypeModule.Layer3InformationTransferDependability;
  MATCHES FOR        EQUALITY;
  BEHAVIOUR
    layer3InformationTransferDependabilityBehaviour     BEHAVIOUR
      DEFINED AS
        "This attribute indicates successful or unsuccessful information
        transfer. In the latter case, it contains the cause of the unsuccessful
        information transfer. For a call that was not successfully established,
        this attribute gets the value not applicable.";;
REGISTERED AS { m3650Attribute 17 };


layer3InformationTransferTime ATTRIBUTE
  WITH ATTRIBUTE SYNTAX   ASN1TypeModule.Layer3InformationTransferTime;
  MATCHES FOR        EQUALITY;
  BEHAVIOUR
    layer3InformationTransferTimeBehaviour  BEHAVIOUR
      DEFINED AS
        "This attribute contains the relevant parameters of the information
        transfer time of a call.";;
REGISTERED AS { m3650Attribute 18 };


monitoredAccessId ATTRIBUTE
  WITH ATTRIBUTE SYNTAX   ASN1TypeModule.NameType;
  MATCHES FOR        EQUALITY, ORDERING;
  BEHAVIOUR
    monitoredAccessIdBehaviour  BEHAVIOUR
      DEFINED AS
        "This attribute represents the identification of the monitoredAccess
        managed object class.";;
REGISTERED AS { m3650Attribute 19 };


typeOfCall ATTRIBUTE
  WITH ATTRIBUTE SYNTAX   ASN1TypeModule.TypeOfCall;
  MATCHES FOR        EQUALITY;
  BEHAVIOUR
    typeOfCallBehaviour    BEHAVIOUR
      DEFINED AS
        "This attribute specifies whether the monitored call was an incoming or
        an outgoing call.";;
REGISTERED AS { m3650Attribute 20 };


typesMonitoring ATTRIBUTE
  WITH ATTRIBUTE SYNTAX   ASN1TypeModule.TypesMonitoring;
  MATCHES FOR        EQUALITY;
  BEHAVIOUR
    typesMonitoringBehaviour  BEHAVIOUR
      DEFINED AS
        "This attribute specifies whether layer 1, 2 and 3 outgoing calls and
        incoming calls have to be monitored or not.";;
REGISTERED AS { m3650Attribute 21 };


startMonitoring ACTION
  BEHAVIOUR
    startMonitoringBehaviour BEHAVIOUR
      DEFINED AS
        "This action initiates performance monitoring of the calls at the ISDN
        access at the specified time. When the action is performed while
        performance monitoring was already active, performance monitoring is
        continued. If the value of the TypesMonitoring attribute had been
        changed, the ISDN access or D-channel is now monitored according to the
        modified TypesMonitoring.";;
  MODE CONFIRMED;
  WITH INFORMATION SYNTAX ASN1TypeModule.MonitoringTimeStamp;
REGISTERED AS { m3650Action 1 };


stopMonitoring ACTION
  BEHAVIOUR
    stopMonitoringBehaviour BEHAVIOUR
      DEFINED AS
        "This action ends performance monitoring of the calls at the ISDN access
        at the specified       time.";;
  MODE CONFIRMED;
  WITH INFORMATION SYNTAX ASN1TypeModule.MonitoringTimeStamp;
REGISTERED AS { m3650Action 2 };


layer1PerformanceRecorded NOTIFICATION
  BEHAVIOUR
    layer1PerformanceRecordedBehaviour BEHAVIOUR
      DEFINED AS
        "This notification is emitted when layer 1 is terminated or not
        successfully established.";;
  WITH INFORMATION SYNTAX   ASN1TypeModule.Layer1PerformanceRecorded
    AND ATTRIBUTE IDS
      typeOfCall            typeOfCall,
      layer1AccessDelay          layer1AccessDelay,
      layer1AccessDependability      layer1AccessDependability,
      layer1InformationTransferDependability  layer1InformationTransferDependability;
REGISTERED AS { m3650Notification 1 };


layer2PerformanceRecorded NOTIFICATION
  BEHAVIOUR
    layer2PerformanceRecordedBehaviour BEHAVIOUR
      DEFINED AS
        "This notification is emitted when layer 2 is terminated or not
        successfully established.";;
  WITH INFORMATION SYNTAX   ASN1TypeModule.Layer2PerformanceRecorded
    AND ATTRIBUTE IDS
      typeOfCall            typeOfCall,
      layer2AccessDelay          layer2AccessDelay,
      layer2AccessDependability      layer2AccessDependability;
REGISTERED AS { m3650Notification 2 };


layer3PerformanceRecorded NOTIFICATION
  BEHAVIOUR  
    layer3PerformanceRecordedBehaviour BEHAVIOUR
      DEFINED AS
        "This notification is emitted when layer 3 is terminated or not
        successfully established.";;
  WITH INFORMATION SYNTAX   ASN1TypeModule.Layer3PerformanceRecorded
    AND ATTRIBUTE IDS
      typeOfCall            typeOfCall,
      callingNumber          callingNumber,
      calledNumber          calledNumber,
      callingSubaddress          callingSubaddress,
      calledSubaddress          calledSubaddress,
      informationTransferCapability      informationTransferCapability,
      informationTransferMode      informationTransferMode,
      informationTransferRate        informationTransferRate,
      layer3AccessDelay          layer3AccessDelay,
      layer3AccessDependability      layer3AccessDependability,
      layer3InformationTransferTime       layer3InformationTransferTime,
      layer3InformationTransferDependability  layer3InformationTransferDependability,
      layer3DisengagementDelay      layer3DisengagementDelay,
      layer3DisengagementDependability    layer3DisengagementDependability;
REGISTERED AS { m3650Notification 3 };

-- =============================================================================
--  Formatted by OpenT2 Version 5.5.6.34 on Fri Aug 20 11:20:49 2004