-- File: SQUID.MIB
-- Maintained by: kostas@nlanr.net
--
+-- NOTE: This version (1.13) of the mib is supported as of squid1.2beta19.
+--
SQUID-MIB DEFINITIONS ::= BEGIN
IMPORTS
-- Do NOT remove the following line
--- v 1.12 1998/03/16 kostas@nlanr.net
+-- v 1.13 1998/03/22 kostas@nlanr.net
--
--- definitions included for standalone agent/managers
---
-
- squid OBJECT IDENTIFIER ::= { iso org(3) dod(6) internet(1) experimental(3) nsfnet(25) 17 }
-
+-- definition of squid mib subtree
+-- NOTE: This should be left this way for compatibility with various tools
+
+ squid OBJECT IDENTIFIER ::= {
+ iso
+ org(3)
+ dod(6)
+ internet(1)
+ experimental(3)
+ nsfnet(25)
+ 17
+ }
--
-- Major MIB groups
cacheConfig OBJECT IDENTIFIER ::= { squid 2 }
cachePerf OBJECT IDENTIFIER ::= { squid 3 }
cacheNetwork OBJECT IDENTIFIER ::= { squid 4 }
- cacheSecurity OBJECT IDENTIFIER ::= { squid 5 }
- cacheAccounting OBJECT IDENTIFIER ::= { squid 6 }
+ cacheMesh OBJECT IDENTIFIER ::= { squid 5 }
--
--
cacheSysVMsize OBJECT-TYPE
- SYNTAX INTEGER
+ SYNTAX Integer32
ACCESS read-only
STATUS mandatory
DESCRIPTION
" Virtual Memory size in KB"
- ::= { cacheSystem 1 }
+ ::= { cacheSystem 1 }
cacheSysStorage OBJECT-TYPE
- SYNTAX INTEGER (0..2147483647)
+ SYNTAX Integer32
ACCESS read-only
STATUS mandatory
DESCRIPTION
- " Diskspace in MB"
- ::= { cacheSystem 2 }
+ " Diskspace in KB"
+ ::= { cacheSystem 2 }
-- fd table
cacheFdTable OBJECT-TYPE
- SYNTAX SEQUENCE OF cacheFdEntry
+ SYNTAX SEQUENCE OF CacheFdEntry
ACCESS read-only
- STATUS current
+ STATUS mandatory
DESCRIPTION
" This table contains an enumeration of
registered filedescriptors , complete with info "
- ::= { cacheSystem 3 }
+ ::= { cacheSystem 4 }
cacheFdEntry OBJECT-TYPE
SYNTAX CacheFdEntry
MAX-ACCESS not-accessible
- STATUS current
+ STATUS mandatory
DESCRIPTION
" An entry in cacheFdTable "
INDEX { cacheFdNumber }
- ::= { cacheFdTable 1 }
+ ::= { cacheFdTable 1 }
CacheFdEntry ::= SEQUENCE {
- cacheFdNumber INTEGER,
- cacheFdType INTEGER,
- cacheFdTout INTEGER,
- cacheFdNread INTEGER,
- cacheFdNwrite INTEGER,
- cacheFdAddress IpAddress,
+ cacheFdNumber Integer32,
+ cacheFdNread Counter32,
+ cacheFdNwrite Counter32,
cacheFdName DisplayString
}
cacheFdNumber OBJECT-TYPE
- SYNTAX INTEGER
+ SYNTAX Integer32
ACCESS read-only
- STATUS current
+ STATUS mandatory
+ DESCRIPTION
+ " Filedescriptor number (in the mib context,
+ not really the system-level fdnum) "
::= { cacheFdEntry 1 }
- cacheFdType OBJECT-TYPE
- SYNTAX INTEGER
+ cacheFdNread OBJECT-TYPE
+ SYNTAX Counter32
ACCESS read-only
- STATUS current
+ STATUS mandatory
+ DESCRIPTION
+ " Number of bytes read from this filedescriptor "
::= { cacheFdEntry 2 }
- cacheFdTout OBJECT-TYPE
- SYNTAX INTEGER
+ cacheFdNwrite OBJECT-TYPE
+ SYNTAX Counter32
ACCESS read-only
- STATUS current
+ STATUS mandatory
+ DESCRIPTION
+ " Number of bytes written to this filedescriptor "
::= { cacheFdEntry 3 }
- cacheFdNread OBJECT-TYPE
- SYNTAX INTEGER
+ cacheFdName OBJECT-TYPE
+ SYNTAX DisplayString
ACCESS read-only
- STATUS current
+ STATUS mandatory
+ DESCRIPTION
+ " Name of filedescriptor, revealing type and purpose "
::= { cacheFdEntry 4 }
- cacheFdNwrite OBJECT-TYPE
- SYNTAX INTEGER
+--
+-- cacheActiveConnTable : Table of active network connections
+--
+
+ cacheActiveConnTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF CacheActiveConnEntry
ACCESS read-only
- STATUS current
- ::= { cacheFdEntry 5 }
+ STATUS mandatory
+ DESCRIPTION
+ " This table contains an enumeration of
+ registered filedescriptors , complete with info "
+ ::= { cacheSystem 3 }
- cacheFdAddress OBJECT-TYPE
- SYNTAX IpAddress
+ cacheActiveConnEntry OBJECT-TYPE
+ SYNTAX CacheActiveConnEntry
+ MAX-ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ " An entry in cacheActiveConnEntry "
+ INDEX { cacheActiveConnAddr, cacheActiveConnPort }
+ ::= { cacheActiveConnTable 1 }
+
+ CacheActiveConnEntry ::= SEQUENCE {
+ cacheActiveConnNread Counter32,
+ cacheActiveConnNwrite Counter32,
+ cacheActiveConnAddr IpAddress,
+ cacheActiveConnName DisplayString,
+ cacheActiveConnType Integer32
+ }
+
+ cacheActiveConnNread OBJECT-TYPE
+ SYNTAX Counter32
ACCESS read-only
- STATUS current
- ::= { cacheFdEntry 6 }
+ STATUS mandatory
+ DESCRIPTION
+ " Number of bytes read from connection "
+ ::= { cacheActiveConnEntry 1 }
- cacheFdName OBJECT-TYPE
- SYNTAX DisplayString
+ cacheActiveConnNwrite OBJECT-TYPE
+ SYNTAX Counter32
ACCESS read-only
- STATUS current
- ::= { cacheFdEntry 7 }
+ STATUS mandatory
+ DESCRIPTION
+ " Number of bytes written to connection "
+ ::= { cacheActiveConnEntry 2 }
+ cacheActiveConnAddress OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ " Peer-end IP address "
+ ::= { cacheActiveConnEntry 3 }
- cacheFdType OBJECT-TYPE
- SYNTAX INTEGER { icp(1), http(2), ftp(3),
- wais(4), gopher (5), Swap (6) }
- MAX-ACCESS read-write
- STATUS current
- DESCRIPTION
- " type of file descriptor "
- ::= { cacheFdEntry 2 }
+ cacheActiveConnName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ " Name assigned to connection by the cache, revealing
+ type / purpose "
+ ::= { cacheActiveConnEntry 4 }
+ cacheActiveConnPort OBJECT-TYPE
+ SYNTAX Integer32
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ " Peer-end TCP/UDP port number "
+ ::= { cacheActiveConnEntry 5 }
+
--
-- config group
--
-- Contains configuration information including peers etc.
-
+--
cacheAdmin OBJECT-TYPE
- SYNTAX OCTET STRING
+ SYNTAX DisplayString
ACCESS read-only
STATUS mandatory
DESCRIPTION
- " Cache Administrator Contact address "
- ::= { cacheConfig 1 }
+ " Cache Administrator Contact Name and E-Mail address "
+ ::= { cacheConfig 1 }
+
+ cacheSoftware OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ " Cache Software Name "
+ ::= { cacheConfig 2 }
+
+ cacheVersionId OBJECT-TYPE
+ SYNTAX OCTET STRING
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ " Cache Software Version "
+ ::= { cacheConfig 3 }
cacheUptime OBJECT-TYPE
- SYNTAX Counter32
+ SYNTAX Timeticks
ACCESS read-only
STATUS mandatory
DESCRIPTION
- " Number of minutes since cache started "
- ::= { cacheConfig 2 }
+ " Number of timeticks since cache started "
+ ::= { cacheConfig 4 }
+
+-- cacheStorageConfig group
- cacheStorageConfig OBJECT IDENTIFIER ::= { cacheConfig 7 }
+ cacheStorageConfig OBJECT IDENTIFIER ::= { cacheConfig 6 }
cacheMemMaxSize OBJECT-TYPE
- SYNTAX INTEGER
+ SYNTAX Integer32
ACCESS read-only
STATUS mandatory
DESCRIPTION
" Cache Memory Maximum Size "
- ::= { cacheStorageConfig 1 }
+ ::= { cacheStorageConfig 1 }
cacheMemHighWM OBJECT-TYPE
- SYNTAX INTEGER
+ SYNTAX Integer32
ACCESS read-only
STATUS mandatory
DESCRIPTION
" Cache Memory High Water Mark "
- ::= { cacheStorageConfig 2 }
+ ::= { cacheStorageConfig 2 }
cacheMemLowWM OBJECT-TYPE
- SYNTAX INTEGER
+ SYNTAX Integer32
ACCESS read-only
STATUS mandatory
DESCRIPTION
" Cache Memory High Water Mark "
- ::= { cacheStorageConfig 3 }
+ ::= { cacheStorageConfig 3 }
cacheSwapMaxSize OBJECT-TYPE
- SYNTAX INTEGER
+ SYNTAX Integer32
ACCESS read-only
STATUS mandatory
DESCRIPTION
" Cache Swap Maximum Size "
- ::= { cacheStorageConfig 4 }
+ ::= { cacheStorageConfig 4 }
cacheSwapHighWM OBJECT-TYPE
- SYNTAX INTEGER
+ SYNTAX Integer32
ACCESS read-only
STATUS mandatory
DESCRIPTION
" Cache Swap High Water Mark "
- ::= { cacheStorageConfig 5 }
+ ::= { cacheStorageConfig 5 }
cacheSwapLowWM OBJECT-TYPE
- SYNTAX INTEGER
+ SYNTAX Integer32
ACCESS read-only
STATUS mandatory
DESCRIPTION
" Cache Swap High Water Mark "
- ::= { cacheStorageConfig 6 }
-
- cacheWaisRelayHost OBJECT-TYPE
- SYNTAX DisplayString
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- " Cache WAIS relay host address "
- ::= { cacheConfig 3 }
-
- cacheWaisRelayPort OBJECT-TYPE
- SYNTAX Integer
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- " Cache WAIS relay host Port "
- ::= { cacheConfig 4 }
+ ::= { cacheStorageConfig 6 }
- cacheTimeoutValues OBJECT IDENTIFIER ::= { cacheConfig 8 }
+-- end of cacheStorageConfig group
- cacheReadTimeout OBJECT-TYPE
- SYNTAX Integer
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- " Read Timeout Value "
- ::= { cacheTimeoutValues 1 }
-
- cacheConnectionTimeout OBJECT-TYPE
- SYNTAX Integer
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- " Connection Timeout Value "
- ::= { cacheTimeoutValues 2 }
-
- cacheRequestTimeout OBJECT-TYPE
- SYNTAX Integer
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- " Request Timeout Value "
- ::= { cacheTimeoutValues 3 }
-
-
-
- cacheLoggingLevel OBJECT-TYPE
+ cacheLoggingFacility OBJECT-TYPE
SYNTAX DisplayString
ACCESS read-write
STATUS mandatory
DESCRIPTION
- " Logging level "
- ::= { cacheConfig 5 }
+ " Logging Facility. An informational string
+ indicating logging info like debug level,
+ local/syslog/remote logging etc "
+ ::= { cacheConfig 5 }
- --
- -- config group : table of peers
- --
+--
+-- cacheMesh group : peers , clients and children
+--
cachePeerTable OBJECT-TYPE
- SYNTAX SEQUENCE OF cachePeerEntry
+ SYNTAX SEQUENCE OF CachePeerEntry
ACCESS read-only
- STATUS current
+ STATUS mandatory
DESCRIPTION
" This table contains an enumeration of
the peer caches, complete with info "
- ::= { cacheConfig 6 }
+ ::= { cacheMesh 1 }
cachePeerEntry OBJECT-TYPE
SYNTAX CachePeerEntry
MAX-ACCESS not-accessible
- STATUS current
+ STATUS mandatory
DESCRIPTION
" An entry in cachePeerTable "
- INDEX { cachePeerId }
- ::= { cachePeerTable 1 }
+ INDEX { cachePeerAddr }
+ ::= { cachePeerTable 1 }
CachePeerEntry ::= SEQUENCE {
- cachePeerId Integer,
cachePeerName DisplayString,
- cachePeerIP IpAddress,
- cachePeerPortHttp INTEGER (1..65535),
- cachePeerPortIcp INTEGER (1..65535),
- cachePeerType INTEGER,
- cachePeerState INTEGER
+ cachePeerAddr IpAddress,
+ cachePeerPortHttp Integer32 (1..65535),
+ cachePeerPortIcp Integer32 (1..65535),
+ cachePeerType Integer32,
+ cachePeerState Integer32,
+ cachePeerPingsSent Counter32,
+ cachePeerPingsAcked Counter32,
+ cachePeerFetches Counter32,
+ cachePeerRtt Integer32,
+ cachePeerIgnored Counter32,
+ cachePeerKeepAlSent Counter32,
+ cachePeerKeepAlRecv Counter32
}
- cachePeerId OBJECT-TYPE
- SYNTAX Integer
- ACCESS read-only
- STATUS current
- ::= { cachePeerEntry 1 }
cachePeerName OBJECT-TYPE
SYNTAX DisplayString
ACCESS read-only
- STATUS current
- ::= { cachePeerEntry 2 }
+ STATUS mandatory
+ DESCRIPTION
+ " The FQDN name or internal alias for the
+ peer cache"
+ ::= { cachePeerEntry 1 }
- cachePeerIP OBJECT-TYPE
+ cachePeerAddr OBJECT-TYPE
SYNTAX IpAddress
ACCESS read-only
- STATUS current
- ::= { cachePeerEntry 3 }
+ STATUS mandatory
+ DESCRIPTION
+ " The IP Address of the peer cache "
+ ::= { cachePeerEntry 2 }
cachePeerPortHttp OBJECT-TYPE
- SYNTAX INTEGER
+ SYNTAX Integer32
ACCESS read-only
- STATUS current
- ::= { cachePeerEntry 4 }
+ STATUS mandatory
+ DESCRIPTION
+ " The port the peer listens for HTTP requests "
+ ::= { cachePeerEntry 3 }
cachePeerPortIcp OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-only
- STATUS current
- ::= { cachePeerEntry 5 }
-
--- cachePeerType OBJECT-TYPE
--- SYNTAX INTEGER
--- ACCESS read-only
--- STATUS current
--- ::= { cachePeerEntry 6 }
-
- cachePeerState OBJECT-TYPE
- SYNTAX INTEGER
+ SYNTAX Integer32
ACCESS read-only
- STATUS current
- ::= { cachePeerEntry 7 }
+ STATUS mandatory
+ DESCRIPTION
+ " The port the peer listens for ICP requests
+ should be 0 if not configured to send ICP requests "
+ ::= { cachePeerEntry 4 }
cachePeerType OBJECT-TYPE
- SYNTAX INTEGER {
- parent(1),
- sibling(2),
- multicast(3),
- none(4)
+ SYNTAX INTEGER {
+ none(0),
+ sibling(1),
+ parent(2),
+ multicast(3)
}
MAX-ACCESS not-accessible
- STATUS current
+ STATUS mandatory
DESCRIPTION
" Peer Type "
- ::= { cachePeerEntry 6 }
+ ::= { cachePeerEntry 5 }
+
+ cachePeerState OBJECT-TYPE
+ SYNTAX INTEGER {
+ down(0),
+ up(1)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ " The operational state of this peer "
+ ::= { cachePeerEntry 6 }
+
+ cachePeerPingsSent OBJECT-TYPE
+ SYNTAX Counter32
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ " Number of pings sent to peer "
+ ::= { cachePeerEntry 7 }
+
+ cachePeerPingsAcked OBJECT-TYPE
+ SYNTAX Counter32
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ " Number of pings received from peer "
+ ::= { cachePeerEntry 8 }
+
+ cachePeerFetches OBJECT-TYPE
+ SYNTAX Counter32
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ " Number of times this peer was selected "
+ ::= { cachePeerEntry 9 }
+
+ cachePeerRtt OBJECT-TYPE
+ SYNTAX Integer32
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ " Last known round-trip time to the peer (in ms) "
+ ::= { cachePeerEntry 10 }
+
+ cachePeerIgnored OBJECT-TYPE
+ SYNTAX Counter32
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ " How many times this peer was ignored "
+ ::= { cachePeerEntry 11 }
+
+ cachePeerKeepAlSent OBJECT-TYPE
+ SYNTAX Counter32
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ " Number of keepalives sent "
+ ::= { cachePeerEntry 12 }
+
+ cachePeerKeepAlRecv OBJECT-TYPE
+ SYNTAX Counter32
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ " Number of keepalives received "
+ ::= { cachePeerEntry 13 }
+
+---
+--- 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
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of cache client entries."
+ ::= { cacheMesh 2 }
+
+ cacheClientEntry OBJECT-TYPE
+ SYNTAX CacheClientEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry in cacheClientTable"
+ INDEX { cacheClientAddr }
+ ::= { cacheClientTable 1 }
+
+ CacheClientEntry ::= SEQUENCE {
+ cacheClientAddr NetworkAddress,
+ cacheClientHttpRequests Counter32,
+ cacheClientHttpKb Counter32,
+ cacheClientHttpHits Counter32,
+ cacheClientHTTPHitKb Counter32,
+ cacheClientIcpRequests Counter32,
+ cacheClientIcpKb Counter32,
+ cacheClientIcpHits Counter32,
+ cacheClientIcpHitKb Counter32
+ }
+
+ cacheClientAddr OBJECT-TYPE
+ SYNTAX NetworkAddress
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The client's IP address "
+ ::= { cacheClientEntry 1 }
+
+ cacheClientHttpRequests OBJECT-TYPE
+ SYNTAX Counter32
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ " Number of HTTP requests received from client "
+ ::= { cacheClientEntry 2 }
+
+ cacheClientHttpKb OBJECT-TYPE
+ SYNTAX Counter32
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ " Amount of total HTTP traffic to this client "
+ ::= { cacheClientEntry 3 }
+
+ cacheClientHttpHits OBJECT-TYPE
+ SYNTAX Counter32
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ " Number of hits in response to this client's HTTP requests "
+ ::= { cacheClientEntry 4 }
+
+ cacheClientHTTPHitKb OBJECT-TYPE
+ SYNTAX Counter32
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ " Amount of HTTP hit traffic in KB "
+ ::= { cacheClientEntry 5 }
+
+ cacheClientIcpRequests OBJECT-TYPE
+ SYNTAX Counter32
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ " Number of ICP requests received from client "
+ ::= { cacheClientEntry 6 }
+
+ cacheClientIcpKb OBJECT-TYPE
+ SYNTAX Counter32
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ " Amount of total ICP traffic to this client (child) "
+ ::= { cacheClientEntry 7 }
+
+ cacheClientIcpHits OBJECT-TYPE
+ SYNTAX Counter32
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ " Number of hits in response to this client's ICP requests "
+ ::= { cacheClientEntry 8 }
+
+ cacheClientIcpHitKb OBJECT-TYPE
+ SYNTAX Counter32
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ " Amount of ICP hit traffic in KB "
+ ::= { cacheClientEntry 9 }
+
+ -- end of cacheClientTable
+
+
+ -- end of cacheMesh group
--
-- cacheNetwork group
-- NetDB info
NetDbTable OBJECT-TYPE
- SYNTAX SEQUENCE OF netDbEntry
+ SYNTAX SEQUENCE OF NetDbEntry
ACCESS read-only
- STATUS current
+ STATUS mandatory
DESCRIPTION
" This table contains squid's netdb"
- ::= { cacheNetwork 1 }
+ ::= { cacheNetwork 1 }
netDbEntry OBJECT-TYPE
SYNTAX NetDbEntry
MAX-ACCESS not-accessible
- STATUS current
+ STATUS mandatory
DESCRIPTION
" An entry in the NetDb"
- INDEX { netDbEntryId }
- ::= { NetDbTable 1 }
+ INDEX { netDbEntryNetwork }
+ ::= { NetDbTable 1 }
NetDbEntry ::= SEQUENCE {
- NetDbEntryId Integer,
NetDbEntryNetwork IpAddress,
NetDbEntryPingsSent Counter32,
NetDbEntryPingsRecv Counter32,
- NetDbEntryHops Integer,
+ NetDbEntryHops Integer32,
NetDbEntryRtt TimeTicks,
NetDbEntryPingTime TimeTicks,
NetDbEntryLastUse TimeTicks,
}
- NetDbEntryId OBJECT-TYPE
- SYNTAX Integer
- ACCESS read-only
- STATUS current
- ::= { netDbEntry 1 }
-
NetDbEntryNetwork OBJECT-TYPE
SYNTAX IpAddress
ACCESS read-only
- STATUS current
- ::= { netDbEntry 2 }
+ STATUS mandatory
+ ::= { netDbEntry 1 }
NetDbEntryPingsSent OBJECT-TYPE
SYNTAX Counter32
ACCESS read-only
- STATUS current
- ::= { netDbEntry 3 }
+ STATUS mandatory
+ ::= { netDbEntry 2 }
NetDbEntryPingsRecv OBJECT-TYPE
SYNTAX Counter32
ACCESS read-only
- STATUS current
- ::= { netDbEntry 4 }
+ STATUS mandatory
+ ::= { netDbEntry 3 }
NetDbEntryHops OBJECT-TYPE
- SYNTAX Integer
+ SYNTAX Integer32
ACCESS read-only
- STATUS current
- ::= { netDbEntry 5 }
+ STATUS mandatory
+ ::= { netDbEntry 4 }
NetDbEntryRtt OBJECT-TYPE
SYNTAX TimeTicks
ACCESS read-only
- STATUS current
- ::= { netDbEntry 6 }
+ STATUS mandatory
+ ::= { netDbEntry 5 }
NetDbEntryPingTime OBJECT-TYPE
SYNTAX TimeTicks
ACCESS read-only
- STATUS current
- ::= { netDbEntry 7 }
+ STATUS mandatory
+ ::= { netDbEntry 6 }
NetDbEntryLastUse OBJECT-TYPE
SYNTAX TimeTicks
ACCESS read-only
- STATUS current
- ::= { netDbEntry 8 }
+ STATUS mandatory
+ ::= { netDbEntry 7 }
-- IP cache info
ipCacheTable OBJECT-TYPE
SYNTAX SEQUENCE OF iPcacheEntry
ACCESS read-only
- STATUS current
+ STATUS mandatory
DESCRIPTION
- " This table contains an enumeration of
- the peer caches, complete with info "
- ::= { cacheDns 1 }
+ " This table contains information about
+ cached name -> address dns resolution "
+ ::= { cacheDns 1 }
iPcacheEntry OBJECT-TYPE
SYNTAX IPcacheEntry
MAX-ACCESS not-accessible
- STATUS current
+ STATUS mandatory
DESCRIPTION
- " An entry in cachePeerTable "
+ " An entry in ipCacheTable "
INDEX { IPcacheEntryId }
- ::= { ipCacheTable 1 }
+ ::= { ipCacheTable 1 }
IPcacheEntry ::= SEQUENCE {
- IPcacheEntryId Integer,
- IPcacheEntryName OCTET STRING,
+ IPcacheEntryId Integer32,
+ IPcacheEntryName DisplayString,
IPcacheEntryIP IpAddress,
- IPcacheEntryState INTEGER,
+ IPcacheEntryState Integer32,
}
IPcacheEntryState OBJECT-TYPE
SYNTAX INTEGER {
pending(1), expired(2), ok(3) }
MAX-ACCESS not-accessible
- STATUS current
+ STATUS mandatory
DESCRIPTION
" State of IP cache entry "
- ::= { iPcacheEntry 3 }
+ ::= { iPcacheEntry 3 }
IPcacheEntryId OBJECT-TYPE
- SYNTAX Integer
+ SYNTAX Integer32
ACCESS read-only
- STATUS current
+ STATUS mandatory
::= { iPcacheEntry 1 }
IPcacheEntryName OBJECT-TYPE
- SYNTAX OCTET STRING
+ SYNTAX DisplayString
ACCESS read-only
- STATUS current
+ STATUS mandatory
::= { iPcacheEntry 2 }
IPcacheEntryIP OBJECT-TYPE
SYNTAX IpAddress
ACCESS read-only
- STATUS current
+ STATUS mandatory
::= { iPcacheEntry 3 }
IPcacheEntryState OBJECT-TYPE
- SYNTAX Integer
+ SYNTAX Integer32
ACCESS read-only
- STATUS current
+ STATUS mandatory
::= { iPcacheEntry 4 }
- -- fqdn cache info
- fQDNcacheTable OBJECT-TYPE
- SYNTAX SEQUENCE OF fQDNcacheEntry
+-- fqdn cache info
+
+ fqdnCacheTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF fqdnCacheEntry
ACCESS read-only
- STATUS current
+ STATUS mandatory
DESCRIPTION
" This table contains an enumeration of
the peer caches, complete with info "
- ::= { cacheDns 2 }
+ ::= { cacheDns 2 }
- fQDNcacheEntry OBJECT-TYPE
+ fqdnCacheEntry OBJECT-TYPE
SYNTAX FQDNcacheEntry
MAX-ACCESS not-accessible
- STATUS current
+ STATUS mandatory
DESCRIPTION
" An entry in cachePeerTable "
INDEX { FQDNcacheEntryId }
- ::= { fQDNcacheTable 1 }
+ ::= { fqdnCacheTable 1 }
FQDNcacheEntry ::= SEQUENCE {
- FQDNcacheEntryId Integer,
- FQDNcacheEntryName OCTET STRING,
+ FQDNcacheEntryId Integer32,
+ FQDNcacheEntryName DisplayString,
FQDNcacheEntryIP IpAddress,
FQDNcacheEntryLastRef TimeTicks,
FQDNcacheEntryExpires TimeTicks,
- FQDNcacheEntryState INTEGER
+ FQDNcacheEntryState Integer32
}
FQDNcacheEntryId OBJECT-TYPE
- SYNTAX Integer
+ SYNTAX Integer32
ACCESS read-only
- STATUS current
- ::= { fQDNcacheEntry 1 }
+ STATUS mandatory
+ ::= { fqdnCacheEntry 1 }
FQDNcacheEntryName OBJECT-TYPE
- SYNTAX OCTET STRING
+ SYNTAX DisplayString
ACCESS read-only
- STATUS current
- ::= { fQDNcacheEntry 2 }
+ STATUS mandatory
+ ::= { fqdnCacheEntry 2 }
FQDNcacheEntryIP OBJECT-TYPE
SYNTAX IpAddress
ACCESS read-only
- STATUS current
- ::= { fQDNcacheEntry 3 }
+ STATUS mandatory
+ ::= { fqdnCacheEntry 3 }
FQDNcacheEntryLastRef OBJECT-TYPE
SYNTAX TimeTicks
ACCESS read-only
- STATUS current
- ::= { fQDNcacheEntry 4}
+ STATUS mandatory
+ ::= { fqdnCacheEntry 4}
FQDNcacheEntryExpires OBJECT-TYPE
SYNTAX TimeTicks
ACCESS read-only
- STATUS current
- ::= { fQDNcacheEntry 5}
+ STATUS mandatory
+ ::= { fqdnCacheEntry 5}
FQDNcacheEntryState OBJECT-TYPE
- SYNTAX Integer
+ SYNTAX Integer32
ACCESS read-only
- STATUS current
- ::= { fQDNcacheEntry 6}
+ STATUS mandatory
+ ::= { fqdnCacheEntry 6}
FQDNcacheEntryState OBJECT-TYPE
SYNTAX INTEGER {
pending(1), expired(2), ok(3) }
MAX-ACCESS not-accessible
- STATUS current
+ STATUS mandatory
DESCRIPTION
- " state of FQDN cache entry "
- ::= { fQDNcacheEntry 7 }
+ " state of FQDN cache entry "
+ ::= { fqdnCacheEntry 7 }
+
+-- end of fqdnCacheTable
cacheNetStat OBJECT IDENTIFIER ::= { cacheNetwork 3 }
cacheTCPconnections OBJECT-TYPE
SYNTAX Counter32
ACCESS read-only
- STATUS current
+ STATUS mandatory
DESCRIPTION
" Number of TCP connections since start-up "
- ::= { cacheNetStat 1 }
+ ::= { cacheNetStat 1 }
cacheUDPconnections OBJECT-TYPE
SYNTAX Counter32
ACCESS read-only
- STATUS current
+ STATUS mandatory
DESCRIPTION
" Number of UDP connections since start-up "
- ::= { cacheNetStat 2 }
+ ::= { cacheNetStat 2 }
--
-- performance group { squid 3 }
cacheSysPerf OBJECT IDENTIFIER ::= { cachePerf 1 }
cacheProtoStats OBJECT IDENTIFIER ::= { cachePerf 2 }
- cachePeerStats OBJECT IDENTIFIER ::= { cachePerf 3 }
--
-- cacheSysPerf
STATUS mandatory
DESCRIPTION
" Number of system page faults "
- ::= { cacheSysPerf 1 }
+ ::= { cacheSysPerf 1 }
cacheSysNumReads OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS not-accessible
- STATUS current
+ STATUS mandatory
DESCRIPTION
" Number of Reads "
- ::= { cacheSysPerf 2 }
+ ::= { cacheSysPerf 2 }
cacheSysDefReads OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS not-accessible
- STATUS current
+ STATUS mandatory
DESCRIPTION
" see cachemgr "
- ::= { cacheSysPerf 3 }
-
+ ::= { cacheSysPerf 3 }
cacheMemUsage OBJECT-TYPE
- SYNTAX Integer32
+ SYNTAX Integer3232
MAX-ACCESS read-only
STATUS current
DESCRIPTION
" Amount of system memory allocated by the cache"
- ::= { cacheSysPerf 4 }
+ ::= { cacheSysPerf 4 }
cacheCpuUsage OBJECT-TYPE
- SYNTAX Integer32
+ SYNTAX Integer3232
MAX-ACCESS read-only
STATUS current
DESCRIPTION
" Amount of cpu seconds consumed"
- ::= { cacheSysPerf 5 }
+ ::= { cacheSysPerf 5 }
cacheMaxResSize OBJECT-TYPE
- SYNTAX Integer32
+ SYNTAX Integer3232
MAX-ACCESS read-only
STATUS current
DESCRIPTION
" Maximum Resident Size"
- ::= { cacheSysPerf 6 }
+ ::= { cacheSysPerf 6 }
cacheNumObjCount OBJECT-TYPE
SYNTAX Counter32
STATUS current
DESCRIPTION
" Number of objects "
- ::= { cacheSysPerf 7 }
+ ::= { cacheSysPerf 7 }
cacheCurrentLRUExpiration OBJECT-TYPE
SYNTAX TimeTicks
ACCESS read-only
STATUS mandatory
- ::= { cacheSysPerf 8 }
+ ::= { cacheSysPerf 8 }
cacheCurrentUnlinkRequests OBJECT-TYPE
SYNTAX Counter32
ACCESS read-only
STATUS mandatory
- ::= { cacheSysPerf 9 }
+ ::= { cacheSysPerf 9 }
cacheCurrentUnusedFileDescrCount OBJECT-TYPE
SYNTAX Gauge32
ACCESS read-only
STATUS mandatory
- ::= { cacheSysPerf 10 }
+ ::= { cacheSysPerf 10 }
cacheCurrentReservedFileDescrCount OBJECT-TYPE
SYNTAX Gauge32
ACCESS read-only
STATUS mandatory
- ::= { cacheSysPerf 11 }
+ ::= { cacheSysPerf 11 }
--
-- cacheProtoStats
SYNTAX Counter32
ACCESS read-only
STATUS mandatory
- ::= { cacheProtoAggregateStats 1 }
+ ::= { cacheProtoAggregateStats 1 }
cacheHttpHits OBJECT-TYPE
SYNTAX Counter32
ACCESS read-only
STATUS mandatory
- ::= { cacheProtoAggregateStats 2 }
+ ::= { cacheProtoAggregateStats 2 }
cacheHttpErrors OBJECT-TYPE
SYNTAX Counter32
ACCESS read-only
STATUS mandatory
- ::= { cacheProtoAggregateStats 3 }
+ ::= { cacheProtoAggregateStats 3 }
cacheHttpInKb OBJECT-TYPE
SYNTAX Counter32
ACCESS read-only
STATUS mandatory
- ::= { cacheProtoAggregateStats 4 }
+ ::= { cacheProtoAggregateStats 4 }
cacheHttpOutKb OBJECT-TYPE
SYNTAX Counter32
ACCESS read-only
STATUS mandatory
- ::= { cacheProtoAggregateStats 5 }
+ ::= { cacheProtoAggregateStats 5 }
- cacheICPpktsSent OBJECT-TYPE
+ cacheIcpPktsSent OBJECT-TYPE
SYNTAX Counter32
ACCESS read-only
STATUS mandatory
- ::= { cacheProtoAggregateStats 6 }
+ ::= { cacheProtoAggregateStats 6 }
- cacheICPpktsRecv OBJECT-TYPE
+ cacheIcpPktsRecv OBJECT-TYPE
SYNTAX Counter32
ACCESS read-only
STATUS mandatory
- ::= { cacheProtoAggregateStats 7 }
+ ::= { cacheProtoAggregateStats 7 }
- cacheICPkbSent OBJECT-TYPE
+ cacheIcpKbSent OBJECT-TYPE
SYNTAX Counter32
ACCESS read-only
STATUS mandatory
- ::= { cacheProtoAggregateStats 8 }
+ ::= { cacheProtoAggregateStats 8 }
- cacheICPkbRecv OBJECT-TYPE
+ cacheIcpKbRecv OBJECT-TYPE
SYNTAX Counter32
ACCESS read-only
STATUS mandatory
- ::= { cacheProtoAggregateStats 9 }
+ ::= { cacheProtoAggregateStats 9 }
cacheServerRequests OBJECT-TYPE
- SYNTAX INTEGER
+ SYNTAX Integer32
ACCESS read-only
STATUS mandatory
- ::= { cacheProtoAggregateStats 10 }
+ ::= { cacheProtoAggregateStats 10 }
cacheServerErrors OBJECT-TYPE
- SYNTAX INTEGER
+ SYNTAX Integer32
ACCESS read-only
STATUS mandatory
- ::= { cacheProtoAggregateStats 11 }
+ ::= { cacheProtoAggregateStats 11 }
cacheServerInKb OBJECT-TYPE
SYNTAX Counter32
ACCESS read-only
STATUS mandatory
- ::= { cacheProtoAggregateStats 12 }
+ ::= { cacheProtoAggregateStats 12 }
cacheServerOutKb OBJECT-TYPE
SYNTAX Counter32
ACCESS read-only
STATUS mandatory
- ::= { cacheProtoAggregateStats 13 }
+ ::= { cacheProtoAggregateStats 13 }
cacheCurrentSwapSize OBJECT-TYPE
SYNTAX Counter32
ACCESS read-only
STATUS mandatory
- ::= { cacheProtoAggregateStats 14 }
+ ::= { cacheProtoAggregateStats 14 }
--
-- 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
+ SYNTAX SEQUENCE OF CacheMedianSvcEntry
ACCESS read-only
- STATUS current
- ::= { cacheProtoStats 2 }
+ STATUS mandatory
+ ::= { cacheProtoStats 2 }
cacheMedianSvcEntry OBJECT-TYPE
SYNTAX CacheMedianSvcEntry
MAX-ACCESS not-accessible
- STATUS current
+ STATUS mandatory
DESCRIPTION
- " An entry in cacheFdTable "
+ " An entry in cacheMedianSvcTable "
INDEX { cacheMedianTime }
- ::= { cacheMedianSvcTable 1 }
+ ::= { cacheMedianSvcTable 1 }
CacheMedianSvcEntry ::= SEQUENCE {
- cacheMedianTime INTEGER,
- cacheHttpAllSvcTime INTEGER,
- cacheHttpMissSvcTime INTEGER,
- cacheHttpNmSvcTime INTEGER,
- cacheHttpHitSvcTime INTEGER,
- cacheIcpQuerySvcTime INTEGER,
- cacheIcpReplySvcTime INTEGER,
- cacheDnsSvcTime INTEGER
+ cacheMedianTime Integer32,
+ cacheHttpAllSvcTime Integer32,
+ cacheHttpMissSvcTime Integer32,
+ cacheHttpNmSvcTime Integer32,
+ cacheHttpHitSvcTime Integer32,
+ cacheIcpQuerySvcTime Integer32,
+ cacheIcpReplySvcTime Integer32,
+ cacheDnsSvcTime Integer32
}
cacheMedianTime OBJECT-TYPE
- SYNTAX INTEGER
+ SYNTAX Integer32
ACCESS read-only
STATUS mandatory
- ::= { cacheMedianSvcEntry 1 }
+ ::= { cacheMedianSvcEntry 1 }
cacheHttpAllSvcTime OBJECT-TYPE
- SYNTAX INTEGER
+ SYNTAX Integer32
ACCESS read-only
STATUS mandatory
- ::= { cacheMedianSvcEntry 2 }
+ ::= { cacheMedianSvcEntry 2 }
cacheHttpMissSvcTime OBJECT-TYPE
- SYNTAX INTEGER
+ SYNTAX Integer32
ACCESS read-only
STATUS mandatory
- ::= { cacheMedianSvcEntry 3 }
+ ::= { cacheMedianSvcEntry 3 }
cacheHttpNmSvcTime OBJECT-TYPE
- SYNTAX INTEGER
+ SYNTAX Integer32
ACCESS read-only
STATUS mandatory
- ::= { cacheMedianSvcEntry 4 }
-
+ ::= { cacheMedianSvcEntry 4 }
cacheHttpHitSvcTime OBJECT-TYPE
- SYNTAX INTEGER
+ SYNTAX Integer32
ACCESS read-only
STATUS mandatory
- ::= { cacheMedianSvcEntry 5 }
-
+ ::= { cacheMedianSvcEntry 5 }
cacheIcpQuerySvcTime OBJECT-TYPE
- SYNTAX INTEGER
+ SYNTAX Integer32
ACCESS read-only
STATUS mandatory
- ::= { cacheMedianSvcEntry 6 }
-
+ ::= { cacheMedianSvcEntry 6 }
cacheIcpReplySvcTime OBJECT-TYPE
- SYNTAX INTEGER
+ SYNTAX Integer32
ACCESS read-only
STATUS mandatory
- ::= { cacheMedianSvcEntry 7 }
+ ::= { cacheMedianSvcEntry 7 }
cacheDnsSvcTime OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-only
- STATUS mandatory
- ::= { cacheMedianSvcEntry 8 }
-
-
- --
- -- cachePeerStats
- --
-
- cachePeerStatTable OBJECT-TYPE
- SYNTAX SEQUENCE OF cachePeerStatEntry
- ACCESS not-accessible
- STATUS current
- DESCRIPTION
- " Table containing aggregate statistics
- per supported protocol "
- ::= { cachePeerStats 1 }
-
- cachePeerStatEntry OBJECT-TYPE
- SYNTAX CachePeerStatEntry
- ACCESS not-accessible
- STATUS current
- DESCRIPTION
- " An entry in cacheProtoStatTable "
- INDEX { cachePeerStatId }
- ::= { cachePeerStatTable 1 }
-
-
- CachePeerStatEntry ::= SEQUENCE {
- cachePeerStatId Integer,
- peerPingsSent Counter32,
- peerPingsAcked Counter32,
- peerFetches Counter32,
- peerRtt Integer32,
- peerIgnored Counter32,
- peerKeepAlSent Counter32,
- peerKeepAlRecv Counter32
- }
-
- cachePeerStatId OBJECT-TYPE
- SYNTAX Integer
- ACCESS read-only
- STATUS mandatory
- ::= { cachePeerStatEntry 1 }
-
-
- peerPingsSent OBJECT-TYPE
- SYNTAX Counter32
- ACCESS read-only
- STATUS mandatory
- ::= { cachePeerStatEntry 2 }
-
- peerPingsAcked OBJECT-TYPE
- SYNTAX Counter32
- ACCESS read-only
- STATUS mandatory
- ::= { cachePeerStatEntry 3 }
-
- peerFetches OBJECT-TYPE
- SYNTAX Counter32
- ACCESS read-only
- STATUS mandatory
- ::= { cachePeerStatEntry 4 }
-
- peerRtt OBJECT-TYPE
SYNTAX Integer32
ACCESS read-only
STATUS mandatory
- ::= { cachePeerStatEntry 5 }
+ ::= { cacheMedianSvcEntry 8 }
- peerIgnored OBJECT-TYPE
- SYNTAX Counter32
- ACCESS read-only
- STATUS mandatory
- ::= { cachePeerStatEntry 6 }
-
- peerKeepAlSent OBJECT-TYPE
- SYNTAX Counter32
- ACCESS read-only
- STATUS mandatory
- ::= { cachePeerStatEntry 7 }
-
- peerKeepAlRecv OBJECT-TYPE
- SYNTAX Counter32
- ACCESS read-only
- STATUS mandatory
- ::= { cachePeerStatEntry 8 }
-
-
-
----
---- cacheAccounting group
----
---- We have to decide first if we follow to ietf rfcm/accounting wg
---- model of meters/managers. It could become quite costly to do this
---- type of accounting inside the caching software. If this agent is
---- cascaded by another agent doing this type of accounting, this would
---- be the place to add the information
-
----
---- cacheSecurity group
----
-
- cacheAccessControl OBJECT IDENTIFIER ::= { cacheSecurity 1 }
-
-
- --- Access Control Lists for client access
-
- cacheProtoAclTable OBJECT-TYPE
- SYNTAX SEQUENCE OF cacheProtoAclEntry
- ACCESS read-only
- STATUS current
- DESCRIPTION
- " This table contains the acl control configuration
- for cache access "
- ::= { cacheAccessControl 1 }
-
- cacheProtoAclEntry OBJECT-TYPE
- SYNTAX CacheProtoAclEntry
- MAX-ACCESS not-accessible
- STATUS current
- DESCRIPTION
- " An entry in cacheProtoAclTable "
- INDEX { cacheProtoAclIndex }
- ::= { cacheProtoAclTable 1 }
-
- CacheProtoAclEntry ::= SEQUENCE {
- cacheProtoAclIndex Integer,
- cacheProtoAclIP IpAddress,
- cacheProtoAclMask IpAddress
- cacheProtoAclType INTEGER
- }
---END
+-- end of SQUID-MIB
+--
+END
extern int get_median_svc(int, int);
extern StatCounters *snmpStatGet(int);
extern void snmp_agent_parse_done(int, snmp_request_t *);
-
+void addr2oid(struct in_addr addr, oid *);
void snmpAclCheckStart(snmp_request_t * rq);
Answer->val_len = sizeof(snint);
Answer->val.integer = xmalloc(Answer->val_len);
Answer->type = SMI_TIMETICKS;
- *(Answer->val.integer) = tvSubDsec(squid_start, current_time);
+ *(Answer->val.integer) = (snint) ( tvSubDsec(squid_start, current_time) );
break;
case SYSCONTACT:
Answer->type = ASN_OCTET_STR;
variable_list *Answer;
static fde *f = NULL;
int num = 1, cnt = 0;
+ static char addrbuf[16];
static struct in_addr addr;
static snint snint_return;
Answer->type = ASN_INTEGER;
*(Answer->val.integer) = store_swap_size;
break;
+ case SYSCONNTBL:
+ snprintf(addrbuf,16, "%d.%d.%d.%d", Var->name[11], Var->name[12],
+ Var->name[13],Var->name[14]);
+
+ debug(49, 9) ("snmp_sysFn: CONN Table, [%s]\n", addrbuf);
+
+ while (cnt < Squid_MaxFD) {
+ f = &fd_table[cnt++];
+ if (!f->open)
+ continue;
+ if (f->type==FD_SOCKET && !strcmp(f->ipaddr, addrbuf ) &&
+ f->remote_port==Var->name[15])
+ break;
+ }
+ if (!f || cnt==Squid_MaxFD) {
+ debug(49, 9) ("snmp_sysFn: no such name. %x\n", f);
+ *ErrP = SNMP_ERR_NOSUCHNAME;
+ snmp_var_free(Answer);
+ return (NULL);
+ }
+ switch(Var->name[10]) {
+ case SYS_CONN_FDNUM:
+ Answer->val_len = sizeof(snint);
+ Answer->val.integer = xmalloc(Answer->val_len);
+ Answer->type = ASN_INTEGER;
+ *(Answer->val.integer) = Var->name[11];
+ break;
+ case SYS_CONN_PORT:
+ Answer->val_len = sizeof(snint);
+ Answer->val.integer = xmalloc(Answer->val_len);
+ Answer->type = ASN_INTEGER;
+ *(Answer->val.integer) = f->remote_port;
+ break;
+ case SYS_CONN_READ:
+ Answer->val_len = sizeof(snint);
+ Answer->val.integer = xmalloc(Answer->val_len);
+ Answer->type = ASN_INTEGER;
+ *(Answer->val.integer) = (snint) f->bytes_read;
+ break;
+ case SYS_CONN_WRITE:
+ Answer->val_len = sizeof(snint);
+ Answer->val.integer = xmalloc(Answer->val_len);
+ Answer->type = ASN_INTEGER;
+ *(Answer->val.integer) = (snint) f->bytes_written;
+ break;
+ case SYS_CONN_ADDR:
+ safe_inet_addr(f->ipaddr, &addr);
+ snint_return = (snint) addr.s_addr;
+ Answer->val_len = sizeof(snint);
+ Answer->val.integer = xmalloc(Answer->val_len);
+ Answer->type = SMI_IPADDRESS;
+ *(Answer->val.integer) = (snint) snint_return;
+ break;
+ case SYS_CONN_NAME:
+ Answer->type = ASN_OCTET_STR;
+ Answer->val_len = strlen(f->desc);
+ Answer->val.string = (u_char *) xstrdup(f->desc);
+ break;
+ default:
+ *ErrP = SNMP_ERR_NOSUCHNAME;
+ snmp_var_free(Answer);
+ return (NULL);
+ }
+ break; /* end SYSCONNTBL */
case SYSFDTBL:
num = Var->name[11];
debug(49, 9) ("snmp_sysFn: FD Table, num=%d\n", num);
f = &fd_table[cnt++];
if (!f->open)
continue;
- num--;
+ if (f->type!=FD_SOCKET)
+ num--;
}
if (num != 0 || !f) {
debug(49, 9) ("snmp_sysFn: no such name. %x\n", f);
Answer->type = ASN_INTEGER;
*(Answer->val.integer) = Var->name[11];
break;
+#if 0
case SYS_FD_TYPE:
Answer->val_len = sizeof(snint);
Answer->val.integer = xmalloc(Answer->val_len);
Answer->type = ASN_INTEGER;
*(Answer->val.integer) = f->type;
break;
+
case SYS_FD_TOUT:
Answer->val_len = sizeof(snint);
Answer->val.integer = xmalloc(Answer->val_len);
Answer->type = ASN_INTEGER;
*(Answer->val.integer) = (snint) (f->timeout_handler ? (f->timeout - squid_curtime) / 60 : 0);
break;
+#endif
case SYS_FD_NREAD:
Answer->val_len = sizeof(snint);
Answer->val.integer = xmalloc(Answer->val_len);
Answer->type = ASN_INTEGER;
*(Answer->val.integer) = (snint) f->bytes_written;
break;
- case SYS_FD_ADDR:
- if (f->type != FD_SOCKET)
- snint_return = (snint) 0;
- else {
- safe_inet_addr(f->ipaddr, &addr);
- snint_return = (snint) addr.s_addr;
- }
- Answer->val_len = sizeof(snint);
- Answer->val.integer = xmalloc(Answer->val_len);
- Answer->type = SMI_IPADDRESS;
- *(Answer->val.integer) = (snint) snint_return;
- break;
case SYS_FD_NAME:
Answer->type = ASN_OCTET_STR;
Answer->val_len = strlen(f->desc);
{
variable_list *Answer;
char *cp = NULL;
-
+ char *pp = NULL;
debug(49, 5) ("snmp_confFn: Processing request with magic %d!\n", Var->name[8]);
Answer = snmp_var_new(Var->name, Var->name_length);
Answer->type = SMI_TIMETICKS;
*(Answer->val.integer) = tvSubDsec(squid_start, current_time);
break;
+ case CONF_VERSION:
+ pp= "Squid";
+ Answer->type = ASN_OCTET_STR;
+ Answer->val_len = strlen(pp);
+ Answer->val.string = (u_char *) xstrdup(pp);
+ break;
+ case CONF_VERSION_ID:
+ pp = SQUID_VERSION;
+ Answer->type = ASN_OCTET_STR;
+ Answer->val_len = strlen(pp);
+ Answer->val.string = (u_char *) xstrdup(pp);
+ break;
case CONF_STORAGE:
switch (Var->name[9]) {
case CONF_ST_MMAXSZ:
return (NULL);
}
break;
- case CONF_WAIS_RHOST:
- if (Config.Wais.relayHost)
- cp = Config.Wais.relayHost;
- else
- cp = "None";
- Answer->type = ASN_OCTET_STR;
- Answer->val_len = strlen(cp);
- Answer->val.string = (u_char *) xstrdup(cp);
- break;
- case CONF_WAIS_RPORT:
- Answer->val_len = sizeof(snint);
- Answer->val.integer = xmalloc(Answer->val_len);
- Answer->type = ASN_INTEGER;
- *(Answer->val.integer) = (snint) Config.Wais.relayPort;
- break;
- case CONF_TIO:
- switch (Var->name[9]) {
- case CONF_TIO_RD:
- Answer->val_len = sizeof(snint);
- Answer->val.integer = xmalloc(Answer->val_len);
- Answer->type = ASN_INTEGER;
- *(Answer->val.integer) = (snint) Config.Timeout.read;
- break;
- case CONF_TIO_CON:
- Answer->val_len = sizeof(snint);
- Answer->val.integer = xmalloc(Answer->val_len);
- Answer->type = ASN_INTEGER;
- *(Answer->val.integer) = (snint) Config.Timeout.connect;
- break;
- case CONF_TIO_REQ:
- Answer->val_len = sizeof(snint);
- Answer->val.integer = xmalloc(Answer->val_len);
- Answer->type = ASN_INTEGER;
- *(Answer->val.integer) = (snint) Config.Timeout.request;
- break;
- default:
- *ErrP = SNMP_ERR_NOSUCHNAME;
- snmp_var_free(Answer);
- return (NULL);
- }
- break;
- case CONF_LOG_LVL:
+ case CONF_LOG_FAC:
if (!(cp = Config.debugOptions))
cp = "None";
Answer->type = ASN_OCTET_STR;
}
variable_list *
-snmp_confPtblFn(variable_list * Var, snint *ErrP)
+snmp_meshPtblFn(variable_list * Var, snint *ErrP)
{
variable_list *Answer;
+ struct in_addr *laddr;
char *cp = NULL;
peer *p = NULL;
- int cnt;
- debug(49, 5) ("snmp_confPtblFn: peer %d requested!\n", Var->name[11]);
+ int cnt=0;
+ debug(49, 5) ("snmp_meshPtblFn: peer %d requested!\n", Var->name[11]);
Answer = snmp_var_new(Var->name, Var->name_length);
*ErrP = SNMP_ERR_NOERROR;
+ laddr=oid2addr(&Var->name[11]);
+
+ for (p=Config.peers;p!=NULL;p=p->next,cnt++)
+ if (p->in_addr.sin_addr.s_addr == laddr->s_addr)
+ break;
+
+#if SNMP_OLD_INDEX
p = Config.peers;
cnt = Var->name[11];
- debug(49, 5) ("snmp_confPtblFn: we want .x.%d\n", Var->name[10]);
+ debug(49, 5) ("snmp_meshPtblFn: we want .x.%d\n", Var->name[10]);
while (--cnt)
if (!(p = p->next));
+#endif
if (p == NULL) {
*ErrP = SNMP_ERR_NOSUCHNAME;
snmp_var_free(Answer);
return (NULL);
}
switch (Var->name[10]) {
- case CONF_PTBL_ID:
- Answer->val_len = sizeof(snint);
- Answer->val.integer = xmalloc(Answer->val_len);
- Answer->type = ASN_INTEGER;
- *(Answer->val.integer) = (snint) Var->name[10];
- break;
- case CONF_PTBL_NAME:
+ case MESH_PTBL_NAME:
cp = p->host;
Answer->type = ASN_OCTET_STR;
Answer->val_len = strlen(cp);
Answer->val.string = (u_char *) xstrdup(cp);
break;
- case CONF_PTBL_IP:
+ case MESH_PTBL_IP:
Answer->type = SMI_IPADDRESS;
Answer->val_len = sizeof(snint);
Answer->val.integer = xmalloc(Answer->val_len);
*(Answer->val.integer) = (snint) (p->in_addr.sin_addr.s_addr);
break;
- case CONF_PTBL_HTTP:
+ case MESH_PTBL_HTTP:
Answer->val_len = sizeof(snint);
Answer->val.integer = xmalloc(Answer->val_len);
Answer->type = ASN_INTEGER;
*(Answer->val.integer) = (snint) p->http_port;
break;
- case CONF_PTBL_ICP:
+ case MESH_PTBL_ICP:
Answer->val_len = sizeof(snint);
Answer->val.integer = xmalloc(Answer->val_len);
Answer->type = ASN_INTEGER;
*(Answer->val.integer) = (snint) p->icp_port;
break;
- case CONF_PTBL_TYPE:
+ case MESH_PTBL_TYPE:
Answer->val_len = sizeof(snint);
Answer->val.integer = xmalloc(Answer->val_len);
Answer->type = ASN_INTEGER;
*(Answer->val.integer) = (snint) p->type;
break;
- case CONF_PTBL_STATE:
+ case MESH_PTBL_STATE:
Answer->val_len = sizeof(snint);
Answer->val.integer = xmalloc(Answer->val_len);
Answer->type = ASN_INTEGER;
*(Answer->val.integer) = (snint) neighborUp(p);
break;
+ case MESH_PTBL_SENT:
+ Answer->val_len = sizeof(snint);
+ Answer->val.integer = xmalloc(Answer->val_len);
+ Answer->type = SMI_COUNTER32;
+ *(Answer->val.integer) = p->stats.pings_sent;
+ break;
+ case MESH_PTBL_PACKED:
+ Answer->val_len = sizeof(snint);
+ Answer->val.integer = xmalloc(Answer->val_len);
+ Answer->type = SMI_COUNTER32;
+ *(Answer->val.integer) = p->stats.pings_acked;
+ break;
+ case MESH_PTBL_FETCHES:
+ Answer->val_len = sizeof(snint);
+ Answer->val.integer = xmalloc(Answer->val_len);
+ Answer->type = SMI_COUNTER32;
+ *(Answer->val.integer) = p->stats.fetches;
+ break;
+ case MESH_PTBL_RTT:
+ Answer->val_len = sizeof(snint);
+ Answer->val.integer = xmalloc(Answer->val_len);
+ Answer->type = ASN_INTEGER;
+ *(Answer->val.integer) = p->stats.rtt;
+ break;
+ case MESH_PTBL_IGN:
+ Answer->val_len = sizeof(snint);
+ Answer->val.integer = xmalloc(Answer->val_len);
+ Answer->type = SMI_COUNTER32;
+ *(Answer->val.integer) = p->stats.ignored_replies;
+ break;
+ case MESH_PTBL_KEEPAL_S:
+ Answer->val_len = sizeof(snint);
+ Answer->val.integer = xmalloc(Answer->val_len);
+ Answer->type = SMI_COUNTER32;
+ *(Answer->val.integer) = p->stats.n_keepalives_sent;
+ break;
+ case MESH_PTBL_KEEPAL_R:
+ Answer->val_len = sizeof(snint);
+ Answer->val.integer = xmalloc(Answer->val_len);
+ Answer->type = SMI_COUNTER32;
+ *(Answer->val.integer) = p->stats.n_keepalives_recv;
+ break;
+
default:
*ErrP = SNMP_ERR_NOSUCHNAME;
snmp_var_free(Answer);
return Answer;
}
-variable_list *
-snmp_prfPeerFn(variable_list * Var, snint *ErrP)
-{
- variable_list *Answer;
- peer *p = NULL;
- int cnt;
- debug(49, 5) ("snmp_prfPeerFn: Processing request with magic %d!\n", Var->name[9]);
-
- Answer = snmp_var_new(Var->name, Var->name_length);
- *ErrP = SNMP_ERR_NOERROR;
-
- p = Config.peers;
- cnt = Var->name[12];
- debug(49, 5) ("snmp_prfPeerFn: we want .%d.%d\n", Var->name[11], cnt);
- while (--cnt)
- if (!(p = p->next));
- if (p == NULL) {
- *ErrP = SNMP_ERR_NOSUCHNAME;
- snmp_var_free(Answer);
- return (NULL);
- }
- Answer->type = SMI_COUNTER32;
- Answer->val_len = sizeof(snint);
- Answer->val.integer = xmalloc(Answer->val_len);
-
- switch (Var->name[11]) {
- case PERF_PEERSTAT_ID:
- Answer->type = ASN_INTEGER;
- *(Answer->val.integer) = Var->name[11];
- break;
- case PERF_PEERSTAT_SENT:
- *(Answer->val.integer) = p->stats.pings_sent;
- break;
- case PERF_PEERSTAT_PACKED:
- *(Answer->val.integer) = p->stats.pings_acked;
- break;
- case PERF_PEERSTAT_FETCHES:
- *(Answer->val.integer) = p->stats.fetches;
- break;
- case PERF_PEERSTAT_RTT:
- Answer->type = ASN_INTEGER;
- *(Answer->val.integer) = p->stats.rtt;
- break;
- case PERF_PEERSTAT_IGN:
- *(Answer->val.integer) = p->stats.ignored_replies;
- break;
- case PERF_PEERSTAT_KEEPAL_S:
- *(Answer->val.integer) = p->stats.n_keepalives_sent;
- break;
- case PERF_PEERSTAT_KEEPAL_R:
- *(Answer->val.integer) = p->stats.n_keepalives_recv;
- break;
- default:
- *ErrP = SNMP_ERR_NOSUCHNAME;
- snmp_var_free(Answer);
- return (NULL);
- }
- return Answer;
-}
-
-
variable_list *
snmp_prfProtoFn(variable_list * Var, snint *ErrP)
{
return NULL;
}
+
+void
+addr2oid(struct in_addr addr, oid *Dest)
+{
+ u_char *cp;
+ cp=(u_char *)&(addr.s_addr);
+ Dest[0] = *cp++;
+ Dest[1] = *cp++;
+ Dest[2] = *cp++;
+ Dest[3] = *cp++;
+}
+
+struct in_addr *
+oid2addr(oid *id)
+{
+ static struct in_addr laddr;
+#if 0
+ static u_char buf[15];
+ snprintf(buf,15,"%d.%d.%d.%d", id[0],id[1],id[2],id[3]);
+ safe_inet_addr(buf, &laddr);
+ return &laddr;
+#endif
+ u_char *cp=(u_char *)&(laddr.s_addr);
+ cp[0]=id[0];
+ cp[1]=id[1];
+ cp[2]=id[2];
+ cp[3]=id[3];
+ return &laddr;
+}