--  -*- mode:snmp -*-

ZXTM-MIB DEFINITIONS ::= BEGIN

--======================================================================
-- MIB for Zeus Traffic Manager 7.4
-- For more information, please see http://www.zeus.com/
--======================================================================

IMPORTS
   OBJECT-TYPE, enterprises, Counter, Gauge, IpAddress, TimeTicks
      FROM RFC1155-SMI
   DisplayString
      FROM RFC1213-MIB
   InetAddressType, InetAddress
      FROM INET-ADDRESS-MIB
   TRAP-TYPE
      FROM RFC-1215;

zeus                    OBJECT IDENTIFIER ::= { enterprises 7146 }
products                OBJECT IDENTIFIER ::= { zeus 1 }
zxtm                    OBJECT IDENTIFIER ::= { products 2 }
globals                 OBJECT IDENTIFIER ::= { zxtm 1 }
virtualservers          OBJECT IDENTIFIER ::= { zxtm 2 }
pools                   OBJECT IDENTIFIER ::= { zxtm 3 }
nodes                   OBJECT IDENTIFIER ::= { zxtm 4 }
serviceprotection       OBJECT IDENTIFIER ::= { zxtm 5 }
trafficips              OBJECT IDENTIFIER ::= { zxtm 6 }
servicelevelmonitoring  OBJECT IDENTIFIER ::= { zxtm 7 }
pernodeservicelevelmon  OBJECT IDENTIFIER ::= { zxtm 8 }
bandwidthmgt            OBJECT IDENTIFIER ::= { zxtm 9 }
connratelimit           OBJECT IDENTIFIER ::= { zxtm 10 }
extra                   OBJECT IDENTIFIER ::= { zxtm 11 }
netinterfaces           OBJECT IDENTIFIER ::= { zxtm 12 }
events                  OBJECT IDENTIFIER ::= { zxtm 13 }
actions                 OBJECT IDENTIFIER ::= { zxtm 14 }
zxtmtraps               OBJECT IDENTIFIER ::= { zxtm 15 }
persistence             OBJECT IDENTIFIER ::= { zxtm 16 }
cache                   OBJECT IDENTIFIER ::= { zxtm 17 }
webcache                OBJECT IDENTIFIER ::= { cache 1 }
sslcache                OBJECT IDENTIFIER ::= { cache 2 }
aspsessioncache         OBJECT IDENTIFIER ::= { cache 3 }
ipsessioncache          OBJECT IDENTIFIER ::= { cache 4 }
j2eesessioncache        OBJECT IDENTIFIER ::= { cache 5 }
unisessioncache         OBJECT IDENTIFIER ::= { cache 6 }
sslsessioncache         OBJECT IDENTIFIER ::= { cache 7 }
rules                   OBJECT IDENTIFIER ::= { zxtm 18 }
monitors                OBJECT IDENTIFIER ::= { zxtm 19 }
licensekeys             OBJECT IDENTIFIER ::= { zxtm 20 }
zxtms                   OBJECT IDENTIFIER ::= { zxtm 21 }
trapobjects             OBJECT IDENTIFIER ::= { zxtm 22 }
cloudcredentials        OBJECT IDENTIFIER ::= { zxtm 23 }
glbservices             OBJECT IDENTIFIER ::= { zxtm 24 }
perlocationservices     OBJECT IDENTIFIER ::= { zxtm 25 }
locations               OBJECT IDENTIFIER ::= { zxtm 26 }
listenips               OBJECT IDENTIFIER ::= { zxtm 27 }
authenticators          OBJECT IDENTIFIER ::= { zxtm 28 }

--=============================================================================
-- MIB for ZXTM
--=============================================================================

-- Root OID: .1.3.6.1.4.1.7146.1.2

--=============================================================================
-- Globals
--=============================================================================

--------------------------
-- Info
--------------------------

version OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The Zeus Traffic Manager version."
   ::= { globals 1 }

numberChildProcesses OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of traffic manager child processes."
   ::= { globals 2 }

upTime OBJECT-TYPE
   SYNTAX TimeTicks
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The time (in hundredths of a second) that Zeus software has been
       operational for (this value will wrap if it has been running for more
       than 497 days)."
   ::= { globals 3 }

timeLastConfigUpdate OBJECT-TYPE
   SYNTAX TimeTicks
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The time (in hundredths of a second) since the configuration of
       traffic manager was updated (this value will wrap if no
       configuration changes are made for 497 days)."
   ::= { globals 4 }

--------------------------
-- Traffic
--------------------------
totalBytesInLo OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes received by the traffic manager from clients ( low 32bits )."
   ::= { globals 5 }

totalBytesInHi OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes received by the traffic manager from clients ( high 32bits )."
   ::= { globals 6 }

totalBytesOutLo OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes sent by the traffic manager to clients ( low 32bits )."
   ::= { globals 7 }

totalBytesOutHi OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes sent by the traffic manager to clients ( high 32bits )."
   ::= { globals 8 }

totalCurrentConn OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of TCP connections currently established."
   ::= { globals 9 }

totalConn OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Total number of TCP connections received."
   ::= { globals 10 }


totalRequests OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Total number of TCP requests recieved."
   ::= { globals 127 }

totalTransactions OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Total number of TCP requests being processed, after applying TPS limits."
   ::= { globals 128 }

--------------------------
-- DNS
--------------------------
numberDNSARequests OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Requests for DNS A records (hostname->IP address) made by the traffic manager."
   ::= { globals 11 }

numberDNSACacheHits OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Requests for DNS A records resolved from the traffic manager's local cache."
   ::= { globals 12 }

numberDNSPTRRequests OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Requests for DNS PTR records (IP address->hostname) made by the traffic manager."
   ::= { globals 13 }

numberDNSPTRCacheHits OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Requests for DNS PTR records resolved from the traffic manager's local cache."
   ::= { globals 14 }


--------------------------
-- SNMP
--------------------------

numberSNMPUnauthorisedRequests OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "SNMP requests dropped due to access restrictions."
   ::= { globals 15 }
   
numberSNMPBadRequests OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Malformed SNMP requests received."
   ::= { globals 16 }

numberSNMPGetRequests OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "SNMP GetRequests received."
   ::= { globals 17 }

numberSNMPGetNextRequests OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "SNMP GetNextRequests received."
   ::= { globals 18 }


--------------------------
-- SSL
--------------------------

sslCipherEncrypts OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
       "Bytes encrypted with a symmetric cipher."
   ::= { globals 19 }

sslCipherDecrypts OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
       "Bytes decrypted with a symmetric cipher."
   ::= { globals 20 }


sslCipherRC4Encrypts OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes encrypted with RC4."
   ::= { globals 21 }

sslCipherRC4Decrypts OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes decrypted with RC4."
   ::= { globals 22 }

sslCipherDESEncrypts OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes encrypted with DES."
   ::= { globals 23 }

sslCipherDESDecrypts OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes decrypted with DES."
   ::= { globals 24 }

sslCipher3DESEncrypts OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes encrypted with 3DES."
   ::= { globals 25 }

sslCipher3DESDecrypts OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes decrypted with 3DES."
   ::= { globals 26 }

sslCipherAESEncrypts OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes encrypted with AES."
   ::= { globals 27 }

sslCipherAESDecrypts OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes decrypted with AES."
   ::= { globals 28 }

sslCipherRSAEncrypts OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of RSA encrypts."
   ::= { globals 29 }

sslCipherRSADecrypts OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of RSA decrypts."
   ::= { globals 30 }

sslCipherRSADecryptsExternal OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of external RSA decrypts."
   ::= { globals 31 }

sslHandshakeSSLv2 OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of SSLv2 handshakes."
   ::= { globals 32 }

sslHandshakeSSLv3 OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of SSLv3 handshakes."
   ::= { globals 33 }


sslHandshakeTLSv1 OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of TLSv1.0 handshakes."
   ::= { globals 34 }


sslClientCertNotSent OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a client certificate was required but not supplied."
   ::= { globals 35 }

sslClientCertInvalid OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a client certificate was invalid."
   ::= { globals 36 }


sslClientCertExpired OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a client certificate has expired."
   ::= { globals 37 }

sslClientCertRevoked OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a client certificate was revoked."
   ::= { globals 38 }


sslSessionIDMemCacheHit OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times the SSL session id was found in the cache and reused."
   ::= { globals 39 }

sslSessionIDMemCacheMiss OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times the SSL session id was not found in the cache."
   ::= { globals 40 }

sslSessionIDDiskCacheHit OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS deprecated
   DESCRIPTION
      "Number of times the SSL session id was found in the disk cache and reused (deprecated, will always return 0)."
   ::= { globals 41 }

sslSessionIDDiskCacheMiss OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS deprecated
   DESCRIPTION
      "Number of times the SSL session id was not found in the disk cache (deprecated, will always return 0)."
   ::= { globals 42 }
   

sslHandshakeTLSv11 OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of TLSv1.1 handshakes."
   ::= { globals 43 }


sslConnections OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of SSL connections negotiated."
   ::= { globals 44 }

sslCipherRSAEncryptsExternal OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of external RSA encrypts."
   ::= { globals 57 }

--=============================================================================
-- System counters
--=============================================================================

sysCPUIdlePercent OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Percentage of time that the CPUs are idle."
   ::= { globals 45 }

sysCPUBusyPercent OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Percentage of time that the CPUs are busy."
   ::= { globals 46 }

sysCPUUserBusyPercent OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Percentage of time that the CPUs are busy running user-space code."
   ::= { globals 47 }

sysCPUSystemBusyPercent OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Percentage of time that the CPUs are busy running system code."
   ::= { globals 48 }

sysFDsFree OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of free file descriptors."
   ::= { globals 49 }

sysMemTotal OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Total memory (MBytes)."
   ::= { globals 50 }

sysMemFree OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Free memory (MBytes)."
   ::= { globals 51 }

sysMemInUse OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Memory used (MBytes)."
   ::= { globals 52 }

sysMemBuffered OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Buffer memory (MBytes)."
   ::= { globals 53 }

sysMemSwapped OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Amount of swap space in use (MBytes)."
   ::= { globals 54 }

sysMemSwapTotal OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Total swap space (MBytes)."
   ::= { globals 55 }

numIdleConnections OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Total number of idle HTTP connections to all nodes (used for future HTTP requests)."
   ::= { globals 56 }

dataEntries OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of entries in the TrafficScript data.get()/set() storage."
   ::= { globals 58 }

dataMemoryUsage OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of bytes used in the TrafficScript data.get()/set() storage."
   ::= { globals 59 }

--=============================================================================
-- Events
--=============================================================================

eventsSeen OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Events seen by the traffic Manager's event handling process."
   ::= { globals 60 }

--=============================================================================
-- DNS
--=============================================================================

totalDNSResponses OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Total number of DNS response packets handled."
   ::= { globals 61 }

totalBadDNSPackets OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Total number of malformed DNS response packets encountered from the backend servers."
   ::= { globals 62 }

totalBackendServerErrors OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Total errors returned from the backend servers."
   ::= { globals 63 }

--=============================================================================
-- Virtual Servers
--=============================================================================

virtualserverNumber OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of virtual servers."
   ::= { virtualservers 1 }

--======================
-- Virtual Server Table
--======================
virtualserverTable OBJECT-TYPE
   SYNTAX SEQUENCE OF VirtualserverEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This table gives information and statistics for the virtual
       servers the traffic manager is hosting."
   ::= { virtualservers 2 }

virtualserverEntry OBJECT-TYPE
   SYNTAX VirtualserverEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This defines a row in the virtual servers table."
   INDEX { virtualserverName }
   ::= { virtualserverTable 1 }

VirtualserverEntry ::= SEQUENCE {
      virtualserverName    DisplayString (SIZE (0..255)),
      virtualserverPort    INTEGER (0..65535),
      virtualserverProtocol    INTEGER,
      virtualserverDefaultTrafficPool     DisplayString (SIZE (0..255)),
      virtualserverBytesInLo        Counter,
      virtualserverBytesInHi        Counter,
      virtualserverBytesOutLo       Counter,
      virtualserverBytesOutHi       Counter,
      virtualserverCurrentConn      Gauge,
      virtualserverMaxConn          Gauge,
      virtualserverTotalConn        Counter,
      virtualserverDiscard          Counter,
      virtualserverDirectReplies    Counter,
      virtualserverConnectTimedOut   Counter,
      virtualserverDataTimedOut      Counter,
      virtualserverKeepaliveTimedOut Counter,
      virtualserverUdpTimedOut      Counter,
      virtualserverTotalDgram       Counter,
      virtualserverGzip             Counter,
      virtualserverGzipBytesSavedLo Counter,
      virtualserverGzipBytesSavedHi Counter,
      virtualserverHttpRewriteLocation Counter,
      virtualserverHttpRewriteCookie Counter,
      virtualserverHttpCacheHits    Counter,
      virtualserverHttpCacheLookups Counter,
      virtualserverHttpCacheHitRate Gauge,
      virtualserverSIPTotalCalls    Counter,
      virtualserverSIPRejectedRequests Counter,
      virtualserverConnectionErrors Counter,
      virtualserverConnectionFailures Counter
}

virtualserverName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of the virtual server."
   ::= { virtualserverEntry 1 }

virtualserverPort OBJECT-TYPE
   SYNTAX INTEGER (0..65535)
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The port the virtual server listens on."
   ::= { virtualserverEntry 2 }

virtualserverProtocol OBJECT-TYPE
   SYNTAX INTEGER { http(1),
                    https(2),
                    ftp(3),
                    imaps(4),
                    imapv2(5),
                    imapv3(6),
                    imapv4(7),
                    pop3(8),
                    pop3s(9),
                    smtp(10),
                    ldap(11),
                    ldaps(12),
                    telnet(13),
                    sslforwarding(14),
                    udpstreaming(15),
                    udp(16),
                    dns(17),
                    genericserverfirst(18),
                    genericclientfirst(19),
                    dnstcp(20),
                    sipudp(21),
                    siptcp(22),
                    rtsp(23) }
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The protocol the virtual server is operating."
   ::= { virtualserverEntry 3 }

virtualserverDefaultTrafficPool OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The virtual server's default pool."
   ::= { virtualserverEntry 4 }

virtualserverBytesInLo OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes received by this virtual server from clients ( low 32bits )."
   ::= { virtualserverEntry 5 }

virtualserverBytesInHi OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes received by this virtual server from clients ( high 32bits )."
   ::= { virtualserverEntry 6 }

virtualserverBytesOutLo OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes sent by this virtual server to clients ( low 32bits )."
   ::= { virtualserverEntry 7 }

virtualserverBytesOutHi OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes sent by this virtual server to clients ( high 32bits )."
   ::= { virtualserverEntry 8 }

virtualserverCurrentConn OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "TCP connections currently established to this virtual server."
   ::= { virtualserverEntry 9 }

virtualserverMaxConn OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Maximum number of simultaneous TCP connections this virtual
      server has processed at any one time."
    ::= { virtualserverEntry 10 }

virtualserverTotalConn OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Requests received by this virtual server."
   ::= { virtualserverEntry 11 }

virtualserverDiscard OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Connections discarded by this virtual server."
   ::= { virtualserverEntry 12 }

virtualserverDirectReplies OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Direct replies from this virtual server, without forwarding to a node."
   ::= { virtualserverEntry 13 }

virtualserverConnectTimedOut OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Connections closed by this virtual server because the 'connect_timeout'
      interval was exceeded."
   ::= { virtualserverEntry 14 }

virtualserverDataTimedOut OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Connections closed by this virtual server because the 'timeout'
      interval was exceeded."
   ::= { virtualserverEntry 15 }

virtualserverKeepaliveTimedOut OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Connections closed by this virtual server because the 'keepalive_timeout'
      interval was exceeded."
   ::= { virtualserverEntry 16 }

virtualserverUdpTimedOut OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Connections closed by this virtual server because the 'udp_timeout'
      interval was exceeded."
   ::= { virtualserverEntry 17 }

virtualserverTotalDgram OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "UDP datagrams processed by this virtual server."
   ::= { virtualserverEntry 18 }

virtualserverGzip OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Responses which have been compressed by content compression."
   ::= { virtualserverEntry 19 }

virtualserverGzipBytesSavedLo OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes of network traffic saved by content compression ( low 32bits )."
   ::= { virtualserverEntry 20 }

virtualserverGzipBytesSavedHi OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes of network traffic saved by content compression ( high 32bits )."
   ::= { virtualserverEntry 21 }

virtualserverHttpRewriteLocation OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "HTTP Location headers, supplied by a node, that have been rewritten."
   ::= { virtualserverEntry 22 }

virtualserverHttpRewriteCookie OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "HTTP Set-Cookie headers, supplied by a node, that have been rewritten."
   ::= { virtualserverEntry 23 }

virtualserverHttpCacheHits OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "HTTP responses sent directly from the web cache by this virtual server."
   ::= { virtualserverEntry 24 }

virtualserverHttpCacheLookups OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "HTTP requests that are looked up in the web cache by this virtual server."
   ::= { virtualserverEntry 25 }

virtualserverHttpCacheHitRate OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Percentage hit rate of the web cache for this virtual server."
   ::= { virtualserverEntry 26 }

virtualserverSIPTotalCalls OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Total number of SIP INVITE requests seen by this virtual server."
   ::= { virtualserverEntry 27 }

virtualserverSIPRejectedRequests OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of SIP requests rejected due to them exceeding the maximum amount of memory allocated to the connection."
   ::= { virtualserverEntry 28 }

virtualserverConnectionErrors OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of transaction or protocol errors in this virtual server."
   ::= { virtualserverEntry 29 }


virtualserverConnectionFailures OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of connection failures in this virtual server."
   ::= { virtualserverEntry 30 }

--=============================================================================
-- Pools
--=============================================================================

poolNumber OBJECT-TYPE
   SYNTAX INTEGER (0..65535)
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of pools on this system."
   ::= { pools 1 }

-- Pool Table
poolTable OBJECT-TYPE
   SYNTAX SEQUENCE OF PoolEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This table provides information and statistics for pools."
   ::= { pools 2 }

poolEntry OBJECT-TYPE
   SYNTAX PoolEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This defines a row in the pools table."
   INDEX { poolName }
   ::= { poolTable 1 }

PoolEntry ::=
   SEQUENCE {
      poolName         DisplayString (SIZE (0..255)),
      poolAlgorithm    INTEGER,
      poolNodes        INTEGER,
      poolDraining     INTEGER,
      poolFailPool     DisplayString (SIZE (0..255)),
      poolBytesInLo    Counter,
      poolBytesInHi    Counter,
      poolBytesOutLo   Counter,
      poolBytesOutHi   Counter,
      poolTotalConn    Counter,
      poolPersistence  INTEGER,
      poolSessionMigrated Counter,
      poolDisabled     INTEGER,
      poolState        INTEGER,
      poolConnsQueued      Gauge,
      poolQueueTimeouts    Counter,
      poolMinQueueTime    Gauge,
      poolMaxQueueTime    Gauge,
      poolMeanQueueTime   Gauge
   }

poolName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of the pool."
   ::= { poolEntry 1 }

poolAlgorithm OBJECT-TYPE
   SYNTAX INTEGER { roundrobin(1),
                    weightedRoundRobin(2),
                    perceptive(3),
                    leastConnections(4),
                    fastestResponseTime(5),
                    random(6),
		    weightedLeastConnections(7) }
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The load-balancing algorithm the pool uses."
   ::= { poolEntry 2 }

poolNodes OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of nodes registered with this pool."
   ::= { poolEntry 3 }

poolDraining OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of nodes in this pool which are draining."
   ::= { poolEntry 4 }

poolFailPool OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of this pool's failure pool."
   ::= { poolEntry 5 }

poolBytesInLo OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes received by this pool from nodes ( low 32bits )."
   ::= { poolEntry 6 }

poolBytesInHi OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes received by this pool from nodes ( high 32bits )."
   ::= { poolEntry 7 }

poolBytesOutLo OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes sent by this pool to nodes ( low 32bits )."
   ::= { poolEntry 8 }

poolBytesOutHi OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes sent by this pool to nodes ( high 32bits )."
   ::= { poolEntry 9 }

poolTotalConn OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Requests sent to this pool."
   ::= { poolEntry 10 }

poolPersistence OBJECT-TYPE
   SYNTAX INTEGER { none(1),
                    ip(2),
                    rule(3),
                    transparent(4),
                    applicationCookie(5),
                    xZeusBackend(6),
		    ssl(7) }
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The session persistence method this pool uses"
   ::= { poolEntry 11 }

poolSessionMigrated OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Sessions migrated to a new node because
       the desired node was unavailable."
   ::= { poolEntry 12 }

poolDisabled OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of nodes in this pool that are disabled."
   ::= { poolEntry 13 }

poolState OBJECT-TYPE
   SYNTAX INTEGER { active(1),
                    disabled(2),
                    draining(3),
                    unused(4),
                    unknown(5) }
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The state of this pool."
   ::= { poolEntry 14 }

poolConnsQueued OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Total connections currently queued to this pool."
    ::= { poolEntry 17 }

poolQueueTimeouts OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Total connections that timed-out while queued."
    ::= { poolEntry 18 }

poolMinQueueTime OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Minimum time a connection was queued for, over the last second."
    ::= { poolEntry 19 }

poolMaxQueueTime OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Maximum time a connection was queued for, over the last second."
    ::= { poolEntry 20 }

poolMeanQueueTime OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Mean time a connection was queued for, over the last second."
    ::= { poolEntry 21 }



--=============================================================================
-- Nodes
--=============================================================================

nodeNumber OBJECT-TYPE
   SYNTAX INTEGER (0..65535)
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "The number of IPv4 nodes on this system."
   ::= { nodes 1 }


--=============================
-- Node Table (IPv4 nodes only)
--=============================
nodeTable OBJECT-TYPE
   SYNTAX SEQUENCE OF NodeEntry
   ACCESS not-accessible
   STATUS obsolete
   DESCRIPTION
      "This table defines all the information for a particular IPv4 node."
   ::= { nodes 2 }

nodeEntry OBJECT-TYPE
   SYNTAX NodeEntry
   ACCESS not-accessible
   STATUS obsolete
   DESCRIPTION
      "This defines a row in the IPv4 nodes table."
   INDEX { nodeIPAddress, nodePort }
   ::= { nodeTable 1 }

NodeEntry ::=
   SEQUENCE {
      nodeIPAddress        IpAddress,
      nodePort             INTEGER (0..65535),
      nodeHostName         DisplayString (SIZE (0..255)),
      nodeState            INTEGER,
      nodeBytesToNodeLo    Counter,
      nodeBytesToNodeHi    Counter,
      nodeBytesFromNodeLo  Counter,
      nodeBytesFromNodeHi  Counter,
      nodeCurrentRequests  Gauge,
      nodeTotalConn        Counter,
      nodePooledConn       Counter,
      nodeFailures         Counter,
      nodeNewConn          Counter,
      nodeErrors           Counter,
      nodeResponseMin      Gauge,
      nodeResponseMax      Gauge,
      nodeResponseMean     Gauge,
      nodeCurrentConn      Gauge
   }

nodeIPAddress OBJECT-TYPE
   SYNTAX IpAddress
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "The IPv4 address of this node."
   ::= { nodeEntry 1 }

nodePort OBJECT-TYPE
   SYNTAX INTEGER (0..65535)
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "The port this node listens on."
   ::= { nodeEntry 2 }

nodeHostName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "The resolved name for this node."
   ::= { nodeEntry 3 }

nodeState OBJECT-TYPE
   SYNTAX INTEGER { alive(1),
                    dead(2),
                    unknown(3) }
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "The state of this node."
   ::= { nodeEntry 4 }

nodeBytesToNodeLo OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "Bytes sent to this node ( low 32bits )."
   ::= { nodeEntry 5 }

nodeBytesToNodeHi OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "Bytes sent to this node ( high 32bits )."
   ::= { nodeEntry 6 }

nodeBytesFromNodeLo OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "Bytes received from this node ( low 32bits )."
   ::= { nodeEntry 7 }

nodeBytesFromNodeHi OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "Bytes received from this node ( high 32bits )."
   ::= { nodeEntry 8 }

nodeCurrentRequests OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "Connections currently established to this node."
   ::= { nodeEntry 9 }

nodeTotalConn OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "Requests sent to this node."
   ::= { nodeEntry 10 }

nodePooledConn OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "Requests that reused an existing pooled/keepalive
       connection rather than creating a new TCP connection."
   ::= { nodeEntry 11 }

nodeFailures OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "Failures of this node."
   ::= { nodeEntry 12 }

nodeNewConn OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "Requests that created a new connection to this node."
   ::= { nodeEntry 13 }

nodeErrors OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "Number of timeouts, connection problems and other errors for this node."
   ::= { nodeEntry 14 }

nodeResponseMin OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "Minimum response time (ms) in the last second for this node."
   ::= { nodeEntry 15 }

nodeResponseMax OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "Maximum response time (ms) in the last second for this node."
   ::= { nodeEntry 16 }

nodeResponseMean OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "Mean response time (ms) in the last second for this node."
   ::= { nodeEntry 17 }

nodeNumberInet46  OBJECT-TYPE
   SYNTAX INTEGER (0..65535)
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of nodes on this system (includes IPv4 and IPv6 nodes)."
   ::= { nodes 3 }

nodeCurrentConn OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "Requests currently established to this node. ( does not include idle keepalives )."
   ::= { nodeEntry 18 }


--=================================================
-- Node Table (IPv4 and IPv6 addresses are allowed)
--=================================================

nodeInet46Table OBJECT-TYPE
   SYNTAX SEQUENCE OF NodeInet46Entry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This table defines all the information for a particular node (includes IPv4 and IPv6 addresses)."
   ::= { nodes 4 }

nodeInet46Entry OBJECT-TYPE
   SYNTAX NodeInet46Entry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This defines a row in the nodes table (includes IPv4 and IPv6 addresses)."
   INDEX { nodeInet46AddressType, nodeInet46Address, nodeInet46Port }
   ::= { nodeInet46Table 1 }

NodeInet46Entry ::=
   SEQUENCE {
      nodeInet46AddressType      InetAddressType,
      nodeInet46Address          InetAddress,
      nodeInet46Port             INTEGER (0..65535),
      nodeInet46HostName         DisplayString (SIZE (0..255)),
      nodeInet46State            INTEGER,
      nodeInet46BytesToNodeLo    Counter,
      nodeInet46BytesToNodeHi    Counter,
      nodeInet46BytesFromNodeLo  Counter,
      nodeInet46BytesFromNodeHi  Counter,
      nodeInet46CurrentRequests  Gauge,
      nodeInet46TotalConn        Counter,
      nodeInet46PooledConn       Counter,
      nodeInet46Failures         Counter,
      nodeInet46NewConn          Counter,
      nodeInet46Errors           Counter,
      nodeInet46ResponseMin      Gauge,
      nodeInet46ResponseMax      Gauge,
      nodeInet46ResponseMean     Gauge,
      nodeInet46IdleConns	 Gauge,
      nodeInet46CurrentConn      Gauge
   }

nodeInet46AddressType OBJECT-TYPE
   SYNTAX InetAddressType
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The IP address type of this node."
   ::= { nodeInet46Entry 1 }

nodeInet46Address OBJECT-TYPE
   SYNTAX InetAddress (SIZE (1..64))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The IPv4 or IPv6 address of this node."
   ::= { nodeInet46Entry 2 }

nodeInet46Port OBJECT-TYPE
   SYNTAX INTEGER (0..65535)
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The port this node listens on."
   ::= { nodeInet46Entry 3 }

nodeInet46HostName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The resolved name for this node."
   ::= { nodeInet46Entry 4 }

nodeInet46State OBJECT-TYPE
   SYNTAX INTEGER { alive(1),
                    dead(2),
                    unknown(3) }
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The state of this node."
   ::= { nodeInet46Entry 5 }

nodeInet46BytesToNodeLo OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes sent to this node ( low 32bits )."
   ::= { nodeInet46Entry 6 }

nodeInet46BytesToNodeHi OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes sent to this node ( high 32bits )."
   ::= { nodeInet46Entry 7 }

nodeInet46BytesFromNodeLo OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes received from this node ( low 32bits )."
   ::= { nodeInet46Entry 8 }

nodeInet46BytesFromNodeHi OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes received from this node ( high 32bits )."
   ::= { nodeInet46Entry 9 }

nodeInet46CurrentRequests OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Active connections established to this node, does not include idle connections."
   ::= { nodeInet46Entry 10 }

nodeInet46TotalConn OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Requests sent to this node."
   ::= { nodeInet46Entry 11 }

nodeInet46PooledConn OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Requests that reused an existing pooled/keepalive
       connection rather than creating a new TCP connection."
   ::= { nodeInet46Entry 12 }

nodeInet46Failures OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Failures of this node."
   ::= { nodeInet46Entry 13 }

nodeInet46NewConn OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Requests that created a new connection to this node."
   ::= { nodeInet46Entry 14 }

nodeInet46Errors OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of timeouts, connection problems and other errors for this node."
   ::= { nodeInet46Entry 15 }

nodeInet46ResponseMin OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Minimum response time (ms) in the last second for this node."
   ::= { nodeInet46Entry 16 }

nodeInet46ResponseMax OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Maximum response time (ms) in the last second for this node."
   ::= { nodeInet46Entry 17 }

nodeInet46ResponseMean OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Mean response time (ms) in the last second for this node."
   ::= { nodeInet46Entry 18 }

nodeInet46IdleConns OBJECT-TYPE
    SYNTAX Gauge
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
	"Number of idle HTTP connections to this node."
    ::= { nodeInet46Entry 19 }

nodeInet46CurrentConn OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Current connections established to this node, includes idle connections."
   ::= { nodeInet46Entry 20 }


--=============================================================================
-- PerPoolNodes
--=============================================================================
perPoolNodeNumber  OBJECT-TYPE
   SYNTAX INTEGER (0..65535)
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of nodes on this system."
   ::= { nodes 5 }


--======================================================
-- PerPoolNode Table
--======================================================

perPoolNodeTable OBJECT-TYPE
   SYNTAX SEQUENCE OF PerPoolNodeEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This table defines all the information for a particular node in a pool."
   ::= { nodes 6 }

perPoolNodeEntry OBJECT-TYPE
   SYNTAX PerPoolNodeEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This defines a row in the perPoolNodes table."
   INDEX { perPoolNodePoolName, perPoolNodeNodeAddressType, perPoolNodeNodeAddress, perPoolNodeNodePort }
   ::= { perPoolNodeTable 1 }

PerPoolNodeEntry ::=
   SEQUENCE {
      perPoolNodePoolName         DisplayString (SIZE (0..255)),
      perPoolNodeNodeAddressType  InetAddressType,
      perPoolNodeNodeAddress      InetAddress,
      perPoolNodeNodePort         INTEGER (0..65535),
      perPoolNodeNodeHostName     DisplayString (SIZE (0..255)),
      perPoolNodeState            INTEGER,
      perPoolNodeBytesToNodeLo    Counter,
      perPoolNodeBytesToNodeHi    Counter,
      perPoolNodeBytesFromNodeLo  Counter,
      perPoolNodeBytesFromNodeHi  Counter,
      perPoolNodeCurrentRequests  Gauge,
      perPoolNodeTotalConn        Counter,
      perPoolNodePooledConn       Counter,
      perPoolNodeFailures         Counter,
      perPoolNodeNewConn          Counter,
      perPoolNodeErrors           Counter,
      perPoolNodeResponseMin      Gauge,
      perPoolNodeResponseMax      Gauge,
      perPoolNodeResponseMean     Gauge,
      perPoolNodeIdleConns        Gauge,
      perPoolNodeCurrentConn      Gauge
   }

perPoolNodePoolName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of the pool that this node belongs to."
   ::= { perPoolNodeEntry 1 }

perPoolNodeNodeAddressType OBJECT-TYPE
   SYNTAX InetAddressType
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The IP address type of this node."
   ::= { perPoolNodeEntry 2 }

perPoolNodeNodeAddress OBJECT-TYPE
   SYNTAX InetAddress (SIZE (1..64))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The IPv4 or IPv6 address of this node."
   ::= { perPoolNodeEntry 3 }

perPoolNodeNodePort OBJECT-TYPE
   SYNTAX INTEGER (0..65535)
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The port that this node listens on."
   ::= { perPoolNodeEntry 4 }

perPoolNodeNodeHostName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name for this node provided in the configuration."
   ::= { perPoolNodeEntry 5 }

perPoolNodeState OBJECT-TYPE
   SYNTAX INTEGER { alive(1),
                    dead(2),
                    unknown(3),
                    draining(4) }
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The state of this node."
   ::= { perPoolNodeEntry 6 }

perPoolNodeBytesToNodeLo OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes sent to this node ( low 32bits )."
   ::= { perPoolNodeEntry 7 }

perPoolNodeBytesToNodeHi OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes sent to this node ( high 32bits )."
   ::= { perPoolNodeEntry 8 }

perPoolNodeBytesFromNodeLo OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes received from this node ( low 32bits )."
   ::= { perPoolNodeEntry 9 }

perPoolNodeBytesFromNodeHi OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes received from this node ( high 32bits )."
   ::= { perPoolNodeEntry 10 }

perPoolNodeCurrentRequests OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Active connections established to this node, does not include idle connections."
   ::= { perPoolNodeEntry 11 }

perPoolNodeTotalConn OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Requests sent to this node."
   ::= { perPoolNodeEntry 12 }

perPoolNodePooledConn OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Requests that reused an existing pooled/keepalive
       connection rather than creating a new TCP connection."
   ::= { perPoolNodeEntry 13 }

perPoolNodeFailures OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Failures of this node."
   ::= { perPoolNodeEntry 14 }

perPoolNodeNewConn OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Requests that created a new connection to this node."
   ::= { perPoolNodeEntry 15 }

perPoolNodeErrors OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of timeouts, connection problems and other errors for this node."
   ::= { perPoolNodeEntry 16 }

perPoolNodeResponseMin OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Minimum response time (ms) in the last second for this node."
   ::= { perPoolNodeEntry 17 }

perPoolNodeResponseMax OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Maximum response time (ms) in the last second for this node."
   ::= { perPoolNodeEntry 18 }

perPoolNodeResponseMean OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Mean response time (ms) in the last second for this node."
   ::= { perPoolNodeEntry 19 }

perPoolNodeIdleConns OBJECT-TYPE
    SYNTAX Gauge
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
   "Number of idle HTTP connections to this node."
   ::= { perPoolNodeEntry 20 }

perPoolNodeCurrentConn OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Current connections established to a node, includes idle connections."
   ::= { perPoolNodeEntry 21 }



--=============================================================================
-- Traffic IPs
--=============================================================================

trafficIPNumber OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "The number of traffic IPv4 addresses on this system."
   ::= { trafficips 1 }

trafficIPNumberRaised OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "The number of traffic IPv4 addresses currently raised on this system."
   ::= { trafficips 2 }

--=======================================
-- Traffic IP Table (IPv4 addresses only)
--=======================================
trafficIPTable OBJECT-TYPE
   SYNTAX SEQUENCE OF TrafficIPEntry
   ACCESS not-accessible
   STATUS obsolete
   DESCRIPTION
      "This table details the traffic IPv4 addresses that are hosted by
       this traffic manager cluster."
   ::= { trafficips 3 }

trafficIPEntry OBJECT-TYPE
   SYNTAX TrafficIPEntry
   ACCESS not-accessible
   STATUS obsolete
   DESCRIPTION
      "This defines a row in the IPv4 traffic IP table."
   INDEX { trafficIPAddress }
   ::= { trafficIPTable 1 }

TrafficIPEntry ::=
   SEQUENCE {
      trafficIPAddress    IpAddress,
      trafficIPState      INTEGER,
      trafficIPTime       TimeTicks
   }

trafficIPAddress OBJECT-TYPE
   SYNTAX IpAddress
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "This is a traffic IP address."
   ::= { trafficIPEntry 1 }

trafficIPState OBJECT-TYPE
   SYNTAX INTEGER { raised(1),
                    lowered(2) }
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "Whether this traffic IP address is currently being hosted by this
       traffic manager."
   ::= { trafficIPEntry 2 }

trafficIPTime OBJECT-TYPE
   SYNTAX TimeTicks
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "The time (in hundredths of a second) since trafficIPState last
       changed (this value will wrap if the state hasn't changed for 497 days)."
   ::= { trafficIPEntry 3 }


trafficIPGatewayPingRequests OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of ping requests sent to the gateway machine."
   ::= { trafficips 4 }

trafficIPGatewayPingResponses OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of ping responses received from the gateway machine."
   ::= { trafficips 5 }

trafficIPNodePingRequests OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of ping requests sent to the backend nodes."
   ::= { trafficips 6 }

trafficIPNodePingResponses OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of ping responses received from the backend nodes."
   ::= { trafficips 7 }

trafficIPPingResponseErrors OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of ping response errors."
   ::= { trafficips 8 }

trafficIPARPMessage OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of ARP messages sent for raised Traffic IP Addresses."
   ::= { trafficips 9 }

trafficIPNumberInet46 OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of traffic IP addresses on this system (includes IPv4 and IPv6 addresses)."
   ::= { trafficips 10 }

trafficIPNumberRaisedInet46 OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of traffic IP addresses currently raised on this system (includes IPv4 and IPv6 addresses)."
   ::= { trafficips 11 }

--===========================================
-- Traffic IP Table (IPv4 and IPv6 addresses)
--===========================================
trafficIPInet46Table OBJECT-TYPE
   SYNTAX SEQUENCE OF TrafficIPInet46Entry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This table details the traffic IP addresses that are hosted by
       this traffic manager cluster (includes IPv4 and IPv6 addresses)."
   ::= { trafficips 12 }

trafficIPInet46Entry OBJECT-TYPE
   SYNTAX TrafficIPInet46Entry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This defines a row in the traffic IP table."
   INDEX { trafficIPInet46AddressType, trafficIPInet46Address }
   ::= { trafficIPInet46Table 1 }

TrafficIPInet46Entry ::=
   SEQUENCE {
      trafficIPInet46AddressType InetAddressType,
      trafficIPInet46Address     InetAddress,
      trafficIPInet46State       INTEGER,
      trafficIPInet46Time        TimeTicks
   }

trafficIPInet46AddressType OBJECT-TYPE
   SYNTAX InetAddressType
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The traffic IP address type."
   ::= { trafficIPInet46Entry 1 }

trafficIPInet46Address OBJECT-TYPE
   SYNTAX InetAddress (SIZE (1..64))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "This is a traffic IP address."
   ::= { trafficIPInet46Entry 2 }

trafficIPInet46State OBJECT-TYPE
   SYNTAX INTEGER { raised(1),
                    lowered(2) }
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Whether this traffic IP address is currently being hosted by this
       traffic manager."
   ::= { trafficIPInet46Entry 3 }

trafficIPInet46Time OBJECT-TYPE
   SYNTAX TimeTicks
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The time (in hundredths of a second) since trafficIPState last
       changed (this value will wrap if the state hasn't changed for 497 days)."
   ::= { trafficIPInet46Entry 4 }


--=============================================================================
-- Service Protection
--=============================================================================

serviceProtNumber OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of service protection classes defined."
   ::= { serviceprotection 1 }

--============================
-- Service Protection Classes
--============================
serviceProtTable OBJECT-TYPE
   SYNTAX SEQUENCE OF ServiceProtectionClassEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This table provides information and statistics for service
      protection classes."
   ::= { serviceprotection 2 }

serviceProtEntry OBJECT-TYPE
   SYNTAX ServiceProtectionClassEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This defines a row in the service protection table."
   INDEX { serviceProtName }
   ::= { serviceProtTable 1 }

ServiceProtectionClassEntry ::=
   SEQUENCE {
      serviceProtName             DisplayString (SIZE (0..255)),
      serviceProtTotalRefusal     Counter,
      serviceProtLastRefusalTime  TimeTicks,
      serviceProtRefusalIP        Counter,
      serviceProtRefusalConc1IP   Counter,
      serviceProtRefusalConc10IP  Counter,
      serviceProtRefusalConnRate  Counter,
      serviceProtRefusalRFC2396   Counter,
      serviceProtRefusalSize      Counter,
      serviceProtRefusalBinary    Counter
   }

serviceProtName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of the service protection class."
   ::= { serviceProtEntry 1 }

serviceProtTotalRefusal OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Connections refused by this service protection class."
   ::= { serviceProtEntry 2 }

serviceProtLastRefusalTime OBJECT-TYPE
   SYNTAX TimeTicks
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The time (in hundredths of a second) since this service
      protection class last refused a connection (this value will
      wrap if no connections are refused in more than 497 days)."
   ::= { serviceProtEntry 3 }

serviceProtRefusalIP OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Connections refused by this service protection class because the 
      source IP address was banned."
   ::= { serviceProtEntry 4 }

serviceProtRefusalConc1IP OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Connections refused by this service protection class because the 
      source IP address issued too many concurrent connections."
   ::= { serviceProtEntry 5 }

serviceProtRefusalConc10IP OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Connections refused by this service protection class because the 
      top 10 source IP addresses issued too many concurrent connections."
   ::= { serviceProtEntry 6 }

serviceProtRefusalConnRate OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Connections refused by this service protection class because the 
      source IP address issued too many connections within 60 seconds."
   ::= { serviceProtEntry 7 }

serviceProtRefusalRFC2396 OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Connections refused by this service protection class because the 
      HTTP request was not RFC 2396 compliant."
   ::= { serviceProtEntry 8 }

serviceProtRefusalSize OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Connections refused by this service protection class because the 
      request was larger than the defined limits allowed."
   ::= { serviceProtEntry 9 }

serviceProtRefusalBinary OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Connections refused by this service protection class because the 
      request contained disallowed binary content."
   ::= { serviceProtEntry 10 }

--=============================================================================
-- Service Level Monitoring (SLM)
--=============================================================================

serviceLevelNumber OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of SLM classes defined."
   ::= { servicelevelmonitoring 1 }

--==================================
-- Service Level Monitoring Classes
--==================================
serviceLevelTable OBJECT-TYPE
   SYNTAX SEQUENCE OF ServiceLevelClassEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This table provides information and statistics for SLM classes."
   ::= { servicelevelmonitoring 2 }

serviceLevelEntry OBJECT-TYPE
   SYNTAX ServiceLevelClassEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This defines a row in the SLM table."
   INDEX { serviceLevelName }
   ::= { serviceLevelTable 1 }

ServiceLevelClassEntry ::=
   SEQUENCE {
      serviceLevelName              DisplayString (SIZE (0..255)),
      serviceLevelTotalConn         Counter,
      serviceLevelTotalNonConf      Counter,
      serviceLevelResponseMin       Gauge,
      serviceLevelResponseMax       Gauge,
      serviceLevelResponseMean      Gauge,
      serviceLevelIsOK              INTEGER,
      serviceLevelConforming        Gauge,
      serviceLevelCurrentConns      Gauge
   }

serviceLevelName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of the SLM class."
   ::= { serviceLevelEntry 1 }

serviceLevelTotalConn OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Requests handled by this SLM class."
   ::= { serviceLevelEntry 2 }

serviceLevelTotalNonConf OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Non-conforming requests handled by this SLM class."
   ::= { serviceLevelEntry 3 }

serviceLevelResponseMin OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Minimum response time (ms) in the last second for this SLM class."
   ::= { serviceLevelEntry 4 }

serviceLevelResponseMax OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Maximum response time (ms) in the last second for this SLM class."
   ::= { serviceLevelEntry 5 }

serviceLevelResponseMean OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Mean response time (ms) in the last second for this SLM class."
   ::= { serviceLevelEntry 6 }

serviceLevelIsOK OBJECT-TYPE
   SYNTAX INTEGER { notok(1),
                    ok(2) }
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Indicates if this SLM class is currently conforming."
   ::= { serviceLevelEntry 7 }

serviceLevelConforming OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Percentage of requests associated with this SLM class that are conforming"
   ::= { serviceLevelEntry 8 }

serviceLevelCurrentConns OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of connections currently associated with this SLM class."
   ::= { serviceLevelEntry 9 }
    

--=============================================================================
-- Per Node Service Level Monitoring Properties (IPv4 nodes only)
--=============================================================================

perNodeServiceLevelTable OBJECT-TYPE
   SYNTAX SEQUENCE OF PerNodeServiceLevelClassEntry
   ACCESS not-accessible
   STATUS obsolete
   DESCRIPTION
      "This table provides information and statistics for SLM classes
       on a per node basis (IPv4 nodes only)."
   ::= { pernodeservicelevelmon 1 }

perNodeServiceLevelEntry OBJECT-TYPE
   SYNTAX PerNodeServiceLevelClassEntry
   ACCESS not-accessible
   STATUS obsolete
   DESCRIPTION
      "This defines a row in the per-node SLM table (IPv4 nodes only)."
   INDEX { perNodeServiceLevelSLMName, perNodeServiceLevelNodeIPAddr, perNodeServiceLevelNodePort }
   ::= { perNodeServiceLevelTable 1 }

PerNodeServiceLevelClassEntry ::=
   SEQUENCE {
      perNodeServiceLevelSLMName           DisplayString (SIZE (0..255)),
      perNodeServiceLevelNodeIPAddr        IpAddress,
      perNodeServiceLevelNodePort          INTEGER (0..65535),
      perNodeServiceLevelTotalConn         Counter,
      perNodeServiceLevelTotalNonConf      Counter,
      perNodeServiceLevelResponseMin       Gauge,
      perNodeServiceLevelResponseMax       Gauge,
      perNodeServiceLevelResponseMean      Gauge
   }

perNodeServiceLevelSLMName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "The name of the SLM class."
   ::= { perNodeServiceLevelEntry 1 }

perNodeServiceLevelNodeIPAddr OBJECT-TYPE
   SYNTAX IpAddress
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "The IP address of this node."
   ::= { perNodeServiceLevelEntry 2 }

perNodeServiceLevelNodePort OBJECT-TYPE
   SYNTAX INTEGER (0..65535)
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "The port number of this node."
   ::= { perNodeServiceLevelEntry 3 }

perNodeServiceLevelTotalConn OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "Requests handled by this SLM class to this node."
   ::= { perNodeServiceLevelEntry 4 }

perNodeServiceLevelTotalNonConf OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "Non-conforming requests handled by this SLM class to this node."
   ::= { perNodeServiceLevelEntry 5 }

perNodeServiceLevelResponseMin OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "Minimum response time (ms) in the last second for this SLM class to
       this node."
   ::= { perNodeServiceLevelEntry 6 }

perNodeServiceLevelResponseMax OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "Maximum response time (ms) in the last second for this SLM class to
       this node."
   ::= { perNodeServiceLevelEntry 7 }

perNodeServiceLevelResponseMean OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS obsolete
   DESCRIPTION
      "Mean response time (ms) in the last second for this SLM class to
       this node."
   ::= { perNodeServiceLevelEntry 8 }

--=============================================================================
-- Per Node Service Level Monitoring Properties (IPv4 and IPv6 nodes)
--=============================================================================

perNodeServiceLevelInet46Table OBJECT-TYPE
   SYNTAX SEQUENCE OF PerNodeServiceLevelClassInet46Entry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This table provides information and statistics for SLM classes
       on a per node basis (includes IPv4 and IPv6 nodes)."
   ::= { pernodeservicelevelmon 2 }

perNodeServiceLevelInet46Entry OBJECT-TYPE
   SYNTAX PerNodeServiceLevelClassInet46Entry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This defines a row in the per-node SLM table (includes IPv4 and IPv6 nodes)."
   INDEX { perNodeServiceLevelInet46SLMName, perNodeServiceLevelInet46NodeAddressType, perNodeServiceLevelInet46NodeAddress, perNodeServiceLevelInet46NodePort }
   ::= { perNodeServiceLevelInet46Table 1 }

PerNodeServiceLevelClassInet46Entry ::=
   SEQUENCE {
      perNodeServiceLevelInet46SLMName                DisplayString (SIZE (0..255)),
      perNodeServiceLevelInet46NodeAddressType    InetAddressType,
      perNodeServiceLevelInet46NodeAddress        InetAddress,
      perNodeServiceLevelInet46NodePort               INTEGER (0..65535),
      perNodeServiceLevelInet46TotalConn              Counter,
      perNodeServiceLevelInet46TotalNonConf           Counter,
      perNodeServiceLevelInet46ResponseMin            Gauge,
      perNodeServiceLevelInet46ResponseMax            Gauge,
      perNodeServiceLevelInet46ResponseMean           Gauge
   }

perNodeServiceLevelInet46SLMName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of the SLM class."
   ::= { perNodeServiceLevelInet46Entry 1 }

perNodeServiceLevelInet46NodeAddressType OBJECT-TYPE
   SYNTAX InetAddressType
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The type of IP address of this node."
   ::= { perNodeServiceLevelInet46Entry 2 }

perNodeServiceLevelInet46NodeAddress OBJECT-TYPE
   SYNTAX InetAddress (SIZE (1..64))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The IP address of this node."
   ::= { perNodeServiceLevelInet46Entry 3 }

perNodeServiceLevelInet46NodePort OBJECT-TYPE
   SYNTAX INTEGER (0..65535)
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The port number of this node."
   ::= { perNodeServiceLevelInet46Entry 4 }

perNodeServiceLevelInet46TotalConn OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Requests handled by this SLM class to this node."
   ::= { perNodeServiceLevelInet46Entry 5 }

perNodeServiceLevelInet46TotalNonConf OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Non-conforming requests handled by this SLM class to this node."
   ::= { perNodeServiceLevelInet46Entry 6 }

perNodeServiceLevelInet46ResponseMin OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Minimum response time (ms) in the last second for this SLM class to
       this node."
   ::= { perNodeServiceLevelInet46Entry 7 }

perNodeServiceLevelInet46ResponseMax OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Maximum response time (ms) in the last second for this SLM class to
       this node."
   ::= { perNodeServiceLevelInet46Entry 8 }

perNodeServiceLevelInet46ResponseMean OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Mean response time (ms) in the last second for this SLM class to
       this node."
   ::= { perNodeServiceLevelInet46Entry 9 }

--=============================================================================
-- Bandwidth Management
--=============================================================================

bandwidthClassNumber OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of bandwidth classes defined."
   ::= { bandwidthmgt 1 }

--============================
-- Bandwidth Classes
--============================
bandwidthClassTable OBJECT-TYPE
   SYNTAX SEQUENCE OF BandwidthClassEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This table provides information and statistics for 
      bandwidth classes."
   ::= { bandwidthmgt 2 }

bandwidthClassEntry OBJECT-TYPE
   SYNTAX BandwidthClassEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This defines a row in the bandwidth class."
   INDEX { bandwidthClassName }
   ::= { bandwidthClassTable 1 }

BandwidthClassEntry ::=
   SEQUENCE {
      bandwidthClassName          DisplayString (SIZE (0..255)),
      bandwidthClassMaximum       INTEGER,
      bandwidthClassGuarantee     INTEGER,
      bandwidthClassBytesOutLo    Counter,
      bandwidthClassBytesOutHi    Counter
   }

bandwidthClassName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of the bandwidth class."
   ::= { bandwidthClassEntry 1 }

bandwidthClassMaximum OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Maximum bandwidth class limit (kbits/s)."
   ::= { bandwidthClassEntry 2 }

bandwidthClassGuarantee OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Guaranteed bandwidth class limit (kbits/s).  Currently unused."
   ::= { bandwidthClassEntry 3 }

bandwidthClassBytesOutLo OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes output by connections assigned to this bandwidth class ( low 32bits )."
   ::= { bandwidthClassEntry 4 }

bandwidthClassBytesOutHi OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes output by connections assigned to this bandwidth class ( high 32bits )."
   ::= { bandwidthClassEntry 5 }

--=============================================================================
-- Request Rate Shaping
--=============================================================================

rateClassNumber OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of rate classes defined."
   ::= { connratelimit 1 }

--============================
-- Rate Classes
--============================
rateClassTable OBJECT-TYPE
   SYNTAX SEQUENCE OF RateClassEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This table provides information and statistics for
      rate classes."
   ::= { connratelimit 2 }

rateClassEntry OBJECT-TYPE
   SYNTAX RateClassEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This defines a row in the rate class info."
   INDEX { rateClassName }
   ::= { rateClassTable 1 }

RateClassEntry ::=
   SEQUENCE {
      rateClassName              DisplayString (SIZE (0..255)),
      rateClassMaxRatePerMin     INTEGER,
      rateClassMaxRatePerSec     INTEGER,
      rateClassQueueLength       Gauge,
      rateClassCurrentRate       Gauge,
      rateClassDropped           Counter,
      rateClassConnsEntered      Counter,
      rateClassConnsLeft         Counter
   }

rateClassName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of the rate class."
   ::= { rateClassEntry 1 }

rateClassMaxRatePerMin OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The maximum rate that requests may pass through this rate class (requests/min)."
   ::= { rateClassEntry 2 }

rateClassMaxRatePerSec OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The maximum rate that requests may pass through this rate class (requests/sec)."
   ::= { rateClassEntry 3 }

rateClassQueueLength OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The current number of requests queued by this rate class."
   ::= { rateClassEntry 4 }

rateClassCurrentRate OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The average rate that requests are passing through this rate class."
   ::= { rateClassEntry 5 }

rateClassDropped OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Requests dropped from this rate class without being processed (e.g. timeouts)."
   ::= { rateClassEntry 6 }

rateClassConnsEntered OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Connections that have entered the rate class and have been queued."
   ::= { rateClassEntry 7 }

rateClassConnsLeft OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Connections that have left the rate class."
   ::= { rateClassEntry 8 }

--=============================================================================
-- Extra
--=============================================================================

userCounterNumber OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of user defined counters."
   ::= { extra 1 }

--============================
-- User Counters
--============================
userCounterTable OBJECT-TYPE
   SYNTAX SEQUENCE OF UserCounterEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This table holds the values for user defined
       counters."
   ::= { extra 2 }

userCounterEntry OBJECT-TYPE
   SYNTAX UserCounterEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This defines a row in the user counters table."
   INDEX { userCounterName }
   ::= { userCounterTable 1 }

UserCounterEntry ::=
   SEQUENCE {
      userCounterName               DisplayString (SIZE (0..255)),
      userCounterValue              Counter
   }

userCounterName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of the user counter."
   ::= { userCounterEntry 1 }

userCounterValue OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The value of the user counter."
   ::= { userCounterEntry 2 }

--============================
-- Network Interfaces
--============================
 
interfaceNumber OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of network interfaces."
   ::= { netinterfaces 1 }

--============================
-- Network Interfaces Table
--============================

interfaceTable OBJECT-TYPE
   SYNTAX SEQUENCE OF InterfaceEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This table gives statistics for the network interfaces on this system."
   ::= { netinterfaces 2 }

interfaceEntry OBJECT-TYPE
   SYNTAX InterfaceEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This defines a row in the network interfaces table."
   INDEX { interfaceName }
   ::= { interfaceTable 1 }

InterfaceEntry ::= SEQUENCE {
      interfaceName               DisplayString (SIZE (0..255)),
      interfaceRxPackets          Counter,
      interfaceTxPackets          Counter,
      interfaceRxErrors           Counter,
      interfaceTxErrors           Counter,
      interfaceCollisions         Counter,
      interfaceRxBytesLo          Counter,
      interfaceRxBytesHi          Counter,
      interfaceTxBytesLo          Counter,
      interfaceTxBytesHi          Counter
   }

interfaceName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of the network interface."
   ::= { interfaceEntry 1 }

interfaceRxPackets OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of packets received by this interface."
   ::= { interfaceEntry 2 }

interfaceTxPackets OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of packets transmitted by this interface."
   ::= { interfaceEntry 3 }
 
interfaceRxErrors OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of receive errors reported by this interface."
   ::= { interfaceEntry 4 }

interfaceTxErrors OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of transmit errors reported by this interface."
   ::= { interfaceEntry 5 }
 
interfaceCollisions OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of collisions reported by this interface."
   ::= { interfaceEntry 6 }

interfaceRxBytesLo OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes received by this interface ( low 32bits )."
   ::= { interfaceEntry 7 }
 
interfaceRxBytesHi OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes received by this interface ( high 32bits )."
   ::= { interfaceEntry 8 }

interfaceTxBytesLo OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes transmitted by this interface ( low 32bits )."
   ::= { interfaceEntry 9 }

interfaceTxBytesHi OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes transmitted by this interface ( high 32bits )."
   ::= { interfaceEntry 10 }

--============================
-- Cache Counters
--============================

--=============================================================================
-- Web Cache counters
--=============================================================================

webCacheHitsLo OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a page has been successfully found in the web cache (low 32 bits)."
   ::= { webcache 1 }

webCacheHitsHi OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a page has been successfully found in the web cache (high 32 bits)."
   ::= { webcache 2 }


webCacheMissesLo OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a page has not been found in the web cache (low 32 bits)."
   ::= { webcache 3 }

webCacheMissesHi OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a page has not been found in the web cache (high 32 bits)."
   ::= { webcache 4 }


webCacheLookupsLo OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a page has been looked up in the web cache (low 32 bits)."
   ::= { webcache 5 }

webCacheLookupsHi OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a page has been looked up in the web cache (high 32 bits)."
   ::= { webcache 6 }

webCacheMemUsed OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Total memory used by the web cache in kilobytes."
   ::= { webcache 7 }

webCacheMemMaximum OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The maximum amount of memory the web cache can use in kilobytes."
   ::= { webcache 8 }

webCacheHitRate OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The percentage of web cache lookups that succeeded."
   ::= { webcache 9 }

webCacheEntries OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of items in the web cache."
   ::= { webcache 10 }


webCacheMaxEntries OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The maximum number of items in the web cache."
   ::= { webcache 11 }

webCacheOldest OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The age of the oldest item in the web cache (in seconds)."
   ::= { webcache 12 }

--=============================================================================
-- SSL Cache counters
--=============================================================================

sslCacheHits OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a SSL entry has been successfully found in the server cache."
   ::= { sslcache 1 }

sslCacheMisses OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a SSL entry has not been available in the server cache."
   ::= { sslcache 2 }


sslCacheLookups OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a SSL entry has been looked up in the server cache."
   ::= { sslcache 3 }

sslCacheHitRate OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The percentage of SSL server cache lookups that succeeded."
   ::= { sslcache 4 }


sslCacheEntries OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The total number of SSL sessions stored in the server cache."
   ::= { sslcache 5 }

sslCacheEntriesMax OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The maximum number of SSL entries in the server cache."
   ::= { sslcache 6 }

sslCacheOldest OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The age of the oldest SSL session in the server cache (in seconds)."
   ::= { sslcache 7 }

--=============================================================================
-- ASP Session Cache counters
--=============================================================================

aspSessionCacheHits OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a ASP session entry has been successfully found in the cache."
   ::= { aspsessioncache 1 }

aspSessionCacheMisses OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a ASP session entry has not been available in the cache."
   ::= { aspsessioncache 2 }


aspSessionCacheLookups OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a ASP session entry has been looked up in the cache."
   ::= { aspsessioncache 3 }

aspSessionCacheHitRate OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The percentage of ASP session lookups that succeeded."
   ::= { aspsessioncache 4 }


aspSessionCacheEntries OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The total number of ASP sessions stored in the cache."
   ::= { aspsessioncache 5 }

aspSessionCacheEntriesMax OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The maximum number of ASP sessions in the cache."
   ::= { aspsessioncache 6 }

aspSessionCacheOldest OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The age of the oldest ASP session in the cache (in seconds)."
   ::= { aspsessioncache 7 }


--=============================================================================
-- IP Session Cache counters
--=============================================================================

ipSessionCacheHits OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a IP session entry has been successfully found in the cache."
   ::= { ipsessioncache 1 }

ipSessionCacheMisses OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a IP session entry has not been available in the cache."
   ::= { ipsessioncache 2 }

ipSessionCacheLookups OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a IP session entry has been looked up in the cache."
   ::= { ipsessioncache 3 }

ipSessionCacheHitRate OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The percentage of IP session lookups that succeeded."
   ::= { ipsessioncache 4 }


ipSessionCacheEntries OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The total number of IP sessions stored in the cache."
   ::= { ipsessioncache 5 }

ipSessionCacheEntriesMax OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The maximum number of IP sessions in the cache."
   ::= { ipsessioncache 6 }

ipSessionCacheOldest OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The age of the oldest IP session in the cache (in seconds)."
   ::= { ipsessioncache 7 }

--=============================================================================
-- J2EE Session Cache counters
--=============================================================================

j2eeSessionCacheHits OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a J2EE session entry has been successfully found in the cache."
   ::= { j2eesessioncache 1 }



j2eeSessionCacheMisses OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a J2EE session entry has not been available in the cache."
   ::= { j2eesessioncache 2 }

j2eeSessionCacheLookups OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a J2EE session entry has been looked up in the cache."
   ::= { j2eesessioncache 3 }

j2eeSessionCacheHitRate OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The percentage of J2EE session lookups that succeeded."
   ::= { j2eesessioncache 4 }


j2eeSessionCacheEntries OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The total number of J2EE sessions stored in the cache."
   ::= { j2eesessioncache 5 }

j2eeSessionCacheEntriesMax OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The maximum number of J2EE sessions in the cache."
   ::= { j2eesessioncache 6 }

j2eeSessionCacheOldest OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The age of the oldest J2EE session in the cache (in seconds)."
   ::= { j2eesessioncache 7 }

--=============================================================================
-- Universal Session Cache counters
--=============================================================================

uniSessionCacheHits OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a universal session entry has been successfully found in the cache."
   ::= { unisessioncache 1 }

uniSessionCacheMisses OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a universal session entry has not been available in the cache."
   ::= { unisessioncache 2 }

uniSessionCacheLookups OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a universal session entry has been looked up in the cache."
   ::= { unisessioncache 3 }

uniSessionCacheHitRate OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The percentage of universal session lookups that succeeded."
   ::= { unisessioncache 4 }


uniSessionCacheEntries OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The total number of universal sessions stored in the cache."
   ::= { unisessioncache 5 }

uniSessionCacheEntriesMax OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The maximum number of universal sessions in the cache."
   ::= { unisessioncache 6 }

uniSessionCacheOldest OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The age of the oldest universal session in the cache (in seconds)."
   ::= { unisessioncache 7 }

--=============================================================================
-- SSL Session persistence Cache counters
--=============================================================================

sslSessionCacheHits OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a SSL session persistence entry has been successfully found in the cache."
   ::= { sslsessioncache 1 }

sslSessionCacheMisses OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a SSL session persistence entry has not been available in the cache."
   ::= { sslsessioncache 2 }

sslSessionCacheLookups OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times a SSL session persistence entry has been looked up in the cache."
   ::= { sslsessioncache 3 }

sslSessionCacheHitRate OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The percentage of SSL session persistence lookups that succeeded."
   ::= { sslsessioncache 4 }


sslSessionCacheEntries OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The total number of SSL session persistence entries stored in the cache."
   ::= { sslsessioncache 5 }

sslSessionCacheEntriesMax OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The maximum number of SSL session persistence entries in the cache."
   ::= { sslsessioncache 6 }

sslSessionCacheOldest OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The age of the oldest SSL session in the cache (in seconds)."
   ::= { sslsessioncache 7 }

--============================
-- Rules
--============================
 
ruleNumber OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of TrafficScript rules."
   ::= { rules 1 }

--============================
-- Rules Table
--============================

ruleTable OBJECT-TYPE
   SYNTAX SEQUENCE OF RuleEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This table provides information and statistics for TrafficScript rules."
   ::= { rules 2 }

ruleEntry OBJECT-TYPE
   SYNTAX RuleEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This defines a row in the rules table."
   INDEX { ruleName }
   ::= { ruleTable 1 }

RuleEntry ::= SEQUENCE {
      ruleName               DisplayString (SIZE (0..255)),
      ruleExecutions	     Counter,
      ruleAborts	     Counter,
      ruleResponds	     Counter,
      rulePoolSelect	     Counter,
      ruleRetries	     Counter,
      ruleDiscards	     Counter
   }

ruleName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of the TrafficScript rule."
   ::= { ruleEntry 1 }

ruleExecutions OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times this TrafficScript rule has been executed."
   ::= { ruleEntry 2 }

ruleAborts OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times this TrafficScript rule has aborted."
   ::= { ruleEntry 3 }

ruleResponds OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times this TrafficScript rule has responded directly to the client."
   ::= { ruleEntry 4 }

rulePoolSelect OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times this TrafficScript rule has selected a pool to use."
   ::= { ruleEntry 5 }

ruleRetries OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times this TrafficScript rule has forced the request to be retried."
   ::= { ruleEntry 6 }

ruleDiscards OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times this TrafficScript rule has discarded the connection."
   ::= { ruleEntry 7 }

--============================
-- Monitors
--============================
 
monitorNumber OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of Monitors."
   ::= { monitors 1 }

--============================
-- Monitors Table
--============================

monitorTable OBJECT-TYPE
   SYNTAX SEQUENCE OF MonitorEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This table provides information and statistics on Monitors."
   ::= { monitors 2 }

monitorEntry OBJECT-TYPE
   SYNTAX MonitorEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This defines a row in the monitors table."
   INDEX { monitorName }
   ::= { monitorTable 1 }

MonitorEntry ::= SEQUENCE {
      monitorName         DisplayString (SIZE (0..255))
   }

monitorName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of the monitor."
   ::= { monitorEntry 1 }


--============================
-- License Keys
--============================
 
licensekeyNumber OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of License keys."
   ::= { licensekeys 1 }

--============================
-- License Keys Table
--============================

licensekeyTable OBJECT-TYPE
   SYNTAX SEQUENCE OF LicenseKeyEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This table provides information and statistics on License Keys."
   ::= { licensekeys 2 }

licensekeyEntry OBJECT-TYPE
   SYNTAX LicenseKeyEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This defines a row in the license keys table."
   INDEX { licensekeyName }
   ::= { licensekeyTable 1 }

LicenseKeyEntry ::= SEQUENCE {
      licensekeyName               DisplayString (SIZE (0..255))
   }

licensekeyName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of the License Key."
   ::= { licensekeyEntry 1 }

--============================
-- ZXTMs
--============================
 
zxtmNumber OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of traffic managers in the cluster."
   ::= { zxtms 1 }

--============================
-- ZXTMs Table
--============================

zxtmTable OBJECT-TYPE
   SYNTAX SEQUENCE OF ZxtmEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This table provides information and statistics on traffic managers."
   ::= { zxtms 2 }

zxtmEntry OBJECT-TYPE
   SYNTAX ZxtmEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This defines a row in the traffic managers table."
   INDEX { zxtmName }
   ::= { zxtmTable 1 }

ZxtmEntry ::= SEQUENCE {
      zxtmName               DisplayString (SIZE (0..255))
   }

zxtmName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of the traffic manager."
   ::= { zxtmEntry 1 }

--=============================================================================
-- GLB Services
--=============================================================================

glbServiceNumber OBJECT-TYPE
   SYNTAX INTEGER (0..65535)
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of GLB Services on this system."
   ::= { glbservices 1 }

-- GLB Service Table
glbServiceTable OBJECT-TYPE
   SYNTAX SEQUENCE OF GLBServiceEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This table provides information and statistics for GLB Services."
   ::= { glbservices 2 }

glbServiceEntry OBJECT-TYPE
   SYNTAX GLBServiceEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This defines a row in the GLB Services table."
   INDEX { glbServiceName }
   ::= { glbServiceTable 1 }

GLBServiceEntry ::=
   SEQUENCE {
      glbServiceName       DisplayString (SIZE (0..255)),
      glbServiceResponses  Counter,
      glbServiceUnmodified Counter,
      glbServiceDiscarded  Counter
   }

glbServiceName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of the GLB Service."
   ::= { glbServiceEntry 1 }

glbServiceResponses OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of A records this GLB Service has altered."
   ::= { glbServiceEntry 2 }

glbServiceUnmodified OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of A records this GLB Service has passed through unmodified."
   ::= { glbServiceEntry 3 }

glbServiceDiscarded OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of A records this GLB Service has discarded."
   ::= { glbServiceEntry 4 }


--=============================================================================
-- GLB Services per Location
--=============================================================================

perLocationServiceTable OBJECT-TYPE
   SYNTAX SEQUENCE OF PerLocationServiceEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This table provides information and statistics for GLB Services
       on a per location basis."
   ::= { perlocationservices 1 }

perLocationServiceEntry OBJECT-TYPE
   SYNTAX PerLocationServiceEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This defines a row in the per-location table."
   INDEX { perLocationServiceLocationName, perLocationServiceName }
   ::= { perLocationServiceTable 1 }

PerLocationServiceEntry ::=
   SEQUENCE {
      perLocationServiceLocationName   DisplayString (SIZE (0..255)),
      perLocationServiceLocationCode   DisplayString (SIZE (0..255)),
      perLocationServiceName           DisplayString (SIZE (0..255)),
      perLocationServiceDraining       INTEGER,
      perLocationServiceState          INTEGER,
      perLocationServiceFrontendState  INTEGER,
      perLocationServiceMonitorState   INTEGER,
      perLocationServiceLoad           Gauge,
      perLocationServiceResponses      Counter
   }

perLocationServiceLocationName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of the location."
   ::= { perLocationServiceEntry 1 }

perLocationServiceLocationCode OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The code for the location."
   ::= { perLocationServiceEntry 2 }

perLocationServiceName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of the GLB Service."
   ::= { perLocationServiceEntry 3 }

perLocationServiceDraining OBJECT-TYPE
   SYNTAX INTEGER { draining(1),
                    active(2) }
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The draining state of this location for this GLB Service."
   ::= { perLocationServiceEntry 4 }

perLocationServiceState OBJECT-TYPE
   SYNTAX INTEGER { alive(1),
                    dead(2) }
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The state of this location for this GLB Service."
   ::= { perLocationServiceEntry 5 }

perLocationServiceFrontendState OBJECT-TYPE
   SYNTAX INTEGER { alive(1),
                    dead(2) }
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The frontend state of this location for this GLB Service."
   ::= { perLocationServiceEntry 6 }

perLocationServiceMonitorState OBJECT-TYPE
   SYNTAX INTEGER { alive(1),
                    dead(2) }
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The monitor state of this location for this GLB Service."
   ::= { perLocationServiceEntry 7 }

perLocationServiceLoad OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The load metric for this location for this GLB Service."
   ::= { perLocationServiceEntry 8 }

perLocationServiceResponses OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of A records that have been altered to point to this location
       for this GLB Service."
   ::= { perLocationServiceEntry 9 }

--=============================================================================
-- GLB Locations
--=============================================================================

locationTable OBJECT-TYPE
   SYNTAX SEQUENCE OF LocationEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This table provides information and statistics for GLB Services
       on a per location basis."
   ::= { locations 1 }

locationEntry OBJECT-TYPE
   SYNTAX LocationEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This defines a row in the per-location table."
   INDEX { locationName }
   ::= { locationTable 1 }

LocationEntry ::=
   SEQUENCE {
      locationName       DisplayString (SIZE (0..255)),
      locationCode       DisplayString (SIZE (0..255)),
      locationLoad       Gauge,
      locationResponses  Counter
   }

locationName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of the location."
   ::= { locationEntry 1 }

locationCode OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The code for the location."
   ::= { locationEntry 2 }

locationLoad OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The mean load metric for this location."
   ::= { locationEntry 3 }

locationResponses OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of A records that have been altered to point to this location."
   ::= { locationEntry 4 }


--=============================================================================
-- Events
--=============================================================================

eventNumber OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of event configurations."
   ::= { events 1 }

--=============
-- Event Table
--=============
eventTable OBJECT-TYPE
   SYNTAX SEQUENCE OF EventEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This table gives information on the event configurations in the traffic manager."
   ::= { events 2 }

eventEntry OBJECT-TYPE
   SYNTAX EventEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This defines a row in the events table."
   INDEX { eventName }
   ::= { eventTable 1 }

EventEntry ::= SEQUENCE {
      eventName    DisplayString (SIZE (0..255)),
      eventsMatched Counter
}

eventName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of the event configuration."
   ::= { eventEntry 1 }

eventsMatched OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times this event configuration has matched."
   ::= { eventEntry 2 }

--=============================================================================
-- Actions
--=============================================================================

actionNumber OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of actions configured in the traffic manager."
   ::= { actions 1 }

--=============
-- Action Table
--=============
actionTable OBJECT-TYPE
   SYNTAX SEQUENCE OF ActionEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This table gives information on the action configurations in the traffic manager."
   ::= { actions 2 }

actionEntry OBJECT-TYPE
   SYNTAX ActionEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This defines a row in the actions table."
   INDEX { actionName }
   ::= { actionTable 1 }

ActionEntry ::= SEQUENCE {
      actionName    DisplayString (SIZE (0..255)),
      actionsProcessed Counter
}

actionName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of the action."
   ::= { actionEntry 1 }

actionsProcessed OBJECT-TYPE
  SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times this action has been processed."
   ::= { actionEntry 2 }


--=============================================================================
-- Traps
--=============================================================================

fullLogLine OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The full log line of an event (for traps)."
   ::= { trapobjects 1 }

confName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of the configuration file affected (for traps)."
   ::= { trapobjects 2 }

customEventName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of the Custom Event (for traps)."
   ::= { trapobjects 3 }


--=============================================================================
-- Test Action
--=============================================================================

testaction TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, actionName }
   DESCRIPTION
      "Testing configuration for an action (emitted when testing an action in the UI)"
   ::= 1

--=============================================================================
-- General
--=============================================================================

running TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Software is running"
   ::= 2

fewfreefds TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Running out of free file descriptors"
   ::= 3

restartrequired TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Software must be restarted to apply configuration changes"
   ::= 4

timemovedback TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Time has been moved back"
   ::= 5

sslfail TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "One or more SSL connections from clients failed recently"
   ::= 6

hardware TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Appliance hardware notification"
   ::= 7

zxtmswerror TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Zeus Traffic Manager software problem"
   ::= 8

customevent TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, customEventName }
   DESCRIPTION
      "A custom event was emitted using the TrafficScript 'event.emit()' function"
   ::= 9

versionmismatch TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Configuration update refused: traffic manager version mismatch"
   ::= 10

autherror TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "An error occurred during user authentication"
   ::= 114

--=============================================================================
-- Fault Tolerance
--=============================================================================

machineok TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, zxtmName }
   DESCRIPTION
      "Remote machine is now working"
   ::= 11

machinetimeout TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, zxtmName }
   DESCRIPTION
      "Remote machine has timed out and been marked as failed"
   ::= 12

machinefail TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, zxtmName }
   DESCRIPTION
      "Remote machine has failed"
   ::= 13

allmachinesok TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "All machines are working"
   ::= 14

flipperbackendsworking TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Back-end nodes are now working"
   ::= 15

flipperfrontendsworking TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Frontend machines are now working"
   ::= 16

pingbackendfail TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Failed to ping back-end nodes"
   ::= 17

pingfrontendfail TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Failed to ping any of the machines used to check the front-end connectivity"
   ::= 18

pinggwfail TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Failed to ping default gateway"
   ::= 19

statebaddata TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Received an invalid response from another cluster member"
   ::= 20

stateconnfail TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Failed to connect to another cluster member for state sharing"
   ::= 21

stateok TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Successfully connected to another cluster member for state sharing"
   ::= 22

statereadfail TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Reading state data from another cluster member failed"
   ::= 23

statetimeout TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Timeout while sending state data to another cluster member"
   ::= 24

stateunexpected TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Received unexpected state data from another cluster member"
   ::= 25

statewritefail TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Writing state data to another cluster member failed"
   ::= 26

activatealldead TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Activating this machine automatically because it is the only working machine in its Traffic IP Groups"
   ::= 107

machinerecovered TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Remote machine has recovered and can raise Traffic IP addresses"
   ::= 108

flipperrecovered TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Machine is ready to raise Traffic IP addresses"
   ::= 109

activatedautomatically TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Machine has recovered and been activated automatically because it would cause no service disruption"
   ::= 110

zclustermoderr TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "An error occurred when using the zcluster Multi-Hosted IP kernel module"
   ::= 111

ec2flipperraiselocalworking TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Moving EC2 Elastic IP Address; local machine is working"
   ::= 112

ec2flipperraiseothersdead TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Moving EC2 Elastic IP Address; other machines have failed"
   ::= 113

ec2iperr TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Problem occurred when managing an Elastic IP address"
   ::= 130

dropec2ipwarn TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Removing EC2 Elastic IP Address from all machines; it is no longer a part of any Traffic IP Groups"
   ::= 131

ec2nopublicip TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Cannot raise Elastic IP on this machine until EC2 provides it with a public IP address"
   ::= 132

multihostload TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "The amount of load handled by the local machine destined for this Traffic IP has changed"
   ::= 133

--=============================================================================
-- SSL hardware
--=============================================================================

sslhwfail TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "SSL hardware support failed"
   ::= 27

sslhwrestart TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "SSL hardware support restarted"
   ::= 28

sslhwstart TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "SSL hardware support started"
   ::= 29


--=============================================================================
-- Configuration files
--=============================================================================

confdel TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, confName }
   DESCRIPTION
      "Configuration file deleted"
   ::= 30

confmod TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, confName }
   DESCRIPTION
      "Configuration file modified"
   ::= 31

confadd TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, confName }
   DESCRIPTION
      "Configuration file added"
   ::= 32

confok TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, confName }
   DESCRIPTION
      "Configuration file now OK"
   ::= 33

confreptimeout TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Replication of configuration has timed out"
   ::= 178

confrepfailed TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Replication of configuration has failed"
   ::= 179

--=============================================================================
-- Java
--=============================================================================

javadied TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Java runner died"
   ::= 34

javastop TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Java support has stopped"
   ::= 35

javastartfail TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Java runner failed to start"
   ::= 36

javaterminatefail TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Java runner failed to terminate"
   ::= 37

javanotfound TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Cannot start Java runner, program not found"
   ::= 38

javastarted TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Java runner started"
   ::= 39

servleterror TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Servlet encountered an error"
   ::= 40

--=============================================================================
-- Monitors
--=============================================================================

monitorfail TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, monitorName }
   DESCRIPTION
      "Monitor has detected a failure"
   ::= 41

monitorok TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, monitorName }
   DESCRIPTION
      "Monitor is working"
   ::= 42


--=============================================================================
-- Rules
--=============================================================================

rulexmlerr TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, ruleName }
   DESCRIPTION
      "Rule encountered an XML error"
   ::= 43

pooluseunknown TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, ruleName }
   DESCRIPTION
      "Rule selected an unknown pool"
   ::= 44

ruleabort TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, ruleName }
   DESCRIPTION
      "Rule aborted during execution"
   ::= 45

rulebufferlarge TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, ruleName }
   DESCRIPTION
      "Rule has buffered more data than expected"
   ::= 46

rulebodycomperror TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, ruleName }
   DESCRIPTION
      "Rule encountered invalid data while uncompressing response"
   ::= 47

forwardproxybadhost TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, ruleName }
   DESCRIPTION
      "Rule selected an unresolvable host"
   ::= 48

invalidemit TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, ruleName }
   DESCRIPTION
      "Rule used event.emit() with an invalid custom event"
   ::= 49

rulenopersistence TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, ruleName }
   DESCRIPTION
      "Rule selected an unknown session persistence class"
   ::= 50

rulelogmsginfo TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, ruleName }
   DESCRIPTION
      "Rule logged an info message using log.info"
   ::= 51

rulelogmsgwarn TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, ruleName }
   DESCRIPTION
      "Rule logged a warning message using log.warn"
   ::= 52

rulelogmsgserious TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, ruleName }
   DESCRIPTION
      "Rule logged an error message using log.error"
   ::= 53

norate TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, ruleName }
   DESCRIPTION
      "Rule selected an unknown rate shaping class"
   ::= 54

poolactivenodesunknown TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, ruleName }
   DESCRIPTION
      "Rule references an unknown pool via pool.activenodes"
   ::= 55

datastorefull TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "data.set() has run out of space"
   ::= 56

rulestreamerrortoomuch TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, ruleName }
   DESCRIPTION
      "Rule supplied too much data in HTTP stream"
   ::= 210

rulestreamerrornotenough TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, ruleName }
   DESCRIPTION
      "Rule did not supply enough data in HTTP stream"
   ::= 211

rulestreamerrorprocessfailure TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, ruleName }
   DESCRIPTION
      "Data supplied to HTTP stream could not be processed"
   ::= 212

rulestreamerrornotstarted TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, ruleName }
   DESCRIPTION
      "Attempt to stream data or finish a stream before streaming had been initialized"
   ::= 213

rulestreamerrornotfinished TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, ruleName }
   DESCRIPTION
      "Attempt to initialize HTTP stream before previous stream had finished"
   ::= 214

rulestreamerrorinternal TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, ruleName }
   DESCRIPTION
      "Internal error while processing HTTP stream"
   ::= 215

rulestreamerrorgetresponse TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, ruleName }
   DESCRIPTION
      "Attempt to use http.getResponse or http.getResponseBody after http.stream.startResponse"
   ::= 216

rulesinvalidrequestbody TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, ruleName, virtualserverName }
   DESCRIPTION
      "Client sent invalid HTTP request body"
   ::= 217

--=============================================================================
-- GLB Service Rules
--=============================================================================

serviceruleabort TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, glbServiceName, ruleName }
   DESCRIPTION
      "GLB service rule aborted during execution"
   ::= 218

servicerulelocunknown TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, glbServiceName, ruleName }
   DESCRIPTION
      "GLB service rule specified an unknown location"
   ::= 219

servicerulelocnotconfigured TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, glbServiceName, ruleName }
   DESCRIPTION
      "GLB service rule specified a location that is not configured for the service"
   ::= 220

servicerulelocdead TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, glbServiceName, ruleName }
   DESCRIPTION
      "GLB service rule specified a location that has either failed or been marked as draining in the service configuration"
   ::= 221


--=============================================================================
-- License keys
--=============================================================================

expired TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, licensekeyName }
   DESCRIPTION
      "License key has expired"
   ::= 57

licensecorrupt TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, licensekeyName }
   DESCRIPTION
      "License key is corrupt"
   ::= 58

expiresoon TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, licensekeyName }
   DESCRIPTION
      "License key expires within 7 days"
   ::= 59

usinglicense TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, licensekeyName }
   DESCRIPTION
      "Using license key"
   ::= 60

licenseclustertoobig TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Cluster size exceeds license key limit"
   ::= 61

unlicensed TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Started without a license"
   ::= 62

usingdevlicense TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Using a development license"
   ::= 63

morememallowed TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "License allows more memory for caching"
   ::= 124

lessmemallowed TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "License allows less memory for caching"
   ::= 125

cachesizereduced TRAP-TYPE
ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Configured cache size exceeds license limit, only using amount allowed by license"
   ::= 123

tpslimited TRAP-TYPE
ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "License key transactions-per-second limit has been hit"
   ::= 134

ssltpslimited TRAP-TYPE
ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "License key SSL transactions-per-second limit has been hit"
   ::= 135

bwlimited TRAP-TYPE
ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "License key bandwidth limit has been hit"
   ::= 136

licensetoomanylocations TRAP-TYPE
ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "A location has been disabled because you have exceeded the licence limit"
   ::= 137

autoscalinglicenseerror TRAP-TYPE
ENTERPRISE zxtmtraps
  VARIABLES { fullLogLine }   
  DESCRIPTION
     "Autoscaling not permitted by licence key"
  ::= 175

autoscalinglicenseenabled TRAP-TYPE
ENTERPRISE zxtmtraps
  VARIABLES { fullLogLine }   
  DESCRIPTION
     "Autoscaling support has been enabled"
  ::= 176

autoscalinglicensedisabled TRAP-TYPE
ENTERPRISE zxtmtraps
  VARIABLES { fullLogLine }   
  DESCRIPTION
     "Autoscaling support has been disabled"
  ::= 177

analyticslicenseenabled TRAP-TYPE
ENTERPRISE zxtmtraps
  VARIABLES { fullLogLine }   
  DESCRIPTION
     "Realtime Analytics support has been enabled"
  ::= 180

analyticslicensedisabled TRAP-TYPE
ENTERPRISE zxtmtraps
  VARIABLES { fullLogLine }   
  DESCRIPTION
     "Realtime Analytics support has been disabled"
  ::= 181


--=============================================================================
-- Pools
--=============================================================================

poolnonodes TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, poolName }
   DESCRIPTION
   "Pool configuration contains no valid backend nodes"
   ::= 64

poolok TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, poolName }
   DESCRIPTION
   "Pool now has working nodes"
   ::= 65

pooldied TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, poolName }
   DESCRIPTION
   "Pool has no back-end nodes responding"
   ::= 66

noderesolvefailure TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, poolName }
   DESCRIPTION
      "Failed to resolve node address"
   ::= 67

noderesolvemultiple TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, poolName }
   DESCRIPTION
      "Node resolves to multiple IP addresses"
   ::= 68

nodeworking TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, perPoolNodePoolName, perPoolNodeNodeAddressType, perPoolNodeNodeAddress, perPoolNodeNodePort }
   DESCRIPTION
      "Node is working again"
   ::= 69

nostarttls TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, perPoolNodePoolName, perPoolNodeNodeAddressType, perPoolNodeNodeAddress, perPoolNodeNodePort }
   DESCRIPTION
      "Node doesn't provide STARTTLS support"
   ::= 70

nodefail TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, perPoolNodePoolName, perPoolNodeNodeAddressType, perPoolNodeNodeAddress, perPoolNodeNodePort }
   DESCRIPTION
      "Node has failed"
   ::= 71

starttlsinvalid TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, perPoolNodePoolName, perPoolNodeNodeAddressType, perPoolNodeNodeAddress, perPoolNodeNodePort }
   DESCRIPTION
      "Node returned invalid STARTTLS response"
   ::= 72

ehloinvalid TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, perPoolNodePoolName, perPoolNodeNodeAddressType, perPoolNodeNodeAddress, perPoolNodeNodePort }
   DESCRIPTION
      "Node returned invalid EHLO response"
   ::= 73

usedcredsdeleted TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, cloudcredentialsName }
   DESCRIPTION
      "A Cloud Credentials object has been deleted but it was still in use"
   ::= 126


autoscalestatusupdateerror TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, cloudcredentialsName }
   DESCRIPTION
      "An API call made by the autoscaler process has reported an error"
   ::= 129

autoscaleresponseparseerror TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, cloudcredentialsName }
   DESCRIPTION
      "An API call made by the autoscaler process has returned a response that could not be parsed"
   ::= 159

autoscalingchangeprocessfailure TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "An API process that should have created or destroyed a node has failed to produce the expected result"
   ::= 182

autoscalewrongimageid TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "A node created by the autoscaler has the wrong imageid"
  ::= 183

autoscalewrongname TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "A node created by the autoscaler has a non-matching name"
  ::= 184

autoscalewrongsizeid TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "A node created by the autoscaler has the wrong sizeid"
  ::= 185

apistatusprocesshanging TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, cloudcredentialsName }
   DESCRIPTION
      "A cloud API process querying changes to cloud instances is hanging"
   ::= 127


autonodedestructioncomplete TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "The destruction of a node in an autoscaled pool is now complete"
   ::= 138


autonodeexisted TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "IP address of newly created instance already existed in pool's node list"
   ::= 139


autoscaledpooltoosmall TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "Minimum size undercut - growing"
   ::= 140


autoscaleinvalidargforcreatenode TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "The 'imageid' was empty when attempting to create a node in an autoscaled pool"
   ::= 141


autonodedisappeared TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "A node in an autoscaled pool has disappeared from the cloud"
   ::= 142


autoscaledpoolrefractory TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "An autoscaled pool is now refractory"
   ::= 143


cannotshrinkemptypool TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "Attempt to scale down a pool that only had pending nodes or none at all"
   ::= 144


autoscalinghysteresiscantgrow TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "An autoscaled pool is waiting to grow"
   ::= 145


autonodecreationcomplete TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "The creation of a new node requested by an autoscaled pool is now complete"
   ::= 146


autonodestatuschange TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "The status of a node in an autoscaled pool has changed"
   ::= 147


autoscalinghysteresiscantshrink TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "An autoscaled pool is waiting to shrink"
   ::= 148


autoscalingpoolstatechange TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "An autoscaled pool's state has changed"
   ::= 149


autonodedestroyed TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "A cloud API call to destroy a node has been started"
   ::= 128


autonodecreationstarted TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "Creation of new node instigated"
   ::= 165


autoscaleinvalidargfordeletenode TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "'unique id' was empty when attempting to destroy a node in an autoscaled pool"
   ::= 166


autoscalinghitroof TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "Maximum size reached by autoscaled pool, cannot grow further"
   ::= 167


autoscalinghitfloor TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "Minimum size reached, cannot shrink further"
   ::= 168


apichangeprocesshanging TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "API change process still running after refractory period is over"
   ::= 169


autoscaledpooltoobig TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "Over maximum size - shrinking"
   ::= 170

autoscalingprocesstimedout TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, cloudcredentialsName }
   DESCRIPTION
      "A cloud API process has timed out"
   ::= 171

autoscalingdisabled TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "Autoscaling for a pool has been disabled due to errors communicating with the cloud API"
   ::= 172

autoscalednodecontested TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "Two pools are trying to use the same instance"
   ::= 163

autoscalepoolconfupdate TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
      "A pool config file has been updated by the autoscaler process"
   ::= 164

autoscalingresuscitatepool TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES{ fullLogLine, poolName }
   DESCRIPTION
       "An autoscaled pool has failed completely"
   ::= 188

--=============================================================================
-- Traffic IPs
--=============================================================================

flipperraiselocalworking TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, trafficIPInet46AddressType, trafficIPInet46Address }
   DESCRIPTION
      "Raising Traffic IP Address; local machine is working"
   ::= 74

flipperraiseothersdead TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, trafficIPInet46AddressType, trafficIPInet46Address }
   DESCRIPTION
      "Raising Traffic IP Address; other machines have failed"
   ::= 75

flipperraiseosdrop TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, trafficIPInet46AddressType, trafficIPInet46Address }
   DESCRIPTION
      "Raising Traffic IP Address; Operating System had dropped this IP address"
   ::= 76

dropipinfo TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, trafficIPInet46AddressType, trafficIPInet46Address }
   DESCRIPTION
      "Dropping Traffic IP Address due to a configuration change or traffic manager recovery"
   ::= 77

dropipwarn TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, trafficIPInet46AddressType, trafficIPInet46Address }
   DESCRIPTION
      "Dropping Traffic IP Address due to an error"
   ::= 78

flipperdadreraise TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, trafficIPInet46AddressType, trafficIPInet46Address }
   DESCRIPTION
      "Re-raising Traffic IP Address; Operating system did not fully raise the address"
   ::= 79

flipperipexists TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, trafficIPInet46AddressType, trafficIPInet46Address }
   DESCRIPTION
      "Failed to raise Traffic IP Address; the address exists elsewhere on your network and cannot be raised"
   ::= 80


--=============================================================================
-- Service protection
--=============================================================================

triggersummary TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, serviceProtName }
   DESCRIPTION
      "Summary of recent service protection events"
   ::= 81

--=============================================================================
-- SLM
--=============================================================================

slmclasslimitexceeded TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "SLM shared memory limit exceeded"
   ::= 82

slmrecoveredwarn TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, serviceLevelName }
   DESCRIPTION
      "SLM has recovered"
   ::= 83

slmrecoveredserious TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, serviceLevelName }
   DESCRIPTION
      "SLM has risen above the serious threshold"
   ::= 84

slmfallenbelowwarn TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, serviceLevelName }
   DESCRIPTION
      "SLM has fallen below warning threshold"
   ::= 85

slmfallenbelowserious TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, serviceLevelName }
   DESCRIPTION
      "SLM has fallen below serious threshold"
   ::= 86



--=============================================================================
-- Virtual servers
--=============================================================================


vscrloutofdate TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "CRL for a Certificate Authority is out of date"
   ::= 87

vsstart TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, virtualserverName }
   DESCRIPTION
      "Virtual server started"
   ::= 88

vsstop TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, virtualserverName }
   DESCRIPTION
      "Virtual server stopped"
   ::= 89

privkeyok TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, virtualserverName }
   DESCRIPTION
      "Private key now OK (hardware available)"
   ::= 90

ssldrop TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, virtualserverName }
   DESCRIPTION
      "Request(s) received while SSL configuration invalid, connection closed"
   ::= 91

vslogwritefail TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, virtualserverName }
   DESCRIPTION
      "Failed to write log file for virtual server"
   ::= 92

vssslcertexpired TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, virtualserverName }
   DESCRIPTION
      "Public SSL certificate expired"
   ::= 93

vssslcerttoexpire TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, virtualserverName }
   DESCRIPTION
      "Public SSL certificate will expire within seven days"
   ::= 94

vscacertexpired TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, virtualserverName }
   DESCRIPTION
      "Certificate Authority certificate expired"
   ::= 95

vscacerttoexpire TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, virtualserverName }
   DESCRIPTION
      "Certificate Authority certificate will expire within seven days"
   ::= 96


--=============================================================================
-- GLB
--=============================================================================

glbmissingips TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "A DNS Query returned IP addresses that are not configured in any location"
   ::= 150

glbdeadlocmissingips TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "A DNS Query returned IP addresses that are not configured for any location that is currently alive"
   ::= 158

glbnolocations TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "No valid location could be chosen for Global Load Balancing"
   ::= 151

locationmonitorok TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, locationName, glbServiceName }
   DESCRIPTION
       "A monitor has indicated this location is now working"
   ::= 152

locationmonitorfail TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, locationName, glbServiceName }
   DESCRIPTION
       "A monitor has detected a failure in this location"
   ::= 153

locationok TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, locationName, glbServiceName }
   DESCRIPTION
       "Location is now working for GLB Service"
   ::= 154

locationfail TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, locationName, glbServiceName }
   DESCRIPTION
       "Location has failed for GLB Service"
   ::= 155

locationsoapok TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, locationName, glbServiceName }
   DESCRIPTION
       "An external SOAP agent indicates this location is now working"
   ::= 156

locationsoapfail TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, locationName, glbServiceName }
   DESCRIPTION
       "An external SOAP agent has detected a failure in this location"
   ::= 157

glbnewmaster TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, locationName, glbServiceName }
   DESCRIPTION
       "A location has been set as master for a GLB service"
   ::= 160

glblogwritefail TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, glbServiceName }
   DESCRIPTION
       "Failed to write log file for GLB service"
   ::= 161

glbfailalter TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, glbServiceName }
   DESCRIPTION
       "Failed to alter DNS packet for global load balancing"
   ::= 162

glbservicedied TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, glbServiceName }
   DESCRIPTION
       "GLB Service has no working locations"
   ::= 190

glbserviceok TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, glbServiceName }
   DESCRIPTION
       "GLB Service has recovered"
   ::= 191

locmovemachine TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, locationName, zxtmName }
   DESCRIPTION
      "Machine now in location"
   ::= 173

locempty TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, locationName }
   DESCRIPTION
      "Location no longer contains any machines"
   ::= 174

--=============================================================================
-- Other
--=============================================================================

maxclientbufferdrop TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Dropped connection, request exceeded max_client_buffer limit"
   ::= 97

respcompfail TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Error compressing HTTP response"
   ::= 98

responsetoolarge TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Response headers from webserver too large"
   ::= 99

sipstreamnoports TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "No suitable ports available for streaming data connection"
   ::= 100

rtspstreamnoports TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "No suitable ports available for streaming data connection"
   ::= 101

geodataloadfail TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Failed to load geolocation data"
   ::= 102

poolpersistencemismatch TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Pool uses a session persistence class that does not work with this virtual server's protocol"
   ::= 103

connerror TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, virtualserverName }
   DESCRIPTION
      "A protocol error has occurred"
   ::= 104 

connfail TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, virtualserverName }
   DESCRIPTION
      "A socket connection failure has occurred"
   ::= 105 

badcontentlen TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, poolName }
   DESCRIPTION
      "HTTP response contained an invalid Content-Length header"
   ::= 106

logfiledeleted TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, virtualserverName }
   DESCRIPTION
      "A virtual server request log file was deleted (Zeus Appliances only)"
   ::= 115

license-graceperiodexpired TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, licensekeyName }
   DESCRIPTION
      "Unable to authorize license key"
   ::= 116

license-authorized TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, licensekeyName }
   DESCRIPTION
      "License key authorized"
   ::= 117

license-rejected-authorized TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, licensekeyName }
   DESCRIPTION
      "License server rejected license key; key remains authorized"
   ::= 118

license-rejected-unauthorized TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, licensekeyName }
   DESCRIPTION
      "License server rejected license key; key is not authorized"
   ::= 119

license-timedout-authorized TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, licensekeyName }
   DESCRIPTION
      "Unable to contact license server; license key remains authorized"
   ::= 120

license-timedout-unauthorized TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, licensekeyName }
   DESCRIPTION
      "Unable to contact license server; license key is not authorized"
   ::= 121

license-unauthorized TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine, licensekeyName }
   DESCRIPTION
      "License key is not authorized"
   ::= 122

logdiskoverload TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Log disk partition usage has exceeded threshold"
   ::= 186 

logdiskfull TRAP-TYPE
   ENTERPRISE zxtmtraps
   VARIABLES { fullLogLine }
   DESCRIPTION
      "Log disk partition full"
   ::= 187


--==================================================================
-- Cloud Credentials
--==================================================================

cloudcredentialsClassNumber OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of cloud credentials sets defined."
   ::= { cloudcredentials 1 }

--=======
-- Individual Sets of Cloud Credentials
--=======

cloudcredentialsTable OBJECT-TYPE
   SYNTAX SEQUENCE OF CloudcredentialsEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This table provides statistics for cloud credentials sets."
   ::= { cloudcredentials 2 }

cloudcredentialsEntry OBJECT-TYPE
   SYNTAX CloudcredentialsEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION "This defines a row in the cloud credentials table."
   INDEX { cloudcredentialsName }
   ::= { cloudcredentialsTable 1 }

CloudcredentialsEntry ::=
   SEQUENCE {
      cloudcredentialsName            DisplayString (SIZE (0..255)),
      cloudcredentialsStatusRequests  Counter,
      cloudcredentialsNodeCreations   Counter,
      cloudcredentialsNodeDeletions   Counter
   }

cloudcredentialsName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION "The name of this set of cloud credentials."
   ::= { cloudcredentialsEntry 1 }

cloudcredentialsStatusRequests OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION "The number of status API requests made
               with this set of cloud credentials."
   ::= { cloudcredentialsEntry 2 }

cloudcredentialsNodeCreations OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION "The number of instance creation API requests
               made with this set of cloud credentials."
   ::= { cloudcredentialsEntry 3 }


cloudcredentialsNodeDeletions OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION "The number of instance destruction API requests
               made with this set of cloud credentials."
   ::= { cloudcredentialsEntry 4 }


--======================================================
-- Listen IP Table (IPv4 and IPv6 addresses are allowed)
--======================================================

listenIPTable OBJECT-TYPE
   SYNTAX SEQUENCE OF ListenIPEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This table defines all the information for a particular listening IP (includes IPv4 and IPv6 addresses)."
   ::= { listenips 2 }

listenIPEntry OBJECT-TYPE
   SYNTAX ListenIPEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This defines a row in the listenips table (includes IPv4 and IPv6 addresses)."
   INDEX { listenIPAddressType, listenIPAddress }
   ::= { listenIPTable 1 }

ListenIPEntry ::=
   SEQUENCE {
      listenIPAddressType      InetAddressType,
      listenIPAddress          InetAddress,
      listenIPBytesInLo        Counter,
      listenIPBytesInHi        Counter,
      listenIPBytesOutLo       Counter,
      listenIPBytesOutHi       Counter,
      listenIPCurrentConn      Gauge,
      listenIPTotalConn        Counter,
      listenIPMaxConn          Gauge
   }

listenIPAddressType OBJECT-TYPE
   SYNTAX InetAddressType
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The IP address type of this listening IP."
   ::= { listenIPEntry 1 }

listenIPAddress OBJECT-TYPE
   SYNTAX InetAddress (SIZE (1..64))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The IPv4 or IPv6 address of this listening IP."
   ::= { listenIPEntry 2 }

listenIPBytesInLo OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes sent to this listening IP ( low 32bits )."
   ::= { listenIPEntry 3 }

listenIPBytesInHi OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes sent to this listening IP ( high 32bits )."
   ::= { listenIPEntry 4 }

listenIPBytesOutLo OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes sent from this listening IP ( low 32bits )."
   ::= { listenIPEntry 5 }

listenIPBytesOutHi OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Bytes sent from this listening IP ( high 32bits )."
   ::= { listenIPEntry 6 }

listenIPCurrentConn OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "TCP connections currently established to this listening IP."
   ::= { listenIPEntry 7 }

listenIPTotalConn OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Requests sent to this listening IP."
   ::= { listenIPEntry 8 }

listenIPMaxConn OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Maximum number of simultaneous TCP connections this listening IP
       has processed at any one time."
   ::= { listenIPEntry 9 }

--============================
-- Authenticators
--============================
 
authenticatorNumber OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of Authenticators."
   ::= { authenticators 1 }

--============================
-- Authenticators Table
--============================

authenticatorTable OBJECT-TYPE
   SYNTAX SEQUENCE OF AuthenticatorEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This table provides information and statistics for Authenticators."
   ::= { authenticators 2 }

authenticatorEntry OBJECT-TYPE
   SYNTAX AuthenticatorEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "This defines a row in the authenticators table."
   INDEX { authenticatorName }
   ::= { authenticatorTable 1 }

AuthenticatorEntry ::= SEQUENCE {
      authenticatorName     DisplayString (SIZE (0..255)),
      authenticatorRequests Counter,
      authenticatorPasses   Counter,
      authenticatorFails    Counter,
      authenticatorErrors   Counter
   }

authenticatorName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..255))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of the Authenticator."
   ::= { authenticatorEntry 1 }

authenticatorRequests OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times this Authenticator has been asked to authenticate."
   ::= { authenticatorEntry 2 }

authenticatorPasses OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times this Authenticator has successfully authenticated."
   ::= { authenticatorEntry 3 }

authenticatorFails OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of times this Authenticator has failed to authenticate."
   ::= { authenticatorEntry 4 }

authenticatorErrors OBJECT-TYPE
   SYNTAX Counter
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Number of connection errors that have occured when trying to connect to an authentication server."
   ::= { authenticatorEntry 5 }

END
