]> git.ipfire.org Git - thirdparty/squid.git/blob - include/cache_snmp.h
mib descriptions corrected
[thirdparty/squid.git] / include / cache_snmp.h
1 #ifdef SQUID_SNMP
2 #ifndef CACHE_SNMP_H
3 #define CACHE_SNMP_H
4
5 #if SIZEOF_LONG == 8
6 #define snint int
7 #else
8 #define snint long
9 #endif
10
11 #ifndef MIN
12 #define MIN(a,b) (a<b?a:b)
13 #endif
14
15 #include "snmp.h"
16 #include "snmp_impl.h"
17 #include "asn1.h"
18 #include "snmp_api.h"
19 #if 0
20 #include "snmp_client.h"
21 #include "mib.h"
22 #endif
23 #include "snmp_vars.h"
24 #include "snmp_oidlist.h"
25
26 /* mib stuff here */
27
28 #ifndef CURRENT_MIB_VERSION
29 #define CURRENT_MIB_VERSION "-- v 1.14 1998/04/03 kostas@nlanr.net"
30 #endif
31
32 /* MIB definitions
33 * We start from the SQUIDMIB as the root of the subtree
34 *
35 * we are under : iso.org.dod.internet.experimental.nsfnet.squid
36 * 1 3 6 1 3 25 17
37 */
38
39 #define SQUIDMIB 1, 3, 6, 1, 3, 25, 17 /* length is 7 */
40 #define LEN_SQUIDMIB 7
41
42 #define SYSMIB 1, 3, 6, 1, 2, 1, 1 /* basic system vars */
43 #define LEN_SYSMIB 7
44
45 /* basic groups under .squid */
46
47 #define SQ_SYS SQUIDMIB, 1 /* length is 8 */
48 #define LEN_SQ_SYS LEN_SQUIDMIB+1
49 #define SQ_CONF SQUIDMIB, 2
50 #define LEN_SQ_CONF LEN_SQUIDMIB+1
51 #define SQ_PRF SQUIDMIB, 3
52 #define LEN_SQ_PRF LEN_SQUIDMIB+1
53 #define SQ_NET SQUIDMIB, 4
54 #define LEN_SQ_NET LEN_SQUIDMIB+1
55 #define SQ_MESH SQUIDMIB, 5
56 #define LEN_SQ_MESH LEN_SQUIDMIB+1
57 #define SQ_ACC SQUIDMIB, 6
58 #define LEN_SQ_ACC LEN_SQUIDMIB+1
59
60 enum { /* basic system mib info group */
61 SYSMIB_START,
62 VERSION_DESCR,
63 VERSION_ID,
64 UPTIME,
65 SYSCONTACT,
66 SYSYSNAME,
67 SYSLOCATION,
68 SYSSERVICES,
69 SYSORLASTCHANGE,
70 SYSMIB_END
71 };
72
73 /* cacheSystem group */
74
75 enum {
76 SYS_START,
77 SYSVMSIZ,
78 SYSSTOR,
79 SYSCONNTBL,
80 SYSFDTBL,
81 SYS_END
82 };
83
84 /* cacheConfig group */
85
86 enum {
87 CONF_START,
88 CONF_ADMIN,
89 CONF_VERSION,
90 CONF_VERSION_ID,
91 CONF_UPTIME,
92 CONF_LOG_FAC,
93 CONF_STORAGE,
94 CONF_END
95 };
96
97 enum {
98 CONF_ST_START,
99 CONF_ST_MMAXSZ,
100 CONF_ST_MHIWM,
101 CONF_ST_MLOWM,
102 CONF_ST_SWMAXSZ,
103 CONF_ST_SWHIWM,
104 CONF_ST_SWLOWM,
105 CONF_ST_END
106 };
107
108 /* cacheMesh group */
109
110 enum {
111 MESH_START,
112 MESH_PTBL,
113 MESH_CTBL,
114 MESH_END
115 };
116
117 enum { /* cachePeerTable */
118 MESH_PTBL_START,
119 MESH_PTBL_NAME,
120 MESH_PTBL_IP,
121 MESH_PTBL_HTTP,
122 MESH_PTBL_ICP,
123 MESH_PTBL_TYPE,
124 MESH_PTBL_STATE,
125 MESH_PTBL_SENT,
126 MESH_PTBL_PACKED,
127 MESH_PTBL_FETCHES,
128 MESH_PTBL_RTT,
129 MESH_PTBL_IGN,
130 MESH_PTBL_KEEPAL_S,
131 MESH_PTBL_KEEPAL_R,
132 MESH_PTBL_END
133 };
134
135 enum { /* cacheClientTable */
136 MESH_CTBL_START,
137 MESH_CTBL_ADDR,
138 MESH_CTBL_HTREQ,
139 MESH_CTBL_HTBYTES,
140 MESH_CTBL_HTHITS,
141 MESH_CTBL_HTHITBYTES,
142 MESH_CTBL_ICPREQ,
143 MESH_CTBL_ICPBYTES,
144 MESH_CTBL_ICPHITS,
145 MESH_CTBL_ICPHITBYTES,
146 MESH_CTBL_END
147 };
148
149 /* cacheNetwork group */
150
151 enum {
152 NETDB_START,
153 NETDB_NET,
154 NETDB_PING_S,
155 NETDB_PING_R,
156 NETDB_HOPS,
157 NETDB_RTT,
158 NETDB_PINGTIME,
159 NETDB_LASTUSE,
160 NETDB_END
161 };
162
163 enum {
164 NET_IPC_START,
165 NET_IPC_ID,
166 NET_IPC_NAME,
167 NET_IPC_IP,
168 NET_IPC_STATE,
169 NET_IPC_END
170 };
171
172 enum {
173 NET_DNS_START,
174 NET_DNS_IPCACHE,
175 NET_DNS_FQDNCACHE,
176 NET_DNS_END
177 };
178
179
180 enum {
181 NET_FQDN_START,
182 NET_FQDN_ID,
183 NET_FQDN_NAME,
184 NET_FQDN_IP,
185 NET_FQDN_LASTREF,
186 NET_FQDN_EXPIRES,
187 NET_FQDN_STATE,
188 NET_FQDN_END
189 };
190
191 enum {
192 NET_START,
193 NET_NETDBTBL,
194 NET_DNS,
195 NET_NETSTAT,
196 NET_END
197 };
198
199 enum {
200 NETSTAT_START,
201 NETSTAT_TCPCONNS,
202 NETSTAT_UDPCONNS,
203 NETSTAT_INTHRPUT,
204 NETSTAT_OUTHRPUT
205 };
206
207 enum {
208 PERF_START,
209 PERF_SYS,
210 PERF_PROTO,
211 PERF_PEER,
212 PERF_END
213 };
214
215 enum {
216 PERF_SYS_START,
217 PERF_SYS_PF,
218 PERF_SYS_NUMR,
219 PERF_SYS_DEFR,
220 PERF_SYS_MEMUSAGE,
221 PERF_SYS_CPUUSAGE,
222 PERF_SYS_MAXRESSZ,
223 PERF_SYS_NUMOBJCNT,
224 PERF_SYS_CURLRUEXP,
225 PERF_SYS_CURUNLREQ,
226 PERF_SYS_CURUNUSED_FD,
227 PERF_SYS_CURRESERVED_FD,
228 PERF_SYS_END
229 };
230
231 enum {
232 PERF_PROTOSTAT_START,
233 PERF_PROTOSTAT_AGGR,
234 PERF_PROTOSTAT_MEDIAN,
235 PERF_PROTOSTAT_END
236 };
237
238 enum {
239 PERF_PROTOSTAT_AGGR_START,
240 PERF_PROTOSTAT_AGGR_HTTP_REQ,
241 PERF_PROTOSTAT_AGGR_HTTP_HITS,
242 PERF_PROTOSTAT_AGGR_HTTP_ERRORS,
243 PERF_PROTOSTAT_AGGR_HTTP_KBYTES_IN,
244 PERF_PROTOSTAT_AGGR_HTTP_KBYTES_OUT,
245 PERF_PROTOSTAT_AGGR_ICP_S,
246 PERF_PROTOSTAT_AGGR_ICP_R,
247 PERF_PROTOSTAT_AGGR_ICP_SKB,
248 PERF_PROTOSTAT_AGGR_ICP_RKB,
249 PERF_PROTOSTAT_AGGR_REQ,
250 PERF_PROTOSTAT_AGGR_ERRORS,
251 PERF_PROTOSTAT_AGGR_KBYTES_IN,
252 PERF_PROTOSTAT_AGGR_KBYTES_OUT,
253 PERF_PROTOSTAT_AGGR_CURSWAP,
254 PERF_PROTOSTAT_AGGR_END
255 };
256
257 enum {
258 PERF_MEDIAN_START,
259 PERF_MEDIAN_TIME,
260 PERF_MEDIAN_HTTP_ALL,
261 PERF_MEDIAN_HTTP_MISS,
262 PERF_MEDIAN_HTTP_NM,
263 PERF_MEDIAN_HTTP_HIT,
264 PERF_MEDIAN_ICP_QUERY,
265 PERF_MEDIAN_ICP_REPLY,
266 PERF_MEDIAN_DNS,
267 PERF_MEDIAN_END
268 };
269
270 enum {
271 SYS_FD_START,
272 SYS_FD_NUMBER,
273 SYS_FD_NREAD,
274 SYS_FD_NWRITE,
275 SYS_FD_NAME,
276 SYS_FD_END
277 };
278
279 enum {
280 SYS_CONN_START,
281 SYS_CONN_FDNUM,
282 SYS_CONN_READ,
283 SYS_CONN_WRITE,
284 SYS_CONN_ADDR,
285 SYS_CONN_NAME,
286 SYS_CONN_PORT,
287 SYS_CONN_END
288 };
289
290 /* First, we have a huge array of MIBs this agent knows about */
291
292 struct MIBListEntry {
293 oid Name[9]; /* Change as appropriate */
294 snint NameLen;
295 oid_GetFn *GetFn;
296 oid_GetNextFn *GetNextFn;
297 };
298
299 variable_list *snmp_basicFn(variable_list *, snint *);
300 variable_list *snmp_meshPtblFn(variable_list *, snint *);
301 variable_list *snmp_meshCtblFn(variable_list *, snint *);
302 variable_list *snmp_confFn(variable_list *, snint *);
303 variable_list *snmp_sysFn(variable_list *, snint *);
304 variable_list *snmp_prfSysFn(variable_list *, snint *);
305 variable_list *snmp_prfProtoFn(variable_list *, snint *);
306 variable_list *snmp_prfPeerFn(variable_list *, snint *);
307 variable_list *snmp_netdbFn(variable_list *, snint *);
308 variable_list *snmp_dnsFn(variable_list *, snint *);
309 variable_list *snmp_ipcacheFn(variable_list *, snint *);
310 variable_list *snmp_fqdncacheFn(variable_list *, snint *);
311
312 extern int snmpInitAgentAuth();
313 extern void snmpAgentParse(void *);
314 extern int snmpDefaultAuth();
315 extern int get_median_svc(int, int);
316 extern void snmpAgentParseDone(int, void *);
317 extern int meshCtblGetRowFn(oid *, oid *);
318 extern int netdbGetRowFn(oid *, oid *);
319 extern int fqdn_getMax();
320 extern int ipcache_getMax();
321 extern struct snmp_pdu *snmpAgentResponse(struct snmp_pdu *PDU);
322 extern void snmpAclCheckStart(void *);
323 extern struct snmp_session *Session;
324 extern oid_ParseFn *genericGetNextFn(oid * Src, snint SrcLen, oid ** Dest, snint * DestLen,
325 oid * MIBRoot, int MIBRootLen, oid_GetRowFn * getRowFn, int tblen, oid * MIBTail,
326 oid_ParseFn * mygetFn, int MIBTailLen, int MIB_ACTION_INDEX);
327
328 extern int oidcmp(oid * A, snint ALen, oid * B, snint BLen);
329 extern int oidncmp(oid * A, snint ALen, oid * B, snint BLen, snint CompLen);
330 extern oid *oiddup(oid * A, snint ALen);
331
332
333 /* group handler definition */
334
335 extern oid_ParseFn *basicGetFn(oid *, snint);
336 extern oid_ParseFn *basicGetNextFn(oid *, snint, oid **, snint *);
337 extern oid_ParseFn *sysGetFn(oid *, snint);
338 extern oid_ParseFn *sysGetNextFn(oid *, snint, oid **, snint *);
339 extern oid_ParseFn *sysFdGetFn(oid *, snint);
340 extern oid_ParseFn *sysFdGetNextFn(oid *, snint, oid **, snint *);
341 extern oid_ParseFn *sysConnGetFn(oid *, snint);
342 extern oid_ParseFn *sysConnGetNextFn(oid *, snint, oid **, snint *);
343 extern oid_ParseFn *confGetFn(oid *, snint);
344 extern oid_ParseFn *confGetNextFn(oid *, snint, oid **, snint *);
345 extern oid_ParseFn *confStGetNextFn(oid *, snint, oid **, snint *);
346 extern oid_ParseFn *prfSysGetFn(oid *, snint);
347 extern oid_ParseFn *prfSysGetFn(oid *, snint);
348 extern oid_ParseFn *prfSysGetNextFn(oid *, snint, oid **, snint *);
349 extern oid_ParseFn *prfProtoGetFn(oid *, snint);
350 extern oid_ParseFn *prfProtoGetNextFn(oid *, snint, oid **, snint *);
351 extern oid_ParseFn *netdbGetFn(oid *, snint);
352 extern oid_ParseFn *netdbGetNextFn(oid *, snint, oid **, snint *);
353 extern oid_ParseFn *dnsGetFn(oid *, snint);
354 extern oid_ParseFn *dnsGetNextFn(oid *, snint, oid **, snint *);
355 extern oid_ParseFn *meshGetFn(oid *, snint);
356 extern oid_ParseFn *meshPtblGetNextFn(oid *, snint, oid **, snint *);
357 extern int meshPtblGetRowFn(oid *, oid *);
358 extern int sysConnGetRowFn(oid *, oid *);
359 extern int meshCtblGetRowFn(oid *, oid *);
360 extern int netdbGetRowFn(oid *, oid *);
361 oid_ParseFn *meshCtblGetNextFn(oid *, snint, oid **, snint *);
362
363 extern int fqdn_getMax();
364 extern int ipcache_getMax();
365 extern int fd_getMax();
366 extern struct in_addr *gen_getMax();
367
368 #endif
369 #endif