-- *****************************************************************
-- QTECH-PING-MIB.mib:  Qtech Ping MIB file
--
-- March 2002, Wuzg
--
-- Copyright (c) 2002 by Qtech Networks Co.,Ltd.
-- All rights reserved.
-- 
-- *****************************************************************
--

QTECH-PING-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        IpAddress,
        Unsigned32,
        Integer32
                FROM SNMPv2-SMI
        TruthValue,
        RowStatus
                FROM SNMPv2-TC
        MODULE-COMPLIANCE,
        OBJECT-GROUP
                FROM SNMPv2-CONF
        IfIndex
                FROM QTECH-TC                
        qtechMgmt
                FROM QTECH-SMI;

qtechPingMIB MODULE-IDENTITY
        LAST-UPDATED "200203200000Z"
        ORGANIZATION "Qtech Networks Co.,Ltd."
        CONTACT-INFO
                " 
                Tel: 4008-111-000 

                E-mail: service@qtech.com.cn"
        DESCRIPTION
                "This module defines qtech ping mibs."
        REVISION      "200203200000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { qtechMgmt 3}

qtechPingMIBObjects OBJECT IDENTIFIER ::= { qtechPingMIB 1 }

qtechPingTable OBJECT-TYPE
        SYNTAX SEQUENCE OF QtechPingEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
               "A table of ping request entries."
        ::= { qtechPingMIBObjects 1 }
    
qtechPingEntry OBJECT-TYPE
        SYNTAX QtechPingEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
                "Entry contains ping parameters and results.
                
                A management station wishing to create an entry should
                first generate a pseudo-random serial number to be used
                as the index to a ping entry.  The station should
                then create the associated entry.
                
                We must set all specifies valid values for the 
                non-defaulted configuration objects, certainly, it should
                also modify  the default values for the other configuration 
                objects if the defaults are not appropriate.
                                       
                Once the appropriate instance of all the configuration
                objects have been created or set,the row status should be set
                to active to initiate the request.  

                Once the ping sequence has been activated, it cannot be
                stopped -- it will run until the configured number of
                packets have been sent.

                Once the sequence completes, the management station should
                retrieve the values of the status objects of interest, and
                should then delete the entry.  In order to prevent old
                entries from clogging the table, entries will be aged out,
                but an entry will never be deleted within 5 minutes of
                completing." 
        INDEX { qtechPingIndex }
        ::= { qtechPingTable 1 }
        
QtechPingEntry ::= 
        SEQUENCE {
                qtechPingIndex Integer32,
                qtechPingAddress IpAddress,
                qtechPingDataLength Unsigned32,
                qtechPingTimes Unsigned32,
                qtechPingTimeOuts Unsigned32,
                qtechPingReturns Unsigned32,
                qtechPingMaxTime Unsigned32,
                qtechPingAvTime Unsigned32,
                qtechPingMinTime Unsigned32,
                qtechPingCompleted TruthValue,
                qtechPingEntryStauts RowStatus,
                qtechPingSourceIp    IpAddress,
                qtechPingSourceInterfaceIndex IfIndex,
                qtechPingTypeOfService    Unsigned32 
                
        }

qtechPingIndex OBJECT-TYPE
        SYNTAX Integer32(1..2147483647)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
               "Object which specifies a unique entry in the
                qtechPingTable.  A management station wishing
                to initiate a ping operation should use a
                pseudo-random value for this object when creating
                or modifying an instance of a qtechPingEntry.
                The RowStatus semantics of the qtechPingEntryStatus
                object will prevent access conflicts."
        ::= { qtechPingEntry 1 }
    
qtechPingAddress OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Pinged host ip address."
        ::= { qtechPingEntry 2 }
    
qtechPingDataLength OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Pinged ICMP echo datagram's data length."
        DEFVAL { 100 }
        ::= { qtechPingEntry 3 }
    
qtechPingTimes OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Pimes the ICMP echo datagrams will be sent."
        DEFVAL { 5 }
        ::= { qtechPingEntry 4 }
    
qtechPingTimeOuts OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION 
            "Ping but no echo from required address, the time last
            for time out, in milliseconds."
        DEFVAL { 2000 }
        ::= { qtechPingEntry 5 }
    
qtechPingReturns OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "How many echo request has been return by a echo reply."
        ::= { qtechPingEntry 6 }
            
qtechPingMaxTime OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Max return time of the echo reply."
        ::= { qtechPingEntry 7 }
    
qtechPingAvTime OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Average returned time of the echo reply of that reply
            but not time out."
        ::= { qtechPingEntry 8 }
    
qtechPingMinTime OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Min returned time of the echo reply."
        ::= { qtechPingEntry 9 }
    
qtechPingCompleted OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "While the ping process has completed the value of this field
             will be true(1), else false(2)."
        ::= { qtechPingEntry 10 }
    
qtechPingEntryStauts OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "entry status for this list."
        ::= { qtechPingEntry 11 }

qtechPingSourceIp OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "the address of source interface."
        ::= { qtechPingEntry 12 }

qtechPingSourceInterfaceIndex OBJECT-TYPE
    SYNTAX     IfIndex
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The ifIndex value of this source interface."
    ::= { qtechPingEntry 13 }

qtechPingTypeOfService OBJECT-TYPE
        SYNTAX Unsigned32(0..255)
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "the value of type of service."
        ::= { qtechPingEntry 14 }
     
-- conformance information

qtechPingMIBConformance OBJECT IDENTIFIER ::= { qtechPingMIB 2 }
qtechPingMIBCompliances OBJECT IDENTIFIER ::= { qtechPingMIBConformance 1 }
qtechPingMIBGroups      OBJECT IDENTIFIER ::= { qtechPingMIBConformance 2 }


-- compliance statements

qtechPingMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the Qtech Ping MIB"
        MODULE  -- this module
                MANDATORY-GROUPS { qtechPingMIBGroup }
        ::= { qtechPingMIBCompliances 1 }
        
        
-- units of conformance

qtechPingMIBGroup OBJECT-GROUP
        OBJECTS {
                qtechPingIndex ,
                qtechPingAddress ,
                qtechPingDataLength ,
                qtechPingTimes ,
                qtechPingTimeOuts ,
                qtechPingReturns ,
                qtechPingMaxTime ,
                qtechPingAvTime ,
                qtechPingMinTime ,
                qtechPingCompleted ,
                qtechPingEntryStauts,
                qtechPingSourceIp    ,
                qtechPingSourceInterfaceIndex ,
                qtechPingTypeOfService      
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing ping (echo) ability to a
                Qtech agent."
        ::= { qtechPingMIBGroups 1 }        
        

-- hcb add

traceRouteMIBObjects OBJECT IDENTIFIER ::= { qtechPingMIB 3 }

-- traceRouteTable

traceRouteTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF TraceRouteEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
                "A table of trace route request entries.
                 The traceRouteTable will contain a set of
                 trace route requests that need to be executed
                 at the agent."
        ::= { traceRouteMIBObjects 1 }

-- traceRouteEntry

traceRouteEntry OBJECT-TYPE
        SYNTAX        TraceRouteEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
                "A trace route request entry."
        INDEX { traceRouteIndex }
        ::= { traceRouteTable 1 }

TraceRouteEntry ::=
        SEQUENCE {
            traceRouteIndex              Unsigned32,
            traceRouteTargetAddr         IpAddress,
            traceRouteHopCount           Unsigned32,
            traceRoutePingCount          Unsigned32,
            traceRoutePingTimeout        Unsigned32,
            traceRouteRowStatus          RowStatus
        }

traceRouteIndex OBJECT-TYPE
        SYNTAX        Unsigned32 (1..2147483647)
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The index of a trace route entry. "
        ::= { traceRouteEntry 1 }

traceRouteTargetAddr OBJECT-TYPE
        SYNTAX        IpAddress
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
                "The address of the device to which the route is to be traced."
        ::= { traceRouteEntry 2 }

traceRouteHopCount OBJECT-TYPE
 	SYNTAX        Unsigned32(1..100)
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
                "Wait timeout milliseconds for each reply."
        DEFVAL { 30 }
        ::= { traceRouteEntry 3 }

traceRoutePingCount OBJECT-TYPE
 	SYNTAX        Unsigned32(1..6)
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
                "Repeat count for each echo."
        DEFVAL { 3 }
        ::= { traceRouteEntry 4 }

traceRoutePingTimeout OBJECT-TYPE
        SYNTAX 	      Unsigned32(1..60000)
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
                "Wait timeout milliseconds for each reply."
        DEFVAL { 2000 }
        ::= { traceRouteEntry 5 }


traceRouteRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
            "entry status for this list."
        ::= { traceRouteEntry 6 }

-- traceRouteHopsTable

traceRouteHopsTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF TraceRouteHopsEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
                "A table of trace route hop results.
                 This table contains the hop-by-hop result
                 of a trace route test performed for an
                 entry in the traceRouteTable."
        ::= { traceRouteMIBObjects 2 }

traceRouteHopsEntry OBJECT-TYPE
        SYNTAX        TraceRouteHopsEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
                "A trace route hop entry."
        INDEX { traceRouteIndex, traceRouteHopIndex }
        ::= { traceRouteHopsTable 1 }

TraceRouteHopsEntry ::= SEQUENCE {
        traceRouteHopIndex               Unsigned32,
        traceRouteHopPingIndex           Unsigned32,
        traceRouteHopPingCompleted       TruthValue,
        traceRouteHopPingResult          TruthValue,
	     traceRouteHopPingReturnTime      Unsigned32,
        traceRouteHopAddr                IpAddress
}

traceRouteHopIndex OBJECT-TYPE
        SYNTAX        Unsigned32
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "This object specifies the hop index for a
                 traceroute hop. Values for this object with
                 respect to the same traceRouteIndex MUST start
                 at 1 and increase monotonically.
                 All hops (traceRouteHopsTable entries) in a
                 trace route path MUST be updated at the same time
                 when a trace route test completes."
        ::= { traceRouteHopsEntry 1 }

traceRouteHopPingIndex OBJECT-TYPE
        SYNTAX        Unsigned32
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "This object specifies the hop index for a
                 Icmp echo. Values for this object with
                 respect to the same traceRouteIndex and
                 the same traceRouteHopIndex MUST start
                 at 1 and increase monotonically. "
        ::= { traceRouteHopsEntry 2 }

traceRouteHopPingCompleted OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "While the ping process has completed the value of this field
             will be true(1), else false(2)."
        ::= { traceRouteHopsEntry 3 }

traceRouteHopPingResult OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "While the ping process has completed and
             the Icmp echo reply or Icmp ttl expiration has received,
             the value of this field will be true(1), else false(2)."
        ::= { traceRouteHopsEntry 4 }

traceRouteHopPingReturnTime OBJECT-TYPE
        SYNTAX        Unsigned32
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "Returned time of the echo reply of that reply
            but not time out."
        ::= { traceRouteHopsEntry 5 }

traceRouteHopAddr OBJECT-TYPE
        SYNTAX        IpAddress
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "This object reports the WWN of the device
                 associated with this hop."
        ::= { traceRouteHopsEntry 6 }

END
