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

SQUID-MIB DEFINITIONS ::= BEGIN
--
-- $Id$
--

IMPORTS
	enterprises, Unsigned32, 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 "200812240200Z"
    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      "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 not-accessible
                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 read-only
                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 implimented.
--

	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 }
--

	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 CachePeerTableEntry
		MAX-ACCESS not-accessible
		STATUS current
		DESCRIPTION
			" An entry in cachePeerTable (version 3) "
		INDEX 	{ cachePeerIndex }
	::= { cachePeerTable 3 }

	CachePeerTableEntry ::= 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
	}
	
	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)
	
	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)


	cachePeerIndex OBJECT-TYPE
		SYNTAX CachePeerIndex
		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 INTEGER
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        " Peer Type "
	::= { cachePeerEntry 7 }

	cachePeerState OBJECT-TYPE
                SYNTAX INTEGER
                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

