-- SQUID-MIB  { iso org(3) dod(6) internet(1) private(4) enterprises(1) 3495 }

SQUID-MIB DEFINITIONS ::= BEGIN

IMPORTS
        enterprises, TimeTicks, Gauge32, Counter32,
        MODULE-IDENTITY, OBJECT-TYPE, Integer32
                FROM SNMPv2-SMI

        DisplayString, TEXTUAL-CONVENTION
                FROM SNMPv2-TC

        InetAddressType, InetAddress
                FROM INET-ADDRESS-MIB;

squid MODULE-IDENTITY
        LAST-UPDATED "202204151000Z"
        ORGANIZATION "National Laboratory for Applied Network Research"
        CONTACT-INFO
                "Squid Developers

                E-mail: squid@squid-cache.org"
        DESCRIPTION
                "Squid MIB defined for the management of the Squid
                proxy server. See http://www.squid-cache.org/."

        REVISION      "202204151000Z"
        DESCRIPTION
                "Reorganized cachePeerTable and related objects to
                fix smilint errors.

                Removed unused import of Unsigned32.

                Improve formatting consistency."

        REVISION      "200812240200Z"
        DESCRIPTION
                "Corrected MIB strictness requirements. Mapped
                valid port ranges"

        REVISION      "200712140000Z"
        DESCRIPTION
                "Added support for IPv6 Technology."

        REVISION      "9901010000Z"
        DESCRIPTION
                "Added objects and corrected asn.1 syntax and
                descriptions."

        REVISION      "9809220000Z"
        DESCRIPTION
                "Move to SMIv2. Prepare to split into proxy/squid."

        ::= { nlanr 1 }

--
-- OID Assignments
--

        nlanr         OBJECT IDENTIFIER ::= { enterprises 3495 }
        cacheSystem   OBJECT IDENTIFIER ::= { squid 1 }
        cacheConfig   OBJECT IDENTIFIER ::= { squid 2 }
        cachePerf     OBJECT IDENTIFIER ::= { squid 3 }
        cacheNetwork  OBJECT IDENTIFIER ::= { squid 4 }
        cacheMesh     OBJECT IDENTIFIER ::= { squid 5 }

--
-- cacheSystem group { squid 1 }
--

        cacheSysVMsize OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Storage Mem size in KB"
        ::= { cacheSystem 1 }

        cacheSysStorage OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Storage Swap size in KB"
        ::= { cacheSystem 2 }

        cacheUptime  OBJECT-TYPE
                SYNTAX TimeTicks
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "The Uptime of the cache in timeticks"
        ::= { cacheSystem 3 }

--
-- cacheConfig group { squid 2 }
--
-- Contains configuration information including peers etc.
--

        cacheAdmin OBJECT-TYPE
                SYNTAX DisplayString
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Cache Administrator E-Mail address"
        ::= { cacheConfig 1 }

        cacheSoftware OBJECT-TYPE
                SYNTAX DisplayString
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Cache Software Name"
        ::= { cacheConfig 2 }

        cacheVersionId OBJECT-TYPE
                SYNTAX OCTET STRING
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Cache Software Version"
        ::= { cacheConfig 3 }

        cacheLoggingFacility OBJECT-TYPE
                SYNTAX DisplayString
                MAX-ACCESS read-write
                STATUS current
                DESCRIPTION
                        "Logging Facility. An informational string
                        indicating logging info like debug level,
                        local/syslog/remote logging etc"
        ::= { cacheConfig 4 }

        --
        -- cacheStorageConfig group
        --

        cacheStorageConfig OBJECT IDENTIFIER ::= { cacheConfig 5 }

        cacheMemMaxSize OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "The value of the cache_mem parameter in MB"
        ::= { cacheStorageConfig 1 }

        cacheSwapMaxSize OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "The total of the cache_dir space allocated in MB"
        ::= { cacheStorageConfig 2 }

        cacheSwapHighWM OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Cache Swap High Water Mark"
        ::= { cacheStorageConfig 3 }

        cacheSwapLowWM OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Cache Swap Low Water Mark"
        ::= { cacheStorageConfig 4 }

        --
        -- end of  cacheStorageConfig group
        --

        cacheUniqName OBJECT-TYPE
                SYNTAX DisplayString
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Cache unique host name"
        ::= { cacheConfig 6 }

--
-- cachePerformance group { squid 3 }
--

        cacheSysPerf    OBJECT IDENTIFIER ::= { cachePerf 1 }
        cacheProtoStats OBJECT IDENTIFIER ::= { cachePerf 2 }

        --
        -- cacheSysPerf
        --

        cacheSysPageFaults OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Page faults with physical i/o"
        ::= { cacheSysPerf 1 }

        cacheSysNumReads OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "HTTP I/O number of reads"
        ::= { cacheSysPerf 2 }

        cacheMemUsage OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Total memory accounted for KB"
        ::= { cacheSysPerf 3 }

        cacheCpuTime OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS  current
                DESCRIPTION
                        "Amount of cpu seconds consumed"
        ::= { cacheSysPerf 4 }

        cacheCpuUsage OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS  current
                DESCRIPTION
                        "The percentage use of the CPU"
        ::= { cacheSysPerf 5 }

        cacheMaxResSize OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS  current
                DESCRIPTION
                        "Maximum Resident Size in KB"
        ::= { cacheSysPerf 6 }

        cacheNumObjCount OBJECT-TYPE
                SYNTAX Gauge32
                MAX-ACCESS read-only
                STATUS  current
                DESCRIPTION
                        "Number of objects stored by the cache"
        ::= { cacheSysPerf 7 }

        cacheCurrentLRUExpiration OBJECT-TYPE
                SYNTAX TimeTicks
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Storage LRU Expiration Age"
        ::= { cacheSysPerf 8 }

        cacheCurrentUnlinkRequests OBJECT-TYPE
                SYNTAX Gauge32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Requests given to unlinkd"
        ::= { cacheSysPerf 9 }

        cacheCurrentUnusedFDescrCnt OBJECT-TYPE
                SYNTAX Gauge32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Available number of file descriptors"
        ::= { cacheSysPerf 10 }

        cacheCurrentResFileDescrCnt  OBJECT-TYPE
                SYNTAX Gauge32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Reserved number of file descriptors"
        ::= { cacheSysPerf 11 }

        cacheCurrentFileDescrCnt  OBJECT-TYPE
                SYNTAX Gauge32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of file descriptors in use"
        ::= { cacheSysPerf 12 }

        cacheCurrentFileDescrMax  OBJECT-TYPE
                SYNTAX Gauge32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Highest file descriptors in use"
        ::= { cacheSysPerf 13 }

--
-- cacheProtoStats
--

        --
        -- cacheProtoAggregateStats
        --

        cacheProtoAggregateStats OBJECT IDENTIFIER ::= { cacheProtoStats 1 }


        cacheProtoClientHttpRequests  OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of HTTP requests received"
        ::= { cacheProtoAggregateStats 1 }

        cacheHttpHits OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of HTTP Hits"
        ::= { cacheProtoAggregateStats 2 }

        cacheHttpErrors OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of HTTP Errors"
        ::= { cacheProtoAggregateStats 3 }

        cacheHttpInKb OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of HTTP KB's received"
        ::= { cacheProtoAggregateStats 4 }

        cacheHttpOutKb OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of HTTP KB's transmitted"
        ::= { cacheProtoAggregateStats 5 }

        cacheIcpPktsSent OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of ICP messages sent"
        ::= { cacheProtoAggregateStats 6 }

        cacheIcpPktsRecv OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of ICP messages received"
        ::= { cacheProtoAggregateStats 7 }

        cacheIcpKbSent OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of ICP KB's transmitted"
        ::= { cacheProtoAggregateStats 8 }

        cacheIcpKbRecv OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of ICP KB's received"
        ::= { cacheProtoAggregateStats 9 }

        cacheServerRequests OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "All requests from the client for the cache server"
        ::= { cacheProtoAggregateStats 10 }

        cacheServerErrors OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "All errors for the cache server from client requests"
        ::= { cacheProtoAggregateStats 11 }

        cacheServerInKb OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "KB's of traffic received from servers"
        ::= { cacheProtoAggregateStats 12 }

        cacheServerOutKb OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "KB's of traffic sent to servers"
        ::= { cacheProtoAggregateStats 13 }

        cacheCurrentSwapSize OBJECT-TYPE
                SYNTAX Gauge32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Storage Swap size"
        ::= { cacheProtoAggregateStats 14 }

       cacheClients OBJECT-TYPE
                SYNTAX Gauge32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of clients accessing cache"
        ::= { cacheProtoAggregateStats 15 }

        --
        -- cacheProtoMedianSvcStats group
        --
        -- This is a table, indexed by the interval we want statistics for
        -- Example: cacheDnsSvcTime.10 gives 10-min medians for Dns Service Time.

        cacheMedianSvcTable OBJECT-TYPE
                SYNTAX SEQUENCE OF CacheMedianSvcEntry
                MAX-ACCESS not-accessible
                STATUS current
                DESCRIPTION
                        "CacheMedianSvcTable"
        ::= { cacheProtoStats 2 }

        cacheMedianSvcEntry OBJECT-TYPE
                SYNTAX CacheMedianSvcEntry
                MAX-ACCESS not-accessible
                STATUS current
                DESCRIPTION
                        "An entry in cacheMedianSvcTable"
                INDEX   { cacheMedianTime }
        ::= { cacheMedianSvcTable 1 }

        CacheMedianSvcEntry ::= SEQUENCE {
                cacheMedianTime         Integer32,
                cacheHttpAllSvcTime     Integer32,
                cacheHttpMissSvcTime    Integer32,
                cacheHttpNmSvcTime      Integer32,
                cacheHttpHitSvcTime     Integer32,
                cacheIcpQuerySvcTime    Integer32,
                cacheIcpReplySvcTime    Integer32,
                cacheDnsSvcTime         Integer32,
                cacheRequestHitRatio    Integer32,
                cacheRequestByteRatio   Integer32,
                cacheHttpNhSvcTime      Integer32
        }

        cacheMedianTime OBJECT-TYPE
                SYNTAX Integer32 (1|5|60)
                MAX-ACCESS not-accessible
                STATUS current
                DESCRIPTION
                        "The value used to index the table 1/5/60"
        ::= { cacheMedianSvcEntry 1 }

        cacheHttpAllSvcTime OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "HTTP all service time"
        ::= { cacheMedianSvcEntry 2 }

        cacheHttpMissSvcTime OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "HTTP miss service time"
        ::= { cacheMedianSvcEntry 3 }

        cacheHttpNmSvcTime OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "HTTP hit not-modified service time"
        ::= { cacheMedianSvcEntry 4 }

        cacheHttpHitSvcTime OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "HTTP hit service time"
        ::= { cacheMedianSvcEntry 5 }

        cacheIcpQuerySvcTime OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "ICP query service time"
        ::= { cacheMedianSvcEntry 6 }

        cacheIcpReplySvcTime OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "ICP reply service time"
        ::= { cacheMedianSvcEntry 7 }

        cacheDnsSvcTime OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "DNS service time"
        ::= { cacheMedianSvcEntry 8 }

        cacheRequestHitRatio OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Request Hit Ratios"
        ::= { cacheMedianSvcEntry 9 }

        cacheRequestByteRatio OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Byte Hit Ratios"
        ::= { cacheMedianSvcEntry 10 }

        cacheHttpNhSvcTime OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "HTTP refresh hit service time"
        ::= { cacheMedianSvcEntry 11 }

--
-- cacheNetwork group { squid 4 }
--
-- This material is probably best suited elsewhere, however for now it
-- will reside here until the both the Proxy and Squid MIBs are implemented.
--

        cacheIpCache    OBJECT IDENTIFIER ::= { cacheNetwork 1 }
        cacheFqdnCache  OBJECT IDENTIFIER ::= { cacheNetwork 2 }
        cacheDns        OBJECT IDENTIFIER ::= { cacheNetwork 3 }

--
-- cacheIpCache
--

        cacheIpEntries OBJECT-TYPE
                SYNTAX Gauge32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "IP Cache Entries"
        ::= { cacheIpCache 1 }

        cacheIpRequests OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of IP Cache requests"
        ::= { cacheIpCache 2 }

        cacheIpHits OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of IP Cache hits"
        ::= { cacheIpCache 3 }

        cacheIpPendingHits OBJECT-TYPE
                SYNTAX Gauge32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of IP Cache pending hits"
        ::= { cacheIpCache 4 }

        cacheIpNegativeHits OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of IP Cache negative hits"
        ::= { cacheIpCache 5 }

        cacheIpMisses OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of IP Cache misses"
        ::= { cacheIpCache 6 }

        cacheBlockingGetHostByName OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of blocking gethostbyname requests"
        ::= { cacheIpCache 7 }

        cacheAttemptReleaseLckEntries OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of attempts to release locked IP Cache entries"
        ::= { cacheIpCache 8 }

--
-- cacheFqdnCache
--

        cacheFqdnEntries OBJECT-TYPE
                SYNTAX Gauge32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "FQDN Cache entries"
        ::= { cacheFqdnCache 1 }

        cacheFqdnRequests OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of FQDN Cache requests"
        ::= { cacheFqdnCache 2 }

        cacheFqdnHits OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of FQDN Cache hits"
        ::= { cacheFqdnCache 3 }

        cacheFqdnPendingHits OBJECT-TYPE
                SYNTAX Gauge32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of FQDN Cache pending hits"
        ::= { cacheFqdnCache 4 }

        cacheFqdnNegativeHits OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of FQDN Cache negative hits"
        ::= { cacheFqdnCache 5 }

        cacheFqdnMisses OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of FQDN Cache misses"
        ::= { cacheFqdnCache 6 }

        cacheBlockingGetHostByAddr OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of blocking gethostbyaddr requests"
        ::= { cacheFqdnCache 7 }

--
--      cacheDNS
--

        cacheDnsRequests OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of external DNS server requests"
        ::= { cacheDns 1 }

        cacheDnsReplies OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of external DNS server replies"
        ::= { cacheDns 2 }

        cacheDnsNumberServers OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of external DNS server processes"
        ::= { cacheDns 3 }

--
-- cacheMesh group { squid 5 }
--

        CachePeerTableIndex ::= TEXTUAL-CONVENTION
                DISPLAY-HINT "d"
                STATUS current
                DESCRIPTION
                        "A unique value, greater than zero for each
                        cache peer instance in the managed
                        system. It is recommended that values are assigned
                        contiguously starting from 1. The value for each
                        cache peer index must remain constant
                        at least from one re-initialization of the entity's
                        network management system to the next
                        re-initialization."
                SYNTAX    Integer32 (1..2147483647)

        ValidPort ::= TEXTUAL-CONVENTION
                DISPLAY-HINT "d"
                STATUS current
                DESCRIPTION
                        "A integer value from 1 to 65535 to indicate
                        the appropriate port number for the connection."
                SYNTAX    Integer32 (1..65535)

        cachePeerTable OBJECT-TYPE
                SYNTAX SEQUENCE OF CachePeerEntry
                MAX-ACCESS not-accessible
                STATUS current
                DESCRIPTION
                        "This table contains an enumeration of
                        the peer caches, complete with info"
        ::= { cacheMesh 1 }

        cachePeerEntry OBJECT-TYPE
                SYNTAX CachePeerEntry
                MAX-ACCESS not-accessible
                STATUS current
                DESCRIPTION
                        "An entry in cachePeerTable (version 3)"
                INDEX  { cachePeerIndex }
        ::= { cachePeerTable 3 }

        CachePeerEntry ::= SEQUENCE {
                cachePeerIndex         CachePeerTableIndex,
                cachePeerName          DisplayString,
                cachePeerAddressType   InetAddressType,
                cachePeerAddress       InetAddress,
                cachePeerPortHttp      ValidPort,
                cachePeerPortIcp       ValidPort,
                cachePeerType          Integer32,
                cachePeerState         Integer32,
                cachePeerPingsSent     Counter32,
                cachePeerPingsAcked    Counter32,
                cachePeerFetches       Counter32,
                cachePeerRtt           Integer32,
                cachePeerIgnored       Counter32,
                cachePeerKeepAlSent    Counter32,
                cachePeerKeepAlRecv    Counter32
        }
        cachePeerIndex OBJECT-TYPE
                SYNTAX CachePeerTableIndex
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "A unique non-zero value identifying
                        the particular cache Peer."
        ::= { cachePeerEntry 1 }

        cachePeerName OBJECT-TYPE
                SYNTAX DisplayString
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "The FQDN name or internal alias for the
                        peer cache"
        ::= { cachePeerEntry 2 }

        cachePeerAddressType OBJECT-TYPE
                SYNTAX InetAddressType
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "The type of Internet address by which the peer
                        cache is reachable."
        ::= { cachePeerEntry 3 }

        cachePeerAddress OBJECT-TYPE
                SYNTAX InetAddress (SIZE (1..64))
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "The Internet address for the peer cache.  The type of this
                        address is determined by the value of the peerAddressType
                        object.  Note that implementations must limit themselves
                        to a single entry in this table per reachable peer.
                        The peerAddress may not be empty due to the SIZE
                        restriction.

                        If a row is created administratively by an SNMP
                        operation and the address type value is dns(16), then
                        the agent stores the DNS name internally.  A DNS name
                        lookup must be performed on the internally stored DNS
                        name whenever it is being used to contact the peer.

                        If a row is created by the managed entity itself and
                        the address type value is dns(16), then the agent
                        stores the IP address internally.  A DNS reverse lookup
                        must be performed on the internally stored IP address
                        whenever the value is retrieved via SNMP."
        ::= { cachePeerEntry 4 }


        cachePeerPortHttp OBJECT-TYPE
                SYNTAX ValidPort
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "The port the peer listens for HTTP requests"
        ::= { cachePeerEntry 5 }

        cachePeerPortIcp OBJECT-TYPE
                SYNTAX ValidPort
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "The port the peer listens for ICP requests
                        should be 0 if not configured to send ICP requests"
        ::= { cachePeerEntry 6 }

        cachePeerType OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Peer Type"
        ::= { cachePeerEntry 7 }

        cachePeerState OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "The operational state of this peer"
        ::= { cachePeerEntry 8 }

        cachePeerPingsSent OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of pings sent to peer"
        ::= { cachePeerEntry 9 }

        cachePeerPingsAcked OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of pings received from peer"
        ::= {  cachePeerEntry 10 }

        cachePeerFetches OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of times this peer was selected"
        ::= { cachePeerEntry 11 }

        cachePeerRtt OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Last known round-trip time to the peer (in ms)"
        ::= { cachePeerEntry 12 }

        cachePeerIgnored OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "How many times this peer was ignored"
        ::= { cachePeerEntry 13 }

        cachePeerKeepAlSent OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of keepalives sent"
        ::= { cachePeerEntry 14 }

        cachePeerKeepAlRecv OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of keepalives received"
        ::= { cachePeerEntry 15 }

---
--- Table of cache's clients, with statistics. Children caches can be identified
--- by non-zero number of ICP requests (unless browsers start using ICP).
---

        cacheClientTable OBJECT-TYPE
                SYNTAX SEQUENCE OF CacheClientEntry
                MAX-ACCESS not-accessible
                STATUS current
                DESCRIPTION
                        "A list of cache client entries"
        ::= { cacheMesh 2 }

        cacheClientEntry OBJECT-TYPE
                SYNTAX CacheClientEntry
                MAX-ACCESS not-accessible
                STATUS current
                DESCRIPTION
                        "An IP entry in cacheClientTable"
                INDEX { cacheClientAddress }
        ::= { cacheClientTable 2 }

        CacheClientEntry ::= SEQUENCE {
                cacheClientAddressType   InetAddressType,
                cacheClientAddress       InetAddress,
                cacheClientHttpRequests  Counter32,
                cacheClientHttpKb        Counter32,
                cacheClientHttpHits      Counter32,
                cacheClientHTTPHitKb     Counter32,
                cacheClientIcpRequests   Counter32,
                cacheClientIcpKb         Counter32,
                cacheClientIcpHits       Counter32,
                cacheClientIcpHitKb      Counter32
        }

        cacheClientAddressType OBJECT-TYPE
                SYNTAX InetAddressType
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "The client's IP address"
        ::= { cacheClientEntry 1 }

        cacheClientAddress OBJECT-TYPE
                SYNTAX      InetAddress (SIZE (1..64))
                MAX-ACCESS  read-only
                STATUS      current
                DESCRIPTION
                        "The Internet address for the client.  The type of this
                        address is determined by the value of the peerAddressType
                        object.  Note that implementations must limit themselves
                        to a single entry in this table per reachable peer.
                        The peerAddress may not be empty due to the SIZE
                        restriction.

                        If a row is created administratively by an SNMP
                        operation and the address type value is dns(16), then
                        the agent stores the DNS name internally.  A DNS name
                        lookup must be performed on the internally stored DNS
                        name whenever it is being used to contact the peer.

                        If a row is created by the managed entity itself and
                        the address type value is dns(16), then the agent
                        stores the IP address internally.  A DNS reverse lookup
                        must be performed on the internally stored IP address
                        whenever the value is retrieved via SNMP."
        ::= { cacheClientEntry 2 }

        cacheClientHttpRequests OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of HTTP requests received from client"
        ::= { cacheClientEntry 3 }

        cacheClientHttpKb OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Amount of total HTTP traffic to this client"
        ::= { cacheClientEntry 4 }

        cacheClientHttpHits OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of hits in response to this client's HTTP requests"
        ::= { cacheClientEntry 5 }

        cacheClientHTTPHitKb OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Amount of HTTP hit traffic in KB"
        ::= { cacheClientEntry 6 }

        cacheClientIcpRequests OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of ICP requests received from client"
        ::= { cacheClientEntry 7 }

        cacheClientIcpKb OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Amount of total ICP traffic to this client (child)"
        ::= { cacheClientEntry 8 }

        cacheClientIcpHits OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Number of hits in response to this client's ICP requests"
        ::= { cacheClientEntry 9 }

        cacheClientIcpHitKb OBJECT-TYPE
                SYNTAX Counter32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        "Amount of ICP hit traffic in KB"
        ::= { cacheClientEntry 10 }

-- end of cacheClientTable

-- end of cacheMesh group

--
-- end of SQUID-MIB
--

END
