-- =============================================================================
--               GDMO definitions extracted from ITU-T Rec. G.774.3 (2001)
-- =============================================================================

apsReportRecord MANAGED OBJECT CLASS
  DERIVED FROM "Recommendation X.721 | ISO/IEC 10165-2": eventLogRecord;
  CHARACTERIZED BY
    apsReportRecordPkg PACKAGE
      BEHAVIOUR apsReportRecordBeh;
      ATTRIBUTES
        reportedProtectionUnit GET;;;
REGISTERED AS { g774-03MObjectClass 1 };


apsReportRecordBeh BEHAVIOUR
  DEFINED AS
    "An instance of the apsReportRecord object is created when a
    protectionSwitchReportingNotification is generated. The
    protectionStatusParameter must be included in the management extension. ";


protectedTTPBidirectional MANAGED OBJECT CLASS
  DERIVED FROM    "Recommendation M.3100": trailTerminationPointBidirectional,
    protectedTTPSource,
    protectedTTPSink;
  CHARACTERIZED BY
    protectedTTPBidirectionalPkg PACKAGE
      BEHAVIOUR protectedTTPBidirectionalBeh;;;
REGISTERED AS { g774-03MObjectClass 2 };


protectedTTPBidirectionalBeh BEHAVIOUR
  DEFINED AS
    "The protectedTTPBidirectional object class is a class of objects that
    represents the bidirectional protected resources in a protection system. If
    the SDH bidirectional multiplex section protection switching function is
    present, this object class shall be supported. ";


protectedTTPSink MANAGED OBJECT CLASS
  DERIVED FROM    "Recommendation M.3100": trailTerminationPointSink;
  CHARACTERIZED BY
    "Recommendation M.3100": crossConnectionPointerPackage,
    protectedTTPSinkPkg PACKAGE
      BEHAVIOUR protectedTTPSinkBeh;
      ATTRIBUTES
        protectedTTPId          GET;;;
REGISTERED AS { g774-03MObjectClass 3 };


protectedTTPSinkBeh BEHAVIOUR
  DEFINED AS
    "The protectedTTPSink object class is a class of objects that represents the
    protected resources in a protection system. An instance of this object class
    is pointed to by the reliableResourcePointer attribute in an instance of the
    protectionUnit object class. The crossConnectionObjectPointer attribute in
    an instance of this object class points to its associated protectionUnit
    instance which has the reliableResourcePointer attribute pointing back to
    the instance of this object class. The upstreamConnectivityPointer in an
    instance of this object class points to either null or its associated
    unprotected CTP object instance; it indicates the actual signal flow, and
    when a signal is switched to another unit, the value of the
    upstreamConnectivityPointer is updated. If the
    attributeValueChangeNotification package is present, then a change in the
    value of the supportedByObjectList shall cause an attributeValueChange
    notification. ";


protectedTTPSource MANAGED OBJECT CLASS
  DERIVED FROM "Recommendation M.3100": trailTerminationPointSource;
  CHARACTERIZED BY
    "Recommendation M.3100": crossConnectionPointerPackage,
    protectedTTPSourcePkg PACKAGE
      BEHAVIOUR protectedTTPSourceBeh;
      ATTRIBUTES
        protectedTTPId GET;;;
REGISTERED AS { g774-03MObjectClass 4 };


protectedTTPSourceBeh BEHAVIOUR
  DEFINED AS
    "The protectedTTPSource object class is a class of objects that represents
    the protected resources in a protection system. An instance of this object
    class is pointed to by the reliableResourcePointer attribute in an instance
    of the protectionUnit object class. The crossConnectionObjectPointer
    attribute in an instance of this object class points to its associated
    protectionUnit object instance which has the reliableResourcePointer
    attribute pointing back to the instance of this object class. The
    downstreamConnectivityPointer in an instance of this object class points to
    either null or its associated unprotected CTP object instance(s); it
    indicates the actual signal flow, and when a signal is switched to another
    unit, the pointer is updated. If the attributeValueChangeNotification
    package is present, then a change in the value of the supportedByObjectList
    shall cause an attributeValueChange notification. ";


protectionGroupR1 MANAGED OBJECT CLASS
  DERIVED FROM "Recommendation X.721 | ISO/IEC 10165-2":top;
  CHARACTERIZED BY
    protectionGroupPkgR1 PACKAGE
      BEHAVIOUR protectionGroupR1Beh;
      ATTRIBUTES
        "Recommendation X.721 | ISO/IEC 10165-2":operationalState GET,
        "Recommendation X.721 | ISO/IEC 10165-2":availabilityStatus GET,
        protectionGroupId GET,
        protectionGroupType GET-REPLACE,
        revertive  REPLACE-WITH-DEFAULT
          DEFAULT VALUE SDHProtASN1.booleanTrueDefault  GET-REPLACE,
        "Recommendation M.3100":supportedByObjectList GET,
        waitToRestoreTime GET-REPLACE;
      ACTIONS
        invokeProtection,
        releaseProtection;
      NOTIFICATIONS
        protectionSwitchReportingR1,
        "Recommendation X.721 | ISO/IEC 10165-2":stateChange;;;
  CONDITIONAL PACKAGES
    "Recommendation M.3100":createDeleteNotificationsPackage
    PRESENT IF "an instance supports it",
    "Recommendation M.3100":attributeValueChangeNotificationPackage
    PRESENT IF "an instance supports it";
REGISTERED AS { g774-03MObjectClass 12 };


protectionGroupR1Beh BEHAVIOUR
  DEFINED AS
    "A protectionGroup object instance contains zero or more protectionUnit
    objects for defining a protection switching relationship where one or more
    standby (i.e. backup) entities provide protection for one or more working
    (i.e. regular or preferred) entities.

    The invokeProtection action can be used to request a lockout, a forced switch,
    or a manual switch (i.e. normal switch) on one or more protectionUnit
    instances contained in the protectionGroup object. The releaseProtection
    action can be used to release a lockout, a forced switch, or a manual switch
    (i.e. normal switch) on one or more protectionUnit instances contained in
    the protectionGroup object.

    The protectionSwitchReporting notification is emitted from the
    protectionGroup object to report any protection switch events, such as
    protection switching (forced switch, manual switch, or automatic switch),
    protection release (release of forced switch, manual switch, or automatic
    switch), lockout or release of lockout.

    If the attributeValueChangeNotification package is present, then changes to
    the protectionGroupType attribute, the revertive attribute or the
    waitToRestoreTime attribute shall cause an attributeValueChange notification
    to be emitted. The protectionGroupType attribute shall have the value
    'colon' when more than one protectionUnit is protected. Changing the value
    of this attribute between 'plus' and 'colon' is allowed when only one
    protected protectionUnit and one protecting protectionUnit are contained by
    the protectionGroup. The change from 'plus' to 'colon' is only allowed if
    the underlying resources support M:N protection.";


protectionUnit MANAGED OBJECT CLASS
  DERIVED FROM "Recommendation X.721 | ISO/IEC 10165-2": top;
  CHARACTERIZED BY
    protectionUnitPkg PACKAGE
      BEHAVIOUR protectionUnitBeh;
      ATTRIBUTES
        protectionUnitId GET,
        protecting  GET,
        reliableResourcePointer  GET,
        unreliableResourcePointer GET;;;
  CONDITIONAL PACKAGES
    priorityPkg PRESENT IF "an instance supports it",
    "Recommendation M.3100": attributeValueChangeNotificationPackage
    PRESENT IF "an instance supports it";
REGISTERED AS { g774-03MObjectClass 6 };


protectionUnitBeh BEHAVIOUR
  DEFINED AS
    "A protectionUnit object represents a protected (i.e. working, regular, or
    preferred) unit or a protecting (i.e. backup or standby) unit. For a
    protecting protectionUnit, the attribute protecting shall have the value
    TRUE. For a protected protectionUnit, the attribute protecting shall have
    the value FALSE. The value of the unreliableResourcePointer attribute points
    to an unreliable resource (e.g. equipment hardware or termination point)
    that is associated with the protectionUnit instance. The value of the
    reliableResourcePointer attribute points to a reliable resource (e.g.
    termination point) that is associated with the protectionUnit instance.

    If the attributeValueChangeNotificationPackage is present, then changes to
    the unreliableResourcePointer attribute, the priority attribute or the
    reliableResourcePointer attribute shall cause an attributeValueChange
    notification to be emitted. ";


sdhMSProtectionGroupR1 MANAGED OBJECT CLASS
  DERIVED FROM  protectionGroupR1;
  CHARACTERIZED BY
    sdhMSProtectionGroupR1Pkg PACKAGE
      BEHAVIOUR sdhMSProtectionGroupR1Beh;
      ATTRIBUTES
        protectionSwitchMode  GET-REPLACE;
      NOTIFICATIONS
        protectionSwitchReportingR1
          protectionStatusParameter;;;
  CONDITIONAL PACKAGES
    protectionMismatchStatusPkg
    PRESENT IF "the APS protocol is used",
    protectionSwitchExercisePkg
    PRESENT IF "an instance supports it";
REGISTERED AS { g774-03MObjectClass 13 };


sdhMSProtectionGroupR1Beh BEHAVIOUR
  DEFINED AS
    "This object class is used specifically for representing a SDH
    multiplex-section protection group in a protection system. Only one
    protecting protection unit is allowed. The protectionMismatchStatus
    indicates a mismatch between the provisioned protectionGroupType of this
    protection group and the provisioned protectionGroupType of the far-end. It
    also indicates mismatch of uni-directional versus bi-directional switch
    provisioning between the two protection groups.";


sdhMSProtectionUnit MANAGED OBJECT CLASS
  DERIVED FROM    protectionUnit;
  CHARACTERIZED BY
    sdhMSProtectionUnitPkg PACKAGE
      BEHAVIOUR sdhMSProtectionUnitBeh;
      ATTRIBUTES
        channelNumber GET,
        protectionStatus  GET,
        reliableResourcePointer PERMITTED VALUES SDHProtASN1.SDHMSResourcePointer,
        unreliableResourcePointer  PERMITTED VALUES SDHProtASN1.SDHMSResourcePointer;;;
  CONDITIONAL PACKAGES
    sdhPriorityPkg PRESENT IF "this is a 1:n system",
    lastAttemptResultPkg PRESENT IF "the APS protocol is used",
    extraTrafficControlPkg PRESENT IF "extra traffic may be suspended and resumed";
REGISTERED AS { g774-03MObjectClass 8 };


sdhMSProtectionUnitBeh BEHAVIOUR
  DEFINED AS
    "This object class is specific to SDH multiplex section protection systems.
    Instances of this object class are used to represent a relationship between
    a protectedTTP and an unprotectedCTP. If this is a protecting protection unit,
    the reliableResourcePointer points to the protectedTTP for extra traffic or
    NULL if there is no extra traffic. The channelNumber attribute value
    represents the number of the channel used by the SDH MSP protocol, if any.

    If the sdhMSProtectionUnit is protecting, then the channelNumber attribute
    shall have the value 0. If the sdhMSProtectionUnit is protected, the
    channelNumber attribute shall have a value between 1 and 14. For Lockout of
    protecting unit, protected channels 1 to 14 are incapable of being carried
    on protection. ";


unprotectedCTPBidirectional MANAGED OBJECT CLASS
  DERIVED FROM "Recommendation M.3100": connectionTerminationPointBidirectional,
    unprotectedCTPSource,
    unprotectedCTPSink;
  CHARACTERIZED BY
    unprotectedCTPBidirectionalPkg PACKAGE
      BEHAVIOUR unprotectedCTPBidirectionalBeh;;;
REGISTERED AS { g774-03MObjectClass 9 };


unprotectedCTPBidirectionalBeh BEHAVIOUR
  DEFINED AS
    "The unprotectedCTPBidirectional object class is a class of objects that
    represents the unprotected resources in a protection system. ";


unprotectedCTPSink MANAGED OBJECT CLASS
  DERIVED FROM "Recommendation M.3100": connectionTerminationPointSink;
  CHARACTERIZED BY
    "Recommendation M.3100": crossConnectionPointerPackage,
    unprotectedCTPSinkPkg PACKAGE
      BEHAVIOUR unprotectedCTPSinkBeh;
      ATTRIBUTES
        unprotectedCTPId  GET;;;
REGISTERED AS { g774-03MObjectClass 10 };


unprotectedCTPSinkBeh BEHAVIOUR
  DEFINED AS
    "The unprotectedCTPSink object class is a class of objects that represents
    the unprotected resources in a protection system. An instance of this object
    class is pointed to by the unreliableResourcePointer attribute in an
    instance of the protectionUnit object class (or its subclasses). The
    crossConnectionObjectPointer attribute in an instance of this object class
    points to its associated protectionUnit object instance which has the
    unreliableResourcePointer attribute pointing back to the instance of this
    object class. ";


unprotectedCTPSource MANAGED OBJECT CLASS
  DERIVED FROM "Recommendation M.3100": connectionTerminationPointSource;
  CHARACTERIZED BY
    "Recommendation M.3100": crossConnectionPointerPackage,
    unprotectedCTPSourcePkg PACKAGE
      BEHAVIOUR unprotectedCTPSourceBeh;
      ATTRIBUTES
        unprotectedCTPId    GET;;;
REGISTERED AS { g774-03MObjectClass 11 };


unprotectedCTPSourceBeh BEHAVIOUR
  DEFINED AS
    "The unprotectedCTPSource object class is a class of objects that represents
    the unprotected resources in a protection system. An instance of this object
    class is pointed to by the unreliableResourcePointer attribute in an
    instance of the protectionUnit object class (or its subclasses). The
    crossConnectionObjectPointer attribute in an instance of this object class
    points to its associated protectionUnit object instance which has the
    reliableResourcePointer attribute pointing back to the instance of this
    object class. ";


extraTrafficControlPkg PACKAGE
  BEHAVIOUR extraTrafficControlPkgBeh;
  ATTRIBUTES
    "Recommendation X.721 | ISO/IEC 10165-2": administrativeState GET-REPLACE;
REGISTERED AS { g774-03Package 1 };


extraTrafficControlPkgBeh BEHAVIOUR
  DEFINED AS
    "Attribute administrativeState is used to suspend or resume extra traffic on
    the protecting channel. When in the Locked state, no extra traffic is
    carried on the protecting channel, however, this does not prevent protected
    channel traffic from being switched to the protecting channel. When
    unlocked, extra traffic is resumed on the protecting channel as long as
    there is no request from a protected channel of higher priority than on the
    protecting channel. ";


lastAttemptResultPkg PACKAGE
  ATTRIBUTES
    lastAttemptResult    GET;
REGISTERED AS { g774-03Package 2 };


protectionSwitchExercisePkg PACKAGE
  ACTIONS
    invokeExercise;
REGISTERED AS { g774-03Package 3 };


protectionMismatchStatusPkg PACKAGE
  ATTRIBUTES
    protectionMismatchStatus  GET;
REGISTERED AS { g774-03Package 4 };


priorityPkg PACKAGE
  ATTRIBUTES
    priority GET-REPLACE;
REGISTERED AS { g774-03Package 5 };


sdhPriorityPkg PACKAGE
  ATTRIBUTES
    sdhPriority PERMITTED VALUES SDHProtASN1.SDHMSPriority GET-REPLACE;
REGISTERED AS { g774-03Package 6 };


channelNumber ATTRIBUTE
  WITH ATTRIBUTE SYNTAX SDHProtASN1.Integer;
  MATCHES FOR  EQUALITY, ORDERING;
  BEHAVIOUR channelNumberBeh;
REGISTERED AS { g774-03Attribute 1 };


channelNumberBeh BEHAVIOUR
  DEFINED AS
    "This attribute indicates the channel number associated with a protectionUnit. ";


lastAttemptResult ATTRIBUTE
  WITH ATTRIBUTE SYNTAX SDHProtASN1.LastAttemptResult;
  MATCHES FOR EQUALITY;
  BEHAVIOUR lastAttemptResultBeh;
REGISTERED AS { g774-03Attribute 2 };


lastAttemptResultBeh BEHAVIOUR
  DEFINED AS
    "The value of the last exercise result or the result of a protection
    group/unit diagnostic or switch attempt which performs at least the same
    functionality as an exercise, is available from his attribute. If a failure
    occurs, the availabilityStatus of the protectionGroup object will be set to
    degraded. The successful completion of a protection group/unit diagnostic or
    switch attempt which performs at least the same functionality as an exercise
    causes the availabilityStatus attribute to be set to NULL (i.e. available),
    and the lastAttemptResult value is set to success. ";


priority ATTRIBUTE
  WITH ATTRIBUTE SYNTAX SDHProtASN1.Integer;
  MATCHES FOR EQUALITY, ORDERING;
  BEHAVIOUR priorityBeh;
REGISTERED AS { g774-03Attribute 3 };


priorityBeh BEHAVIOUR
  DEFINED AS
    "This attribute specifies the priority of the service (e.g. traffic) carried
    on the resource associated with the protected protectionUnit instance. Valid
    values for this attribute are integers, where the value 1 indicates the
    highest priority, and a larger value indicates a lower priority.

    For a protecting protectionUnit, the value of this attribute indicates the
    priority of choice of the protecting protectionUnit relative to other
    available protecting protectionUnit(s) within the same protectionGroup. The
    lower the value, the more preferred the protectionUnit is relative to other
    protectionUnits. ";


protectedTTPId ATTRIBUTE
  WITH ATTRIBUTE SYNTAX SDHProtASN1.NameType;
  MATCHES FOR EQUALITY, ORDERING, SUBSTRINGS;
  BEHAVIOUR protectedTTPIdBeh;
REGISTERED AS { g774-03Attribute 4 };


protectedTTPIdBeh BEHAVIOUR
  DEFINED AS
    "This attribute is used as an RDN for naming instances of the protectedTTP
    object classes. If the string choice of the syntax is used, then matching on
    substrings is permitted. If the number choice for the syntax is used, then
    matching on ordering is permitted. ";


reportedProtectionUnit ATTRIBUTE
  WITH ATTRIBUTE SYNTAX SDHProtASN1.RelativeDistinguishedName;
  MATCHES FOR EQUALITY;
REGISTERED AS { g774-03Attribute 5 };


protectionGroupId ATTRIBUTE
  WITH ATTRIBUTE SYNTAX SDHProtASN1.NameType;
  MATCHES FOR EQUALITY, ORDERING, SUBSTRINGS;
  BEHAVIOUR protectionGroupIdBeh;
REGISTERED AS { g774-03Attribute 6 };


protectionGroupIdBeh BEHAVIOUR
  DEFINED AS
    "The protectionGroupId attribute is an attribute type whose distinguished
    value can be used as an RDN when naming an instance of the protectionGroup
    object class. If the string choice of the syntax is used, then matching on
    substrings is permitted. If the number choice for the syntax is used, then
    matching on ordering is permitted. ";


protectionGroupType ATTRIBUTE
  WITH ATTRIBUTE SYNTAX SDHProtASN1.ProtectionGroupType;
  MATCHES FOR EQUALITY;
  BEHAVIOUR protectionGroupTypeBeh;
REGISTERED AS { g774-03Attribute 7 };


protectionGroupTypeBeh BEHAVIOUR
  DEFINED AS
    "This attribute specifies whether the protection scheme used is 1 + 1 (plus)
    or M:N (colon). M:N includes the cases where M = 1 and/or N = 1. ";


protectionMismatchStatus ATTRIBUTE
  WITH ATTRIBUTE SYNTAX SDHProtASN1.ProtectionMismatchStatus;
  MATCHES FOR EQUALITY;
  BEHAVIOUR protectionMismatchStatusBeh;
REGISTERED AS { g774-03Attribute 8 };


protectionMismatchStatusBeh BEHAVIOUR
  DEFINED AS
    "This attribute indicates a mismatch between the local and far-end
    provisioned values for the protectionGroupType attribute and has a separate
    indication for a mismatch between the local and far-end provisioned values
    for the protectionSwitchMode attribute. ";


protectionStatus ATTRIBUTE
  WITH ATTRIBUTE SYNTAX SDHProtASN1.ProtectionStatus;
  MATCHES FOR EQUALITY, SET-COMPARISON,
    SET-INTERSECTION;
  BEHAVIOUR protectionStatusBeh;
REGISTERED AS { g774-03Attribute 9 };


protectionStatusBeh BEHAVIOUR
  DEFINED AS
    "This attribute is used to indicate the status of the protection switch in a
    protectionUnit instance. This attribute is set-valued because some requests
    are allowed to be pending. The following rule shall be followed: Only one of
    the values lockout, forcedSwitch, or manualSwitch can be present at the same
    time, either local or remote. It is also possible to have two or more
    pending automatic switch requests. The protectionStatus attribute of a
    protection Unit which provides protection is used to hold the protection
    request which is actually performed on that protectionUnit.

    Locally invoked management operations (e.g. manual, forced, lockout switch
    completions) can be overridden at the near end or the far end, but may only
    be released at the near end.

    Single-ended systems keep the status of local and far-end switch requests as
    separate entities in the protectionStatus attribute.

    The remainder of this behaviour provides the allowable protectionStatus
    attribute values for protected and protecting units for both revertive and
    non-revertive systems. The following allowable protectionStatus values are
    associated with each protected unit:

    ( No Request ( No switch request is present on the unit.

    ( Manual Switch to Protecting Complete ( The unit has completed a Manual Switch.

    ( Release failed ( A switch has been released or pre-empted and a timeout
      occurs while waiting for a release of associated bridges, or the near-end switch.

    ( Automatic Switch (SF) Pending ( The unit has a Signal Fail condition
      present and the protecting unit is unavailable.

    ( Automatic Switch (SD) Pending ( The unit has a Signal Degrade condition
      present and the protecting unit is unavailable.

    ( Automatic Switch (SF) Complete ( The unit has completed an Automatic
      Switch to the protecting unit due to a Signal Fail condition.

    ( Automatic Switch (SD) Complete ( The unit has completed an Automatic
      Switch to the protecting unit due to a Signal Degrade condition.

    ( Automatic Switch (SF) Present, Operate failed ( An automatic switch (SF)
      request is in progress and a time-out occurs while waiting for completion.

    ( Automatic Switch (SD) Present, Operate failed ( An automatic switch (SD)
      request is in progress and a time-out occurs while waiting for completion.

    ( Force Switch Complete, Automatic Switch (SF) Pending ( The unit has
      completed a Force Switch. Additionally, the unit has an automatic switch
      (SF) pending.

    ( Force Switch Complete, Automatic Switch (SD) Pending ( The unit has
      completed a Force Switch. Additionally, the unit has an automatic switch
      (SD) pending.

    ( Automatic Switch Complete, Wait-to-Restore ( The unit has completed an
      Automatic Switch to the protecting unit.

    ( Force Switch Complete ( The unit has completed a Force Switch to the
      protecting unit.

    ( Protected Unit Lockout Completed ( The unit has been locked out from the
      protecting unit.

    ( Protected Unit Lockout complete, Operate Failed ( The unit has been locked
      out from the protecting unit, and, the previously completed switch could
      not be released within the expected time-out. When the switch is released,
      the operate failed status is removed.

    Additionally, the non-revertive protected protection unit has the following
    status values:

    ( Do Not Revert ( The protected unit has been switched to the protecting
      unit and the request to do so has been released. The switch to the
      protecting unit is maintained.

    ( Manual Switch to Protected Unit Complete ( The unit has completed a Manual
      Switch from the protecting unit to the protected unit.

    ( Force Switch to Protected Unit Complete ( The unit has completed a Force
      Switch from the protecting unit to the protected unit.

    ( Automatic Switch (SF) to Protected Unit Complete ( The protecting unit has
      a Signal Fail condition present and traffic is now being carried on the
      protected unit.

    ( Automatic Switch (SD) to Protected Unit Complete ( The protecting unit has
      a Signal Degrade condition present and traffic is now being carried on the
      protected unit.

    ( Automatic Switch (SD) to Protected Unit Complete, Signal Degrade Present (
      The protecting unit has a Signal Degrade condition present and traffic is
      now being carried on the protected unit. Additionally, the protected unit
      has a Signal Degrade condition present.

    ( Automatic Switch (SF) to Protected Unit Complete, Signal Degrade Present (
      The protecting unit has a Signal Fail condition present and traffic is now
      being carried on the protected unit. Additionally, the protected unit has
      a Signal Degrade condition present.

    ( Force Switch from Protecting Unit Complete, Automatic Switch (SF) Pending (
      The unit has completed a Force Switch from the protecting unit to the
      protected unit. Additionally, the protected unit has an automatic switch
      (SF) condition present.

    ( Force Switch from Protecting Unit Complete, Automatic Switch (SD) Pending (
      The unit has completed a Force Switch from the protecting unit to the
      protected unit. Additionally, the protected unit has an automatic switch
      (SD) condition present.

    The following allowable protectionStatus values are associated with each
    protecting unit:

    ( No Request - No request is present on the protecting unit.

    ( Manual Switch to Protecting Unit Complete ( The protected unit has
      completed a Manual Switch.

    ( Automatic Switch Complete (SF) to Protecting Unit ( The protected unit has
      completed an automatic switch (SF) to the protecting unit.

    ( Automatic Switch Complete (SD) to Protecting Unit ( The protected unit has
      completed an automatic switch (SD) to the protecting unit.

    ( Automatic Switch Complete (SD) to Protecting Unit, Protecting Unit Signal
      Degraded ( The protected unit has completed an automatic switch to the
      protecting unit. Additionally, the protecting unit has a Signal Degrade
      condition present. This applies to 1:n systems only.

    ( Automatic Switch Complete (SF) to Protecting Unit, Protecting Unit Signal
      Degraded ( The protected unit has completed an automatic switch to the
      protecting unit. Additionally, the protecting unit has a Signal Degrade
      condition present. This applies to 1:n systems only.

    ( Protecting Unit SD Present ( The protecting unit has a Signal Degrade
      condition present. This state may also be a result of invalid or toggling
      APS byte values. This applies to 1:n systems only.

    ( Protecting Unit SF Present ( The protecting unit has a Signal Fail
      condition present. This state may also be a result of invalid or toggling
      APS byte values. This applies to 1:n systems only.

    ( Force Switch Complete to Protecting Unit ( The unit has completed a Force
      Switch of a protected unit to the protecting unit.

    ( Force Switch Complete to Protecting Unit, SD Present on Protecting Unit (
      The unit has completed a Force Switch of a protected unit to the
      protecting unit. Additionally, there is a Signal Degrade present on the
      protecting unit.

    ( Force Switch Complete to Protecting, SF Present on Protecting Unit ( The
      unit has completed a Force Switch of a protected unit to the protecting
      unit. Additionally, there is a Signal Fail (1 + 1 unidirectional systems
      only) present on the protecting unit.

    ( Protecting Unit Locked Out ( The protecting unit has been locked out.

    ( Protecting Unit Locked Out, Release Failed ( A release of a lockout is in
      progress and a timeout occurs waiting for the lockout condition to clear.

    Additionally, the non-revertive protecting unit has the following values:

    ( Do Not Revert ( The protected unit has been switched to the protecting
      unit and the request to do so has been released. The switch to the
      protecting unit is maintained.

    ( Manual Switch to Protected Unit Complete ( The unit has completed a Manual
      Switch from the protecting unit to the protected unit.

    ( Force Switch to Protected Unit Complete ( The protecting unit has
      completed a forced switch to the protected unit.

    ( Force Switch to Protected Unit Complete, Protecting Unit Signal Degraded (
      The protecting unit has completed a forced switch to the protected unit.
      Additionally, there is a Signal Degrade condition on the protecting unit.

    ( Force Switch to Protected Unit Complete, Protecting Unit Signal Failed (
      The protecting unit shows a forced switch to the protected unit.
      Additionally, there is a Signal Fail condition on the protecting unit.

    ( Automatic Switch (SF) to Protected Unit Complete ( The protecting unit has
      a Signal Fail condition present and traffic is now being carried on the
      protected unit.

    ( Automatic Switch (SD) to Protected Unit Complete ( The protecting unit has
      a Signal Degrade condition present and traffic is now being carried on the
      protected unit.

    ( Automatic Switch Complete (SD) to Protecting, Automatic Switch (SD) to
      Protected Unit Pending ( The protected unit has completed an automatic
      switch to the protecting unit. Additionally, the protecting unit has a
      Signal Degrade condition present.

    ( Automatic Switch Complete (SF) to Protecting, Automatic Switch (SD) to
      Protected Unit Pending ( The protected unit has completed an automatic
      switch to the protecting unit. Additionally, the protecting unit has a
      Signal Degrade condition present.

    APS timeout detected by the exerciser, or, during an attempt to invoke a
    manual or forced switch will not be indicated as APS failure (operate or
    release fail) in the protectionStatus attribute. Instead, the actionReply
    for the invoked action will report this. Additionally, attribute
    lastAttemptResult will provide a record of the failure, until a successful
    exercise or protection switch causes this attribute to be cleared. ";


protectionSwitchMode ATTRIBUTE
  WITH ATTRIBUTE SYNTAX SDHProtASN1.ProtectionSwitchMode;
  MATCHES FOR EQUALITY;
  BEHAVIOUR protectionSwitchModeBeh;
REGISTERED AS { g774-03Attribute 10 };


protectionSwitchModeBeh BEHAVIOUR
  DEFINED AS
    "This attribute specifies whether protection switching is done on a
    unidirectional or bidirectional basis. ";


protectionUnitId ATTRIBUTE
  WITH ATTRIBUTE SYNTAX SDHProtASN1.NameType;
  MATCHES FOR EQUALITY, ORDERING, SUBSTRINGS;
  BEHAVIOUR protectionUnitIdBeh;
REGISTERED AS { g774-03Attribute 11 };


protectionUnitIdBeh BEHAVIOUR
  DEFINED AS
    "The protectionUnitId attribute is an attribute type whose distinguished
    value can be used as an RDN when naming an instance of the protectionUnit
    object class. If the string choice of the syntax is used, then matching on
    substrings is permitted. If the number choice for the syntax is used, then
    matching on ordering is permitted. ";


protecting ATTRIBUTE
  WITH ATTRIBUTE SYNTAX SDHProtASN1.Boolean;
  MATCHES FOR EQUALITY;
  BEHAVIOUR protectingBeh;
REGISTERED AS { g774-03Attribute 12 };


protectingBeh BEHAVIOUR
  DEFINED AS
    "This attribute specifies the type of the protectionUnit. A value of TRUE
    indicates that the protectionUnit is a protecting (i.e. backup or standby)
    unit. A value of FALSE indicates that the protectionUnit is a protected
    (i.e. a regular, working, or preferred) unit. ";


reliableResourcePointer ATTRIBUTE
  WITH ATTRIBUTE SYNTAX SDHProtASN1.ResourcePointer;
  MATCHES FOR EQUALITY;
  BEHAVIOUR reliableResourcePointerBeh;
REGISTERED AS { g774-03Attribute 13 };


reliableResourcePointerBeh BEHAVIOUR
  DEFINED AS
    "The value of the reliableResourcePointer attribute points to the reliable
    resource(s) (e.g. termination point) that is/are associated with the
    protectionUnit instance. ";


revertive ATTRIBUTE
  WITH ATTRIBUTE SYNTAX SDHProtASN1.Boolean;
  MATCHES FOR EQUALITY;
  BEHAVIOUR revertiveBeh;
REGISTERED AS { g774-03Attribute 14 };


revertiveBeh BEHAVIOUR
  DEFINED AS
    "This attribute indicates whether the protection scheme is revertive or not.
    If the value of this attribute is TRUE, the traffic is returned to the
    protected protectionUnit instance that initiated the switch after the fault
    clears and the waitToRestoreTime interval (if any) has expired. If the value
    of this attribute is FALSE, then after the fault has cleared, traffic does
    not revert to the protectionUnit that initiated the switch. ";


sdhPriority ATTRIBUTE
  WITH ATTRIBUTE SYNTAX SDHProtASN1.Integer;
  MATCHES FOR EQUALITY;
  BEHAVIOUR sdhPriorityBeh;
REGISTERED AS { g774-03Attribute 15 };


sdhPriorityBeh BEHAVIOUR
  DEFINED AS
    "SDH priority may be High or Low for protected protection units. This is
    intended for prioritizing SD and SF conditions on 1:n systems. ";


unprotectedCTPId ATTRIBUTE
  WITH ATTRIBUTE SYNTAX SDHProtASN1.NameType;
  MATCHES FOR EQUALITY, ORDERING, SUBSTRINGS;
  BEHAVIOUR unprotectedCTPIdBeh;
REGISTERED AS { g774-03Attribute 16 };


unprotectedCTPIdBeh BEHAVIOUR
  DEFINED AS
    "This attribute is used as an RDN for naming instances of the unprotectedCTP
    object classes. If the string choice of the syntax is used, then matching on
    substrings is permitted. If the number choice for the syntax is used, then
    matching on ordering is permitted. ";


unreliableResourcePointer ATTRIBUTE
  WITH ATTRIBUTE SYNTAX SDHProtASN1.ResourcePointer;
  MATCHES FOR EQUALITY;
  BEHAVIOUR unreliableResourcePointerBeh;
REGISTERED AS { g774-03Attribute 17 };


unreliableResourcePointerBeh BEHAVIOUR
  DEFINED AS
    "The value of the unreliableResourcePointer attribute points to the
    unreliable resource(s) (e.g. equipment hardware or termination point) that
    is/are associated with the protectionUnit instance. ";


waitToRestoreTime ATTRIBUTE
  WITH ATTRIBUTE SYNTAX SDHProtASN1.Integer;
  MATCHES FOR EQUALITY, ORDERING;
  BEHAVIOUR waitToRestoreTimeBeh;
REGISTERED AS { g774-03Attribute 18 };


waitToRestoreTimeBeh BEHAVIOUR
  DEFINED AS
    "This attribute specifies the amount of time, in seconds, to wait after a
    fault clears before restoring traffic to the protected protectionUnit that
    initiated the switching. ";


notifiedProtectionUnit ATTRIBUTE
  WITH ATTRIBUTE SYNTAX SDHProtASN1.ProtectionUnit;
  MATCHES FOR EQUALITY;
REGISTERED AS { g774-03Attribute 19 };


invokeExercise ACTION
  BEHAVIOUR invokeExerciseBeh;
  MODE CONFIRMED;
  WITH INFORMATION SYNTAX  SDHProtASN1.InvokeExerciseArg;
  WITH REPLY SYNTAX  SDHProtASN1.InvokeExerciseReply;
REGISTERED AS { g774-03Action 1 };


invokeExerciseBeh BEHAVIOUR
  DEFINED AS
    "The invokeExercise action can be used to request a protection exercise
    routine to be performed on one or more protectionUnit instances contained in
    the protectionGroup object.

    The action argument contains indications of the protected and protecting
    units to which the request applies. If a protecting unit is identified in
    the protectedUnits field, or if a protected unit is identified in the
    protectingUnits field, the action fails.

    The protectionEntity field may be absent, indicating that the request
    applies to all contained protection units.

    While an exercise is in progress, the value of the protectionStatus
    attribute shall continue to indicate No Request. When an exercise routine
    has completed for any protectionUnit instances, the lastAttemptResult
    attribute is updated to reflect pass or fail for each exercised protection unit. ";


invokeProtection ACTION
  BEHAVIOUR invokeProtectionBeh;
  MODE CONFIRMED;
  PARAMETERS invokeProtectionError;
  WITH INFORMATION SYNTAX  SDHProtASN1.InvokeProtectionArg;
REGISTERED AS { g774-03Action 2 };


invokeProtectionBeh BEHAVIOUR
  DEFINED AS
    "The invokeProtection action can be used to request a lockout, a forced
    switch, or a manual (i.e. normal switch) on one or more protectionUnit
    instances contained in the protectionGroup object.

    The action argument contains a request (Forced Switch, Manual Switch, or
    Lockout) and indications of the protected and protecting units to which the
    request applies. If a protecting unit is identified in the protectedUnits
    field, or if a protected unit is identified in the protectingUnits field,
    the action fails.

    If the request is Forced Switch or Manual Switch, the protectedUnits field
    shall identify one or more protection units. If only one unit is identified
    in the protectedUnits field, and there is only one protecting unit in the
    protection group, the protectingUnits field may be omitted. If the
    protectingUnits field is present, it shall identify the same number of units
    as the protectedUnits field.

    If the request is Lockout, the protectionEntity field may be absent,
    indicating that the request applies to all contained protection units. If
    the protectionEntity field is present, any number of protection units may be
    identified in the protectedUnits and/or protectingUnits field, and either
    field may be absent. For a Lockout request, the specified protected units
    and/or protecting units are locked out.

    For requests which cannot be completed, either because the request is the
    protecting unit is serving a request of higher priority (in the error
    parameter of the CMIP APDU, reason: pre-empted), or failure occurs
    (failure), or timeout occurs (timeout), the reply shall indicate why the
    request could not be completed, and the request shall not be made pending.
    The CMIP error APDU contains the failure reasons. ";


releaseProtection ACTION
  BEHAVIOUR releaseProtectionBeh;
  MODE CONFIRMED;
  PARAMETERS releaseProtectionError;
  WITH INFORMATION SYNTAX  SDHProtASN1.ReleaseProtectionArg;
REGISTERED AS { g774-03Action 3 };


releaseProtectionBeh BEHAVIOUR
  DEFINED AS
    "The releaseProtection action can be used to release a lockout, a forced
    switch, or a manual (i.e. normal switch) on one or more protectionUnit
    instances contained in the protectionGroup object.

    The action argument contains a request (Forced Switch, Manual Switch, or
    Lockout) and indications of the protected and protecting units to which the
    request applies. If a protecting unit is identified in the protectedUnits
    field, or if a protected unit is identified in the protectingUnits field,
    the action fails.

    If the request is Forced Switch or Manual Switch, the protectedUnits field
    shall identify one or more protection units, and the protectingUnits field
    shall be omitted. For each identified protected unit, if it is not switched
    to a protecting unit, the action fails.

    If the request is Lockout, the protectionEntity field may be absent,
    indicating that the request applies to all contained protection units. If
    the protectionEntity field is present, any number of protection units may be
    identified in the protectedUnits and/or protectingUnits field, and either
    field may be absent.

    For a Lockout request, the specified protected units and/or protecting units
    are no longer locked out. That is, the protected units are now under
    protection and the protecting units are now capable of providing protection.
    For release requests which cannot be completed, the reply shall indicate why
    the request could not be completed. ";


protectionSwitchReportingR1 NOTIFICATION
  BEHAVIOUR protectionSwitchReportingR1Beh;
  WITH INFORMATION SYNTAX SDHProtASN1.ProtectionSwitchReportingInfo
    AND ATTRIBUTE IDS
      protectingUnit reportedProtectionUnit,
      additionalInfo "Recommendation X.721": additionalInformation;
REGISTERED AS { g774-03Notification 2 };


protectionSwitchReportingR1Beh BEHAVIOUR
  DEFINED AS
    "The protectionSwitchReporting notification is emitted from the
    protectionGroup object to report any protection switch events.";


invokeProtectionError PARAMETER
  CONTEXT SPECIFIC-ERROR;
  WITH SYNTAX SDHProtASN1.InvokeProtectionError;
  BEHAVIOUR invokeProtectionErrorBeh;
REGISTERED AS { g774-03Parameter 1 };


invokeProtectionErrorBeh BEHAVIOUR
  DEFINED AS
    "This parameter is included in the error parameter of the CMIP APDU when the
    invoke protection action fails. The pre-empted choice means that a higher
    priority switch request exists on the protecting protection unit. The
    failure choice indicates that the request has not been performed due to an
    abnormal condition on the protection system. The timeout choice indicates
    that the protection switch has not been performed in the required time frame. ";


releaseProtectionError PARAMETER
  CONTEXT SPECIFIC-ERROR;
  WITH SYNTAX SDHProtASN1.ReleaseProtectionError;
  BEHAVIOUR releaseProtectionErrorBeh;
REGISTERED AS { g774-03Parameter 2 };


releaseProtectionErrorBeh BEHAVIOUR
  DEFINED AS
    "This parameter is included in the error parameter of the CMIP APDU when the
    release protection action fails. The failure choice indicates that the
    request has not been performed due to an abnormal condition on the
    protection system. The timeout choice indicates that the protection switch
    has not been performed in the required time frame. ";


protectionStatusParameter PARAMETER
  CONTEXT EVENT-INFO;
  WITH SYNTAX SDHProtASN1.ProtectionStatusParameter;
  BEHAVIOUR protectionStatusParameterBeh;
REGISTERED AS { g774-03Parameter 3 };


protectionStatusParameterBeh BEHAVIOUR
  DEFINED AS
    "This parameter is included in the additional info parameters of the
    protection switching reporting notification. This notification is sent by
    the protection group according to the following rules. There are several cases:

    ( The switch from protected to protecting or protecting to protected has
      been done without pre-empting an existing switch. In this case the old and
      new values of the Protection Status attribute of the protecting channel
      shall be reported in the notification by means of the oldProtectionStatus
      and newProtectionStatus parameters respectively.

    ( A switch is preformed by pre-empting an existing one. In this case the old
      and new values of the Protection Status attribute of the protecting
      channel shall be reported in the notification by means of the
      oldProtectionStatus and newProtectionStatus parameters respectively.

    ( An auto-switch condition exists on a channel but the auto-switch cannot be
      served due to the unavailability of the channel that otherwise protects
      it. In this case the oldProtectionStatus and newProtectionStatus
      parameters refer to the protection status attribute value of the channel
      on which the autoswitch condition arises. The exception is when the
      channel is already forced or locked out, in which case no notification is sent.

    ( A working channel (protected unit) has been locked out or released from
      lockout without modifying any existing switch. In this case the
      oldProtectionStatus and newProtectionStatus parameters refer to the
      protection status attribute value of the working channel which has been
      locked out.

    ( A protection channel (protecting unit) has been locked out or release from
      lockout without modifying the existing switch. In this case the
      oldProtectionStatus and newProtectionStatus parameters refer to the
      protection status attribute value of the protection channel which has been
      locked out.

    ( The protectionSwitchReporting is not sent when the automatic switch
      condition is toggling between SD, SF and WTR condition. While in the
      lockout of forced switch state no notification is sent except for ending
      of release failure. ";


protectedTTPBidirectional-sdhNE NAME BINDING
  SUBORDINATE OBJECT CLASS protectedTTPBidirectional;
  NAMED BY SUPERIOR OBJECT CLASS "Recommendation G.774":sdhNE;
  WITH ATTRIBUTE protectedTTPId;
  BEHAVIOUR protectedTTPBidirectional-sdhNEBeh;
REGISTERED AS { g774-03NameBinding 1 };


protectedTTPBidirectional-sdhNEBeh BEHAVIOUR
  DEFINED AS
    "The subordinate managed objects are instantiated when the multiplex section
    protection switching function is present. Instances of this object class may
    also be instantiated when other types of protection switching functions,
    such as path protection, are present. ";


protectedTTPSink-sdhNE NAME BINDING
  SUBORDINATE OBJECT CLASS protectedTTPSink;
  NAMED BY SUPERIOR OBJECT CLASS "Recommendation G.774": sdhNE;
  WITH ATTRIBUTE protectedTTPId;
  BEHAVIOUR protectedTTPSink-sdhNEBeh;
REGISTERED AS { g774-03NameBinding 2 };


protectedTTPSink-sdhNEBeh BEHAVIOUR
  DEFINED AS
    "The subordinate managed objects are instantiated when the multiplex section
    protection switching function is present. Instances of this object may also
    be instantiated when other types of protection switching functions, such as
    path protection, are present. ";


protectedTTPSource-sdhNE NAME BINDING
  SUBORDINATE OBJECT CLASS protectedTTPSource;
  NAMED BY SUPERIOR OBJECT CLASS "Recommendation G.774": sdhNE;
  WITH ATTRIBUTE protectedTTPId;
  BEHAVIOUR protectedTTPSource-sdhNEBeh;
REGISTERED AS { g774-03NameBinding 3 };


protectedTTPSource-sdhNEBeh BEHAVIOUR
  DEFINED AS
    "The subordinate managed objects are instantiated when the multiplex section
    protection switching function is present. Instances of this object class may
    also be instantiated when other types of protection switching functions,
    such as path protection, are present. ";


protectionGroupR1-managedElement NAME BINDING
  SUBORDINATE OBJECT CLASS protectionGroupR1 AND SUBCLASSES;
  NAMED BY SUPERIOR OBJECT CLASS
    "Recommendation M.3100":managedElement AND SUBCLASSES;
  WITH ATTRIBUTE protectionGroupId;
REGISTERED AS { g774-03NameBinding 12 };


augBidirectional-protectedTTPBidirectional NAME BINDING
  SUBORDINATE OBJECT CLASS "Recommendation G.774": augBidirectional;
  NAMED BY SUPERIOR OBJECT CLASS protectedTTPBidirectional;
  WITH ATTRIBUTE"Recommendation G.774": augId;
  BEHAVIOUR augBidirectional-protectedTTPBidirectionalBeh;
REGISTERED AS { g774-03NameBinding 5 };


augBidirectional-protectedTTPBidirectionalBeh BEHAVIOUR
  DEFINED AS
    "The subordinate managed objects are instantiated when the multiplex-section
    protection switching function is present. ";


augSink-protectedTTPSink NAME BINDING
  SUBORDINATE OBJECT CLASS "Recommendation G.774": augSink;
  NAMED BY SUPERIOR OBJECT CLASS protectedTTPSink;
  WITH ATTRIBUTE"Recommendation G.774": augId;
  BEHAVIOUR augSink-protectedTTPSinkBeh;
REGISTERED AS { g774-03NameBinding 6 };


augSink-protectedTTPSinkBeh BEHAVIOUR
  DEFINED AS
    "The subordinate managed objects are instantiated when the multiplex-section
    protection switching function is present. ";


augSource-protectedTTPSource NAME BINDING
  SUBORDINATE OBJECT CLASS "Recommendation G.774": augSource;
  NAMED BY SUPERIOR OBJECT CLASS protectedTTPSource;
  WITH ATTRIBUTE  "Recommendation G.774": augId;
  BEHAVIOUR augSource-protectedTTPSourceBeh;
REGISTERED AS { g774-03NameBinding 7 };


augSource-protectedTTPSourceBeh BEHAVIOUR
  DEFINED AS
    "The subordinate managed objects are instantiated when the multiplex-section
    protection switching function is present. ";


protectionUnit-protectionGroupR1 NAME BINDING
  SUBORDINATE OBJECT CLASS
    protectionUnit AND SUBCLASSES;
  NAMED BY SUPERIOR OBJECT CLASS  protectionGroupR1 AND SUBCLASSES;
  WITH ATTRIBUTE protectionUnitId;
REGISTERED AS { g774-03NameBinding 13 };


unprotectedCTPBidirectional-msTTPBidirectional NAME BINDING
  SUBORDINATE OBJECT CLASS unprotectedCTPBidirectional;
  NAMED BY SUPERIOR OBJECT CLASS "Recommendation G.774": msTTPBidirectional;
  WITH ATTRIBUTE unprotectedCTPId;
  BEHAVIOUR unprotectedCTPBidirectional-msTTPBidirectionalBeh;
REGISTERED AS { g774-03NameBinding 9 };


unprotectedCTPBidirectional-msTTPBidirectionalBeh BEHAVIOUR
  DEFINED AS
    "The subordinate managed objects are instantiated when the multiplex section
    protection switching function is present. ";


unprotectedCTPSink-msTTPSink NAME BINDING
  SUBORDINATE OBJECT CLASS unprotectedCTPSink;
  NAMED BY SUPERIOR OBJECT CLASS "Recommendation G.774": msTTPSink;
  WITH ATTRIBUTE unprotectedCTPId;
  BEHAVIOUR unprotectedCTPSink-msTTPSinkBeh;
REGISTERED AS { g774-03NameBinding 10 };


unprotectedCTPSink-msTTPSinkBeh BEHAVIOUR
  DEFINED AS
    "The subordinate managed objects are instantiated when the multiplex section
    protection switching function is present. ";


unprotectedCTPSource-msTTPSource NAME BINDING
  SUBORDINATE OBJECT CLASS unprotectedCTPSource;
  NAMED BY SUPERIOR OBJECT CLASS "Recommendation G.774": msTTPSource;
  WITH ATTRIBUTE unprotectedCTPId;
  BEHAVIOUR unprotectedCTPSource-msTTPSourceBeh;
REGISTERED AS { g774-03NameBinding 11 };


unprotectedCTPSource-msTTPSourceBeh BEHAVIOUR
  DEFINED AS
    "The subordinate managed objects are instantiated when the multiplex section
    protection switching function is present. ";
--<GDMO.EndDocument>--

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