-- =================================================================
-- Copyright (c) 2004-2017 Hangzhou H3C Tech. Co., Ltd. All rights reserved.
--
-- Description:  Extended MIB File(extended from DISMAN-PING-MIB RFC2925)
-- Reference:
-- Version: V2.6
-- History:
-- V1.0  Lv zhenfeng, 2003.08, Initial Version
-- V1.1 2004-10-12 updated by gaolong
--      Import OBJECT-IDENTITY, Integer32, Counter32, Gauge32.
-- V1.2 Add new column objects
--      h3cNqaResultsMaxDelaySD
--      h3cNqaResultsMaxDelayDS
--      h3cNqaResultsLostPacketRatio
--      under h3cNqaResultsTable table by zhaoyujin, 20041101
--  Add new column objects
--      h3cNqaJitterStatsAvePositivesSD
--      h3cNqaJitterStatsAveNegativesSD
--      h3cNqaJitterStatsAvePositivesDS
--      h3cNqaJitterStatsAveNegativesDS
--      h3cNqaJitterStatsPktLossUnknown
--  under h3cNqaJitterStatsTable table by zhaoyujin, 20041101
--      revise words errors
-- V1.3 2004-12-25 updated by zhaoyujin and weixinzhe
--      Objects description updated
-- V1.4 2005-12-22 Modified by qiuchunxia and liqian
--      add h3cNqaCtlHistoryKeptTime
--      add h3cNqaCtlHistoryEnable
--      add h3cNqaStatisticsResultsTable
--      add h3cNqaGroupStatsJitterTable
--      add h3cNqaStatisticsCtlTable
--      add h3cNqaStatsMaxGroupNumber
--      remove definition of InetAddress, and import from INET-ADDRESS-MIB
-- V1.5 2006-03-03 Modified by jinyi and wangqingfeng
--      modified the description of h3cNqaStatResRttSequenceErrors
--      modified the description of h3cNqaResultsRttSequenceErrors
--      modified UNITS of some objects by jinyi
--      add h3cNqaCtlICPIFAdvFactor, h3cNqaCtlCodecType in h3cNqaCtlTable
--      add h3cNqaResultsPacketLateArrival in h3cNqaResultsTable
--      add h3cNqaJitterStatsOperOfICPIF and h3cNqaJitterStatsOperOfMOS
--      in h3cNqaJitterStatsTable
--      add h3cNqaStatResPacketLateArrival in h3cNqaStatisticsResultsTable
--      add h3cNqaStatJitterMaxOfICPIF, h3cNqaStatJitterMinOfICPIF
--      h3cNqaStatJitterMaxOfMOS and h3cNqaStatJitterMinOfMOS
--      in h3cNqaGroupStatsJitterTable
--      rename subidentifier 5 of h3cNqaStatisticsCtlEntry to
--      h3cNqaCtlLifeTime by wangqingfeng
--      rename subidentifier 11 of h3cNqaStatisticsResultsEntry to
--      h3cNqaStatResInterval by wangqingfeng
-- V1.6 2006-05-12
--      rewrite this MIB with prefix "h3cNqa".
-- V2.0 2006-08-14 Modified by zhangjun
--      change the name of root from "h3cDismanPing" to "h3cNqa"
--      modify some mistakes
-- V2.1 2006-08-22 Modified by qiuchunxia, dupengfei and shenjuanjuan
--      add h3cNqaReactionTable and add h3cNqaNotifications
-- V2.2 2007-03-08 Modified by zhouwenming
--      add h3cNqaResultsRttSum, h3cNqaResultsNumOfDelaySD, h3cNqaResultsMinDelaySD,
--       h3cNqaResultsSumDelaySD, h3cNqaResultsSum2DelaySD, h3cNqaResultsNumOfDelayDS,
--       h3cNqaResultsMinDelayDS, h3cNqaResultsSumDelayDS, h3cNqaResultsSum2DelayDS
--       in h3cNqaResultsTable
--      add h3cNqaStatResRttSum, h3cNqaStatResNumOfDelaySD, h3cNqaStatResMinDelaySD,
--       h3cNqaStatResSumDelaySD, h3cNqaStatResSum2DelaySD, h3cNqaStatResNumOfDelayDS,
--       h3cNqaStatResMinDelayDS, h3cNqaStatResSumDelayDS, h3cNqaStatResSum2DelayDS,
--       h3cNqaStatResMaxDelaySD, h3cNqaStatResMaxDelayDS
--       in h3cNqaStatisticsResultsTable
--      add jitterOwdSD, jitterOwdDS to h3cNqaReactCheckedElement
--       in h3cNqaReactionTable.
--      add h3cNqaReactCheckedNum, h3cNqaReactThresholdNum in h3cNqaReactionTable
--      add h3cNqaStatisticsReactionTable
-- V2.3 2007-04-25 Modified by zhouxingyue and zhouhaifeng
--      add icmpTimestamp in h3cNqaCtlCodecType
--      remove size limit and DEFVAL in definition of h3cNqaCtlStatisticsInterval.
--      modify type of below from  Unsigned32 to Gauge32:
--       h3cNqaStatResMinRtt, h3cNqaStatResMaxRtt,h3cNqaStatResAverageRtt,
--       h3cNqaStatResInterval, h3cNqaStatResLostPacketRatio, h3cNqaStatResMinDelaySD,
--       h3cNqaStatResMaxDelaySD,h3cNqaStatResMinDelayDS, h3cNqaStatResMaxDelayDS.
--      modify type of below from  Unsigned32 to Counter32:
--       h3cNqaStatResProbeResponses, h3cNqaStatResSentProbes, h3cNqaStatResRttSumOfSquares,
--       h3cNqaStatResRttNumDisconnects, h3cNqaStatResRttTimeouts, h3cNqaStatResRttBusies,
--       h3cNqaStatResRttNoConnections, h3cNqaStatResRttDrops, h3cNqaStatResRttSequenceErrors,
--       h3cNqaStatResRttErrors, h3cNqaStatResPacketLateArrival, h3cNqaStatResRttSum,
--       h3cNqaStatResNumOfDelaySD, h3cNqaStatResSumDelaySD, h3cNqaStatResSum2DelaySD,
--       h3cNqaStatResNumOfDelayDS, h3cNqaStatResSumDelayDS, h3cNqaStatResSum2DelayDS,
--       h3cNqaStatReactCheckedNum, h3cNqaStatReactThresholdNum.
--      modify type of below from  Gauge32 to Counter32:
--       h3cNqaStatJitterNumOfPosSD, h3cNqaStatJitterSumOfPosSD, h3cNqaStatJitterSumOfSquarePosSD,
--       h3cNqaStatJitterNumOfNegSD, h3cNqaStatJitterSumOfNegSD, h3cNqaStatJitterSumOfSquareNegSD,
--       h3cNqaStatJitterNumOfPosDS, h3cNqaStatJitterSumOfPosDS, h3cNqaStatJitterSumOfSquarePosDS,
--       h3cNqaStatJitterNumOfNegDS, h3cNqaStatJitterSumOfNegDS, h3cNqaStatJitterSumOfSquareNegDS,
--       h3cNqaStatJitterPacketLossSD, h3cNqaStatJitterPacketLossDS, h3cNqaStatJitterPktLossUnknown.
-- V2.4 2012-04-20 Modified by sunbiliang and wanghaidong
--      add raw in h3cNqaCtlHttpOperationType
--      modifiy the range of h3cNqaCtlHttpOperationString
-- V2.5 2013-12-17 Modified by wangbo
--      modify the descriptions of h3cNqaCtlICPIFAdvFactor, h3cNqaStatJitterNumOfNegSD,
--       h3cNqaStatJitterNumOfPosSD, h3cNqaStatJitterNumOfPosDS, h3cNqaStatJitterNumOfNegDS,
--       h3cNqaReactCurrentStatus
-- V2.6 2017-07-03 Modified by zhanbaobin
--      add h3cNqaJitterStatsAveSD, h3cNqaJitterStatsAveDS to h3cNqaJitterStatsEntry,
--      add h3cNqaStatJitterAveSD, h3cNqaStatJitterAveDS to h3cNqaGroupStatsJitterEntry.
--      add h3cNqaTcpServerExtendTable
--      add h3cNqaUdpServerExtendEntry
-- =================================================================
H3C-NQA-MIB DEFINITIONS ::= BEGIN

        IMPORTS
            MODULE-IDENTITY, OBJECT-TYPE, Unsigned32,
            OBJECT-IDENTITY, NOTIFICATION-TYPE, Integer32, Counter32, Gauge32
                FROM SNMPv2-SMI
            DateAndTime, DisplayString, RowStatus, TEXTUAL-CONVENTION
                FROM SNMPv2-TC
            InetAddressType, InetAddress
                FROM INET-ADDRESS-MIB
            h3cRhw
                FROM HUAWEI-3COM-OID-MIB
            pingCtlEntry, pingCtlOwnerIndex, pingCtlTestName, pingCtlType,
            pingCtlTargetAddress, pingCtlTargetAddressType, pingCtlDescr
                FROM DISMAN-PING-MIB
            SnmpAdminString
                FROM SNMP-FRAMEWORK-MIB;          -- RFC2571

    h3cNqa MODULE-IDENTITY
        LAST-UPDATED "201707030000Z"
        ORGANIZATION
            "Hangzhou H3C Technologies Co., Ltd."
        CONTACT-INFO
            "Platform Team Hangzhou H3C Technologies Co., Ltd.
            Hai-Dian District Beijing P.R. China
            http://www.h3c.com
            Zip:100085"
            DESCRIPTION
                "The private MIB file includes the test information of the
                device. It is supplementary for rfc2925.txt."
            REVISION "201707030000Z"
            DESCRIPTION
                "Add h3cNqaJitterStatsAveSD, h3cNqaJitterStatsAveDS to
                h3cNqaJitterStatsEntry add h3cNqaStatJitterAveSD,
                h3cNqaStatJitterAveDS to h3cNqaGroupStatsJitterEntry,
                h3cNqaTcpServerExtendTable and h3cNqaUdpServerExtendTable."
        ::= { h3cRhw 3 }

 -- Textual Conventions
VpnInstanceType ::= TEXTUAL-CONVENTION
     STATUS      current
     DESCRIPTION
         "A value that represents a type of VPN instance.
          public(1)   Public network.
          vpn(2)      Private network."
     SYNTAX      INTEGER {
                     public(1),
                     vpn(2)
                 }

    h3cNqaObjects OBJECT IDENTIFIER ::= { h3cNqa 1 }

 -- The registration node (point) for remote NQA(Network Quality Analysis) test
 -- implementation types

h3cNqaImplementationTypeDomains  OBJECT IDENTIFIER ::= { h3cNqa 2 }

h3cNqaUdpEcho OBJECT-IDENTITY
    STATUS      current
    DESCRIPTION
        "Indicates that an implementation is using the UDP based echo server.
        Notes: The h3cNqaCtlTargetPort and h3cNqaCtlSourcePort need to be set,
        while in the pingUdpEcho Node, h3cNqaCtlTargetPort must be set to the
        default value."
    ::= { h3cNqaImplementationTypeDomains 1 }

h3cNqaTcpconnect OBJECT-IDENTITY
    STATUS      current
    DESCRIPTION
        "Indicates that an implementation is attempting to
        connect to a TCP port in order to calculate a round
        trip time.
        Notes: The h3cNqaCtlTargetPort and h3cNqaCtlSourcePort need to be set,
        while in the pingTcpConnectionAttempt Node, h3cNqaCtlTargetPort must
        be set to the default value."
    ::= { h3cNqaImplementationTypeDomains 2 }

h3cNqajitter OBJECT-IDENTITY
    STATUS      current
    DESCRIPTION
        "Indicates that an implementation is using udp for packet transfers.
        'jitter' will cause the NQA(Network Quality Analysis) application
        to perform delay variance analysis."
    ::= { h3cNqaImplementationTypeDomains 3 }

h3cNqaHttp OBJECT-IDENTITY
    STATUS      current
    DESCRIPTION
        "Indicates that an implementation is using udp for name resolution,
        tcp connect and tcp data transfer mechanisms for HTTP data download
        from a particular HTTP Server.
        It causes the NQA application to perform a download of the object
        specified in the URL."
    ::= { h3cNqaImplementationTypeDomains 4 }


h3cNqadlsw OBJECT-IDENTITY
    STATUS      current
    DESCRIPTION
        "Indicates that an implementation is using tcp for sending keepalives.
        'dlsw' will cause the NQA application to perform a keepalive operation
        to measure the response time of a DLSw peer."
    ::= { h3cNqaImplementationTypeDomains 5 }

h3cNqadhcp OBJECT-IDENTITY
    STATUS      current
    DESCRIPTION
        "Indicates that an implementation is using udp for sending dhcp
        requests. 'dhcp' will cause the NQA application
        to perform an IP Address lease request/teardown operation."
    ::= { h3cNqaImplementationTypeDomains 6 }

h3cNqaftp OBJECT-IDENTITY
    STATUS      current
    DESCRIPTION
        "Indicates that an implementation is using tcp packet for ftp connect
         and data transfer."
    ::= { h3cNqaImplementationTypeDomains 7 }


-- MIB contains 3 groups

h3cNqaMIBVersion OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Version string of this MIB.
        The format will be: 'Version.Release.Patch: Description'
        An instance likes: '1.0.0: Initial NQA MIB'
        "
    ::= { h3cNqaObjects 1 }

h3cNqaCtlTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cNqaCtlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Defines the NQA Control Extend Table for providing, via SNMP,
        the capability of performing network analysis operations at a
        remote host."
   ::= { h3cNqaObjects 2 }

h3cNqaCtlEntry OBJECT-TYPE
    SYNTAX      H3cNqaCtlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Defines an entry in the h3cNqaCtlTable. The operation of this
        table is same as that of pingResultsTable."
    AUGMENTS    { pingCtlEntry }
    ::= { h3cNqaCtlTable 1 }

H3cNqaCtlEntry ::=
    SEQUENCE {
    h3cNqaCtlTargetPort               Integer32,
    h3cNqaCtlSourcePort               Integer32,
    h3cNqaCtlTTL                      Integer32,
    h3cNqaCtlJitterAdminInterval      Integer32,
    h3cNqaCtlJitterAdminNumPackets    Integer32,
    h3cNqaCtlHttpOperationType        INTEGER,
    h3cNqaCtlHttpOperationString      DisplayString,
    h3cNqaCtlFtpOperationType         INTEGER,
    h3cNqaCtlFtpUsername              DisplayString,
    h3cNqaCtlFtpPassword              DisplayString,
    h3cNqaCtlFtpOperationString       DisplayString,
    h3cNqaCtlVPNInstance              DisplayString,
    h3cNqaCtlHistoryKeptTime          Integer32,
    h3cNqaCtlHistoryEnable            INTEGER,
    h3cNqaCtlICPIFAdvFactor           Integer32,
    h3cNqaCtlCodecType                INTEGER
    }

h3cNqaCtlTargetPort          OBJECT-TYPE
    SYNTAX      Integer32 (0..65536)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The destination port that may be used by udpEcho,
        tcpConnect and jitter probes."
    DEFVAL      { 0 }
    ::= { h3cNqaCtlEntry 1 }

h3cNqaCtlSourcePort          OBJECT-TYPE
    SYNTAX      Integer32 (0..65536)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The source port that may be used by all tests except
        for dns and dlsw.
        If no source port is specified, system will create
        a random port as source port."
    DEFVAL      { 0 }
    ::= { h3cNqaCtlEntry 2 }

h3cNqaCtlTTL OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Specifies the value to store in the TTL Field in the IP packet used to
        encapsulate the NQA probe."
    DEFVAL      { 20 }
    ::= { h3cNqaCtlEntry 3 }

h3cNqaCtlJitterAdminInterval OBJECT-TYPE
    SYNTAX      Integer32 (0..60000)
    UNITS       "milliseconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Time value in milliseconds that is an interval between two continuous
        probes in jitter test.

        This object is only used by jitter test."
    DEFVAL      { 20 }
    ::= { h3cNqaCtlEntry 4 }

h3cNqaCtlJitterAdminNumPackets OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Packet number that specifys how many packets will be sent in
        one jitter test.

        This object is only used by jitter test."
    DEFVAL      { 10 }
    ::= { h3cNqaCtlEntry 5 }

h3cNqaCtlHttpOperationType OBJECT-TYPE
    SYNTAX      INTEGER{
                get(1),
                post(2),
                raw(3)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Http operation type: get, post or raw."
    DEFVAL      { get }
    ::= { h3cNqaCtlEntry 6 }

h3cNqaCtlHttpOperationString OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(0..1023))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Http operation string. For example, if the http operation type is get,
        the string will be url, home page and http version."
    DEFVAL      { "" }
    ::= { h3cNqaCtlEntry 7 }

h3cNqaCtlFtpOperationType OBJECT-TYPE
    SYNTAX      INTEGER{
                get(1),
                put(2)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Ftp operation type."
    DEFVAL      { get }
    ::= {h3cNqaCtlEntry 8 }

h3cNqaCtlFtpUsername OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(0..32))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Ftp username."
    DEFVAL      { "" }
    ::= { h3cNqaCtlEntry 9 }

h3cNqaCtlFtpPassword OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(0..32))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Ftp password."
    DEFVAL      { "" }
    ::= { h3cNqaCtlEntry 10 }

h3cNqaCtlFtpOperationString OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(0..255))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Ftp operation string. If the ftp operation type is get,
        the string must be the file name which will be gotten from ftp server."
    DEFVAL      { "" }
    ::= { h3cNqaCtlEntry 11 }

h3cNqaCtlVPNInstance OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(0..255))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "VPN name by which system finds route in the specified VPN
        to send NQA probe packets."
    DEFVAL      { "" }
    ::= { h3cNqaCtlEntry 12 }

h3cNqaCtlHistoryKeptTime OBJECT-TYPE
    SYNTAX     Integer32(1..1440)
    UNITS      "minutes"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "To indicate how long the history records will be saved
        in the pingProbeHistoryTable table after the test stopped."
    DEFVAL     { 120 }
    ::= { h3cNqaCtlEntry 13 }

h3cNqaCtlHistoryEnable OBJECT-TYPE
    SYNTAX      INTEGER
        {
            enabled(1),  --history will be recorded
            disabled(2)  --history will not be recorded
        }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "To indicate whether the history should be recorded in the
        PingProbeHistoryTable or not.
            enabled(1)   --history will be recorded
            disabled(2)  --history will not be recorded."
    DEFVAL      { disabled }
    ::= {h3cNqaCtlEntry 14 }

h3cNqaCtlICPIFAdvFactor OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS read-create
    STATUS  current
    DESCRIPTION
        "The advantage factor depends on the type of access and how the service
        is to be used. This object will be used while calculating the ICPIF
        (Calculated Planning Impairment Factor) values.  This is applicable
        only for the jitter probe.

        Suggestion values:

        |-----------------------------------|-------|
        |          Service                  |factor |
        |-----------------------------------|-------|
        |conventional wire-line             |  0    |
        |-----------------------------------|-------|
        |mobility within Building           |  5    |
        |-----------------------------------|-------|
        |mobility within geographical area  |  10   |
        |-----------------------------------|-------|
        |access to hard-to-reach location   |  20   |
        |-----------------------------------|-------|
        "
    DEFVAL  {0}
    ::= { h3cNqaCtlEntry 15 }

h3cNqaCtlCodecType OBJECT-TYPE
    SYNTAX     INTEGER
        {
            notDefined(1),     -- no codec type is defined or codec is unknown
            g711Alaw(2),       -- uses G.711 A-Law
            g711Ulaw(3),       -- uses G.711 muHmm-Law
            g729A(4),          -- uses G.729A
            icmpTimestamp(5)   -- uses icmp timestamp packet type
        }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "To indicate the codec type to be used with jitter probe. This is
        applicable only for the jitter probe."
    DEFVAL     { notDefined }
    ::= { h3cNqaCtlEntry 16 }

-- NQA Test Results Table

h3cNqaResultsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cNqaResultsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Defines the NQA Results Extend Table for providing
        the capability of performing NQA operations at a remote
        host. The results of these operations are stored in the
        h3cNqaResultsTable. The operation of this table is same
        as that of pingResultsTable."
   ::= { h3cNqaObjects 3 }

h3cNqaResultsEntry OBJECT-TYPE
    SYNTAX      H3cNqaResultsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The operation of this table is same as that of pingResultsTable."
    INDEX {
             pingCtlOwnerIndex,
             pingCtlTestName
          }
    ::= { h3cNqaResultsTable 1 }

H3cNqaResultsEntry ::=
    SEQUENCE {
        h3cNqaResultsRttNumDisconnects   Unsigned32,
        h3cNqaResultsRttTimeouts         Unsigned32,
        h3cNqaResultsRttBusies           Unsigned32,
        h3cNqaResultsRttNoConnections    Unsigned32,
        h3cNqaResultsRttDrops            Unsigned32,
        h3cNqaResultsRttSequenceErrors   Unsigned32,
        h3cNqaResultsRttStatsErrors      Unsigned32,
        h3cNqaResultsMaxDelaySD          Unsigned32,
        h3cNqaResultsMaxDelayDS          Unsigned32,
        h3cNqaResultsLostPacketRatio     Unsigned32,
        h3cNqaResultsPacketLateArrival   Unsigned32,
        h3cNqaResultsRttSum              Unsigned32,
        h3cNqaResultsNumOfDelaySD        Unsigned32,
        h3cNqaResultsMinDelaySD          Unsigned32,
        h3cNqaResultsSumDelaySD          Unsigned32,
        h3cNqaResultsSum2DelaySD         Unsigned32,
        h3cNqaResultsNumOfDelayDS        Unsigned32,
        h3cNqaResultsMinDelayDS          Unsigned32,
        h3cNqaResultsSumDelayDS          Unsigned32,
        h3cNqaResultsSum2DelayDS         Unsigned32
    }

h3cNqaResultsRttNumDisconnects OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times that a NQA probe failed because
        the destination became disconnected.

        For connectionless protocol pingCtlTypes, this number should be
        zero."
    ::= { h3cNqaResultsEntry 1 }


h3cNqaResultsRttTimeouts OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times that a NQA probe failed because the
        probe timed out."
    ::= { h3cNqaResultsEntry 2 }


h3cNqaResultsRttBusies OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times that a NQA probe failed because all
         NQA tasks have been running.

        If a new probe fails to start, the value of this object
        is incremented. The next test will not start until the
        next Frequency."
   ::= { h3cNqaResultsEntry 3 }


h3cNqaResultsRttNoConnections OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times that a NQA probe failed because the probe
        destination is unavailable.

        For connectionless protocol pingCtlTypes, this number should be
        zero."
    ::= { h3cNqaResultsEntry 4 }


h3cNqaResultsRttDrops OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times that a NQA operation failed to initiated
        for unavailibility of necessary internal resources."
    ::= { h3cNqaResultsEntry 5 }


h3cNqaResultsRttSequenceErrors OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets arrived out of sequence."
   ::= { h3cNqaResultsEntry 6 }

h3cNqaResultsRttStatsErrors OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of some other errors."
    ::= { h3cNqaResultsEntry 7 }

h3cNqaResultsMaxDelaySD OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximal delay from source device to destination device.
         Currently this value is only used for jitter test, and this
         value must be 0 in other type test. In jitter test, if
         destination system time is not valid, the SD delay may be set 0."
    ::= { h3cNqaResultsEntry 8 }

h3cNqaResultsMaxDelayDS OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximal delay from destination device to source device.
         Currently this value is only used for jitter test, and this
         value is 0 in other type test. In jitter test, if destination
         system time is not valid, the DS delay may be set 0."
    ::= { h3cNqaResultsEntry 9 }

h3cNqaResultsLostPacketRatio OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of this object reflects the drop rate of NQA test.
         For example, this value is 30 that means source device only
         had received 70% packets of total sent packets."
    ::= { h3cNqaResultsEntry 10 }

h3cNqaResultsPacketLateArrival OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of this object indicates the number of the packets that
        arrived after the timeout."
    ::= { h3cNqaResultsEntry 11 }

h3cNqaResultsRttSum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The sum of round trip time."
    ::= { h3cNqaResultsEntry 12 }

h3cNqaResultsNumOfDelaySD OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of delay from source to destination that are
        successfully measured."
    ::= { h3cNqaResultsEntry 13 }

h3cNqaResultsMinDelaySD OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The minimum of all one way times from source to destination."
    ::= { h3cNqaResultsEntry 14 }

h3cNqaResultsSumDelaySD OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The sum of one way times from source to destination."
    ::= { h3cNqaResultsEntry 15 }

h3cNqaResultsSum2DelaySD OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The sum of squares of one way times from source to  destination."
    ::= { h3cNqaResultsEntry 16 }

h3cNqaResultsNumOfDelayDS OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of delay from destination to source that are
        successfully measured."
    ::= { h3cNqaResultsEntry 17 }

h3cNqaResultsMinDelayDS OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The minimum of all one way times from destination to source."
    ::= { h3cNqaResultsEntry 18 }

h3cNqaResultsSumDelayDS OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The sum of one way times from destination to source."
    ::= { h3cNqaResultsEntry 19 }

h3cNqaResultsSum2DelayDS OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The sum of squares of one way times from destination to source."
    ::= { h3cNqaResultsEntry 20 }

-- =================================================================
--    Jitter Statistics Table
-- =================================================================


h3cNqaJitterStatsTable OBJECT-TYPE
    SYNTAX SEQUENCE OF H3cNqaJitterStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Statistics table for latest jitter activity."
    ::= { h3cNqaObjects 4 }

h3cNqaJitterStatsEntry OBJECT-TYPE
    SYNTAX      H3cNqaJitterStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry contains the statistics for the latest jitter activity.
        This entry is created only if the pingCtlType is h3cNqajitter."
    INDEX {
            pingCtlOwnerIndex,
            pingCtlTestName
          }
    ::= { h3cNqaJitterStatsTable 1 }

H3cNqaJitterStatsEntry  ::= SEQUENCE
{
    h3cNqaJitterStatsNumOfRTT                Counter32,
    h3cNqaJitterStatsMinOfPositivesSD        Gauge32,
    h3cNqaJitterStatsMaxOfPositivesSD        Gauge32,
    h3cNqaJitterStatsNumOfPositivesSD        Gauge32,
    h3cNqaJitterStatsSumOfPositivesSD        Gauge32,
    h3cNqaJitterStatsSum2PositivesSD         Gauge32,
    h3cNqaJitterStatsMinOfNegativesSD        Gauge32,
    h3cNqaJitterStatsMaxOfNegativesSD        Gauge32,
    h3cNqaJitterStatsNumOfNegativesSD        Gauge32,
    h3cNqaJitterStatsSumOfNegativesSD        Gauge32,
    h3cNqaJitterStatsSum2NegativesSD         Gauge32,
    h3cNqaJitterStatsMinOfPositivesDS        Gauge32,
    h3cNqaJitterStatsMaxOfPositivesDS        Gauge32,
    h3cNqaJitterStatsNumOfPositivesDS        Gauge32,
    h3cNqaJitterStatsSumOfPositivesDS        Gauge32,
    h3cNqaJitterStatsSum2PositivesDS         Gauge32,
    h3cNqaJitterStatsMinOfNegativesDS        Gauge32,
    h3cNqaJitterStatsMaxOfNegativesDS        Gauge32,
    h3cNqaJitterStatsNumOfNegativesDS        Gauge32,
    h3cNqaJitterStatsSumOfNegativesDS        Gauge32,
    h3cNqaJitterStatsSum2NegativesDS         Gauge32,
    h3cNqaJitterStatsPacketLossSD            Gauge32,
    h3cNqaJitterStatsPacketLossDS            Gauge32,
    h3cNqaJitterStatsAvePositivesSD          Gauge32,
    h3cNqaJitterStatsAveNegativesSD          Gauge32,
    h3cNqaJitterStatsAvePositivesDS          Gauge32,
    h3cNqaJitterStatsAveNegativesDS          Gauge32,
    h3cNqaJitterStatsPktLossUnknown          Gauge32,
    h3cNqaJitterStatsOperOfICPIF             Gauge32,
    h3cNqaJitterStatsOperOfMOS               Gauge32,
    h3cNqaJitterStatsAveSD                   Gauge32,
    h3cNqaJitterStatsAveDS                   Gauge32
}

h3cNqaJitterStatsNumOfRTT OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of received destination device responses with which
        jitter test can reach round-trip time."
    ::= { h3cNqaJitterStatsEntry 1 }


h3cNqaJitterStatsMinOfPositivesSD OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the minimal positive jitter value from
        source to destination in the jitter test."
    ::= { h3cNqaJitterStatsEntry 2 }

h3cNqaJitterStatsMaxOfPositivesSD OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the maximal positive jitter value from
        source to destination in the jitter test."
   ::= { h3cNqaJitterStatsEntry 3 }

h3cNqaJitterStatsNumOfPositivesSD OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number that records positive jitter times from source to
        destination in the jitter test.
        The total number of the value of all positive jitters in packets
        sent from source to destination."
    ::= { h3cNqaJitterStatsEntry 4 }

h3cNqaJitterStatsSumOfPositivesSD OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the sum of positive jitter values from
        source to destination in the jitter test."
    ::= { h3cNqaJitterStatsEntry 5 }

h3cNqaJitterStatsSum2PositivesSD OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the sum of square of positive jitter
        values from source to destination in the jitter test."
    ::= { h3cNqaJitterStatsEntry 6 }

h3cNqaJitterStatsMinOfNegativesSD OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the minimal absolute values of
        negative jitter value from source to destination in the jitter test."
    ::= { h3cNqaJitterStatsEntry 7 }

h3cNqaJitterStatsMaxOfNegativesSD OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the maximal absolute values of negative
        jitter value from source to destination in the jitter test."
    ::= { h3cNqaJitterStatsEntry 8 }

h3cNqaJitterStatsNumOfNegativesSD OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number that records negative jitter times from source to
        destination in the jitter test.
        The total number of all negative jitter values in packets
        sent from source to destination."
    ::= { h3cNqaJitterStatsEntry 9 }

h3cNqaJitterStatsSumOfNegativesSD OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the sum of negative jitter values from
        source to destination in the jitter test.
        The total number of the value of all negative jitters in packets
        sent from source to destination."
    ::= { h3cNqaJitterStatsEntry 10 }

h3cNqaJitterStatsSum2NegativesSD OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the sum of square of negative jitter
        values from source to destination in the jitter test."
    ::= { h3cNqaJitterStatsEntry 11 }

h3cNqaJitterStatsMinOfPositivesDS OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the minimal positive jitter value from
        destination to source in the jitter test."
    ::= { h3cNqaJitterStatsEntry 12 }

h3cNqaJitterStatsMaxOfPositivesDS OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the maximal positive jitter value from
        destination to source in the jitter test."
    ::= { h3cNqaJitterStatsEntry 13 }

h3cNqaJitterStatsNumOfPositivesDS OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number that records positive jitter times from destination to
        source in the jitter test."
    ::= { h3cNqaJitterStatsEntry 14 }

h3cNqaJitterStatsSumOfPositivesDS OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the sum of positive jitter values from
        destination to source in the jitter test."
    ::= { h3cNqaJitterStatsEntry 15 }

h3cNqaJitterStatsSum2PositivesDS OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the sum of square of positive jitter
        values from destination to source in the jitter test."
    ::= { h3cNqaJitterStatsEntry 16 }

h3cNqaJitterStatsMinOfNegativesDS OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the minimal absolute values of negative
        jitter value from destination to source in the jitter test."
    ::= { h3cNqaJitterStatsEntry 17 }

h3cNqaJitterStatsMaxOfNegativesDS OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the maximal absolute values of negative
        jitter value from destination to source in the jitter test."
    ::= { h3cNqaJitterStatsEntry 18 }

h3cNqaJitterStatsNumOfNegativesDS OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number that records negative jitter times from destination to source
        in the jitter test."
    ::= { h3cNqaJitterStatsEntry 19 }

h3cNqaJitterStatsSumOfNegativesDS OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the sum of negative jitter values from
        destination to source in the jitter test."
    ::= { h3cNqaJitterStatsEntry 20 }

h3cNqaJitterStatsSum2NegativesDS OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the sum of square of negative jitter
        values from destination to source in the jitter test."
    ::= { h3cNqaJitterStatsEntry 21 }

h3cNqaJitterStatsPacketLossSD OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The lost packets number sent from source to destination."
    ::= { h3cNqaJitterStatsEntry 22 }

h3cNqaJitterStatsPacketLossDS OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The lost packets number sent from destination to source."
    ::= { h3cNqaJitterStatsEntry 23 }

h3cNqaJitterStatsAvePositivesSD OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the average positive jitter value
        from source to destination."
    ::= { h3cNqaJitterStatsEntry 24 }

h3cNqaJitterStatsAveNegativesSD OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the average negative jitter value
        from source to destination."
    ::= { h3cNqaJitterStatsEntry 25 }

h3cNqaJitterStatsAvePositivesDS OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the average positive jitter value
        from destination to source."
    ::= { h3cNqaJitterStatsEntry 26 }

h3cNqaJitterStatsAveNegativesDS OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the average negative jitter value
        from destination to source."
    ::= { h3cNqaJitterStatsEntry 27 }

h3cNqaJitterStatsPktLossUnknown OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets which is lost with unknown reason."
    ::= { h3cNqaJitterStatsEntry 28 }

h3cNqaJitterStatsOperOfICPIF OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The ICPIF (Calculated Planning Impairment Factor) value for the latest
        jitter test."
    ::= { h3cNqaJitterStatsEntry 29 }

h3cNqaJitterStatsOperOfMOS OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The MOS (Mean Opinion Score) value for the latest jitter test."
    ::= { h3cNqaJitterStatsEntry 30 }

h3cNqaJitterStatsAveSD OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the average jitter value
        from source to destination."
    ::= { h3cNqaJitterStatsEntry 31 }

h3cNqaJitterStatsAveDS OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the average jitter value
        from destination to source."
    ::= { h3cNqaJitterStatsEntry 32 }

h3cNqaAgentEnable OBJECT-TYPE
    SYNTAX      INTEGER{
                enable(1),
                disable(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Enable NQA agent function."
    DEFVAL { disable }
    ::= { h3cNqaObjects 5 }

-- =================================================================
--   Tcp server configuration information Statistics Table
-- =================================================================


h3cNqaTcpServerTable OBJECT-TYPE
    SYNTAX SEQUENCE OF H3cNqaTcpServerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table which contains the status of NQA tcp server
        configuration information."
    ::= { h3cNqaObjects 6 }

h3cNqaTcpServerEntry OBJECT-TYPE
    SYNTAX      H3cNqaTcpServerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table which contains the status of NQA tcp server
        configuration information.

        This entry includes not only the tcp server ip address
        but also the tcp server port."
    INDEX {
            h3cNqaTcpServerIpAddress,
            h3cNqaTcpServerPort
          }
    ::= { h3cNqaTcpServerTable 1 }

H3cNqaTcpServerEntry  ::= SEQUENCE
{
    h3cNqaTcpServerIpAddress                InetAddress,
    h3cNqaTcpServerPort                     Integer32,
    h3cNqaTcpServerRowStatus                RowStatus
}

h3cNqaTcpServerIpAddress          OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Tcp server's ip address."
    ::= { h3cNqaTcpServerEntry 1 }

h3cNqaTcpServerPort          OBJECT-TYPE
    SYNTAX      Integer32 (0..65536)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Tcp server's port number."
    ::= { h3cNqaTcpServerEntry 2 }

h3cNqaTcpServerRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "h3cNqaTcpServerIpAddress and h3cNqaTcpServerPort
        must be set during a creation operation."
    REFERENCE
        "RFC 2579"
    ::= { h3cNqaTcpServerEntry 3 }

h3cNqaUdpServerTable OBJECT-TYPE
    SYNTAX SEQUENCE OF H3cNqaUdpServerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Status of NQA udp server configuration information."
    ::= { h3cNqaObjects 7 }

h3cNqaUdpServerEntry OBJECT-TYPE
    SYNTAX      H3cNqaUdpServerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This entry includes not only the udp server ip address
        but also the udp server udp port."
    INDEX {
            h3cNqaUdpServerIpAddress,
            h3cNqaUdpServerPort
          }
    ::= { h3cNqaUdpServerTable 1 }

H3cNqaUdpServerEntry  ::= SEQUENCE
{
    h3cNqaUdpServerIpAddress                InetAddress,
    h3cNqaUdpServerPort                     Integer32,
    h3cNqaUdpServerRowStatus                RowStatus
}

h3cNqaUdpServerIpAddress          OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Udp server's ip address."
    ::= { h3cNqaUdpServerEntry 1 }

h3cNqaUdpServerPort          OBJECT-TYPE
    SYNTAX      Integer32 (0..65536)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Udp server's port number."
    ::= { h3cNqaUdpServerEntry 2 }

h3cNqaUdpServerRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "h3cNqaUdpServerIpAddress and h3cNqaUdpServerPort
        must be set during a creation operation."
    REFERENCE
        "RFC 2579"
    ::= { h3cNqaUdpServerEntry 3 }

h3cNqaServerEnable OBJECT-TYPE
    SYNTAX      INTEGER{
                enable(1),
                disable(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Enable NQA server function."
    DEFVAL { disable }
    ::= { h3cNqaObjects 8 }

h3cNqaStatsMaxGroupNumber OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The maximum number saved per group. The maximum value of
        h3cNqaCtlStatisticsGroupNumber can not exceed the value of
        this object."
    ::= { h3cNqaObjects 9 }


h3cNqaStatisticsCtlTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cNqaStatisticsCtlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Defines the NQA statistics control table for providing, via SNMP,
        the capability of performing NQA operations at a remote host.
        The results of these operations are stored in the
        h3cNqaStatisticsResultsTable and the h3cNqaGroupStatsJitterTable."
    ::= { h3cNqaObjects 10 }

h3cNqaStatisticsCtlEntry OBJECT-TYPE
    SYNTAX      H3cNqaStatisticsCtlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Defines an entry in the h3cNqaStatisticsCtlTable.
        The h3cNqaStatisticsCtlTable has the same index as the
        pingCtlTable in order for a h3cNqaStatisticsCtlTable to
        correspond to the pingCtlEntry."
    AUGMENTS    { pingCtlEntry }
    ::= { h3cNqaStatisticsCtlTable 1 }

H3cNqaStatisticsCtlEntry ::=
    SEQUENCE
        {
            h3cNqaCtlStatisticsInterval       Unsigned32,
            h3cNqaCtlStatisticsGroupNumber    Unsigned32,
            h3cNqaCtlStatisticsKeptTime       Unsigned32,
            h3cNqaCtlBeginTime                DateAndTime,
            h3cNqaCtlLifeTime                 Unsigned32
        }

h3cNqaCtlStatisticsInterval OBJECT-TYPE
    SYNTAX     Unsigned32
    UNITS      "minutes"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "Statistic information will be calculated after the time that is
        the value of h3cNqaCtlStatisticsInterval."
    ::= { h3cNqaStatisticsCtlEntry 1 }

h3cNqaCtlStatisticsGroupNumber OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The value of this object indicates the number of group saved.
        The length of this object is from 1 to h3cNqaStatsMaxGroupNumber."
    DEFVAL     { 2 }
    ::= { h3cNqaStatisticsCtlEntry 2 }

h3cNqaCtlStatisticsKeptTime OBJECT-TYPE
    SYNTAX     Unsigned32(1..1440)
    UNITS      "minutes"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "To indicate how long the statistic information will be saved after
        the test stops."
    DEFVAL     { 120 }
    ::= { h3cNqaStatisticsCtlEntry 3 }

h3cNqaCtlBeginTime OBJECT-TYPE
    SYNTAX     DateAndTime
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "Time at which the type-specified test will start."
    ::= { h3cNqaStatisticsCtlEntry 4 }

h3cNqaCtlLifeTime OBJECT-TYPE
    SYNTAX     Unsigned32
    UNITS      "seconds"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "To indicate how long the type-specified test will last."
    DEFVAL     { 0 }
    ::= { h3cNqaStatisticsCtlEntry 5 }

h3cNqaStatisticsResultsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cNqaStatisticsResultsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Defines the NQA statistics results table for providing
        the capability of performing NQA operations at a remote
        host. The statistics results of these operations in a statistic cycle
        are stored in the h3cNqaStatisticsResultsTable. The statistic cycle is
        the value of h3cNqaCtlStatisticsInterval.
        The first two index identify the pingCtlEntry that the probe statistics
        result (H3cNqaStatisticsResultsEntry) belongs to."

    ::= { h3cNqaObjects 11 }


h3cNqaStatisticsResultsEntry OBJECT-TYPE
    SYNTAX       H3cNqaStatisticsResultsEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "Defines an entry in the h3cNqaStatisticsResultsTable. The
        h3cNqaStatisticsResultsTable has the same index as the
        pingCtlTable in order for a h3cNqaStatisticsResultsEntry to
        correspond to the pingCtlEntry that caused it to be created."
    INDEX
        {
            pingCtlOwnerIndex,
            pingCtlTestName,
            h3cNqaStatResIndex
        }
    ::= { h3cNqaStatisticsResultsTable 1 }

H3cNqaStatisticsResultsEntry ::=
    SEQUENCE
        {
            h3cNqaStatResIndex                  Unsigned32,
            h3cNqaStatResIpTargetAddressType    InetAddressType,
            h3cNqaStatResIpTargetAddress        InetAddress,
            h3cNqaStatResMinRtt                 Gauge32,
            h3cNqaStatResMaxRtt                 Gauge32,
            h3cNqaStatResAverageRtt             Gauge32,
            h3cNqaStatResProbeResponses         Counter32,
            h3cNqaStatResSentProbes             Counter32,
            h3cNqaStatResRttSumOfSquares        Counter32,
            h3cNqaStatResStartTime              DateAndTime,
            h3cNqaStatResInterval               Gauge32,
            h3cNqaStatResRttNumDisconnects      Counter32,
            h3cNqaStatResRttTimeouts            Counter32,
            h3cNqaStatResRttBusies              Counter32,
            h3cNqaStatResRttNoConnections       Counter32,
            h3cNqaStatResRttDrops               Counter32,
            h3cNqaStatResRttSequenceErrors      Counter32,
            h3cNqaStatResRttErrors              Counter32,
            h3cNqaStatResLostPacketRatio        Gauge32,
            h3cNqaStatResPacketLateArrival      Counter32,
            h3cNqaStatResRttSum                 Counter32,
            h3cNqaStatResNumOfDelaySD           Counter32,
            h3cNqaStatResMinDelaySD             Gauge32,
            h3cNqaStatResMaxDelaySD             Gauge32,
            h3cNqaStatResSumDelaySD             Counter32,
            h3cNqaStatResSum2DelaySD            Counter32,
            h3cNqaStatResNumOfDelayDS           Counter32,
            h3cNqaStatResMinDelayDS             Gauge32,
            h3cNqaStatResMaxDelayDS             Gauge32,
            h3cNqaStatResSumDelayDS             Counter32,
            h3cNqaStatResSum2DelayDS            Counter32
        }

h3cNqaStatResIndex OBJECT-TYPE
    SYNTAX      Unsigned32(1..'ffffffff'h)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in this table is created when the statistics
        result of a NQA probe is determined.

        An implementation MUST start assigning
        h3cNqaStatResIndex values at 1 and wrap after
        exceeding the maximum possible value as defined by
        the limit of this object ('ffffffff'h)."
    ::= { h3cNqaStatisticsResultsEntry 1 }

h3cNqaStatResIpTargetAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the type of address stored
        in the corresponding h3cNqaStatResIpTargetAddress
        object."
    DEFVAL { unknown }
    ::= { h3cNqaStatisticsResultsEntry 2 }

h3cNqaStatResIpTargetAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object represent the host address to be used at a remote host for
        performing a network analysis operation."
    DEFVAL { ''H }
    ::= { h3cNqaStatisticsResultsEntry 3 }

h3cNqaStatResMinRtt  OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The minimum NQA probe round-trip-time (RTT) received. The value
        of 0 for this object implies that no RTT has been received."
    ::= { h3cNqaStatisticsResultsEntry 4 }

h3cNqaStatResMaxRtt OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximum NQA probe round-trip-time (RTT) received. The value
        of 0 for this object implies that no RTT has been received."
    ::= { h3cNqaStatisticsResultsEntry 5 }

h3cNqaStatResAverageRtt OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The average NQA probe round-trip-time (RTT)."
    ::= { h3cNqaStatisticsResultsEntry 6 }

h3cNqaStatResProbeResponses OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of responses received. The value of this object
        MUST be reported as 0 when no probe responses have been
        received."
    ::= { h3cNqaStatisticsResultsEntry 7 }

h3cNqaStatResSentProbes OBJECT-TYPE
    SYNTAX      Counter32
    UNITS       "probes"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of this object reflects the number of probes sent.
        The value of this object MUST be reported as 0 when no probes
        have been sent."
    ::= { h3cNqaStatisticsResultsEntry 8 }

h3cNqaStatResRttSumOfSquares OBJECT-TYPE
    SYNTAX      Counter32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object contains the sum of the squares for all NQA
        responses received. The value of this object MUST
        be reported as 0 when no NQA responses have been
        received."
    ::= { h3cNqaStatisticsResultsEntry 9 }

h3cNqaStatResStartTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object contains the start time of the statistic."
    ::= { h3cNqaStatisticsResultsEntry 10 }

h3cNqaStatResInterval OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object contains the interval between two times of statistic."
    ::= { h3cNqaStatisticsResultsEntry 11 }

h3cNqaStatResRttNumDisconnects OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times that a NQA probe failed because the destination
        became disconnected.
        For connectionless protocol pingCtlTypes, this number should be
        zero."
    ::= { h3cNqaStatisticsResultsEntry 12 }

h3cNqaStatResRttTimeouts OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The number of times that a probe failed because the probe timed out."
    ::= { h3cNqaStatisticsResultsEntry 13 }

h3cNqaStatResRttBusies OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times that a NQA probe failed because
        errors related to sockets."
    ::= { h3cNqaStatisticsResultsEntry 14 }

h3cNqaStatResRttNoConnections OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times that a NQA probe failed because the
        probe destination is unavailable.
        For connectionless protocol pingCtlTypes, this number should be
        zero."
    ::= { h3cNqaStatisticsResultsEntry 15 }

h3cNqaStatResRttDrops OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times that a NQA operation failed to initiate
        for unavailibility of necessary internal resources."
    ::= { h3cNqaStatisticsResultsEntry 16 }

h3cNqaStatResRttSequenceErrors OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets arrived out of sequence."
    ::= { h3cNqaStatisticsResultsEntry 17 }

h3cNqaStatResRttErrors OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of other errors."
    ::= { h3cNqaStatisticsResultsEntry 18 }

h3cNqaStatResLostPacketRatio OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of this object reflects the drop rate of NQA
        test packet.
        For example, if the value is 30, that means source device
        only had received 70 percent packets of total sent packets."
    ::= { h3cNqaStatisticsResultsEntry 19 }

h3cNqaStatResPacketLateArrival OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of this object reflects the number of the packets that
        arrived after the timeout."
    ::= { h3cNqaStatisticsResultsEntry 20 }

h3cNqaStatResRttSum OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object contains the sum for all NQA responses received
         during the test lifetime.  The value of this object MUST be
         reported as 0 when no NQA responses have been received."
    ::= { h3cNqaStatisticsResultsEntry 21 }

h3cNqaStatResNumOfDelaySD OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of one way times from source to destination that are
        successfully measured."
    ::= { h3cNqaStatisticsResultsEntry 22 }

h3cNqaStatResMinDelaySD OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The minimum one way times from source to destination."
    ::= { h3cNqaStatisticsResultsEntry 23 }

h3cNqaStatResMaxDelaySD OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximum one way times from source to destination."
    ::= { h3cNqaStatisticsResultsEntry 24 }

h3cNqaStatResSumDelaySD OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The sum of one way times from source to destination."
    ::= { h3cNqaStatisticsResultsEntry 25 }

h3cNqaStatResSum2DelaySD OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The sum of squares of one way times from source to destination."
    ::= { h3cNqaStatisticsResultsEntry 26 }

h3cNqaStatResNumOfDelayDS OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of one way times from destination to source that are
        successfully measured."
    ::= { h3cNqaStatisticsResultsEntry 27 }

h3cNqaStatResMinDelayDS OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The minimum one way times from destination to source."
    ::= { h3cNqaStatisticsResultsEntry 28 }

h3cNqaStatResMaxDelayDS OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximum one way times from destination to source."
    ::= { h3cNqaStatisticsResultsEntry 29 }

h3cNqaStatResSumDelayDS OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The sum of one way times from destination to source."
    ::= { h3cNqaStatisticsResultsEntry 30 }

h3cNqaStatResSum2DelayDS OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The sum of squares of one way times from destination to source."
    ::= { h3cNqaStatisticsResultsEntry 31 }


-- =================================================================
--    h3cNqaGroupStatsJitterTable
-- =================================================================

h3cNqaGroupStatsJitterTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cNqaGroupStatsJitterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Test Group Statistic table for jitter activity in a statistic cycle.
        The statistic cycle is the value of h3cNqaCtlStatisticsInterval.
        The first two index identify the pingCtlEntry that a probe statistics
        result (H3cNqaStatisticsResultsEntry) belongs to."
    ::= { h3cNqaObjects 12 }

h3cNqaGroupStatsJitterEntry OBJECT-TYPE
    SYNTAX      H3cNqaGroupStatsJitterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry contains the group statistic information for jitter activity.
        This entry is created only if the pingCtlType is h3cNqajitter."
    INDEX
        {
            pingCtlOwnerIndex,
            pingCtlTestName,
            h3cNqaStatJitterIndex
        }
    ::= { h3cNqaGroupStatsJitterTable 1 }

H3cNqaGroupStatsJitterEntry ::=
    SEQUENCE
        {
            h3cNqaStatJitterIndex               Unsigned32,
            h3cNqaStatJitterMinOfPosSD          Gauge32,
            h3cNqaStatJitterMaxOfPosSD          Gauge32,
            h3cNqaStatJitterNumOfPosSD          Counter32,
            h3cNqaStatJitterSumOfPosSD          Counter32,
            h3cNqaStatJitterSumOfSquarePosSD    Counter32,
            h3cNqaStatJitterMinOfNegSD          Gauge32,
            h3cNqaStatJitterMaxOfNegSD          Gauge32,
            h3cNqaStatJitterNumOfNegSD          Counter32,
            h3cNqaStatJitterSumOfNegSD          Counter32,
            h3cNqaStatJitterSumOfSquareNegSD    Counter32,
            h3cNqaStatJitterMinOfPosDS          Gauge32,
            h3cNqaStatJitterMaxOfPosDS          Gauge32,
            h3cNqaStatJitterNumOfPosDS          Counter32,
            h3cNqaStatJitterSumOfPosDS          Counter32,
            h3cNqaStatJitterSumOfSquarePosDS    Counter32,
            h3cNqaStatJitterMinOfNegDS          Gauge32,
            h3cNqaStatJitterMaxOfNegDS          Gauge32,
            h3cNqaStatJitterNumOfNegDS          Counter32,
            h3cNqaStatJitterSumOfNegDS          Counter32,
            h3cNqaStatJitterSumOfSquareNegDS    Counter32,
            h3cNqaStatJitterPacketLossSD        Counter32,
            h3cNqaStatJitterPacketLossDS        Counter32,
            h3cNqaStatJitterAvePosSD            Gauge32,
            h3cNqaStatJitterAveNegSD            Gauge32,
            h3cNqaStatJitterAvePosDS            Gauge32,
            h3cNqaStatJitterAveNegDS            Gauge32,
            h3cNqaStatJitterPktLossUnknown      Counter32,
            h3cNqaStatJitterMaxOfICPIF          Gauge32,
            h3cNqaStatJitterMinOfICPIF          Gauge32,
            h3cNqaStatJitterMaxOfMOS            Gauge32,
            h3cNqaStatJitterMinOfMOS            Gauge32,
            h3cNqaStatJitterAveSD               Gauge32,
            h3cNqaStatJitterAveDS               Gauge32
        }

h3cNqaStatJitterIndex OBJECT-TYPE
    SYNTAX      Unsigned32(1..'ffffffff'h)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in this table is created when the statistic
        result of a NQA probe in a statistic cycle is determined.

        An implementation MUST start assigning h3cNqaStatJitterIndex
        values at 1 and wrap after exceeding the maximum possible
        value as defined by the limit of this object ('ffffffff'h)."
    ::= { h3cNqaGroupStatsJitterEntry 1 }

h3cNqaStatJitterMinOfPosSD OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the minimal positive jitter value
        from source to destination in jitter test."
    ::= { h3cNqaGroupStatsJitterEntry 2 }

h3cNqaStatJitterMaxOfPosSD OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the maximal positive jitter value
        from source to destination in the jitter test."
    ::= { h3cNqaGroupStatsJitterEntry 3 }

h3cNqaStatJitterNumOfPosSD OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of positive jitters from source to destination in the
        jitter test."
    ::= { h3cNqaGroupStatsJitterEntry 4 }

h3cNqaStatJitterSumOfPosSD OBJECT-TYPE
    SYNTAX      Counter32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the sum of positive jitter values
        from source to destination in the jitter test."
    ::= { h3cNqaGroupStatsJitterEntry 5 }

h3cNqaStatJitterSumOfSquarePosSD OBJECT-TYPE
    SYNTAX      Counter32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the sum of square of positive jitter
        values from source to destination in the jitter test."
    ::= { h3cNqaGroupStatsJitterEntry 6 }

h3cNqaStatJitterMinOfNegSD OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the minimal absolute values of
        negative jitter value from source to destination in the jitter test."
    ::= { h3cNqaGroupStatsJitterEntry 7 }

h3cNqaStatJitterMaxOfNegSD OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the maximal absolute values of negative
        jitter value from source to destination in the jitter test."
    ::= { h3cNqaGroupStatsJitterEntry 8 }

h3cNqaStatJitterNumOfNegSD OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of negative jitters from source to destination in the
        jitter test."
    ::= { h3cNqaGroupStatsJitterEntry 9 }

h3cNqaStatJitterSumOfNegSD OBJECT-TYPE
    SYNTAX      Counter32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the sum of negative jitter values
        from source to destination in the jitter test."
    ::= { h3cNqaGroupStatsJitterEntry 10 }

h3cNqaStatJitterSumOfSquareNegSD OBJECT-TYPE
    SYNTAX      Counter32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the sum of square of negative jitter
        values from source to destination in the jitter test."
    ::= { h3cNqaGroupStatsJitterEntry 11 }

h3cNqaStatJitterMinOfPosDS OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the minimal positive jitter value
        from destination to source in the jitter test."
    ::= { h3cNqaGroupStatsJitterEntry 12 }

h3cNqaStatJitterMaxOfPosDS OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the maximal positive jitter value
        from destination to source in the jitter test."
    ::= { h3cNqaGroupStatsJitterEntry 13 }

h3cNqaStatJitterNumOfPosDS OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of positive jitters from destination to source in the
        jitter test."
    ::= { h3cNqaGroupStatsJitterEntry 14 }

h3cNqaStatJitterSumOfPosDS OBJECT-TYPE
    SYNTAX      Counter32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the sum of positive jitter values
        from destination to source in the jitter test."
    ::= { h3cNqaGroupStatsJitterEntry 15 }

h3cNqaStatJitterSumOfSquarePosDS OBJECT-TYPE
    SYNTAX      Counter32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the sum of square of positive jitter
        values destination to source in the jitter test."
    ::= { h3cNqaGroupStatsJitterEntry 16 }

h3cNqaStatJitterMinOfNegDS OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the minimal absolute values of negative
        jitter value from destination to source in the jitter test."
    ::= { h3cNqaGroupStatsJitterEntry 17 }

h3cNqaStatJitterMaxOfNegDS OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the maximal absolute values of negative
        jitter value from destination to source in the jitter test."
    ::= { h3cNqaGroupStatsJitterEntry 18 }

h3cNqaStatJitterNumOfNegDS OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of negative jitters from destination to source in the
        jitter test."
    ::= { h3cNqaGroupStatsJitterEntry 19 }

h3cNqaStatJitterSumOfNegDS OBJECT-TYPE
    SYNTAX      Counter32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the sum of negative jitter values
        from destination to source in the jitter test."
    ::= { h3cNqaGroupStatsJitterEntry 20 }

h3cNqaStatJitterSumOfSquareNegDS OBJECT-TYPE
    SYNTAX      Counter32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the sum of square of negative jitter
        values from destination to source in the jitter test."
    ::= { h3cNqaGroupStatsJitterEntry 21 }

h3cNqaStatJitterPacketLossSD OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The lost packets number sent from source to destination."
    ::= { h3cNqaGroupStatsJitterEntry 22 }

h3cNqaStatJitterPacketLossDS OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The lost packets number sent from destination to source."
    ::= { h3cNqaGroupStatsJitterEntry 23 }

h3cNqaStatJitterAvePosSD OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the average positive jitter value
        from source to destination."
    ::= { h3cNqaGroupStatsJitterEntry 24 }

h3cNqaStatJitterAveNegSD OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the average negative jitter value
        from source to destination."
    ::= { h3cNqaGroupStatsJitterEntry 25 }

h3cNqaStatJitterAvePosDS OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the average positive jitter value
        from destination to source."
    ::= { h3cNqaGroupStatsJitterEntry 26 }

h3cNqaStatJitterAveNegDS OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the average negative jitter value
        from destination to source."
    ::= { h3cNqaGroupStatsJitterEntry 27 }

h3cNqaStatJitterPktLossUnknown OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets which is lost with unknown reason."
    ::= { h3cNqaGroupStatsJitterEntry 28 }

h3cNqaStatJitterMaxOfICPIF OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximum of all ICPIF values in a statistic cycle for jitter test."
    ::= { h3cNqaGroupStatsJitterEntry 29 }

h3cNqaStatJitterMinOfICPIF OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The minimum of all ICPIF values in a statistic cycle for jitter test."
    ::= { h3cNqaGroupStatsJitterEntry 30 }

h3cNqaStatJitterMaxOfMOS OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximum of all MOS values in a statistic cycle for jitter test."
    ::= { h3cNqaGroupStatsJitterEntry 31 }

h3cNqaStatJitterMinOfMOS OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The minimum of all MOS values in a statistic cycle for jitter test."
    ::= { h3cNqaGroupStatsJitterEntry 32 }

h3cNqaStatJitterAveSD OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the average jitter value
        from source to destination."
    ::= { h3cNqaGroupStatsJitterEntry 33 }

h3cNqaStatJitterAveDS OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of time that records the average jitter value
        from destination to source."
    ::= { h3cNqaGroupStatsJitterEntry 34 }

-- Reaction Table
h3cNqaReactionTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cNqaReactionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of NQA test monitoring notification and
        reaction configuration definitions.

        An entry is removed from this table when its
        corresponding pingCtlEntry is deleted."
  ::= { h3cNqaObjects 13 }

h3cNqaReactionEntry OBJECT-TYPE
    SYNTAX      H3cNqaReactionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Defines an entry in the h3cNqaReactionTable. The first two index
        elements identify the pingCtlEntry that a h3cNqaReactItemIndex
        belongs to. The third index element selects a single reaction."
    INDEX
        {
            h3cNqaReactOwnerIndex,
            h3cNqaReactTestName,
            h3cNqaReactItemIndex
        }
    ::= { h3cNqaReactionTable 1 }

H3cNqaReactionEntry ::=
    SEQUENCE
        {
            h3cNqaReactOwnerIndex                   SnmpAdminString,
            h3cNqaReactTestName                     SnmpAdminString,
            h3cNqaReactItemIndex                    Unsigned32,
            h3cNqaReactCheckedElement               INTEGER,
            h3cNqaReactThresholdUpperLimit          Unsigned32,
            h3cNqaReactThresholdLowerLimit          Unsigned32,
            h3cNqaReactThresholdType                INTEGER,
            h3cNqaReactThresholdConsecNum           Unsigned32,
            h3cNqaReactThresholdAccumNum            Unsigned32,
            h3cNqaReactActionType                   INTEGER,
            h3cNqaReactCurrentStatus                INTEGER,
            h3cNqaReactRowStatus                    RowStatus,
            h3cNqaReactCheckedNum                   Unsigned32,
            h3cNqaReactThresholdNum                 Unsigned32
        }

h3cNqaReactOwnerIndex OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..32))
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The first index of h3cNqaReactionTable, it is the same as
        pingCtlOwnerIndex in pingCtlTable. h3cNqaReactOwnerIndex and
        h3cNqaReactTestName identify an existed test."
    ::= { h3cNqaReactionEntry 1 }

h3cNqaReactTestName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..32))
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The second index of h3cNqaReactionTable, it is the same as
        pingCtlTestName in pingCtlTable. h3cNqaReactOwnerIndex and
        h3cNqaReactTestName identify an existed test."
    ::= { h3cNqaReactionEntry 2 }

h3cNqaReactItemIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..10)
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The third index of h3cNqaReactionTable, it definitely
        identifies one of the reaction configurations for a test."
    ::= { h3cNqaReactionEntry 3 }

h3cNqaReactCheckedElement OBJECT-TYPE
    SYNTAX      INTEGER {
                          probetime(1),
                          probefailure(2),
                          jitterrtt(3),
                          jitterpacketloss(4),
                          jittersd(5),
                          jitterds(6),
                          icpif(7),
                          mos(8),
                          jitterOwdSD(9),
                          jitterOwdDS(10)
                        }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A list of reaction condition type.
        'probetime' and 'probefailure' are valid when pingCtlType of
        the test is not h3cNqajitter.

        'jitterOwdSD': one way time from source to destination in
                       jitter test.
        'jitterOwdDS': one way time from destination to source in
                       jitter test.

        'jitterrtt', 'jitterpacketloss', 'jittersd', 'jitterds',
        'jitterOwdSD' and 'jitterOwdDS' are valid when pingCtlType
        of the test is h3cNqajitter.

        'icpif' and 'mos' are valid when pingCtlType of the test is
        h3cNqajitter and h3cNqaCtlCodecType is 'g711Alaw' or 'g711Ulaw'
        or 'g729A'."
     ::= { h3cNqaReactionEntry 4 }

h3cNqaReactThresholdUpperLimit OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object defines an administrative upper-threshold value for
        h3cNqaReactCheckedElement.

        The value of this object is zero if h3cNqaReactCheckedElement is
        specified as 'jitterpacketloss' and 'probefailure'."
    DEFVAL { 0 }
    ::= { h3cNqaReactionEntry 5 }

h3cNqaReactThresholdLowerLimit OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object defines an administrative lower-threshold value for
        h3cNqaReactCheckedElement.

        The value of h3cNqaReactThresholdLowerLimit should be equal or less
        than the value of h3cNqaReactThresholdUpperLimit.

        The value of this object is zero if h3cNqaReactCheckedElement is
        specified as 'jitterpacketloss' and 'probefailure'."
    DEFVAL { 0 }
    ::= { h3cNqaReactionEntry 6 }

h3cNqaReactThresholdType OBJECT-TYPE
    SYNTAX      INTEGER {
                           invalid(0),
                           average(1),
                           consecutive(2),
                           accumulative(3)
                       }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object defines the reaction threshold types.

        invalid(0):     Invalid value.

        average(1):     If reaction threshold type is average and the average
                        value of watched operation exceeds threshold limit,
                        an action specified in h3cNqaReactActionType is
                        generated when h3cNqaReactCurrentStatus changes.

        consecutive(2): If reaction threshold type is consecutive and
                        the times of watched operation consecutively exceeds
                        the limit specified by h3cNqaReactThresholdConsecNum,
                        an action specified in h3cNqaReactActionType is
                        generated when h3cNqaReactCurrentStatus changes.

        accumulative(3): If reaction threshold type is accumulative and
                        the times of watched operation accumulatively exceeds
                        the limit specified by h3cNqaReactThresholdAccumNum,
                        an action specified in h3cNqaReactActionType is
                        generated when h3cNqaReactCurrentStatus changes.

        If reaction threshold type is not configured, the value of this
        object is 'invalid'."
    ::= { h3cNqaReactionEntry 7 }

h3cNqaReactThresholdConsecNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object defines a consecutive threshold limit.

        The value is zero when h3cNqaReactThresholdType
        is not 'consecutive'."
    DEFVAL { 0 }
    ::= { h3cNqaReactionEntry 8 }

h3cNqaReactThresholdAccumNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object defines an accumulative threshold limit.

        The value is zero when the h3cNqaReactThresholdType
        is not 'accumulative'."
    DEFVAL { 0 }
    ::= { h3cNqaReactionEntry 9 }

h3cNqaReactActionType OBJECT-TYPE
    SYNTAX      INTEGER {
                           none(0),
                           trapOnly(1),
                           triggerOnly(2),
                           trapAndTrigger(3)
                        }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Specifies the type of reaction to generate if the specified
        violation type occurs for the monitored element:

        none               - No reaction is generated
        trapOnly           - A trap is generated
        triggerOnly        - All trigger actions defined for this
                             entry are generated
        trapAndTrigger     - Both a trap and all trigger actions
                             are generated "
    DEFVAL { none }
    ::= { h3cNqaReactionEntry 10 }

h3cNqaReactCurrentStatus OBJECT-TYPE
    SYNTAX      INTEGER {
                            invalid(1),
                            overThreshold(2),
                            belowThreshold(3)
                        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Specifies the current status of this reaction entry:

        invalid  - The status of the reaction entry is unknown.

        overThreshold   - The status of the reaction entry is overThreshold
                          when the monitored result exceeds the threshold
                          value for the h3cNqaReactThresholdType.

        belowThreshold  - The status of the reaction entry is belowThreshold
                          when the monitored result is under the threshold
                          value for the h3cNqaReactThresholdType."
    ::= { h3cNqaReactionEntry 11 }

h3cNqaReactRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object allows entries to be created and deleted
        in the h3cNqaReactionTable.

        Creation of an entry in this table results in a new set of reaction
        configurations which take effect immediately.

        Deletion of an entry in this table results in corresponding reaction
        configurations are being deleted and stop taking effect."
    REFERENCE
        "See definition of RowStatus in RFC 2579, 'Textual
        Conventions for SMIv2.'"
    ::= { h3cNqaReactionEntry 12 }

h3cNqaReactCheckedNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of checked element samples that are monitored."
    DEFVAL { 0 }
    ::= { h3cNqaReactionEntry 13 }

h3cNqaReactThresholdNum OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of checked element samples that are over threshold."
    DEFVAL { 0 }
    ::= { h3cNqaReactionEntry 14 }

-- Statistics Reaction Table
h3cNqaStatisticsReactionTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cNqaStatisticsReactionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of NQA test monitoring notification and
        reaction configuration definitions.

        An entry is removed from this table when its
        corresponding pingCtlEntry is deleted."
  ::= { h3cNqaObjects 14 }

h3cNqaStatisticsReactionEntry OBJECT-TYPE
    SYNTAX      H3cNqaStatisticsReactionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Defines an entry in the h3cNqaStatisticsReactionTable. The
        first two index elements identify the pingCtlEntry that a
        h3cNqaReactItemIndex belongs to. The third index element
        identifies an entry in the h3cNqaStatisticsResultsTable.
        The forth index element selects a single reaction."
    INDEX
        {
            h3cNqaStatReactOwnerIndex,
            h3cNqaStatReactTestName,
            h3cNqaStatReactIndex,
            h3cNqaStatReactItemIndex
        }
    ::= { h3cNqaStatisticsReactionTable 1 }

H3cNqaStatisticsReactionEntry ::=
    SEQUENCE
        {
            h3cNqaStatReactOwnerIndex               SnmpAdminString,
            h3cNqaStatReactTestName                 SnmpAdminString,
            h3cNqaStatReactIndex                    Unsigned32,
            h3cNqaStatReactItemIndex                Unsigned32,
            h3cNqaStatReactCheckedNum               Counter32,
            h3cNqaStatReactThresholdNum             Counter32
        }

h3cNqaStatReactOwnerIndex OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..32))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The first index of h3cNqaStatisticsReactionTable, it is the same
        as pingCtlOwnerIndex in pingCtlTable."
    ::= { h3cNqaStatisticsReactionEntry 1 }

h3cNqaStatReactTestName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..32))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The second index of h3cNqaStatisticsReactionTable, it is the same
        as pingCtlTestName in pingCtlTable."
    ::= { h3cNqaStatisticsReactionEntry 2 }

h3cNqaStatReactIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The third index of h3cNqaStatisticsReactionTable. An entry in
        this table is created when the statistics result of a NQA probe
        is determined.

        An implementation MUST start assigning h3cNqaStatResIndex values
        at 1 and wrap after exceeding the maximum possible value as
        defined by the limit of this object ('ffffffff'h)."
    DEFVAL { 0 }
    ::= { h3cNqaStatisticsReactionEntry 3 }

h3cNqaStatReactItemIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The forth index of h3cNqaStatisticsReactionTable, it definitely
        identifies one of the reaction configurations for a test"
    DEFVAL { 0 }
    ::= { h3cNqaStatisticsReactionEntry 4 }

h3cNqaStatReactCheckedNum OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of checked element samples that are monitored."
    DEFVAL { 0 }
    ::= { h3cNqaStatisticsReactionEntry 5 }

h3cNqaStatReactThresholdNum OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of checked element samples that are over threshold."
    DEFVAL { 0 }
    ::= { h3cNqaStatisticsReactionEntry 6 }

-- =================================================================
--   NQA server configuration extended information
-- =================================================================

h3cNqaTcpServerExtendTable OBJECT-TYPE
    SYNTAX SEQUENCE OF H3cNqaTcpServerExtendEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table which contains the status of extended NQA TCP server
        configuration information."
    ::= { h3cNqaObjects 15 }

h3cNqaTcpServerExtendEntry OBJECT-TYPE
    SYNTAX      H3cNqaTcpServerExtendEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table which contains the status of extended NQA TCP server
        configuration information.
        This entry includes the TCP server IP address, port,
        VPN name and DSField."
    INDEX {
            h3cNqaTcpServerExtIpAddress,
            h3cNqaTcpServerExtPort,
            h3cNqaTcpServerExtVPNType,
            h3cNqaTcpServerExtVPNInstance
          }
    ::= { h3cNqaTcpServerExtendTable 1 }

H3cNqaTcpServerExtendEntry  ::= SEQUENCE
{
    h3cNqaTcpServerExtIpAddress                InetAddress,
    h3cNqaTcpServerExtPort                     Integer32,
    h3cNqaTcpServerExtVPNType                  VpnInstanceType,
    h3cNqaTcpServerExtVPNInstance              OCTET STRING,
    h3cNqaTcpServerExtDSField                  Unsigned32,
    h3cNqaTcpServerExtRowStatus                RowStatus
}

h3cNqaTcpServerExtIpAddress          OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "TCP server's IP address."
    ::= { h3cNqaTcpServerExtendEntry 1 }

h3cNqaTcpServerExtPort          OBJECT-TYPE
    SYNTAX      Integer32 (0..65536)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "TCP server's port number."
    ::= { h3cNqaTcpServerExtendEntry 2 }

h3cNqaTcpServerExtVPNType OBJECT-TYPE
    SYNTAX      VpnInstanceType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "TCP server's VPN instance type."
    ::= { h3cNqaTcpServerExtendEntry 3 }

h3cNqaTcpServerExtVPNInstance OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..31))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "TCP server's VPN name.If the NQA server listens on the public network,
        the value of h3cNqaTcpServerExtVPNType must be public(1) and the value
        of this object can be set to any non-printable character string.If the
        NQA server listens on the private network, the value of h3cNqaTcpServerExtVPNType
        must be vpn(2) and the value of this object can be set to any non-printable
        character string."
    ::= { h3cNqaTcpServerExtendEntry 4 }

h3cNqaTcpServerExtDSField OBJECT-TYPE
    SYNTAX      Unsigned32 (0..255)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Specifies the value to store in the Differentiated
        Services (DS) Field in the IP packet used to
        encapsulate the probe.  The DS Field is defined
        as the Type of Service (TOS) octet in a IPv4 header
        or as the Traffic Class octet in a IPv6 header.

        The value of this object must be a decimal integer
        in the range of 0 to 255.  Not all values are legal or
        meaningful.  A value of 0 means that the function
        represented by this option is not supported.  DS Field
        usage is often not supported by IP implementations and
        not all values are supported.  Refer to RFC 2474 for
        guidance on usage of this field."
    REFERENCE
        "Refer to RFC 2474 for the definition of the
        Differentiated Services Field and to RFC 1812
        Section 5.3.2 for Type of Service (TOS)."
    DEFVAL { 0 }
    ::= { h3cNqaTcpServerExtendEntry 5 }

h3cNqaTcpServerExtRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "h3cNqaTcpServerIpAddress, h3cNqaTcpServerPort, h3cNqaTcpServerExtVPNType
        and h3cNqaTcpServerVPNInstance must be set during a creation operation."
    REFERENCE
        "RFC 2579"
    ::= { h3cNqaTcpServerExtendEntry 6 }

h3cNqaUdpServerExtendTable OBJECT-TYPE
    SYNTAX SEQUENCE OF H3cNqaUdpServerExtendEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Status of extended NQA UDP server configuration information."
    ::= { h3cNqaObjects 16 }

h3cNqaUdpServerExtendEntry OBJECT-TYPE
    SYNTAX      H3cNqaUdpServerExtendEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table which contains the status of extended NQA UDP server
        configuration information.
        This entry includes the UDP server IP address, port,
        VPN name and DSField."
    INDEX {
            h3cNqaUdpServerExtIpAddress,
            h3cNqaUdpServerExtPort,
            h3cNqaUdpServerExtVPNType,
            h3cNqaUdpServerExtVPNInstance
          }
    ::= { h3cNqaUdpServerExtendTable 1 }

H3cNqaUdpServerExtendEntry  ::= SEQUENCE
{
    h3cNqaUdpServerExtIpAddress                InetAddress,
    h3cNqaUdpServerExtPort                     Integer32,
    h3cNqaUdpServerExtVPNType                  VpnInstanceType,
    h3cNqaUdpServerExtVPNInstance              OCTET STRING,
    h3cNqaUdpServerExtDSField                  Unsigned32,
    h3cNqaUdpServerExtRowStatus                RowStatus
}

h3cNqaUdpServerExtIpAddress          OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "UDP server's IP address."
    ::= { h3cNqaUdpServerExtendEntry 1 }

h3cNqaUdpServerExtPort          OBJECT-TYPE
    SYNTAX      Integer32 (0..65536)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "UDP server's port number."
    ::= { h3cNqaUdpServerExtendEntry 2 }

h3cNqaUdpServerExtVPNType OBJECT-TYPE
    SYNTAX      VpnInstanceType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "UDP server's VPN instance type."
    ::= { h3cNqaUdpServerExtendEntry 3 }

h3cNqaUdpServerExtVPNInstance OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..31))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "UDP server's VPN name.If the NQA server listens on the public network,
        the value of h3cNqaUdpServerExtVPNType must be public(1) and the value
        of this object can be set to any non-printable character string.If the
        NQA server listens on the private network, the value of h3cNqaUdpServerExtVPNType
        must be vpn(2) and the value of this object can be set to any non-printable
        character string."
    ::= { h3cNqaUdpServerExtendEntry 4 }

h3cNqaUdpServerExtDSField OBJECT-TYPE
    SYNTAX      Unsigned32 (0..255)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Specifies the value to store in the Differentiated
        Services (DS) Field in the IP packet used to
        encapsulate the probe.  The DS Field is defined
        as the Type of Service (TOS) octet in a IPv4 header
        or as the Traffic Class octet in a IPv6 header.

        The value of this object must be a decimal integer
        in the range of 0 to 255.  Not all values are legal or
        meaningful.  A value of 0 means that the function
        represented by this option is not supported.  DS Field
        usage is often not supported by IP implementations and
        not all values are supported.  Refer to RFC 2474 for
        guidance on usage of this field."
    REFERENCE
        "Refer to RFC 2474 for the definition of the
        Differentiated Services Field and to RFC 1812
        Section 5.3.2 for Type of Service (TOS)."
    DEFVAL { 0 }
    ::= { h3cNqaUdpServerExtendEntry 5 }

h3cNqaUdpServerExtRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "h3cNqaUdpServerIpAddress, h3cNqaUdpServerPort, h3cNqaUdpServerExtVPNType
        and h3cNqaUdpServerVPNInstance must be set during a creation operation."
    REFERENCE
        "RFC 2579"
    ::= { h3cNqaUdpServerExtendEntry 6 }

-- Notification Definition section
h3cNqaNotifications  OBJECT IDENTIFIER ::= { h3cNqa 3 }
h3cNqaProbeTimeOverThreshold NOTIFICATION-TYPE
    OBJECTS {
            h3cNqaReactOwnerIndex,
            h3cNqaReactTestName,
            h3cNqaReactItemIndex,
            pingCtlTargetAddressType,
            pingCtlTargetAddress,
            pingCtlType,
            pingCtlDescr,
            h3cNqaReactThresholdType,
            h3cNqaReactCurrentStatus
        }
    STATUS  current
    DESCRIPTION
        "It is generated when the value of h3cNqaReactCurrentStatus
        changes.
        The change may occur when the watched condition is over threshold
        or below threshold.

        The over threshold situations is specified as below.
          1. Probe time(equals to RTT for some type of tests) is not in
             the range h3cNqaReactThresholdLowerLimit through
             h3cNqaReactThresholdUpperLimit.
          2. The probe time is accumulatively not in the range
             h3cNqaReactThresholdLowerLimit through
             h3cNqaReactThresholdUpperLimit for a number of times
             specified in h3cNqaReactThresholdAccumNum.
          3. The probe time is consecutively in the range
             h3cNqaReactThresholdLowerLimit through
             h3cNqaReactThresholdUpperLimit for a number of times
             specified in h3cNqaReactThresholdConsecNum.

        This notification is valid only when h3cNqaReactActionType
        is 'trapOnly' or 'trapAndTrigger' and pingCtlType of the test
        is not h3cNqajitter."
    ::= { h3cNqaNotifications 1 }

h3cNqaJitterRTTOverThreshold NOTIFICATION-TYPE
    OBJECTS {
            h3cNqaReactOwnerIndex,
            h3cNqaReactTestName,
            h3cNqaReactItemIndex,
            pingCtlTargetAddressType,
            pingCtlTargetAddress,
            pingCtlType,
            pingCtlDescr,
            h3cNqaReactThresholdType,
            h3cNqaReactCurrentStatus
        }
    STATUS  current
    DESCRIPTION
        "It is generated when the value of h3cNqaReactCurrentStatus
        changes.
        The change may occur when the watched condition is over threshold
        or below threshold.

        The over threshold situations is specified as below.
          1. The average NQA round-trip-time (RTT) of jitter packets
             is not in the range h3cNqaReactThresholdLowerLimit through
             h3cNqaReactThresholdUpperLimit.
          2. The RTT of jitter packets is accumulatively not in the range
             h3cNqaReactThresholdLowerLimit through
             h3cNqaReactThresholdUpperLimit for a number of times specified
             in h3cNqaReactThresholdAccumNum in one test.

        This notification is valid only when h3cNqaReactActionType
        is 'trapOnly' or 'trapAndTrigger' and pingCtlType of the test
        is h3cNqajitter."
    ::= { h3cNqaNotifications 2 }

h3cNqaProbeFailure NOTIFICATION-TYPE
    OBJECTS {
            h3cNqaReactOwnerIndex,
            h3cNqaReactTestName,
            h3cNqaReactItemIndex,
            pingCtlTargetAddressType,
            pingCtlTargetAddress,
            pingCtlType,
            pingCtlDescr,
            h3cNqaReactThresholdType,
            h3cNqaReactCurrentStatus
        }
    STATUS  current
    DESCRIPTION
        "It is generated when the value of h3cNqaReactCurrentStatus
        changes.
        The change may occur when the watched condition is over threshold
        or below threshold.

        The over threshold situations is specified as below.
          1. When the probe test accumulatively failed for a
             number of times specified in h3cNqaReactThresholdAccumNum in one
             test while the value of h3cNqaReactThresholdType is 'accumulative'.
          2. When the probe test consecutively failed for
             a number of times specified in h3cNqaReactThresholdConsecNum in one
             test while the value of h3cNqaReactThresholdType is 'consecutive'.

        This notification is valid only when h3cNqaReactActionType
        is 'trapOnly' or 'trapAndTrigger' and pingCtlType of the test
        is not h3cNqajitter."
    ::= { h3cNqaNotifications 3 }

h3cNqaJitterPacketLoss NOTIFICATION-TYPE
    OBJECTS {
            h3cNqaReactOwnerIndex,
            h3cNqaReactTestName,
            h3cNqaReactItemIndex,
            pingCtlTargetAddressType,
            pingCtlTargetAddress,
            pingCtlType,
            pingCtlDescr,
            h3cNqaReactThresholdType,
            h3cNqaReactCurrentStatus
        }
    STATUS  current
    DESCRIPTION
        "It is generated when the value of h3cNqaReactCurrentStatus
        changes.
        The change may occur when the watched condition is over threshold
        or below threshold.

        The over threshold situations is specified as below.
          1. When the jitter packets accumulatively lost for a
             number of times specified in h3cNqaReactThresholdAccumNum in one
             test while the value of h3cNqaReactThresholdType is 'accumulative'.

        This notification is valid only when h3cNqaReactActionType
        is 'trapOnly' or 'trapAndTrigger' and pingCtlType of the test
        is h3cNqajitter."
    ::= { h3cNqaNotifications 4 }

h3cNqaJitterSDOverThreshold NOTIFICATION-TYPE
    OBJECTS {
            h3cNqaReactOwnerIndex,
            h3cNqaReactTestName,
            h3cNqaReactItemIndex,
            pingCtlTargetAddressType,
            pingCtlTargetAddress,
            pingCtlType,
            pingCtlDescr,
            h3cNqaReactThresholdType,
            h3cNqaReactCurrentStatus
        }
    STATUS  current
    DESCRIPTION
        "The SD means the jitter values from source to destination.

        It is generated when the value of h3cNqaReactCurrentStatus
        changes.
        The change may occur when the watched condition is over threshold
        or below threshold.

        The over threshold situations is specified as below.
          1. The average of SD in one jitter test is not in the range
             h3cNqaReactThresholdLowerLimit through
             h3cNqaReactThresholdUpperLimit and the
             h3cNqaReactThresholdType is specified as 'average' type.
          2. The average of SD in one jitter test is accumulatively
             not in the range h3cNqaReactThresholdLowerLimit through
             h3cNqaReactThresholdUpperLimit for a number of times specified
             in h3cNqaReactThresholdAccumNum and the
             h3cNqaReactThresholdType is specified as 'accumulative' type.

        This notification is valid only when h3cNqaReactActionType
        is 'trapOnly' or 'trapAndTrigger' and pingCtlType of the test
        is h3cNqajitter."
    ::= { h3cNqaNotifications 5 }

h3cNqaJitterDSOverThreshold NOTIFICATION-TYPE
    OBJECTS {
            h3cNqaReactOwnerIndex,
            h3cNqaReactTestName,
            h3cNqaReactItemIndex,
            pingCtlTargetAddressType,
            pingCtlTargetAddress,
            pingCtlType,
            pingCtlDescr,
            h3cNqaReactThresholdType,
            h3cNqaReactCurrentStatus
        }
    STATUS  current
    DESCRIPTION
        "The DS means the jitter values from destination to source.

        It is generated when the value of h3cNqaReactCurrentStatus
        changes.
        The change may occur when the watched condition is over threshold
        or below threshold.

        The over threshold situations is specified as below.
          1. The average of DS in one jitter test is not in the range
             h3cNqaReactThresholdLowerLimit through
             h3cNqaReactThresholdUpperLimit and the
             h3cNqaReactThresholdType is specified as 'average' type.
          2. The average of DS in one jitter test is accumulatively not
             in the range h3cNqaReactThresholdLowerLimit through
             h3cNqaReactThresholdUpperLimit for a number of times specified
             in h3cNqaReactThresholdAccumNum and the
             h3cNqaReactThresholdType is specified as 'accumulative' type.

        This notification is valid only when h3cNqaReactActionType
        is 'trapOnly' or 'trapAndTrigger' and pingCtlType of the test
        is h3cNqajitter."
    ::= { h3cNqaNotifications 6 }

h3cNqaICPIFOverThreshold NOTIFICATION-TYPE
    OBJECTS {
            h3cNqaReactOwnerIndex,
            h3cNqaReactTestName,
            h3cNqaReactItemIndex,
            pingCtlTargetAddressType,
            pingCtlTargetAddress,
            pingCtlType,
            pingCtlDescr,
            h3cNqaReactCurrentStatus
        }
    STATUS  current
    DESCRIPTION
        "It is generated when the value of h3cNqaReactCurrentStatus
        changes.
        The change may occur when the watched condition is over threshold
        or below threshold.

        The over threshold situations is specified as below.
          1. When the ICPIF value in one jitter test is not in
             the range h3cNqaReactThresholdLowerLimit through
             h3cNqaReactThresholdUpperLimit.

        This notification is valid only when h3cNqaReactActionType
        is 'trapOnly' or 'trapAndTrigger', pingCtlType of the test
        is h3cNqajitter and h3cNqaCtlCodecType is 'g711Alaw' or 'g711Ulaw'
        or 'g729A'."
    ::= { h3cNqaNotifications 7 }

h3cNqaMOSOverThreshold NOTIFICATION-TYPE
    OBJECTS {
            h3cNqaReactOwnerIndex,
            h3cNqaReactTestName,
            h3cNqaReactItemIndex,
            pingCtlTargetAddressType,
            pingCtlTargetAddress,
            pingCtlType,
            pingCtlDescr,
            h3cNqaReactCurrentStatus
        }
    STATUS  current
    DESCRIPTION
        "It is generated when the value of h3cNqaReactCurrentStatus
        changes.
        The change may occur when the watched condition is over threshold
        or below threshold.

        The over threshold situations is specified as below.
          1. When the MOS value in one jitter test is not in
             the range h3cNqaReactThresholdLowerLimit through
             h3cNqaReactThresholdUpperLimit.

        This notification is valid only when h3cNqaReactActionType
        is 'trapOnly' or 'trapAndTrigger', pingCtlType of the test
        is h3cNqajitter and h3cNqaCtlCodecType is 'g711Alaw' or 'g711Ulaw'
        or 'g729A'."
    ::= { h3cNqaNotifications 8 }

END
