-- =====================================================================
-- Copyright (c) 2004-2013 New H3C Tech. Co., Ltd. All rights reserved.
--
-- Description:
--      This MIB module is for the management of the Fibre Channel
--      Ping functionality.
-- Reference:
-- Version: V1.0
-- History:
--      V1.0 Initial version created by liuyanchao 2013-03-15
-- =====================================================================
HH3C-FC-PING-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, Unsigned32, Integer32
        FROM SNMPv2-SMI
    RowStatus, TruthValue
        FROM SNMPv2-TC
    Hh3cFcVsanIndex, Hh3cFcAddressType, Hh3cFcAddress,
    Hh3cFcStartOper
        FROM HH3C-FC-TC-MIB
    hh3cSan
        FROM HH3C-VSAN-MIB;


hh3cFcPing  MODULE-IDENTITY
    LAST-UPDATED "201303150000Z"
    ORGANIZATION "New H3C Tech. Co., Ltd."
    CONTACT-INFO
        "Platform Team New H3C Tech. Co., Ltd.
         Hai-Dian District Beijing P.R. China
         http://www.h3c.com
         Zip:100085"
    DESCRIPTION
        "This MIB module is for the management of the Fibre Channel
         Ping functionality."
    REVISION "201303150000Z"
    DESCRIPTION
        "Initial version of this MIB module."
    ::= { hh3cSan 5 }

hh3cFcPingObjects             OBJECT IDENTIFIER
    ::= { hh3cFcPing 1 }
hh3cFcPingConfigurations      OBJECT IDENTIFIER
    ::= { hh3cFcPingObjects 1 }
hh3cFcPingStatistics          OBJECT IDENTIFIER
    ::= { hh3cFcPingObjects 2 }
hh3cFcPingNotifications       OBJECT IDENTIFIER
    ::= { hh3cFcPingObjects 3 }
hh3cFcPingNotifyPrefix        OBJECT IDENTIFIER
    ::= { hh3cFcPingNotifications 0 }

-- FC Ping table

hh3cFcPingTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF Hh3cFcPingEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "A table of FC ping entries containing a group of
         FC ping requests that need to be executed at the
         agent."
    ::= { hh3cFcPingConfigurations 1 }

hh3cFcPingEntry OBJECT-TYPE
    SYNTAX        Hh3cFcPingEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "A FC ping request entry that need to be executed
         at the agent."
    INDEX         { hh3cFcPingIndex }
    ::= { hh3cFcPingTable 1 }

Hh3cFcPingEntry ::= SEQUENCE {
    hh3cFcPingIndex              Unsigned32,
    hh3cFcPingVsan               Hh3cFcVsanIndex,
    hh3cFcPingAddressType        Hh3cFcAddressType,
    hh3cFcPingAddress            Hh3cFcAddress,
    hh3cFcPingPacketCount        Unsigned32,
    hh3cFcPingPayloadSize        Unsigned32,
    hh3cFcPingTimeout            Unsigned32,
    hh3cFcPingDelay              Unsigned32,
    hh3cFcPingAgeInterval        Unsigned32,
    hh3cFcPingAdminStatus        Hh3cFcStartOper,
    hh3cFcPingOperStatus         INTEGER,
    hh3cFcPingTrapOnCompletion   TruthValue,
    hh3cFcPingRowStatus          RowStatus
}

hh3cFcPingIndex OBJECT-TYPE
    SYNTAX        Unsigned32 (1..65535)
    MAX-ACCESS    accessible-for-notify
    STATUS        current
    DESCRIPTION
        "The index of the current FC ping entry.  This object
         identifies a FC ping request entry uniquely in a
         specified VSAN (Virtual Storage Area Network)."
    ::= { hh3cFcPingEntry 1 }

hh3cFcPingVsan OBJECT-TYPE
    SYNTAX        Hh3cFcVsanIndex
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
        "The VSAN on which the FC ping request will be
         performed.  If the corresponding instance value of
         hh3cFcPingOperStatus is 'inProgress', the object
         cannot be modified."
    ::= { hh3cFcPingEntry 2 }

hh3cFcPingAddressType OBJECT-TYPE
    SYNTAX        Hh3cFcAddressType
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
        "The type of the corresponding instance of
         hh3cFcPingAddress object."
    DEFVAL        { fcid }
    ::= { hh3cFcPingEntry 3 }

hh3cFcPingAddress OBJECT-TYPE
    SYNTAX        Hh3cFcAddress
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
        "The address to which the route will be pinged.

         This object will contain an 8 octet long WWN(World Wide Name),
         if the value of the associated instance of hh3cFcPingAddressType
         object is 'wwn'.

         This object will contain a 3 octet long Fibre Channel Address ID,
         if the value of the associated instance of hh3cFcPingAddressType
         object is 'fcid'."
    ::= { hh3cFcPingEntry 4 }

hh3cFcPingPacketCount OBJECT-TYPE
    SYNTAX      Unsigned32 (1..2147483647)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The number of FC ping packets to be sent to the
         target in this sequence."
    DEFVAL        { 5 }
    ::= { hh3cFcPingEntry 5 }

hh3cFcPingPayloadSize OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object specifies the size of the FC ping packet
         payload to be sent to the target in this sequence."
    ::= { hh3cFcPingEntry 6 }

hh3cFcPingTimeout OBJECT-TYPE
    SYNTAX        Unsigned32 (1..10)
    UNITS         "seconds"
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
        "The value of timeout for this FC ping request."
    DEFVAL        { 5 }
    ::= { hh3cFcPingEntry 7 }

hh3cFcPingDelay OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The minimum amount of time to wait before sending
         the next packet in a sequence, after receiving a
         response or declaring a timeout for a previously
         transmitted packet."
    ::= { hh3cFcPingEntry 8 }

hh3cFcPingAgeInterval OBJECT-TYPE
    SYNTAX        Unsigned32 (500..900)
    UNITS         "seconds"
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
        "The interval time after a FC ping test completes
         before the entry is aged out."
    DEFVAL        { 500 }
    ::= { hh3cFcPingEntry 9 }

hh3cFcPingAdminStatus OBJECT-TYPE
    SYNTAX        Hh3cFcStartOper
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
        "The administrative status of each hh3cFcPingEntry.

         The object has two values:
         enable     -  Activate the entry.
         disable    -  Deactivate the entry.

         When the FC ping entry is executing, this object cannot be
         modified.  If this object is read at such a time, a value of
         'enable' will be returned.  When the test finishes, the value
         of this object will be set to 'disable'."
    DEFVAL        { disable }
    ::= { hh3cFcPingEntry 10 }

hh3cFcPingOperStatus OBJECT-TYPE
    SYNTAX        INTEGER {
      inProgress(1),     -- FC ping in progress
      complete(2),       -- FC ping complete
      disabled(3),       -- FC ping disabled
      failed(4)          -- FC ping failed
      }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This object indicates the operational status
         of this hh3cFcPingEntry.

         The value specifications are listed as follows:
         inProgress     - FC ping is in progress.
         complete       - FC ping is complete.
         disabled       - FC ping is disabled.
         failed         - FC ping has failed due to resource limitations."
    ::= { hh3cFcPingEntry 11 }

hh3cFcPingTrapOnCompletion OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
        "This object indicates that if hh3cFcPingCompletionNotify
         notification should be generated or not when the corresponding
         ping sequence completes."
    DEFVAL        { false }
    ::= { hh3cFcPingEntry 12 }

hh3cFcPingRowStatus OBJECT-TYPE
    SYNTAX        RowStatus
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
        "The status of this conceptual row."
    ::= { hh3cFcPingEntry 13 }

-- FC Ping Statistics Table

hh3cFcPingStatTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF Hh3cFcPingStatEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "A table of FC ping statistics.
         This table notes the FC ping statistics of a FC ping test
         associated with an entry in the hh3cFcPingTable."
    ::= { hh3cFcPingStatistics 1 }

hh3cFcPingStatEntry OBJECT-TYPE
    SYNTAX        Hh3cFcPingStatEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "A FC ping statistics entry.

         An entry will be created automatically in this table when the
         hh3cFcPingRowStatus of a ping request in the hh3cFcPingTable
         is set to 'active'.

         The entry in this table will have the same indices as the entry
         that in the hh3cFcPingTable.

         An entry in this table will be deleted when the corresponding
         entry in the hh3cFcPingTable is deleted."
    INDEX         { hh3cFcPingIndex }
    ::= { hh3cFcPingStatTable 1 }

Hh3cFcPingStatEntry ::= SEQUENCE {
    hh3cFcPingReqPackets      Unsigned32,
    hh3cFcPingResPackets      Unsigned32,
    hh3cFcPingMinTime         Integer32,
    hh3cFcPingAverageTime     Integer32,
    hh3cFcPingMaxTime         Integer32,
    hh3cFcPingTimeoutNum      Unsigned32
}

hh3cFcPingReqPackets OBJECT-TYPE
    SYNTAX        Unsigned32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The number of FC ping packets request in this sequence."
    ::= { hh3cFcPingStatEntry 1 }

hh3cFcPingResPackets OBJECT-TYPE
    SYNTAX        Unsigned32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The number of FC ping packets response in this sequence."
    ::= { hh3cFcPingStatEntry 2 }

hh3cFcPingMinTime OBJECT-TYPE
    SYNTAX        Integer32
    UNITS         "microseconds"
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The minimum round trip time of all the packets that
         have been sent in this sequence."
    ::= { hh3cFcPingStatEntry 3 }

hh3cFcPingAverageTime OBJECT-TYPE
    SYNTAX        Integer32
    UNITS         "microseconds"
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The average round trip time of all the packets that
         have been sent in this sequence."
    ::= { hh3cFcPingStatEntry 4 }

hh3cFcPingMaxTime OBJECT-TYPE
    SYNTAX        Integer32
    UNITS         "microseconds"
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The maximum round trip time of all the packets that
         have been sent in this sequence."
    ::= { hh3cFcPingStatEntry 5 }


hh3cFcPingTimeoutNum OBJECT-TYPE
    SYNTAX        Unsigned32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The number of timeouts encountered in this sequence."
    ::= { hh3cFcPingStatEntry 6 }

-- Notifications

hh3cFcPingCompletionNotify NOTIFICATION-TYPE
    OBJECTS       { hh3cFcPingIndex,
                    hh3cFcPingVsan,
                    hh3cFcPingAddressType,
                    hh3cFcPingAddress,
                    hh3cFcPingReqPackets,
                    hh3cFcPingResPackets}
    STATUS        current
    DESCRIPTION
        "When a FC ping test is finished and the instance of
         hh3cFcPingTrapOnCompletion associated with the test
         is set to 'true', this notification occurred."
    ::= { hh3cFcPingNotifyPrefix 1 }

END
