GSMP-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE,
        Unsigned32, Integer32, mib-2
               FROM SNMPv2-SMI                             -- [RFC2578]
        RowStatus, TruthValue, TimeStamp,
        StorageType, TEXTUAL-CONVENTION
               FROM SNMPv2-TC                              -- [RFC2579]
        MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
               FROM SNMPv2-CONF                            -- [RFC2580]
        ZeroBasedCounter32
               FROM RMON2-MIB                              -- [RFC2021]
        InterfaceIndex
               FROM IF-MIB                                 -- [RFC2863]
        AtmVcIdentifier, AtmVpIdentifier
               FROM ATM-TC-MIB                             -- [RFC2514]
        InetAddressType, InetAddress, InetPortNumber
               FROM INET-ADDRESS-MIB ;                     -- [RFC3291]

    gsmpMIB MODULE-IDENTITY
        LAST-UPDATED "200205310000Z" -- May 31, 2002
        ORGANIZATION "General Switch Management Protocol (gsmp)
                      Working Group, IETF"
        CONTACT-INFO
               "WG Charter:
               http://www.ietf.org/html.charters/gsmp-charter.html

               WG-email:          gsmp@ietf.org
               Subscribe:         gsmp-request@ietf.org
               Email Archive:
               ftp://ftp.ietf.org/ietf-mail-archive/gsmp/

               WG Chair:    Avri Doria
               Email:       avri@acm.org

               WG Chair:    Kenneth Sundell
               Email:       ksundell@nortelnetworks.com

               Editor:      Hans Sjostrand
               Email:       hans@ipunplugged.com

               Editor:      Joachim Buerkle
               Email:       joachim.buerkle@nortelnetworks.com

               Editor:      Balaji Srinivasan
               Email:       balaji@cplane.com"
        DESCRIPTION
            "This MIB contains managed object definitions for the
            General Switch Management Protocol, GSMP, version 3"

        REVISION       "200205310000Z"
        DESCRIPTION "Initial Version, published as RFC 3295"
    ::= { mib-2 98 }

    gsmpNotifications              OBJECT IDENTIFIER ::= { gsmpMIB 0 }
    gsmpObjects                    OBJECT IDENTIFIER ::= { gsmpMIB 1 }
    gsmpNotificationsObjects       OBJECT IDENTIFIER ::= { gsmpMIB 2 }
    gsmpConformance                OBJECT IDENTIFIER ::= { gsmpMIB 3 }

    --**************************************************************
    -- GSMP Textual Conventions
    --**************************************************************

    GsmpNameType ::= TEXTUAL-CONVENTION
        STATUS         current
        DESCRIPTION
            "The Name is a 48-bit quantity.
            A 48-bit IEEE 802 MAC address, if
            available, may be used."
        SYNTAX           OCTET STRING (SIZE(6))

    GsmpPartitionType ::= TEXTUAL-CONVENTION
       STATUS           current
       DESCRIPTION
           "Defining if partitions are used and how the partition id
           is negotiated. "
       SYNTAX           INTEGER {
                                   noPartition(1),
                                   fixedPartitionRequest(2),
                                   fixedPartitionAssigned(3)
                                   }

    GsmpPartitionIdType ::= TEXTUAL-CONVENTION
        STATUS         current
        DESCRIPTION
            "A 8-bit quantity. The format of the Partition ID is not
            defined in GSMP. If desired, the Partition ID can be
            divided into multiple sub-identifiers within a single

            partition. For example: the Partition ID could be
            subdivided into a 6-bit partition number and a 2-bit
            sub-identifier which would allow a switch to support 64
            partitions with 4 available IDs per partition."
          SYNTAX         OCTET STRING (SIZE(1))

    GsmpVersion ::= TEXTUAL-CONVENTION
          STATUS          current
          DESCRIPTION
             "The version numbers defined for the GSMP protocol.
              The version numbers used are defined in the
              specifications of the respective protocol,
              1 - GSMPv1.1 [RFC1987]
              2 - GSMPv2.0 [RFC2397]
              3 - GSMPv3   [RFC3292]
              Other numbers may be defined for other versions
              of the GSMP protocol."
          SYNTAX          Unsigned32

    GsmpLabelType ::= TEXTUAL-CONVENTION
          STATUS         current
          DESCRIPTION
             "The label is structured as a TLV, a tuple, consisting of
             a Type, a Length, and a Value. The structure is defined
             in [RFC 3292]. The label TLV is encoded as a 2 octet type
             field, followed by a 2 octet Length field, followed by a
             variable length Value field.
             Additionally, a label field can be composed of many stacked
             labels that together constitute the label."
          SYNTAX          OCTET STRING

    --**************************************************************
    -- GSMP Entity Objects
    --**************************************************************

    --
    -- Switch Controller Entity table
    --

    gsmpControllerTable OBJECT-TYPE
          SYNTAX          SEQUENCE OF GsmpControllerEntry
          MAX-ACCESS      not-accessible
          STATUS          current
          DESCRIPTION
             "This table represents the Switch Controller
             Entities. An entry in this table needs to be configured
             (created) before a GSMP session might be started."
          ::= { gsmpObjects 1 }

    gsmpControllerEntry OBJECT-TYPE
          SYNTAX          GsmpControllerEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
              "An entry in the table showing
              the data for a specific Switch Controller
              Entity. If partitions are used, one entity
              corresponds to one specific switch partition.
              Depending of the encapsulation used,
              a corresponding row in the gsmpAtmEncapTable or the
              gsmpTcpIpEncapTable may have been created."
        INDEX { gsmpControllerEntityId }
        ::= { gsmpControllerTable 1 }

    GsmpControllerEntry ::= SEQUENCE {
        gsmpControllerEntityId                    GsmpNameType,
        gsmpControllerMaxVersion                  GsmpVersion,
        gsmpControllerTimer                       Unsigned32,
        gsmpControllerPort                        Unsigned32,
        gsmpControllerInstance                    Unsigned32,
        gsmpControllerPartitionType               GsmpPartitionType,
        gsmpControllerPartitionId                 GsmpPartitionIdType,
        gsmpControllerDoResync                    TruthValue,
        gsmpControllerNotificationMap             BITS,
        gsmpControllerSessionState                INTEGER,
        gsmpControllerStorageType                 StorageType,
        gsmpControllerRowStatus                   RowStatus
        }

    gsmpControllerEntityId OBJECT-TYPE
        SYNTAX          GsmpNameType
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
              "The Switch Controller Entity Id is unique
              within the operational context of the device."
        ::= { gsmpControllerEntry 1 }

   gsmpControllerMaxVersion OBJECT-TYPE
       SYNTAX          GsmpVersion
       MAX-ACCESS      read-create
       STATUS          current
       DESCRIPTION
             "The max version number of the GSMP protocol being used
             in this session. The version is negotiated by the
             adjacency protocol."
       DEFVAL { 3 }
       ::= { gsmpControllerEntry 2 }

   gsmpControllerTimer OBJECT-TYPE
       SYNTAX          Unsigned32(1..255)
       UNITS           "100ms"
       MAX-ACCESS      read-create
       STATUS          current
       DESCRIPTION
           "The timer specifies the nominal time between
           periodic adjacency protocol messages. It is a constant
           for the duration of a GSMP session. The timer is
           specified in units of 100ms."
       DEFVAL { 10 }
       ::= { gsmpControllerEntry 3 }

   gsmpControllerPort OBJECT-TYPE
       SYNTAX          Unsigned32
       MAX-ACCESS      read-create
       STATUS          current
       DESCRIPTION
           "The local port number for the Switch Controller
           Entity."
       REFERENCE
          "General Switch Management Protocol V3: Section 3.1.2"
       ::= { gsmpControllerEntry 4 }

   gsmpControllerInstance OBJECT-TYPE
       SYNTAX          Unsigned32(1..16777215)
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
           "The instance number for the Switch Controller
           Entity. The Instance number is a 24-bit number
           that should be guaranteed to be unique within
           the recent past and to change when the link
           or node comes back up after going down. Zero is
           not a valid instance number. "
       ::= { gsmpControllerEntry 5 }

   gsmpControllerPartitionType OBJECT-TYPE
       SYNTAX          GsmpPartitionType
       MAX-ACCESS      read-create
       STATUS          current
       DESCRIPTION
          "A controller can request the specific partition identifier
          to the session by setting the Partition Type to
          fixedPartitionRequest(2). A controller can let the switch
          decide whether it wants to assign a fixed partition ID or

          not, by setting the Partition Type to noPartition(1)."
       ::= { gsmpControllerEntry 6 }

   gsmpControllerPartitionId OBJECT-TYPE
       SYNTAX           GsmpPartitionIdType
       MAX-ACCESS       read-create
       STATUS           current
       DESCRIPTION
           "The Id for the specific switch partition that this
           Switch Controller is concerned with.
           If partitions are not used or if the controller lets the
           switch assigns Partition ID, i.e Partition Type =
           noPartition(1), then this object is undefined."
       ::= { gsmpControllerEntry 7 }

   gsmpControllerDoResync OBJECT-TYPE
       SYNTAX           TruthValue
       MAX-ACCESS       read-create
       STATUS           current
       DESCRIPTION
           "This object specifies whether the controller should
           resynchronise or reset in case of loss of synchronisation.
           If this object is set to true then the Controller should
           resync with PFLAG=2 (recovered adjacency)."
       DEFVAL { true }
       ::= { gsmpControllerEntry 8 }

   gsmpControllerNotificationMap OBJECT-TYPE
       SYNTAX           BITS {
                                   sessionDown(0),
                                   sessionUp(1),
                                   sendFailureIndication(2),
                                   receivedFailureIndication(3),
                                   portUpEvent(4),
                                   portDownEvent(5),
                                   invalidLabelEvent(6),
                                   newPortEvent(7),
                                   deadPortEvent(8),
                                   adjacencyUpdateEvent(9)
                             }
       MAX-ACCESS       read-create
       STATUS           current
       DESCRIPTION
           "This bitmap defines whether a corresponding SNMP
           notification should be sent if a GSMP event is received
           by the Switch Controller. If the bit is set to 1 a
           notification should be sent. The handling and filtering of
           the SNMP notifications are then further specified in the

           SNMP notification originator application. "
       DEFVAL {{ sessionDown, sessionUp,
              sendFailureIndication, receivedFailureIndication }}
       ::= { gsmpControllerEntry 9 }

   gsmpControllerSessionState OBJECT-TYPE
          SYNTAX          INTEGER {
                                    null(1),
                                    synsent(2),
                                    synrcvd(3),
                                    estab(4)
                                   }
          MAX-ACCESS      read-only
          STATUS          current
          DESCRIPTION
             "The state for the existing or potential session that
             this entity is concerned with.
             The NULL state is returned if the proper encapsulation
             data is not yet configured, if the row is not in active
             status or if the session is in NULL state as defined in
             the GSMP specification."
          ::= { gsmpControllerEntry 10}

   gsmpControllerStorageType OBJECT-TYPE
           SYNTAX         StorageType
           MAX-ACCESS     read-create
           STATUS         current
           DESCRIPTION
              "The storage type for this controller entity.
             Conceptual rows having the value 'permanent' need not allow
             write-access to any columnar objects in the row."
          DEFVAL { nonVolatile }
          ::= { gsmpControllerEntry 11 }

   gsmpControllerRowStatus OBJECT-TYPE
           SYNTAX         RowStatus
           MAX-ACCESS     read-create
           STATUS         current
           DESCRIPTION
              "An object that allows entries in this table to
              be created and deleted using the
              RowStatus convention.
              While the row is in active state it's not
              possible to modify the value of any object
              for that row except the gsmpControllerNotificationMap
              and the gsmpControllerRowStatus objects."
          ::= { gsmpControllerEntry 12 }

    --
    -- Switch Entity table
    --

    gsmpSwitchTable OBJECT-TYPE
        SYNTAX         SEQUENCE OF GsmpSwitchEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "This table represents the Switch
             Entities. An entry in this table needs to be configured
             (created) before a GSMP session might be started."
        ::= { gsmpObjects 2 }

    gsmpSwitchEntry OBJECT-TYPE
        SYNTAX         GsmpSwitchEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "An entry in the table showing
             the data for a specific Switch
             Entity. If partitions are used, one entity
             corresponds to one specific switch partition.
             Depending of the encapsulation used,
             a corresponding row in the gsmpAtmEncapTable or the
             gsmpTcpIpEncapTable may have been created."
        INDEX { gsmpSwitchEntityId }
        ::= { gsmpSwitchTable 1 }

    GsmpSwitchEntry ::= SEQUENCE {
        gsmpSwitchEntityId                GsmpNameType,
        gsmpSwitchMaxVersion              GsmpVersion,
        gsmpSwitchTimer                   Unsigned32,
        gsmpSwitchName                    GsmpNameType,
        gsmpSwitchPort                    Unsigned32,
        gsmpSwitchInstance                Unsigned32,
        gsmpSwitchPartitionType           GsmpPartitionType,
        gsmpSwitchPartitionId             GsmpPartitionIdType,
        gsmpSwitchNotificationMap         BITS,
        gsmpSwitchSwitchType              OCTET STRING,
        gsmpSwitchWindowSize              Unsigned32,
        gsmpSwitchSessionState            INTEGER,
        gsmpSwitchStorageType             StorageType,
        gsmpSwitchRowStatus               RowStatus
        }

    gsmpSwitchEntityId OBJECT-TYPE
        SYNTAX         GsmpNameType
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "The Switch Entity Id is unique
             within the operational context of the device. "
        ::= { gsmpSwitchEntry 1 }

   gsmpSwitchMaxVersion OBJECT-TYPE
       SYNTAX          GsmpVersion
       MAX-ACCESS      read-create
       STATUS          current
       DESCRIPTION
           "The max version number of the GSMP protocol being
           supported by this Switch. The version is negotiated by
           the adjacency protocol."
       DEFVAL { 3 }
       ::= { gsmpSwitchEntry 2 }

   gsmpSwitchTimer OBJECT-TYPE
       SYNTAX          Unsigned32(1..255)
       UNITS           "100ms"
       MAX-ACCESS      read-create
       STATUS          current
       DESCRIPTION
           "The timer specifies the nominal time between
           periodic adjacency protocol messages. It is a constant
           for the duration of a GSMP session. The timer is
           specified in units of 100ms."
       DEFVAL { 10 }
       ::= { gsmpSwitchEntry 3 }

   gsmpSwitchName OBJECT-TYPE
       SYNTAX          GsmpNameType
       MAX-ACCESS      read-create
       STATUS          current
       DESCRIPTION
           "The name of the Switch. The first three octets must be an
           Organisationally Unique Identifier (OUI) that identifies
           the manufacturer of the Switch. This is by default set to
           the same value as the gsmpSwitchId object if not
           separately specified. "
       ::= {gsmpSwitchEntry 4 }

   gsmpSwitchPort OBJECT-TYPE
       SYNTAX          Unsigned32
       MAX-ACCESS      read-create
       STATUS          current
       DESCRIPTION
           "The local port number for this Switch Entity."
       REFERENCE
          "General Switch Management Protocol V3: Section 3.1.2"
       ::= { gsmpSwitchEntry 5 }

   gsmpSwitchInstance OBJECT-TYPE
       SYNTAX          Unsigned32(1..16777215)
       MAX-ACCESS     read-only
       STATUS         current
       DESCRIPTION
           "The instance number for the Switch Entity.
           The Instance number is a 24-bit number
           that should be guaranteed to be unique within
           the recent past and to change when the link
           or node comes back up after going down. Zero is
           not a valid instance number."
       ::= { gsmpSwitchEntry 6 }

   gsmpSwitchPartitionType OBJECT-TYPE
       SYNTAX         GsmpPartitionType
       MAX-ACCESS     read-create
       STATUS         current
       DESCRIPTION
           "A switch can assign the specific partition identifier to
           the session by setting the Partition Type to
           fixedPartitionAssigned(3). A switch can specify
           that no partitions are handled in the session by setting
           the Partition Type to noPartition(1)."
       ::= { gsmpSwitchEntry 7 }

   gsmpSwitchPartitionId OBJECT-TYPE
       SYNTAX         GsmpPartitionIdType
       MAX-ACCESS     read-create
       STATUS         current
       DESCRIPTION
           "The Id for this specific switch partition that the switch
           entity represents. If partitions are not used, i.e.
           Partition Type = noPartition(1), then this object is
           undefined."
       ::= { gsmpSwitchEntry 8 }

   gsmpSwitchNotificationMap OBJECT-TYPE
       SYNTAX         BITS {
                             sessionDown(0),
                             sessionUp(1),
                             sendFailureIndication(2),
                             receivedFailureIndication(3),
                             portUpEvent(4),
                             portDownEvent(5),
                             invalidLabelEvent(6),
                             newPortEvent(7),
                             deadPortEvent(8),
                             adjacencyUpdateEvent(9)
                          }
       MAX-ACCESS     read-create
       STATUS         current
       DESCRIPTION
           "This bitmap defines whether a corresponding SNMP
           notification should be sent if an GSMP event is sent
           by the Switch Entity. If the bit is set to 1 a
           notification should be sent. The handling and filtering of
           the SNMP notifications are then further specified in the
           SNMP notification originator application. "
       DEFVAL {{ sessionDown, sessionUp,
              sendFailureIndication, receivedFailureIndication }}
       ::= { gsmpSwitchEntry 9 }

   gsmpSwitchSwitchType OBJECT-TYPE
       SYNTAX           OCTET STRING (SIZE(2))
       MAX-ACCESS       read-create
       STATUS           current
       DESCRIPTION
           "A 16-bit field allocated by the manufacturer
           of the switch. The Switch Type
           identifies the product. When the Switch Type is combined
           with the OUI from the Switch Name the product is
           uniquely identified. "
       ::= { gsmpSwitchEntry 10 }

   gsmpSwitchWindowSize OBJECT-TYPE
       SYNTAX           Unsigned32(1..65535)
       MAX-ACCESS       read-create
       STATUS           current
       DESCRIPTION
           "The maximum number of unacknowledged request messages
           that may be transmitted by the controller without the
           possibility of loss. This field is used to prevent
           request messages from being lost in the switch because of
           overflow in the receive buffer. The field is a hint to
           the controller."
       ::= { gsmpSwitchEntry 11 }

   gsmpSwitchSessionState OBJECT-TYPE
       SYNTAX           INTEGER {
                                   null(1),
                                   synsent(2),
                                   synrcvd(3),
                                   estab(4)
                                  }
       MAX-ACCESS       read-only
       STATUS           current
       DESCRIPTION
           "The state for the existing or potential session that
           this entity is concerned with.
           The NULL state is returned if the proper encapsulation
           data is not yet configured, if the row is not in active
           status or if the session is in NULL state as defined in
           the GSMP specification."
          ::= { gsmpSwitchEntry 12}

   gsmpSwitchStorageType OBJECT-TYPE
           SYNTAX         StorageType
           MAX-ACCESS     read-create
           STATUS         current
           DESCRIPTION
              "The storage type for this switch entity.
             Conceptual rows having the value 'permanent' need not allow
             write-access to any columnar objects in the row."
          DEFVAL { nonVolatile }
          ::= { gsmpSwitchEntry 13 }

   gsmpSwitchRowStatus OBJECT-TYPE
           SYNTAX         RowStatus
           MAX-ACCESS     read-create
           STATUS         current
           DESCRIPTION
              "An object that allows entries in this table to
              be created and deleted using the
              RowStatus convention.
              While the row is in active state it's not
              possible to modify the value of any object
              for that row except the gsmpSwitchNotificationMap
              and the gsmpSwitchRowStatus objects."
          ::= { gsmpSwitchEntry 14 }

    --**************************************************************
    -- GSMP Encapsulation Objects
    --**************************************************************

    --
    -- GSMP ATM Encapsulation Table
    --

    gsmpAtmEncapTable OBJECT-TYPE
          SYNTAX           SEQUENCE OF GsmpAtmEncapEntry
          MAX-ACCESS       not-accessible
          STATUS           current
          DESCRIPTION
              "This table contains the atm encapsulation data
              for the Controller or Switch that uses atm aal5 as
              encapsulation. "
          ::= { gsmpObjects 3 }

    gsmpAtmEncapEntry OBJECT-TYPE
        SYNTAX          GsmpAtmEncapEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
             "An entry in the table showing
             the encapsulation data for a specific
             Switch Controller entity or Switch entity."
        INDEX { gsmpAtmEncapEntityId }
        ::= { gsmpAtmEncapTable 1 }

    GsmpAtmEncapEntry ::= SEQUENCE {
        gsmpAtmEncapEntityId              GsmpNameType,
        gsmpAtmEncapIfIndex               InterfaceIndex,
        gsmpAtmEncapVpi                   AtmVpIdentifier,
        gsmpAtmEncapVci                   AtmVcIdentifier,
        gsmpAtmEncapStorageType           StorageType,
        gsmpAtmEncapRowStatus             RowStatus
        }

    gsmpAtmEncapEntityId OBJECT-TYPE
        SYNTAX          GsmpNameType
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
             "The Controller Id or Switch Id that is unique
             within the operational context of the device. "
        ::= { gsmpAtmEncapEntry 1 }

    gsmpAtmEncapIfIndex OBJECT-TYPE
        SYNTAX         InterfaceIndex
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION
             "The interface index for the virtual channel over which
             the GSMP session is established, i.e., the GSMP control
             channel for LLC/SNAP encapsulated GSMP messages on an
             ATM data link layer."
        ::= { gsmpAtmEncapEntry 2 }

    gsmpAtmEncapVpi OBJECT-TYPE
        SYNTAX         AtmVpIdentifier
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION
             " The VPI value for the virtual channel over which the
             GSMP session is established, i.e., the GSMP control
             channel for LLC/SNAP encapsulated GSMP messages on an
             ATM data link layer."
        DEFVAL { 0 }
           ::= { gsmpAtmEncapEntry 3 }

    gsmpAtmEncapVci OBJECT-TYPE
           SYNTAX         AtmVcIdentifier
           MAX-ACCESS     read-create
           STATUS         current
           DESCRIPTION
              " The VCI value for the virtual channel over which the
              GSMP session is established, i.e., the GSMP control
              channel for LLC/SNAP encapsulated GSMP messages on an
              ATM data link layer."
           DEFVAL { 15 }
           ::= { gsmpAtmEncapEntry 4 }

   gsmpAtmEncapStorageType OBJECT-TYPE
           SYNTAX         StorageType
           MAX-ACCESS     read-create
           STATUS         current
           DESCRIPTION
              "The storage type for this entry. It should have the same
              value as the StorageType in the referring Switch
              Controller entity or Switch entity."
          DEFVAL { nonVolatile }
          ::= { gsmpAtmEncapEntry 5 }

   gsmpAtmEncapRowStatus OBJECT-TYPE
           SYNTAX         RowStatus
           MAX-ACCESS     read-create
           STATUS         current
           DESCRIPTION
              "An object that allows entries in this table to
              be created and deleted using the
              RowStatus convention.
              While the row is in active state it's not
              possible to modify the value of any object
              for that row except the gsmpAtmEncapRowStatus object."
          ::= { gsmpAtmEncapEntry 6 }

    --
    -- GSMP TCP/IP Encapsulation Table
    --

    gsmpTcpIpEncapTable OBJECT-TYPE
          SYNTAX           SEQUENCE OF GsmpTcpIpEncapEntry
          MAX-ACCESS       not-accessible
          STATUS           current
          DESCRIPTION
              "This table contains the encapsulation data
              for the Controller or Switch that uses TCP/IP as
              encapsulation."
        ::= { gsmpObjects 4 }

    gsmpTcpIpEncapEntry OBJECT-TYPE
        SYNTAX          GsmpTcpIpEncapEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
             "An entry in the table showing
             the encapsulation data for a specific
             Switch Controller entity or Switch entity."
        INDEX { gsmpTcpIpEncapEntityId }
        ::= { gsmpTcpIpEncapTable 1 }

    GsmpTcpIpEncapEntry ::= SEQUENCE {
        gsmpTcpIpEncapEntityId              GsmpNameType,
        gsmpTcpIpEncapAddressType           InetAddressType,
        gsmpTcpIpEncapAddress               InetAddress,
        gsmpTcpIpEncapPortNumber            InetPortNumber,
        gsmpTcpIpEncapStorageType           StorageType,
        gsmpTcpIpEncapRowStatus             RowStatus
        }

    gsmpTcpIpEncapEntityId OBJECT-TYPE
        SYNTAX          GsmpNameType
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
             "The Controller or Switch Id is unique
             within the operational context of the device. "
        ::= { gsmpTcpIpEncapEntry 1 }

    gsmpTcpIpEncapAddressType OBJECT-TYPE
        SYNTAX         InetAddressType
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION
             "The type of address in gsmpTcpIpEncapAddress."
        ::= { gsmpTcpIpEncapEntry 2 }

    gsmpTcpIpEncapAddress OBJECT-TYPE
        SYNTAX         InetAddress
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION
             "The IPv4 or IPv6 address used for
             the GSMP session peer."
        ::= { gsmpTcpIpEncapEntry 3 }

    gsmpTcpIpEncapPortNumber OBJECT-TYPE
           SYNTAX         InetPortNumber
           MAX-ACCESS     read-create
           STATUS         current
           DESCRIPTION
              "The TCP port number used for the TCP session
              establishment to the GSMP peer."
           DEFVAL { 6068 }
           ::= { gsmpTcpIpEncapEntry 4 }

   gsmpTcpIpEncapStorageType OBJECT-TYPE
           SYNTAX         StorageType
           MAX-ACCESS     read-create
           STATUS         current
           DESCRIPTION
              "The storage type for this entry. It should have the same
              value as the StorageType in the referring Switch
              Controller entity or Switch entity."
          DEFVAL { nonVolatile }
          ::= { gsmpTcpIpEncapEntry 5 }

    gsmpTcpIpEncapRowStatus OBJECT-TYPE
          SYNTAX          RowStatus
          MAX-ACCESS      read-create
          STATUS          current
          DESCRIPTION
              "An object that allows entries in this table to
              be created and deleted using the
              RowStatus convention.
              While the row is in active state it's not
              possible to modify the value of any object
              for that row except the gsmpTcpIpEncapRowStatus object."
           ::= { gsmpTcpIpEncapEntry 6 }

    --**************************************************************
    -- GSMP Session Objects

    --**************************************************************

    --
    -- GSMP Session table
    --

    gsmpSessionTable OBJECT-TYPE
           SYNTAX          SEQUENCE OF GsmpSessionEntry
           MAX-ACCESS      not-accessible
           STATUS          current
           DESCRIPTION
              "This table represents the sessions between
              Controller and Switch pairs. "
        ::= { gsmpObjects 5 }

    gsmpSessionEntry OBJECT-TYPE
        SYNTAX         GsmpSessionEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "An entry in the table showing
             the session data for a specific Controller and
             Switch pair. Also, statistics for this specific
             session is shown."
        INDEX { gsmpSessionThisSideId, gsmpSessionFarSideId }
        ::= { gsmpSessionTable 1 }

    GsmpSessionEntry ::= SEQUENCE {
        gsmpSessionThisSideId                     GsmpNameType,
        gsmpSessionFarSideId                      GsmpNameType,
        gsmpSessionVersion                        GsmpVersion,
        gsmpSessionTimer                          Integer32,
        gsmpSessionPartitionId                    GsmpPartitionIdType,
        gsmpSessionAdjacencyCount                 Unsigned32,
        gsmpSessionFarSideName                    GsmpNameType,
        gsmpSessionFarSidePort                    Unsigned32,
        gsmpSessionFarSideInstance                Unsigned32,
        gsmpSessionLastFailureCode                Unsigned32,
        gsmpSessionDiscontinuityTime              TimeStamp,
        gsmpSessionStartUptime                    TimeStamp,
        gsmpSessionStatSentMessages               ZeroBasedCounter32,
        gsmpSessionStatFailureInds                ZeroBasedCounter32,
        gsmpSessionStatReceivedMessages           ZeroBasedCounter32,
        gsmpSessionStatReceivedFailures           ZeroBasedCounter32,
        gsmpSessionStatPortUpEvents               ZeroBasedCounter32,
        gsmpSessionStatPortDownEvents             ZeroBasedCounter32,
        gsmpSessionStatInvLabelEvents             ZeroBasedCounter32,
        gsmpSessionStatNewPortEvents              ZeroBasedCounter32,
        gsmpSessionStatDeadPortEvents             ZeroBasedCounter32,
        gsmpSessionStatAdjUpdateEvents            ZeroBasedCounter32
        }

    gsmpSessionThisSideId OBJECT-TYPE
        SYNTAX         GsmpNameType
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "This side ID uniquely identifies the entity that this
             session relates to within the operational
             context of the device. "
        ::= { gsmpSessionEntry 1 }

    gsmpSessionFarSideId OBJECT-TYPE
        SYNTAX         GsmpNameType
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
            "The Far side ID uniquely identifies the entity that this
            session is established against. "
        ::= { gsmpSessionEntry 2 }

   gsmpSessionVersion OBJECT-TYPE
       SYNTAX          GsmpVersion
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
           "The version number of the GSMP protocol being used in
           this session. The version is the result of the
           negotiation by the adjacency protocol."
       ::= { gsmpSessionEntry 3 }

   gsmpSessionTimer OBJECT-TYPE
       SYNTAX          Integer32
       UNITS           "100ms"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
           "The timer specifies the time remaining until the
           adjacency timer expires. The object could take negative
           values since if no valid GSMP messages are
           received in any period of time in excess of three times
           the value of the Timer negotiated by the adjacency
           protocol loss of synchronisation may be declared. The
           timer is specified in units of 100ms."
       ::= { gsmpSessionEntry 4 }

   gsmpSessionPartitionId OBJECT-TYPE
       SYNTAX          GsmpPartitionIdType
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
           "The Partition Id for the specific switch partition that
           this session is concerned with."
       ::= { gsmpSessionEntry 5 }

   gsmpSessionAdjacencyCount OBJECT-TYPE
       SYNTAX          Unsigned32(1..255)
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
           "This object specifies the current number of adjacencies
           that are established with controllers and the switch
           partition that is used for this session. The value
           includes this session."
       ::= { gsmpSessionEntry 6 }

   gsmpSessionFarSideName OBJECT-TYPE
       SYNTAX              GsmpNameType
       MAX-ACCESS          read-only
       STATUS              current
       DESCRIPTION
           "The name of the far side as advertised in the adjacency
           message."
       ::= {gsmpSessionEntry 7}

   gsmpSessionFarSidePort OBJECT-TYPE
       SYNTAX           Unsigned32
       MAX-ACCESS       read-only
       STATUS           current
       DESCRIPTION
           "The local port number of the link across which the
           message is being sent."
       REFERENCE
          "General Switch Management Protocol V3: Section 3.1.2"
       ::= { gsmpSessionEntry 8 }

   gsmpSessionFarSideInstance OBJECT-TYPE
       SYNTAX           Unsigned32(1..16777215)
       MAX-ACCESS       read-only
       STATUS           current
       DESCRIPTION
           "The instance number used for the link during this
           session. The Instance number is a 24-bit number
           that should be guaranteed to be unique within

           the recent past and to change when the link
           or node comes back up after going down. Zero is not
           a valid instance number."
       ::= { gsmpSessionEntry 9 }

   gsmpSessionLastFailureCode OBJECT-TYPE
       SYNTAX           Unsigned32(0..255)
       MAX-ACCESS       read-only
       STATUS           current
       DESCRIPTION
           "This is the last failure code that was received over
           this session. If no failure code have been received, the
           value is zero."
       ::= { gsmpSessionEntry 10 }

   gsmpSessionDiscontinuityTime OBJECT-TYPE
       SYNTAX         TimeStamp
       MAX-ACCESS     read-only
       STATUS         current
       DESCRIPTION
           "The value of sysUpTime on the most recent occasion at
           which one or more of this session's counters
           suffered a discontinuity. If no such discontinuities have
           occurred since then, this object contains the same
           timestamp as gsmpSessionStartUptime ."
        ::= { gsmpSessionEntry 11 }

   gsmpSessionStartUptime OBJECT-TYPE
       SYNTAX         TimeStamp
       MAX-ACCESS     read-only
       STATUS         current
       DESCRIPTION
           " The value of sysUpTime when the session came to
           established state."
       ::= { gsmpSessionEntry 12 }

   gsmpSessionStatSentMessages OBJECT-TYPE
       SYNTAX         ZeroBasedCounter32
       MAX-ACCESS     read-only
       STATUS         current
       DESCRIPTION
           "The number of messages that have been sent in this
           session. All GSMP messages pertaining to this session after
           the session came to established state SHALL
           be counted, also including adjacency protocol messages
           and failure response messages.
           When the counter suffers any discontinuity, then
           the gsmpSessionDiscontinuityTime object indicates when it

           happened."
       ::= { gsmpSessionEntry 13 }

   gsmpSessionStatFailureInds OBJECT-TYPE
       SYNTAX         ZeroBasedCounter32
       MAX-ACCESS     read-only
       STATUS         current
       DESCRIPTION
           "The number of messages that have been sent with a
           failure indication in this session. Warning messages
           SHALL NOT be counted.
           When the counter suffers any discontinuity, then
           the gsmpSessionDiscontinuityTime object indicates when it
           happened."
       REFERENCE
          "General Switch Management Protocol V3: Section 12.1"
       ::= { gsmpSessionEntry 14 }

   gsmpSessionStatReceivedMessages OBJECT-TYPE
       SYNTAX         ZeroBasedCounter32
       MAX-ACCESS     read-only
       STATUS         current
       DESCRIPTION
           "The number of messages that have been received in
           this session. All legal GSMP messages pertaining to this
           session after the session came to established state SHALL
           be counted, also including adjacency protocol messages
           and failure response messages.
           When the counter suffers any discontinuity, then
           the gsmpSessionDiscontinuityTime object indicates when it
           happened."
       ::= { gsmpSessionEntry 15 }

   gsmpSessionStatReceivedFailures OBJECT-TYPE
       SYNTAX         ZeroBasedCounter32
       MAX-ACCESS     read-only
       STATUS         current
       DESCRIPTION
           "The number of messages that have been received in
           this session with a failure indication. Warning messages
           SHALL NOT be counted.
           When the counter suffers any discontinuity, then
           the gsmpSessionDiscontinuityTime object indicates when it
           happened."
       REFERENCE
          "General Switch Management Protocol V3: Section 12.1"
       ::= { gsmpSessionEntry 16 }

   gsmpSessionStatPortUpEvents OBJECT-TYPE
       SYNTAX         ZeroBasedCounter32
       MAX-ACCESS     read-only
       STATUS         current
       DESCRIPTION
           "The number of Port Up events that have been sent or
           received on this session.
           When the counter suffers any discontinuity, then
           the gsmpSessionDiscontinuityTime object indicates when it
           happened."
       REFERENCE
          "General Switch Management Protocol V3: Section 9.1"
       ::= { gsmpSessionEntry 17 }

   gsmpSessionStatPortDownEvents OBJECT-TYPE
       SYNTAX         ZeroBasedCounter32
       MAX-ACCESS     read-only
       STATUS         current
       DESCRIPTION
           "The number of Port Down events that have been sent or
           received on this session.
           When the counter suffers any discontinuity, then
           the gsmpSessionDiscontinuityTime object indicates when it
           happened."
       REFERENCE
          "General Switch Management Protocol V3: Section 9.2"
       ::= { gsmpSessionEntry 18 }

   gsmpSessionStatInvLabelEvents OBJECT-TYPE
       SYNTAX         ZeroBasedCounter32
       MAX-ACCESS     read-only
       STATUS         current
       DESCRIPTION
           "The number of Invalid label events that have been sent
           or received on this session.
           When the counter suffers any discontinuity, then
           the gsmpSessionDiscontinuityTime object indicates when it
           happened."
       REFERENCE
          "General Switch Management Protocol V3: Section 9.3"
       ::= { gsmpSessionEntry 19 }

   gsmpSessionStatNewPortEvents OBJECT-TYPE
       SYNTAX         ZeroBasedCounter32
       MAX-ACCESS     read-only
       STATUS         current
       DESCRIPTION
           "The number of New Port events that have been sent or

           received on this session.
           When the counter suffers any discontinuity, then
           the gsmpSessionDiscontinuityTime object indicates when it
           happened."
       REFERENCE
          "General Switch Management Protocol V3: Section 9.4"
       ::= { gsmpSessionEntry 20 }

   gsmpSessionStatDeadPortEvents OBJECT-TYPE
       SYNTAX         ZeroBasedCounter32
       MAX-ACCESS     read-only
       STATUS         current
       DESCRIPTION
           "The number of Dead Port events that have been sent or
           received on this session.
           When the counter suffers any discontinuity, then
           the gsmpSessionDiscontinuityTime object indicates when it
           happened."
       REFERENCE
           "General Switch Management Protocol V3: Section 9.5"
         ::= { gsmpSessionEntry 21 }

   gsmpSessionStatAdjUpdateEvents OBJECT-TYPE
         SYNTAX         ZeroBasedCounter32
         MAX-ACCESS     read-only
         STATUS         current
         DESCRIPTION
            "The number of Adjacency Update events that have been sent
            or received on this session.
            When the counter suffers any discontinuity, then
            the gsmpSessionDiscontinuityTime object indicates when it
            happened."
         REFERENCE
           "General Switch Management Protocol V3: Section 9.6"
         ::= { gsmpSessionEntry 22 }

   -- **************************************************************
   -- GSMP Notifications
   -- **************************************************************

   --
   -- Notification objects
   --

   gsmpEventPort OBJECT-TYPE
         SYNTAX         Unsigned32
         MAX-ACCESS     accessible-for-notify
         STATUS         current
         DESCRIPTION
            "This object specifies the Port Number that is
            carried in this event."
         ::= { gsmpNotificationsObjects 1 }

   gsmpEventPortSessionNumber OBJECT-TYPE
         SYNTAX         Unsigned32
         MAX-ACCESS     accessible-for-notify
         STATUS         current
         DESCRIPTION
            "This object specifies the Port Session Number that is
            carried in this event."
         ::= { gsmpNotificationsObjects 2 }

   gsmpEventSequenceNumber OBJECT-TYPE
         SYNTAX         Unsigned32
         MAX-ACCESS     accessible-for-notify
         STATUS         current
         DESCRIPTION
            "This object specifies the Event Sequence Number that is
            carried in this event."
         ::= { gsmpNotificationsObjects 3 }

   gsmpEventLabel OBJECT-TYPE
         SYNTAX          GsmpLabelType
         MAX-ACCESS      accessible-for-notify
         STATUS          current
         DESCRIPTION
            "This object specifies the Label that is
            carried in this event."
         ::= { gsmpNotificationsObjects 4 }

   --
   -- Notifications
   --

    gsmpSessionDown NOTIFICATION-TYPE
         OBJECTS {
                   gsmpSessionStartUptime,
                   gsmpSessionStatSentMessages,
                   gsmpSessionStatFailureInds,
                   gsmpSessionStatReceivedMessages,
                   gsmpSessionStatReceivedFailures,
                   gsmpSessionStatPortUpEvents,
                   gsmpSessionStatPortDownEvents,
                   gsmpSessionStatInvLabelEvents,
                   gsmpSessionStatNewPortEvents,
                   gsmpSessionStatDeadPortEvents,
                   gsmpSessionStatAdjUpdateEvents
                   }
          STATUS current
          DESCRIPTION
              "When it has been enabled, this notification is
              generated whenever a session is taken down, regardless
              of whether the session went down normally or not.
              Its purpose is to allow a management application
              (primarily an accounting application) that is
              monitoring the session statistics to receive the final
              values of these counters, so that the application can
              properly account for the amounts the counters were
              incremented since the last time the application polled
              them. The gsmpSessionStartUptime object provides the
              total amount of time that the session was active.

              This notification is not a substitute for polling the
              session statistic counts. In particular, the count
              values reported in this notification cannot be assumed
             to be the complete totals for the life of the session,
             since they may have wrapped while the
             session was up.

             The session to which this notification
             applies is identified by the gsmpSessionThisSideId and
             gsmpSessionFarSideId which could be inferred from the
             Object Identifiers of the objects contained in the
             notification.
             An instance of this notification will contain exactly
             one instance of each of its objects, and these objects
             will all belong to the same conceptual row of the
             gsmpSessionTable."
    ::= { gsmpNotifications 1 }

    gsmpSessionUp NOTIFICATION-TYPE
        OBJECTS {
                  gsmpSessionFarSideInstance
                  }
        STATUS current
        DESCRIPTION
            "When it has been enabled, this notification is
            generated when new session is established.

            The new session is identified by the gsmpSessionThisSideId
            and gsmpSessionFarSideId which could be inferred from the
            Object Identifier of the gsmpSessionFarSideInstance object

            contained in the notification."
    ::= { gsmpNotifications 2 }

    gsmpSentFailureInd NOTIFICATION-TYPE
        OBJECTS {
                  gsmpSessionLastFailureCode,
                  gsmpSessionStatFailureInds
                  }
        STATUS current
        DESCRIPTION
            "When it has been enabled, this notification is
            generated when a message with a failure indication was
            sent.

            The notification indicates a change in the value of
            gsmpSessionStatFailureInds. The
            gsmpSessionLastFailureCode contains the failure
            reason.

            The session to which this notification
            applies is identified by the gsmpSessionThisSideId and
            gsmpSessionFarSideId which could be inferred from the
            Object Identifiers of the objects contained in the
            notification."
    ::= { gsmpNotifications 3 }

    gsmpReceivedFailureInd NOTIFICATION-TYPE
        OBJECTS {
                  gsmpSessionLastFailureCode,
                  gsmpSessionStatReceivedFailures
                  }
        STATUS current
        DESCRIPTION
            "When it has been enabled, this notification is
            generate when a message with a failure indication
            is received.

            The notification indicates a change in the value of
            gsmpSessionStatReceivedFailures. The
            gsmpSessionLastFailureCode contains the failure
            reason.

            The session to which this notification
            applies is identified by the gsmpSessionThisSideId and
            gsmpSessionFarSideId which could be inferred from the
            Object Identifiers of the objects contained in the
            notification."
    ::= { gsmpNotifications 4 }

    gsmpPortUpEvent NOTIFICATION-TYPE
        OBJECTS {
                  gsmpSessionStatPortUpEvents,
                  gsmpEventPort,
                  gsmpEventPortSessionNumber,
                  gsmpEventSequenceNumber
                  }
        STATUS current
        DESCRIPTION
            "When it has been enabled, this notification is
            generated when a Port Up Event occurs.

            The notification indicates a change in the value of
            gsmpSessionStatPortUpEvents.

            The session to which this notification
            applies is identified by the gsmpSessionThisSideId and
            gsmpSessionFarSideId which could be inferred from the
            Object Identifier of the gsmpSessionStatPortUpEvents
            object contained in the notification."
    ::= { gsmpNotifications 5 }

    gsmpPortDownEvent NOTIFICATION-TYPE
        OBJECTS {
                  gsmpSessionStatPortDownEvents,
                  gsmpEventPort,
                  gsmpEventPortSessionNumber,
                  gsmpEventSequenceNumber
                  }
        STATUS current
        DESCRIPTION
            "When it has been enabled, this notification is
            generated when a Port Down Event occurs.

            The notification indicates a change in the value of
            gsmpSessionStatPortDownEvents.

            The session to which this notification
            applies is identified by the gsmpSessionThisSideId and
            gsmpSessionFarSideId which could be inferred from the
            Object Identifier of the gsmpSessionStatPortDownEvents
            object contained in the notification."
    ::= { gsmpNotifications 6 }

    gsmpInvalidLabelEvent NOTIFICATION-TYPE
        OBJECTS {
                  gsmpSessionStatInvLabelEvents,
                  gsmpEventPort,
                  gsmpEventLabel,
                  gsmpEventSequenceNumber
                  }
        STATUS current
        DESCRIPTION
            "When it has been enabled, this notification is
            generated when an Invalid Label Event occurs.

            The notification indicates a change in the value of
            gsmpSessionStatInvLabelEvents.

            The session to which this notification
            applies is identified by the gsmpSessionThisSideId and
            gsmpSessionFarSideId which could be inferred from the
            Object Identifier of the gsmpSessionStatInvLabelEvents
            object contained in the notification."
    ::= { gsmpNotifications 7 }

    gsmpNewPortEvent NOTIFICATION-TYPE
        OBJECTS {
                  gsmpSessionStatNewPortEvents,
                  gsmpEventPort,
                  gsmpEventPortSessionNumber,
                  gsmpEventSequenceNumber
                  }
        STATUS current
        DESCRIPTION
            "When it has been enabled, this notification is
            generated when a New Port Event occurs.

            The notification indicates a change in the value of
            gsmpSessionStatNewPortEvents.

            The session to which this notification
            applies is identified by the gsmpSessionThisSideId and
            gsmpSessionFarSideId which could be inferred from the
            Object Identifier of the gsmpSessionStatNewPortEvents
            object contained in the notification."
    ::= { gsmpNotifications 8 }

    gsmpDeadPortEvent NOTIFICATION-TYPE
        OBJECTS {
                  gsmpSessionStatDeadPortEvents,
                  gsmpEventPort,
                  gsmpEventPortSessionNumber,
                  gsmpEventSequenceNumber
                  }
        STATUS current
        DESCRIPTION
            "When it has been enabled, this notification is
            generated when a Dead Port Event occurs.

            The notification indicates a change in the value of
            gsmpSessionStatDeadPortEvents.

            The session to which this notification
            applies is identified by the gsmpSessionThisSideId and
            gsmpSessionFarSideId which could be inferred from the
            Object Identifier of the gsmpSessionStatDeadPortEvents
            object contained in the notification."
    ::= { gsmpNotifications 9 }

    gsmpAdjacencyUpdateEvent NOTIFICATION-TYPE
        OBJECTS {
                  gsmpSessionAdjacencyCount,
                  gsmpSessionStatAdjUpdateEvents,
                  gsmpEventSequenceNumber
                  }
        STATUS current
        DESCRIPTION
            "When it has been enabled, this notification is
            generated when an Adjacency Update Event occurs.

            The gsmpSessionAdjacencyCount contains the new value of
            the number of adjacencies
            that are established with controllers and the switch
            partition that is used for this session.

            The notification indicates a change in the value of
            gsmpSessionStatAdjUpdateEvents.

            The session to which this notification
            applies is identified by the gsmpSessionThisSideId and
            gsmpSessionFarSideId which could be inferred from the
            Object Identifier of the gsmpSessionAdjacencyCount
            or the gsmpSessionStatAdjUpdateEvents object contained
            in the notification."
    ::= { gsmpNotifications 10 }

    --**************************************************************
    -- GSMP Compliance
    --**************************************************************

    gsmpGroups            OBJECT IDENTIFIER ::= { gsmpConformance 1 }
    gsmpCompliances       OBJECT IDENTIFIER ::= { gsmpConformance 2 }

    gsmpModuleCompliance MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION
            "The compliance statement for agents that support
            the GSMP MIB."
        MODULE -- this module
        MANDATORY-GROUPS { gsmpGeneralGroup
                            }
        GROUP gsmpControllerGroup
        DESCRIPTION
            "This group is mandatory for all Switch
            Controllers"

        GROUP gsmpSwitchGroup
        DESCRIPTION
            "This group is mandatory for all Switches"

        GROUP gsmpAtmEncapGroup
        DESCRIPTION
            "This group must be supported if ATM is used for GSMP
            encapsulation. "

        GROUP gsmpTcpIpEncapGroup
        DESCRIPTION
            "This group must be supported if TCP/IP is used for GSMP
            encapsulation. "

        OBJECT gsmpTcpIpEncapAddressType
        SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2),
                                 ipv4z(3), ipv6z(4) }
        DESCRIPTION
           "An implementation is only required to support
            'unknown(0)', and IPv4 addresses. Supporting addresses with
            zone index or IPv6 addresses are optional. Defining
            Internet addresses by using DNS domain names are not
            allowed."

        OBJECT gsmpTcpIpEncapAddress
        SYNTAX InetAddress (SIZE(0|4|8|16|20))
        DESCRIPTION
           "An implementation is only required to support

           IPv4 addresses. Supporting addresses with zone index or IPv6
           addresses are optional."

        GROUP gsmpNotificationObjectsGroup
        DESCRIPTION
            "This group must be supported if notifications
            are supported. "

        GROUP gsmpNotificationsGroup
        DESCRIPTION
            "This group must be supported if notifications
            are supported. "
        ::= { gsmpCompliances 1 }

    -- units of conformance

    gsmpGeneralGroup OBJECT-GROUP
        OBJECTS {
        gsmpSessionVersion,
        gsmpSessionTimer,
        gsmpSessionPartitionId,
        gsmpSessionAdjacencyCount,
        gsmpSessionFarSideName,
        gsmpSessionFarSidePort,
        gsmpSessionFarSideInstance,
        gsmpSessionLastFailureCode,
        gsmpSessionDiscontinuityTime,
        gsmpSessionStartUptime,
        gsmpSessionStatSentMessages,
        gsmpSessionStatFailureInds,
        gsmpSessionStatReceivedMessages,
        gsmpSessionStatReceivedFailures,
        gsmpSessionStatPortUpEvents,
        gsmpSessionStatPortDownEvents,
        gsmpSessionStatInvLabelEvents,
        gsmpSessionStatNewPortEvents,
        gsmpSessionStatDeadPortEvents,
        gsmpSessionStatAdjUpdateEvents
        }
        STATUS current
        DESCRIPTION
             "Objects that apply to all GSMP implementations."
        ::= { gsmpGroups 1 }

    gsmpControllerGroup OBJECT-GROUP
        OBJECTS {
        gsmpControllerMaxVersion,
        gsmpControllerTimer,
        gsmpControllerPort,
        gsmpControllerInstance,
        gsmpControllerPartitionType,
        gsmpControllerPartitionId,
        gsmpControllerDoResync,
        gsmpControllerNotificationMap,
        gsmpControllerSessionState,
        gsmpControllerStorageType,
        gsmpControllerRowStatus
        }
       STATUS       current
       DESCRIPTION
             "Objects that apply GSMP implementations of
             Switch Controllers."
       ::= { gsmpGroups 2 }

    gsmpSwitchGroup OBJECT-GROUP
        OBJECTS {
        gsmpSwitchMaxVersion,
        gsmpSwitchTimer,
        gsmpSwitchName,
        gsmpSwitchPort,
        gsmpSwitchInstance,
        gsmpSwitchPartitionType,
        gsmpSwitchPartitionId,
        gsmpSwitchNotificationMap,
        gsmpSwitchSwitchType,
        gsmpSwitchWindowSize,
        gsmpSwitchSessionState,
        gsmpSwitchStorageType,
        gsmpSwitchRowStatus
        }
       STATUS       current
       DESCRIPTION
             "Objects that apply GSMP implementations of
             Switches."
       ::= { gsmpGroups 3 }

    gsmpAtmEncapGroup OBJECT-GROUP
        OBJECTS {
        gsmpAtmEncapIfIndex,
        gsmpAtmEncapVpi,
        gsmpAtmEncapVci,
        gsmpAtmEncapStorageType,
        gsmpAtmEncapRowStatus
        }
       STATUS       current
       DESCRIPTION
             "Objects that apply to GSMP implementations that
             supports ATM for GSMP encapsulation."
       ::= { gsmpGroups 4 }

    gsmpTcpIpEncapGroup OBJECT-GROUP
        OBJECTS {
        gsmpTcpIpEncapAddressType,
        gsmpTcpIpEncapAddress,
        gsmpTcpIpEncapPortNumber,
        gsmpTcpIpEncapStorageType,
        gsmpTcpIpEncapRowStatus
        }
       STATUS       current
       DESCRIPTION
             "Objects that apply to GSMP implementations that
             supports TCP/IP for GSMP encapsulation."
       ::= { gsmpGroups 5 }

     gsmpNotificationObjectsGroup OBJECT-GROUP
        OBJECTS {
        gsmpEventPort,
        gsmpEventPortSessionNumber,
        gsmpEventSequenceNumber,
        gsmpEventLabel
        }
       STATUS       current
       DESCRIPTION
             "Objects that are contained in the notifications."
       ::= { gsmpGroups 6 }

    gsmpNotificationsGroup NOTIFICATION-GROUP
        NOTIFICATIONS {
        gsmpSessionDown,
        gsmpSessionUp,
        gsmpSentFailureInd,
        gsmpReceivedFailureInd,
        gsmpPortUpEvent,
        gsmpPortDownEvent,
        gsmpInvalidLabelEvent,
        gsmpNewPortEvent,
        gsmpDeadPortEvent,
        gsmpAdjacencyUpdateEvent
        }
       STATUS current
       DESCRIPTION
             "The notifications which indicate specific changes
             in the value of objects gsmpSessionTable"
       ::= { gsmpGroups 7 }

END
