-- *****************************************************************
-- FS-PING-MIB.mib:  FS Ping MIB file
--
-- March 2002, Wuzg
--
-- Copyright (c) 2002 by FS.COM Inc..
-- All rights reserved.
-- 
-- *****************************************************************
--

FS-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 FS-TC                
        fsMgmt
                FROM FS-SMI;

fsPingMIB MODULE-IDENTITY
        LAST-UPDATED "200203200000Z"
        ORGANIZATION "FS.COM Inc.."
        CONTACT-INFO
                " 
                Tel: 400-865-2852 

                E-mail: https://www.fs.com/live_chat_service_mail.html"
        DESCRIPTION
                "This module defines fs ping mibs."
        REVISION      "200203200000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { fsMgmt 3}

fsPingMIBObjects OBJECT IDENTIFIER ::= { fsPingMIB 1 }

fsPingTable OBJECT-TYPE
        SYNTAX SEQUENCE OF FSPingEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
               "A table of ping request entries."
        ::= { fsPingMIBObjects 1 }
    
fsPingEntry OBJECT-TYPE
        SYNTAX FSPingEntry
        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 { fsPingIndex }
        ::= { fsPingTable 1 }
        
FSPingEntry ::= 
        SEQUENCE {
                fsPingIndex Integer32,
                fsPingAddress IpAddress,
                fsPingDataLength Unsigned32,
                fsPingTimes Unsigned32,
                fsPingTimeOuts Unsigned32,
                fsPingReturns Unsigned32,
                fsPingMaxTime Unsigned32,
                fsPingAvTime Unsigned32,
                fsPingMinTime Unsigned32,
                fsPingCompleted TruthValue,
                fsPingEntryStauts RowStatus,
                fsPingSourceIp    IpAddress,
                fsPingSourceInterfaceIndex IfIndex,
                fsPingTypeOfService    Unsigned32 
                
        }

fsPingIndex OBJECT-TYPE
        SYNTAX Integer32(1..2147483647)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
               "Object which specifies a unique entry in the
                fsPingTable.  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 fsPingEntry.
                The RowStatus semantics of the fsPingEntryStatus
                object will prevent access conflicts."
        ::= { fsPingEntry 1 }
    
fsPingAddress OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Pinged host ip address."
        ::= { fsPingEntry 2 }
    
fsPingDataLength OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Pinged ICMP echo datagram's data length."
        DEFVAL { 100 }
        ::= { fsPingEntry 3 }
    
fsPingTimes OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Pimes the ICMP echo datagrams will be sent."
        DEFVAL { 5 }
        ::= { fsPingEntry 4 }
    
fsPingTimeOuts 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 }
        ::= { fsPingEntry 5 }
    
fsPingReturns OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "How many echo request has been return by a echo reply."
        ::= { fsPingEntry 6 }
            
fsPingMaxTime OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Max return time of the echo reply."
        ::= { fsPingEntry 7 }
    
fsPingAvTime 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."
        ::= { fsPingEntry 8 }
    
fsPingMinTime OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Min returned time of the echo reply."
        ::= { fsPingEntry 9 }
    
fsPingCompleted 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)."
        ::= { fsPingEntry 10 }
    
fsPingEntryStauts OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "entry status for this list."
        ::= { fsPingEntry 11 }

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

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

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

fsPingMIBConformance OBJECT IDENTIFIER ::= { fsPingMIB 2 }
fsPingMIBCompliances OBJECT IDENTIFIER ::= { fsPingMIBConformance 1 }
fsPingMIBGroups      OBJECT IDENTIFIER ::= { fsPingMIBConformance 2 }


-- compliance statements

fsPingMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the FS Ping MIB"
        MODULE  -- this module
                MANDATORY-GROUPS { fsPingMIBGroup }
        ::= { fsPingMIBCompliances 1 }
        
        
-- units of conformance

fsPingMIBGroup OBJECT-GROUP
        OBJECTS {
                fsPingIndex ,
                fsPingAddress ,
                fsPingDataLength ,
                fsPingTimes ,
                fsPingTimeOuts ,
                fsPingReturns ,
                fsPingMaxTime ,
                fsPingAvTime ,
                fsPingMinTime ,
                fsPingCompleted ,
                fsPingEntryStauts,
                fsPingSourceIp    ,
                fsPingSourceInterfaceIndex ,
                fsPingTypeOfService      
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing ping (echo) ability to a
                FS agent."
        ::= { fsPingMIBGroups 1 }        
        

-- hcb add

traceRouteMIBObjects OBJECT IDENTIFIER ::= { fsPingMIB 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
