1 /* 2 * Copyright (C) 1996-2021 The Squid Software Foundation and contributors 3 * 4 * Squid software is distributed under GPLv2+ license and includes 5 * contributions from numerous individuals and organizations. 6 * Please see the COPYING and CONTRIBUTORS files for details. 7 */ 8 9 #ifndef SQUID_CACHE_SNMP_H 10 #define SQUID_CACHE_SNMP_H 11 12 #if SQUID_SNMP 13 14 typedef int64_t snint; 15 16 #ifndef MIN 17 #define MIN(a,b) (a<b?a:b) 18 #endif 19 20 #include "snmp.h" 21 #include "snmp_api.h" 22 #include "snmp_impl.h" 23 24 /* MIB definitions 25 * SQUID-MIB 26 * .iso.org.dod.internet.private.enterprises.nlanr.squid 27 * 1 3 6 1 4 1 3495 1 28 * 29 * PROXY-MIB 30 * .iso.org.dod.internet.experimental.nsfnet.proxy 31 * 1 3 6 1 3 25 17 32 */ 33 34 #define SQUIDMIB 1, 3, 6, 1, 4, 1, 3495, 1 35 #define LEN_SQUIDMIB 8 36 #define INSTANCE 0 37 #define TIME_INDEX 1, 5, 60 38 #define TIME_INDEX_LEN 3 39 40 /* basic groups under .squid */ 41 42 #define SQ_SYS SQUIDMIB, 1 /* cacheSystem group { squid 1 } */ 43 #define LEN_SQ_SYS LEN_SQUIDMIB+1 44 #define SQ_CONF SQUIDMIB, 2 /* cacheConfig group { squid 2 } */ 45 #define LEN_SQ_CONF LEN_SQUIDMIB+1 46 #define SQ_PRF SQUIDMIB, 3 /* cachePerformance group { squid 3 } */ 47 #define LEN_SQ_PRF LEN_SQUIDMIB+1 48 #define SQ_NET SQUIDMIB, 4 /* cacheNetwork group { squid 4 } */ 49 #define LEN_SQ_NET LEN_SQUIDMIB+1 50 #define SQ_MESH SQUIDMIB, 5 /* cacheMesh group { squid 5 } */ 51 #define LEN_SQ_MESH LEN_SQUIDMIB+1 52 53 /** 54 * cacheSystem group { squid 1 } 55 */ 56 enum { 57 SYS_START = 0, 58 SYSVMSIZ = 1, /**< cacheSysVMsize */ 59 SYSSTOR = 2, /**< cacheSysStorage */ 60 SYS_UPTIME = 3, /**< cacheUptime */ 61 SYS_END 62 }; 63 64 #define LEN_SYS LEN_SQ_SYS + 1 65 #define LEN_SYS_INST LEN_SQ_SYS + 2 66 67 /** 68 * cacheConfig group { squid 2 } 69 */ 70 enum { 71 CONF_START = 0, 72 CONF_ADMIN = 1, /**< cacheAdmin */ 73 CONF_VERSION = 2, /**< cacheSoftware */ 74 CONF_VERSION_ID = 3, /**< cacheVersionId */ 75 CONF_LOG_FAC = 4, /**< cacheLoggingFacility */ 76 CONF_STORAGE = 5, /**< cacheStorageConfig group */ 77 CONF_UNIQNAME = 6, /**< cacheUniqName */ 78 CONF_END 79 }; 80 81 #define LEN_CONF LEN_SQ_CONF + 1 82 #define LEN_CONF_INST LEN_SQ_CONF + 2 83 84 /** 85 * cacheStorageConfig group { cacheConfig 5 } 86 */ 87 enum { 88 CONF_ST_START = 0, 89 CONF_ST_MMAXSZ = 1, /* cacheMemMaxSize */ 90 CONF_ST_SWMAXSZ = 2, /* cacheSwapMaxSize */ 91 CONF_ST_SWHIWM = 3, /* cacheSwapHighWM */ 92 CONF_ST_SWLOWM = 4, /* cacheSwapLowWM */ 93 CONF_ST_END 94 }; 95 96 #define LEN_CONF_ST LEN_CONF + 1 97 #define LEN_CONF_ST_INST LEN_CONF + 2 98 99 /* 100 * Cache Performance Group {squid 3} 101 */ 102 103 enum { 104 PERF_START = 0, 105 PERF_SYS = 1, /* cacheSysPerf */ 106 PERF_PROTO = 2, /* cacheProtoStats */ 107 PERF_END 108 }; 109 110 /* cacheSysPerf */ 111 enum { 112 PERF_SYS_START = 0, 113 PERF_SYS_PF = 1, /* cacheSysPageFaults */ 114 PERF_SYS_NUMR = 2, /* cacheSysNumReads */ 115 PERF_SYS_MEMUSAGE = 3, /* cacheMemUsage */ 116 PERF_SYS_CPUTIME = 4, /* cacheCpuTime */ 117 PERF_SYS_CPUUSAGE = 5, /* cacheCpuUsage */ 118 PERF_SYS_MAXRESSZ = 6, /* cacheMaxResSize */ 119 PERF_SYS_NUMOBJCNT = 7, /* cacheNumObjCount */ 120 PERF_SYS_CURLRUEXP = 8, /* cacheCurrentLRUExpiration */ 121 PERF_SYS_CURUNLREQ = 9, /* cacheCurrentUnlinkRequests */ 122 PERF_SYS_CURUNUSED_FD = 10, /* cacheCurrentUnusedFDescrCnt */ 123 PERF_SYS_CURRESERVED_FD = 11, /* cacheCurrentResFileDescrCnt */ 124 PERF_SYS_CURUSED_FD = 12, /* cacheCurrentFileDescrCnt */ 125 PERF_SYS_CURMAX_FD = 13, /* cacheCurrentFileDescrMax */ 126 PERF_SYS_END 127 }; 128 129 /* cacheProtoStats */ 130 enum { 131 PERF_PROTOSTAT_START, 132 PERF_PROTOSTAT_AGGR = 1, /* cacheProtoAggregateStats */ 133 PERF_PROTOSTAT_MEDIAN = 2, /* cacheMedianSvcTable */ 134 PERF_PROTOSTAT_END 135 }; 136 137 /* cacheProtoAggregateStats */ 138 enum { 139 PERF_PROTOSTAT_AGGR_START = 0, 140 PERF_PROTOSTAT_AGGR_HTTP_REQ = 1, /* cacheProtoClientHttpRequests */ 141 PERF_PROTOSTAT_AGGR_HTTP_HITS = 2, /* cacheHttpHits */ 142 PERF_PROTOSTAT_AGGR_HTTP_ERRORS = 3, /* cacheHttpErrors */ 143 PERF_PROTOSTAT_AGGR_HTTP_KBYTES_IN = 4, /* cacheHttpInKb */ 144 PERF_PROTOSTAT_AGGR_HTTP_KBYTES_OUT = 5, /* cacheHttpOutKb */ 145 PERF_PROTOSTAT_AGGR_ICP_S = 6, /* cacheIcpPktsSent */ 146 PERF_PROTOSTAT_AGGR_ICP_R = 7, /* cacheIcpPktsRecv */ 147 PERF_PROTOSTAT_AGGR_ICP_SKB = 8, /* cacheIcpKbSent */ 148 PERF_PROTOSTAT_AGGR_ICP_RKB = 9, /* cacheIcpKbRecv */ 149 PERF_PROTOSTAT_AGGR_REQ = 10, /* cacheServerRequests */ 150 PERF_PROTOSTAT_AGGR_ERRORS = 11, /* cacheServerErrors */ 151 PERF_PROTOSTAT_AGGR_KBYTES_IN = 12, /* cacheServerInKb */ 152 PERF_PROTOSTAT_AGGR_KBYTES_OUT = 13, /* cacheServerOutKb */ 153 PERF_PROTOSTAT_AGGR_CURSWAP = 14, /* cacheCurrentSwapSize */ 154 PERF_PROTOSTAT_AGGR_CLIENTS = 15, /* cacheClients */ 155 PERF_PROTOSTAT_AGGR_END 156 }; 157 158 /* cacheMedianSvcEntry */ 159 enum { 160 PERF_MEDIAN_START = 0, 161 PERF_MEDIAN_TIME = 1, /* cacheMedianTime */ 162 PERF_MEDIAN_HTTP_ALL = 2, /* cacheHttpAllSvcTime */ 163 PERF_MEDIAN_HTTP_MISS = 3, /* cacheHttpMissSvcTime */ 164 PERF_MEDIAN_HTTP_NM = 4, /* cacheHttpNmSvcTime */ 165 PERF_MEDIAN_HTTP_HIT = 5, /* cacheHttpHitSvcTime */ 166 PERF_MEDIAN_ICP_QUERY = 6, /* cacheIcpQuerySvcTime */ 167 PERF_MEDIAN_ICP_REPLY = 7, /* cacheIcpReplySvcTime */ 168 PERF_MEDIAN_DNS = 8, /* cacheDnsSvcTime */ 169 PERF_MEDIAN_RHR = 9, /* cacheRequestHitRatio */ 170 PERF_MEDIAN_BHR = 10, /* cacheRequestByteRatio */ 171 PERF_MEDIAN_HTTP_NH = 11, /* cacheHttpNhSvcTime */ 172 PERF_MEDIAN_END 173 }; 174 175 /* 176 * cacheNetwork group { squid 4 } 177 */ 178 enum { 179 NET_START = 0, 180 NET_IP_CACHE = 1, /* cacheIpCache */ 181 NET_FQDN_CACHE = 2, /* cacheFqdnCache */ 182 NET_DNS_CACHE = 3, /* cacheDns */ 183 NET_END 184 }; 185 186 /* cacheIpCache */ 187 enum { 188 IP_START = 0, 189 IP_ENT = 1, /* cacheIpEntrie */ 190 IP_REQ = 2, /* cacheIpRequests */ 191 IP_HITS = 3, /* acheIpHits */ 192 IP_PENDHIT = 4, /* cacheIpPendingHits */ 193 IP_NEGHIT = 5, /* cacheIpNegativeHit */ 194 IP_MISS = 6, /* cacheIpMisses */ 195 IP_GHBN = 7, /* cacheBlockingGetHostByName */ 196 IP_LOC = 8, /* cacheAttemptReleaseLckEntries */ 197 IP_END 198 }; 199 200 /* cacheFqdnCache */ 201 enum { 202 FQDN_START = 0, 203 FQDN_ENT = 1, /* cacheFqdnEntries */ 204 FQDN_REQ = 2, /* cacheFqdnRequests */ 205 FQDN_HITS = 3, /* cacheFqdnHits */ 206 FQDN_PENDHIT = 4, /* cacheFqdnPendingHits */ 207 FQDN_NEGHIT = 5, /* cacheFqdnNegativeHits */ 208 FQDN_MISS = 6, /* cacheFqdnMisses */ 209 FQDN_GHBN = 7, /* cacheBlockingGetHostByAddr */ 210 FQDN_END 211 }; 212 213 /* cacheDNS */ 214 enum { 215 DNS_START = 0, 216 DNS_REQ = 1, /* cacheDnsRequests */ 217 DNS_REP = 2, /* cacheDnsReplies */ 218 DNS_SERVERS = 3, /* cacheDnsNumberServers */ 219 DNS_END 220 }; 221 222 /* 223 * cacheMesh group { squid 5 } 224 */ 225 226 enum { 227 MESH_START = 0, 228 MESH_PTBL = 1, /* cachePeerTable */ 229 MESH_CTBL = 2, /* cacheClientTable */ 230 MESH_END 231 }; 232 233 /* CachePeerTableEntry (version 3) */ 234 enum { 235 MESH_PTBL_START = 0, 236 MESH_PTBL_INDEX = 1, /* cachePeerIndex */ 237 MESH_PTBL_NAME = 2, /* cachePeerName */ 238 MESH_PTBL_ADDR_TYPE = 3, /* cachePeerAddressType */ 239 MESH_PTBL_ADDR = 4, /* cachePeerAddress */ 240 MESH_PTBL_HTTP = 5, /* cachePortHttp */ 241 MESH_PTBL_ICP = 6, /* cachePeerPortIcp */ 242 MESH_PTBL_TYPE = 7, /* cachePeerType */ 243 MESH_PTBL_STATE = 8, /* cachePeerStat */ 244 MESH_PTBL_SENT = 9, /* cachePeerPingsSent */ 245 MESH_PTBL_PACKED = 10, /* cachePeerPingsAcked */ 246 MESH_PTBL_FETCHES = 11, /* cachePeerFetches */ 247 MESH_PTBL_RTT = 12, /* cachePeerRtt */ 248 MESH_PTBL_IGN = 13, /* cachePeerIgnored */ 249 MESH_PTBL_KEEPAL_S = 14, /* cachePeerKeepAlSent */ 250 MESH_PTBL_KEEPAL_R = 15, /* cachePeerKeepAlRecv */ 251 MESH_PTBL_END 252 }; 253 254 /* cacheClientEntry */ 255 enum { 256 MESH_CTBL_START = 0, 257 MESH_CTBL_ADDR_TYPE = 1, /* cacheClientAddressType */ 258 MESH_CTBL_ADDR = 2, /* cacheClientAddress */ 259 MESH_CTBL_HTREQ = 3, /* cacheClientHttpRequests */ 260 MESH_CTBL_HTBYTES = 4, /* cacheClientHttpKb */ 261 MESH_CTBL_HTHITS = 5, /* cacheClientHttpHits */ 262 MESH_CTBL_HTHITBYTES = 6, /* cacheClientHTTPHitKb */ 263 MESH_CTBL_ICPREQ = 7, /* cacheClientIcpRequests */ 264 MESH_CTBL_ICPBYTES = 8, /* cacheClientIcpKb */ 265 MESH_CTBL_ICPHITS = 9, /* cacheClientIcpHits */ 266 MESH_CTBL_ICPHITBYTES = 10, /* cacheClientIcpHitKb */ 267 MESH_CTBL_END 268 }; 269 270 #endif /* SQUID_SNMP */ 271 272 #endif /* SQUID_CACHE_SNMP_H */ 273 274