]> git.ipfire.org Git - thirdparty/squid.git/blob - include/cache_snmp.h
*** empty log message ***
[thirdparty/squid.git] / include / cache_snmp.h
1 #ifdef SQUID_SNMP
2 #ifndef CACHE_SNMP_H
3 #define CACHE_SNMP_H
4
5 #include "snmp.h"
6 #include "snmp_impl.h"
7 #include "asn1.h"
8 #include "snmp_api.h"
9 #include "snmp_client.h"
10 #include "snmp_vars.h"
11 #include "snmp_oidlist.h"
12 #include "mib.h"
13
14 /* debugging redirected to squid (DW approach) */
15
16 #ifdef __STDC__
17 void (*snmplib_debug) (int,...);
18 #else
19 void (*snmplib_debug) (va_alist));
20 #endif
21
22 /* mib stuff here */
23
24 /* MIB definitions
25 * We start from the SQUIDMIB as the root of the subtree
26 *
27 * we are under : iso.org.dod.internet.experimental.nsfnet.squid
28 * 1 3 6 1 3 25 17
29 */
30
31 #define SQUIDMIB 1, 3, 6, 1, 3, 25, 17 /* length is 7 */
32 #define LEN_SQUIDMIB 7
33
34 #define SYSMIB 1, 3, 6, 1, 2, 1, 1 /* basic system vars */
35 #define LEN_SYSMIB 7
36
37 /* basic groups under .squid */
38
39 #define SQ_SYS SQUIDMIB, 1 /* length is 8 */
40 #define LEN_SQ_SYS LEN_SQUIDMIB+1
41 #define SQ_CONF SQUIDMIB, 2
42 #define LEN_SQ_CONF LEN_SQUIDMIB+1
43 #define SQ_PRF SQUIDMIB, 3
44 #define LEN_SQ_PRF LEN_SQUIDMIB+1
45 #define SQ_NET SQUIDMIB, 4
46 #define LEN_SQ_NET LEN_SQUIDMIB+1
47 #define SQ_SEC SQUIDMIB, 5
48 #define LEN_SQ_SEC LEN_SQUIDMIB+1
49 #define SQ_ACC SQUIDMIB, 6
50 #define LEN_SQ_ACC LEN_SQUIDMIB+1
51
52 enum { /* basic system mib info group */
53 SYSMIB_START,
54 VERSION_DESCR,
55 VERSION_ID,
56 UPTIME,
57 SYSCONTACT,
58 SYSYSNAME,
59 SYSLOCATION,
60 SYSSERVICES,
61 SYSORLASTCHANGE,
62 SYSMIB_END
63 };
64
65 /* cacheSystem group */
66
67 enum {
68 SYS_START,
69 SYSVMSIZ,
70 SYSSTOR,
71 SYSFDTBL,
72 SYS_END
73 };
74
75 /* cacheConfig group */
76
77 enum {
78 CONF_START,
79 CONF_ADMIN,
80 CONF_UPTIME,
81 CONF_WAIS_RHOST,
82 CONF_WAIS_RPORT,
83 CONF_LOG_LVL,
84 CONF_PTBL,
85 CONF_STORAGE,
86 CONF_TIO,
87 CONF_END
88 };
89
90 enum {
91 CONF_ST_START,
92 CONF_ST_MMAXSZ,
93 CONF_ST_MHIWM,
94 CONF_ST_MLOWM,
95 CONF_ST_SWMAXSZ,
96 CONF_ST_SWHIWM,
97 CONF_ST_SWLOWM,
98 CONF_ST_END
99 };
100
101 enum {
102 CONF_TIO_START,
103 CONF_TIO_RD,
104 CONF_TIO_CON,
105 CONF_TIO_REQ,
106 CONF_TIO_END
107 };
108
109 enum {
110 CONF_PTBL_START,
111 CONF_PTBL_ID,
112 CONF_PTBL_NAME,
113 CONF_PTBL_IP,
114 CONF_PTBL_HTTP,
115 CONF_PTBL_ICP,
116 CONF_PTBL_TYPE,
117 CONF_PTBL_STATE,
118 CONF_PTBL_END
119 };
120
121 /* cacheNetwork group */
122
123 enum {
124 NETDB_START,
125 NETDB_ID,
126 NETDB_NET,
127 NETDB_PING_S,
128 NETDB_PING_R,
129 NETDB_HOPS,
130 NETDB_RTT,
131 NETDB_PINGTIME,
132 NETDB_LASTUSE,
133 NETDB_END
134 };
135
136 enum {
137 NET_IPC_START,
138 NET_IPC_ID,
139 NET_IPC_NAME,
140 NET_IPC_IP,
141 NET_IPC_STATE,
142 NET_IPC_END
143 };
144
145 enum {
146 NET_DNS_START,
147 NET_DNS_IPCACHE,
148 NET_DNS_FQDNCACHE,
149 NET_DNS_END
150 };
151
152
153 enum {
154 NET_FQDN_START,
155 NET_FQDN_ID,
156 NET_FQDN_NAME,
157 NET_FQDN_IP,
158 NET_FQDN_LASTREF,
159 NET_FQDN_EXPIRES,
160 NET_FQDN_STATE,
161 NET_FQDN_END
162 };
163
164 enum {
165 NET_START,
166 NET_NETDBTBL,
167 NET_DNS,
168 NET_NETSTAT,
169 NET_END
170 };
171
172 enum {
173 NETSTAT_START,
174 NETSTAT_TCPCONNS,
175 NETSTAT_UDPCONNS,
176 NETSTAT_INTHRPUT,
177 NETSTAT_OUTHRPUT
178 };
179
180 enum {
181 PERF_START,
182 PERF_SYS,
183 PERF_PROTO,
184 PERF_PEER,
185 PERF_END
186 };
187
188 enum {
189 PERF_SYS_START,
190 PERF_SYS_PF,
191 PERF_SYS_NUMR,
192 PERF_SYS_DEFR,
193 PERF_SYS_MEMUSAGE,
194 PERF_SYS_CPUUSAGE,
195 PERF_SYS_MAXRESSZ,
196 PERF_SYS_NUMOBJCNT,
197 PERF_SYS_CURLRUEXP,
198 PERF_SYS_CURUNLREQ,
199 PERF_SYS_CURUNUSED_FD,
200 PERF_SYS_CURRESERVED_FD,
201 PERF_SYS_END
202 };
203
204 enum {
205 PERF_PROTOSTAT_START,
206 PERF_PROTOSTAT_AGGR,
207 PERF_PROTOSTAT_END
208 };
209
210 enum {
211 PERF_PROTOSTAT_AGGR_START,
212 PERF_PROTOSTAT_AGGR_HTTP_REQ,
213 PERF_PROTOSTAT_AGGR_HTTP_HITS,
214 PERF_PROTOSTAT_AGGR_HTTP_ERRORS,
215 PERF_PROTOSTAT_AGGR_ICP_S,
216 PERF_PROTOSTAT_AGGR_ICP_R,
217 PERF_PROTOSTAT_AGGR_ICP_SKB,
218 PERF_PROTOSTAT_AGGR_ICP_RKB,
219 PERF_PROTOSTAT_AGGR_KBYTES_IN,
220 PERF_PROTOSTAT_AGGR_KBYTES_OUT,
221 PERF_PROTOSTAT_AGGR_CURSWAP,
222 PERF_PROTOSTAT_AGGR_HTTP_SVC_5,
223 PERF_PROTOSTAT_AGGR_HTTP_SVC_60,
224 PERF_PROTOSTAT_AGGR_ICP_SVC_5,
225 PERF_PROTOSTAT_AGGR_ICP_SVC_60,
226 PERF_PROTOSTAT_AGGR_DNS_SVC_5,
227 PERF_PROTOSTAT_AGGR_DNS_SVC_60,
228 PERF_PROTOSTAT_AGGR_END
229 };
230
231 enum {
232 SYS_FD_START,
233 SYS_FD_NUMBER,
234 SYS_FD_TYPE,
235 SYS_FD_TOUT,
236 SYS_FD_NREAD,
237 SYS_FD_NWRITE,
238 SYS_FD_ADDR,
239 SYS_FD_NAME,
240 SYS_FD_END
241 };
242
243 enum {
244 PERF_PEERSTAT_START,
245 PERF_PEERSTAT_ID,
246 PERF_PEERSTAT_SENT,
247 PERF_PEERSTAT_PACKED,
248 PERF_PEERSTAT_FETCHES,
249 PERF_PEERSTAT_RTT,
250 PERF_PEERSTAT_IGN,
251 PERF_PEERSTAT_KEEPAL_S,
252 PERF_PEERSTAT_KEEPAL_R,
253 PERF_PEERSTAT_END
254 };
255
256 /* First, we have a huge array of MIBs this agent knows about */
257
258 struct MIBListEntry {
259 oid Name[9]; /* Change as appropriate */
260 long NameLen;
261 oid_GetFn *GetFn;
262 oid_GetNextFn *GetNextFn;
263 };
264
265 variable_list *snmp_basicFn(variable_list *, long *);
266 variable_list *snmp_confPtblFn(variable_list *, long *);
267 variable_list *snmp_confFn(variable_list *, long *);
268 variable_list *snmp_sysFn(variable_list *, long *);
269 variable_list *snmp_prfSysFn(variable_list *, long *);
270 variable_list *snmp_prfProtoFn(variable_list *, long *);
271 variable_list *snmp_prfPeerFn(variable_list *, long *);
272 variable_list *snmp_netdbFn(variable_list *, long *);
273 variable_list *snmp_dnsFn(variable_list *, long *);
274 variable_list *snmp_ipcacheFn(variable_list *, long *);
275 variable_list *snmp_fqdncacheFn(variable_list *, long *);
276
277 #endif
278 #endif