1 /*
2 * ProFTPD - mod_snmp MIB support
3 * Copyright (c) 2008-2016 TJ Saunders
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA.
18 *
19 * As a special exemption, TJ Saunders and other respective copyright holders
20 * give permission to link this program with OpenSSL, and distribute the
21 * resulting executable, without including the source code for OpenSSL in the
22 * source distribution.
23 */
24
25 #include "mod_snmp.h"
26 #include "asn1.h"
27 #include "mib.h"
28 #include "smi.h"
29 #include "db.h"
30
31 /* This table maps the OIDs in the PROFTPD-MIB to the database field where
32 * that value is stored.
33 *
34 * SNMP conventions identify a MIB object using "x.y", where "x" is the OID
35 * and "y" is the instance identifier. We don't have any rows of data, just
36 * scalars, so the instance identifier will always be zero for our MIB
37 * objects.
38 */
39
40 #define SNMP_MIB_FIRST_IDX 10
41
42 static struct snmp_mib snmp_mibs[] = {
43 { { }, 0, 0, -1, -1, NULL, NULL, 0 },
44
45 /* Miscellaneous non-mod_snmp MIBs */
46 { { SNMP_MGMT_SYS_OID_UPTIME, 0 },
47 SNMP_MGMT_SYS_OIDLEN_UPTIME + 1,
48 0, TRUE, TRUE,
49 SNMP_MGMT_SYS_MIB_NAME_PREFIX "sysUpTime",
50 SNMP_MGMT_SYS_MIB_NAME_PREFIX "sysUpTime.0",
51 SNMP_SMI_TIMETICKS },
52
53 { { SNMP_SNMP2_TRAP_OID_OID, 0 },
54 SNMP_SNMP2_TRAP_OIDLEN_OID + 1,
55 0, TRUE, TRUE,
56 SNMP_SNMP2_TRAP_MIB_NAME_PREFIX "snmpTrapOID",
57 SNMP_SNMP2_TRAP_MIB_NAME_PREFIX "snmpTrapOID.0",
58 SNMP_SMI_OID },
59
60 /* Connection MIBs */
61 { { SNMP_MIB_CONN_OID_SERVER_NAME, 0 },
62 SNMP_MIB_CONN_OIDLEN_SERVER_NAME + 1,
63 SNMP_DB_CONN_F_SERVER_NAME, TRUE, TRUE,
64 SNMP_MIB_NAME_PREFIX "connection.serverName",
65 SNMP_MIB_NAME_PREFIX "connection.serverName.0",
66 SNMP_SMI_STRING },
67
68 { { SNMP_MIB_CONN_OID_SERVER_ADDR, 0 },
69 SNMP_MIB_CONN_OIDLEN_SERVER_ADDR + 1,
70 SNMP_DB_CONN_F_SERVER_ADDR, TRUE, TRUE,
71 SNMP_MIB_NAME_PREFIX "connection.serverAddress",
72 SNMP_MIB_NAME_PREFIX "connection.serverAddress.0",
73 SNMP_SMI_STRING },
74
75 { { SNMP_MIB_CONN_OID_SERVER_PORT, 0 },
76 SNMP_MIB_CONN_OIDLEN_SERVER_PORT + 1,
77 SNMP_DB_CONN_F_SERVER_PORT, TRUE, TRUE,
78 SNMP_MIB_NAME_PREFIX "connection.serverPort",
79 SNMP_MIB_NAME_PREFIX "connection.serverPort.0",
80 SNMP_SMI_INTEGER },
81
82 { { SNMP_MIB_CONN_OID_CLIENT_ADDR, 0 },
83 SNMP_MIB_CONN_OIDLEN_CLIENT_ADDR + 1,
84 SNMP_DB_CONN_F_CLIENT_ADDR, TRUE, TRUE,
85 SNMP_MIB_NAME_PREFIX "connection.clientAddress",
86 SNMP_MIB_NAME_PREFIX "connection.clientAddress.0",
87 SNMP_SMI_STRING },
88
89 { { SNMP_MIB_CONN_OID_PID, 0 },
90 SNMP_MIB_CONN_OIDLEN_PID + 1,
91 SNMP_DB_CONN_F_PID, TRUE, TRUE,
92 SNMP_MIB_NAME_PREFIX "connection.processId",
93 SNMP_MIB_NAME_PREFIX "connection.processId.0",
94 SNMP_SMI_INTEGER },
95
96 { { SNMP_MIB_CONN_OID_USER_NAME, 0 },
97 SNMP_MIB_CONN_OIDLEN_USER_NAME + 1,
98 SNMP_DB_CONN_F_USER_NAME, TRUE, TRUE,
99 SNMP_MIB_NAME_PREFIX "connection.userName",
100 SNMP_MIB_NAME_PREFIX "connection.userName.0",
101 SNMP_SMI_STRING },
102
103 { { SNMP_MIB_CONN_OID_PROTOCOL, 0 },
104 SNMP_MIB_CONN_OIDLEN_PROTOCOL + 1,
105 SNMP_DB_CONN_F_PROTOCOL, TRUE, TRUE,
106 SNMP_MIB_NAME_PREFIX "connection.protocol",
107 SNMP_MIB_NAME_PREFIX "connection.protocol.0",
108 SNMP_SMI_STRING },
109
110 /* Daemon MIBs */
111 { { SNMP_MIB_DAEMON_OID_SOFTWARE, 0 },
112 SNMP_MIB_DAEMON_OIDLEN_SOFTWARE + 1,
113 SNMP_DB_DAEMON_F_SOFTWARE, TRUE, FALSE,
114 SNMP_MIB_NAME_PREFIX "daemon.software",
115 SNMP_MIB_NAME_PREFIX "daemon.software.0",
116 SNMP_SMI_STRING },
117
118 { { SNMP_MIB_DAEMON_OID_VERSION, 0 },
119 SNMP_MIB_DAEMON_OIDLEN_VERSION + 1,
120 SNMP_DB_DAEMON_F_VERSION, TRUE, FALSE,
121 SNMP_MIB_NAME_PREFIX "daemon.version",
122 SNMP_MIB_NAME_PREFIX "daemon.version.0",
123 SNMP_SMI_STRING },
124
125 { { SNMP_MIB_DAEMON_OID_ADMIN, 0 },
126 SNMP_MIB_DAEMON_OIDLEN_ADMIN + 1,
127 SNMP_DB_DAEMON_F_ADMIN, TRUE, FALSE,
128 SNMP_MIB_NAME_PREFIX "daemon.admin",
129 SNMP_MIB_NAME_PREFIX "daemon.admin.0",
130 SNMP_SMI_STRING },
131
132 { { SNMP_MIB_DAEMON_OID_UPTIME, 0 },
133 SNMP_MIB_DAEMON_OIDLEN_UPTIME + 1,
134 SNMP_DB_DAEMON_F_UPTIME, TRUE, FALSE,
135 SNMP_MIB_NAME_PREFIX "daemon.uptime",
136 SNMP_MIB_NAME_PREFIX "daemon.uptime.0",
137 SNMP_SMI_TIMETICKS },
138
139 { { SNMP_MIB_DAEMON_OID_VHOST_COUNT, 0 },
140 SNMP_MIB_DAEMON_OIDLEN_VHOST_COUNT + 1,
141 SNMP_DB_DAEMON_F_VHOST_COUNT, TRUE, FALSE,
142 SNMP_MIB_NAME_PREFIX "daemon.vhostCount",
143 SNMP_MIB_NAME_PREFIX "daemon.vhostCount.0",
144 SNMP_SMI_INTEGER },
145
146 { { SNMP_MIB_DAEMON_OID_CONN_COUNT, 0 },
147 SNMP_MIB_DAEMON_OIDLEN_CONN_COUNT + 1,
148 SNMP_DB_DAEMON_F_CONN_COUNT, TRUE, FALSE,
149 SNMP_MIB_NAME_PREFIX "daemon.connectionCount",
150 SNMP_MIB_NAME_PREFIX "daemon.connectionCount.0",
151 SNMP_SMI_GAUGE32 },
152
153 { { SNMP_MIB_DAEMON_OID_CONN_TOTAL, 0 },
154 SNMP_MIB_DAEMON_OIDLEN_CONN_TOTAL + 1,
155 SNMP_DB_DAEMON_F_CONN_TOTAL, TRUE, FALSE,
156 SNMP_MIB_NAME_PREFIX "daemon.connectionTotal",
157 SNMP_MIB_NAME_PREFIX "daemon.connectionTotal.0",
158 SNMP_SMI_COUNTER32 },
159
160 { { SNMP_MIB_DAEMON_OID_CONN_REFUSED_TOTAL, 0 },
161 SNMP_MIB_DAEMON_OIDLEN_CONN_REFUSED_TOTAL + 1,
162 SNMP_DB_DAEMON_F_CONN_REFUSED_TOTAL, TRUE, FALSE,
163 SNMP_MIB_NAME_PREFIX "daemon.connectionRefusedTotal",
164 SNMP_MIB_NAME_PREFIX "daemon.connectionRefusedTotal.0",
165 SNMP_SMI_COUNTER32 },
166
167 { { SNMP_MIB_DAEMON_OID_RESTART_COUNT, 0 },
168 SNMP_MIB_DAEMON_OIDLEN_RESTART_COUNT + 1,
169 SNMP_DB_DAEMON_F_RESTART_COUNT, TRUE, FALSE,
170 SNMP_MIB_NAME_PREFIX "daemon.restartCount",
171 SNMP_MIB_NAME_PREFIX "daemon.restartCount.0",
172 SNMP_SMI_COUNTER32 },
173
174 { { SNMP_MIB_DAEMON_OID_SEGFAULT_COUNT, 0 },
175 SNMP_MIB_DAEMON_OIDLEN_SEGFAULT_COUNT + 1,
176 SNMP_DB_DAEMON_F_SEGFAULT_COUNT, TRUE, FALSE,
177 SNMP_MIB_NAME_PREFIX "daemon.segfaultCount",
178 SNMP_MIB_NAME_PREFIX "daemon.segfaultCount.0",
179 SNMP_SMI_COUNTER32 },
180
181 { { SNMP_MIB_DAEMON_OID_MAXINST_TOTAL, 0 },
182 SNMP_MIB_DAEMON_OIDLEN_MAXINST_TOTAL + 1,
183 SNMP_DB_DAEMON_F_MAXINST_TOTAL, TRUE, FALSE,
184 SNMP_MIB_NAME_PREFIX "daemon.maxInstancesLimitTotal",
185 SNMP_MIB_NAME_PREFIX "daemon.maxInstancesLimitTotal.0",
186 SNMP_SMI_COUNTER32 },
187
188 { { SNMP_MIB_DAEMON_OID_MAXINST_CONF, 0 },
189 SNMP_MIB_DAEMON_OIDLEN_MAXINST_CONF + 1,
190 SNMP_DB_DAEMON_F_MAXINST_CONF, TRUE, TRUE,
191 SNMP_MIB_NAME_PREFIX "daemon.maxInstancesConfig",
192 SNMP_MIB_NAME_PREFIX "daemon.maxInstancesConfig.0",
193 SNMP_SMI_INTEGER },
194
195 /* daemon.daemonNotifications MIBs */
196 { { SNMP_MIB_DAEMON_NOTIFY_OID_MAX_INSTANCES, 0 },
197 SNMP_MIB_DAEMON_NOTIFY_OIDLEN_MAX_INSTANCES + 1,
198 0, TRUE, TRUE,
199 SNMP_MIB_NAME_PREFIX "daemon.daemonNotifications.maxInstancesExceeded",
200 SNMP_MIB_NAME_PREFIX "daemon.daemonNotifications.maxInstancesExceeded.0",
201 SNMP_SMI_NULL },
202
203 /* timeouts MIBs */
204 { { SNMP_MIB_TIMEOUTS_OID_IDLE_TOTAL, 0 },
205 SNMP_MIB_TIMEOUTS_OIDLEN_IDLE_TOTAL + 1,
206 SNMP_DB_TIMEOUTS_F_IDLE_TOTAL, TRUE, FALSE,
207 SNMP_MIB_NAME_PREFIX "timeouts.idleTimeoutTotal",
208 SNMP_MIB_NAME_PREFIX "timeouts.idleTimeoutTotal.0",
209 SNMP_SMI_COUNTER32 },
210
211 { { SNMP_MIB_TIMEOUTS_OID_LOGIN_TOTAL, 0 },
212 SNMP_MIB_TIMEOUTS_OIDLEN_LOGIN_TOTAL + 1,
213 SNMP_DB_TIMEOUTS_F_LOGIN_TOTAL, TRUE, FALSE,
214 SNMP_MIB_NAME_PREFIX "timeouts.loginTimeoutTotal",
215 SNMP_MIB_NAME_PREFIX "timeouts.loginTimeoutTotal.0",
216 SNMP_SMI_COUNTER32 },
217
218 { { SNMP_MIB_TIMEOUTS_OID_NOXFER_TOTAL, 0 },
219 SNMP_MIB_TIMEOUTS_OIDLEN_NOXFER_TOTAL + 1,
220 SNMP_DB_TIMEOUTS_F_NOXFER_TOTAL, TRUE, FALSE,
221 SNMP_MIB_NAME_PREFIX "timeouts.noTransferTimeoutTotal",
222 SNMP_MIB_NAME_PREFIX "timeouts.noTransferTimeoutTotal.0",
223 SNMP_SMI_COUNTER32 },
224
225 { { SNMP_MIB_TIMEOUTS_OID_STALLED_TOTAL, 0 },
226 SNMP_MIB_TIMEOUTS_OIDLEN_STALLED_TOTAL + 1,
227 SNMP_DB_TIMEOUTS_F_STALLED_TOTAL, TRUE, FALSE,
228 SNMP_MIB_NAME_PREFIX "timeouts.stalledTimeoutTotal",
229 SNMP_MIB_NAME_PREFIX "timeouts.stalledTimeoutTotal.0",
230 SNMP_SMI_COUNTER32 },
231
232 /* ftp.sessions MIBs */
233 { { SNMP_MIB_FTP_SESS_OID_SESS_COUNT, 0 },
234 SNMP_MIB_FTP_SESS_OIDLEN_SESS_COUNT + 1,
235 SNMP_DB_FTP_SESS_F_SESS_COUNT, TRUE, FALSE,
236 SNMP_MIB_NAME_PREFIX "ftp.sessions.sessionCount",
237 SNMP_MIB_NAME_PREFIX "ftp.sessions.sessionCount.0",
238 SNMP_SMI_GAUGE32 },
239
240 { { SNMP_MIB_FTP_SESS_OID_SESS_TOTAL, 0 },
241 SNMP_MIB_FTP_SESS_OIDLEN_SESS_TOTAL + 1,
242 SNMP_DB_FTP_SESS_F_SESS_TOTAL, TRUE, FALSE,
243 SNMP_MIB_NAME_PREFIX "ftp.sessions.sessionTotal",
244 SNMP_MIB_NAME_PREFIX "ftp.sessions.sessionTotal.0",
245 SNMP_SMI_COUNTER32 },
246
247 { { SNMP_MIB_FTP_SESS_OID_CMD_INVALID_TOTAL, 0 },
248 SNMP_MIB_FTP_SESS_OIDLEN_CMD_INVALID_TOTAL + 1,
249 SNMP_DB_FTP_SESS_F_CMD_INVALID_TOTAL, TRUE, FALSE,
250 SNMP_MIB_NAME_PREFIX "ftp.sessions.commandInvalidTotal",
251 SNMP_MIB_NAME_PREFIX "ftp.sessions.commandInvalidTotal.0",
252 SNMP_SMI_COUNTER32 },
253
254 /* ftp.logins MIBs */
255 { { SNMP_MIB_FTP_LOGINS_OID_TOTAL, 0 },
256 SNMP_MIB_FTP_LOGINS_OIDLEN_TOTAL + 1,
257 SNMP_DB_FTP_LOGINS_F_TOTAL, TRUE, FALSE,
258 SNMP_MIB_NAME_PREFIX "ftp.logins.loginTotal",
259 SNMP_MIB_NAME_PREFIX "ftp.logins.loginTotal.0",
260 SNMP_SMI_COUNTER32 },
261
262 { { SNMP_MIB_FTP_LOGINS_OID_ERR_TOTAL, 0 },
263 SNMP_MIB_FTP_LOGINS_OIDLEN_ERR_TOTAL + 1,
264 SNMP_DB_FTP_LOGINS_F_ERR_TOTAL, TRUE, FALSE,
265 SNMP_MIB_NAME_PREFIX "ftp.logins.loginFailedTotal",
266 SNMP_MIB_NAME_PREFIX "ftp.logins.loginFailedTotal.0",
267 SNMP_SMI_COUNTER32 },
268
269 { { SNMP_MIB_FTP_LOGINS_OID_ERR_BAD_USER_TOTAL, 0 },
270 SNMP_MIB_FTP_LOGINS_OIDLEN_ERR_BAD_USER_TOTAL + 1,
271 SNMP_DB_FTP_LOGINS_F_ERR_BAD_USER_TOTAL, TRUE, FALSE,
272 SNMP_MIB_NAME_PREFIX "ftp.logins.loginBadUserTotal",
273 SNMP_MIB_NAME_PREFIX "ftp.logins.loginBadUserTotal.0",
274 SNMP_SMI_COUNTER32 },
275
276 { { SNMP_MIB_FTP_LOGINS_OID_ERR_BAD_PASSWD_TOTAL, 0 },
277 SNMP_MIB_FTP_LOGINS_OIDLEN_ERR_BAD_PASSWD_TOTAL + 1,
278 SNMP_DB_FTP_LOGINS_F_ERR_BAD_PASSWD_TOTAL, TRUE, FALSE,
279 SNMP_MIB_NAME_PREFIX "ftp.logins.loginBadPasswordTotal",
280 SNMP_MIB_NAME_PREFIX "ftp.logins.loginBadPasswordTotal.0",
281 SNMP_SMI_COUNTER32 },
282
283 { { SNMP_MIB_FTP_LOGINS_OID_ERR_GENERAL_TOTAL, 0 },
284 SNMP_MIB_FTP_LOGINS_OIDLEN_ERR_GENERAL_TOTAL + 1,
285 SNMP_DB_FTP_LOGINS_F_ERR_GENERAL_TOTAL, TRUE, FALSE,
286 SNMP_MIB_NAME_PREFIX "ftp.logins.loginGeneralErrorTotal",
287 SNMP_MIB_NAME_PREFIX "ftp.logins.loginGeneralErrorTotal.0",
288 SNMP_SMI_COUNTER32 },
289
290 { { SNMP_MIB_FTP_LOGINS_OID_ANON_COUNT, 0 },
291 SNMP_MIB_FTP_LOGINS_OIDLEN_ANON_COUNT + 1,
292 SNMP_DB_FTP_LOGINS_F_ANON_COUNT, TRUE, FALSE,
293 SNMP_MIB_NAME_PREFIX "ftp.logins.anonLoginCount",
294 SNMP_MIB_NAME_PREFIX "ftp.logins.anonLoginCount.0",
295 SNMP_SMI_GAUGE32 },
296
297 { { SNMP_MIB_FTP_LOGINS_OID_ANON_TOTAL, 0 },
298 SNMP_MIB_FTP_LOGINS_OIDLEN_ANON_TOTAL + 1,
299 SNMP_DB_FTP_LOGINS_F_ANON_TOTAL, TRUE, FALSE,
300 SNMP_MIB_NAME_PREFIX "ftp.logins.anonLoginTotal",
301 SNMP_MIB_NAME_PREFIX "ftp.logins.anonLoginTotal.0",
302 SNMP_SMI_COUNTER32 },
303
304 /* ftp.dataTransfers MIBs */
305 { { SNMP_MIB_FTP_XFERS_OID_DIR_LIST_COUNT, 0 },
306 SNMP_MIB_FTP_XFERS_OIDLEN_DIR_LIST_COUNT + 1,
307 SNMP_DB_FTP_XFERS_F_DIR_LIST_COUNT, TRUE, FALSE,
308 SNMP_MIB_NAME_PREFIX "ftp.dataTransfers.dirListCount",
309 SNMP_MIB_NAME_PREFIX "ftp.dataTransfers.dirListCount.0",
310 SNMP_SMI_GAUGE32 },
311
312 { { SNMP_MIB_FTP_XFERS_OID_DIR_LIST_TOTAL, 0 },
313 SNMP_MIB_FTP_XFERS_OIDLEN_DIR_LIST_TOTAL + 1,
314 SNMP_DB_FTP_XFERS_F_DIR_LIST_TOTAL, TRUE, FALSE,
315 SNMP_MIB_NAME_PREFIX "ftp.dataTransfers.dirListTotal",
316 SNMP_MIB_NAME_PREFIX "ftp.dataTransfers.dirListTotal.0",
317 SNMP_SMI_COUNTER32 },
318
319 { { SNMP_MIB_FTP_XFERS_OID_DIR_LIST_ERR_TOTAL, 0 },
320 SNMP_MIB_FTP_XFERS_OIDLEN_DIR_LIST_ERR_TOTAL + 1,
321 SNMP_DB_FTP_XFERS_F_DIR_LIST_ERR_TOTAL, TRUE, FALSE,
322 SNMP_MIB_NAME_PREFIX "ftp.dataTransfers.dirListFailedTotal",
323 SNMP_MIB_NAME_PREFIX "ftp.dataTransfers.dirListFailedTotal.0",
324 SNMP_SMI_COUNTER32 },
325
326 { { SNMP_MIB_FTP_XFERS_OID_FILE_UPLOAD_COUNT, 0 },
327 SNMP_MIB_FTP_XFERS_OIDLEN_FILE_UPLOAD_COUNT + 1,
328 SNMP_DB_FTP_XFERS_F_FILE_UPLOAD_COUNT, TRUE, FALSE,
329 SNMP_MIB_NAME_PREFIX "ftp.dataTransfers.fileUploadCount",
330 SNMP_MIB_NAME_PREFIX "ftp.dataTransfers.fileUploadCount.0",
331 SNMP_SMI_GAUGE32 },
332
333 { { SNMP_MIB_FTP_XFERS_OID_FILE_UPLOAD_TOTAL, 0 },
334 SNMP_MIB_FTP_XFERS_OIDLEN_FILE_UPLOAD_TOTAL + 1,
335 SNMP_DB_FTP_XFERS_F_FILE_UPLOAD_TOTAL, TRUE, FALSE,
336 SNMP_MIB_NAME_PREFIX "ftp.dataTransfers.fileUploadTotal",
337 SNMP_MIB_NAME_PREFIX "ftp.dataTransfers.fileUploadTotal.0",
338 SNMP_SMI_COUNTER32 },
339
340 { { SNMP_MIB_FTP_XFERS_OID_FILE_UPLOAD_ERR_TOTAL, 0 },
341 SNMP_MIB_FTP_XFERS_OIDLEN_FILE_UPLOAD_ERR_TOTAL + 1,
342 SNMP_DB_FTP_XFERS_F_FILE_UPLOAD_ERR_TOTAL, TRUE, FALSE,
343 SNMP_MIB_NAME_PREFIX "ftp.dataTransfers.fileUploadFailedTotal",
344 SNMP_MIB_NAME_PREFIX "ftp.dataTransfers.fileUploadFailedTotal.0",
345 SNMP_SMI_COUNTER32 },
346
347 { { SNMP_MIB_FTP_XFERS_OID_FILE_DOWNLOAD_COUNT, 0 },
348 SNMP_MIB_FTP_XFERS_OIDLEN_FILE_DOWNLOAD_COUNT + 1,
349 SNMP_DB_FTP_XFERS_F_FILE_DOWNLOAD_COUNT, TRUE, FALSE,
350 SNMP_MIB_NAME_PREFIX "ftp.dataTransfers.fileDownloadCount",
351 SNMP_MIB_NAME_PREFIX "ftp.dataTransfers.fileDownloadCount.0",
352 SNMP_SMI_GAUGE32 },
353
354 { { SNMP_MIB_FTP_XFERS_OID_FILE_DOWNLOAD_TOTAL, 0 },
355 SNMP_MIB_FTP_XFERS_OIDLEN_FILE_DOWNLOAD_TOTAL + 1,
356 SNMP_DB_FTP_XFERS_F_FILE_DOWNLOAD_TOTAL, TRUE, FALSE,
357 SNMP_MIB_NAME_PREFIX "ftp.dataTransfers.fileDownloadTotal",
358 SNMP_MIB_NAME_PREFIX "ftp.dataTransfers.fileDownloadTotal.0",
359 SNMP_SMI_COUNTER32 },
360
361 { { SNMP_MIB_FTP_XFERS_OID_FILE_DOWNLOAD_ERR_TOTAL, 0 },
362 SNMP_MIB_FTP_XFERS_OIDLEN_FILE_DOWNLOAD_ERR_TOTAL + 1,
363 SNMP_DB_FTP_XFERS_F_FILE_DOWNLOAD_ERR_TOTAL, TRUE, FALSE,
364 SNMP_MIB_NAME_PREFIX "ftp.dataTransfers.fileDownloadFailedTotal",
365 SNMP_MIB_NAME_PREFIX "ftp.dataTransfers.fileDownloadFailedTotal.0",
366 SNMP_SMI_COUNTER32 },
367
368 { { SNMP_MIB_FTP_XFERS_OID_KB_UPLOAD_TOTAL, 0 },
369 SNMP_MIB_FTP_XFERS_OIDLEN_KB_UPLOAD_TOTAL + 1,
370 SNMP_DB_FTP_XFERS_F_KB_UPLOAD_TOTAL, TRUE, FALSE,
371 SNMP_MIB_NAME_PREFIX "ftp.dataTransfers.kbUploadTotal",
372 SNMP_MIB_NAME_PREFIX "ftp.dataTransfers.kbUploadTotal.0",
373 SNMP_SMI_COUNTER32 },
374
375 { { SNMP_MIB_FTP_XFERS_OID_KB_DOWNLOAD_TOTAL, 0 },
376 SNMP_MIB_FTP_XFERS_OIDLEN_KB_DOWNLOAD_TOTAL + 1,
377 SNMP_DB_FTP_XFERS_F_KB_DOWNLOAD_TOTAL, TRUE, FALSE,
378 SNMP_MIB_NAME_PREFIX "ftp.dataTransfers.kbDownloadTotal",
379 SNMP_MIB_NAME_PREFIX "ftp.dataTransfers.kbDownloadTotal.0",
380 SNMP_SMI_COUNTER32 },
381
382 /* ftp.ftpNotifications MIBs */
383 { { SNMP_MIB_FTP_NOTIFY_OID_LOGIN_BAD_PASSWORD, 0 },
384 SNMP_MIB_FTP_NOTIFY_OIDLEN_LOGIN_BAD_PASSWORD + 1,
385 0, TRUE, TRUE,
386 SNMP_MIB_NAME_PREFIX "ftp.ftpNotifications.loginBadPassword",
387 SNMP_MIB_NAME_PREFIX "ftp.ftpNotifications.loginBadPassword.0",
388 SNMP_SMI_NULL },
389
390 { { SNMP_MIB_FTP_NOTIFY_OID_LOGIN_BAD_USER, 0 },
391 SNMP_MIB_FTP_NOTIFY_OIDLEN_LOGIN_BAD_USER + 1,
392 0, TRUE, TRUE,
393 SNMP_MIB_NAME_PREFIX "ftp.ftpNotifications.loginBadUser",
394 SNMP_MIB_NAME_PREFIX "ftp.ftpNotifications.loginBadUser.0",
395 SNMP_SMI_NULL },
396
397 /* snmp MIBs */
398 { { SNMP_MIB_SNMP_OID_PKTS_RECVD_TOTAL, 0 },
399 SNMP_MIB_SNMP_OIDLEN_PKTS_RECVD_TOTAL + 1,
400 SNMP_DB_SNMP_F_PKTS_RECVD_TOTAL, TRUE, FALSE,
401 SNMP_MIB_NAME_PREFIX "snmp.packetsReceivedTotal",
402 SNMP_MIB_NAME_PREFIX "snmp.packetsReceivedTotal.0",
403 SNMP_SMI_COUNTER32 },
404
405 { { SNMP_MIB_SNMP_OID_PKTS_SENT_TOTAL, 0 },
406 SNMP_MIB_SNMP_OIDLEN_PKTS_SENT_TOTAL + 1,
407 SNMP_DB_SNMP_F_PKTS_SENT_TOTAL, TRUE, FALSE,
408 SNMP_MIB_NAME_PREFIX "snmp.packetsSentTotal",
409 SNMP_MIB_NAME_PREFIX "snmp.packetsSentTotal.0",
410 SNMP_SMI_COUNTER32 },
411
412 { { SNMP_MIB_SNMP_OID_TRAPS_SENT_TOTAL, 0 },
413 SNMP_MIB_SNMP_OIDLEN_TRAPS_SENT_TOTAL + 1,
414 SNMP_DB_SNMP_F_TRAPS_SENT_TOTAL, TRUE, FALSE,
415 SNMP_MIB_NAME_PREFIX "snmp.trapsSentTotal",
416 SNMP_MIB_NAME_PREFIX "snmp.trapsSentTotal.0",
417 SNMP_SMI_COUNTER32 },
418
419 { { SNMP_MIB_SNMP_OID_PKTS_AUTH_ERR_TOTAL, 0 },
420 SNMP_MIB_SNMP_OIDLEN_PKTS_AUTH_ERR_TOTAL + 1,
421 SNMP_DB_SNMP_F_PKTS_AUTH_ERR_TOTAL, TRUE, FALSE,
422 SNMP_MIB_NAME_PREFIX "snmp.packetsAuthFailedTotal",
423 SNMP_MIB_NAME_PREFIX "snmp.packetsAuthFailedTotal.0",
424 SNMP_SMI_COUNTER32 },
425
426 { { SNMP_MIB_SNMP_OID_PKTS_DROPPED_TOTAL, 0 },
427 SNMP_MIB_SNMP_OIDLEN_PKTS_DROPPED_TOTAL + 1,
428 SNMP_DB_SNMP_F_PKTS_DROPPED_TOTAL, TRUE, FALSE,
429 SNMP_MIB_NAME_PREFIX "snmp.packetsDroppedTotal",
430 SNMP_MIB_NAME_PREFIX "snmp.packetsDroppedTotal.0",
431 SNMP_SMI_COUNTER32 },
432
433 /* ftps.tlsSessions MIBs */
434 { { SNMP_MIB_FTPS_SESS_OID_SESS_COUNT, 0 },
435 SNMP_MIB_FTPS_SESS_OIDLEN_SESS_COUNT + 1,
436 SNMP_DB_FTPS_SESS_F_SESS_COUNT, FALSE, FALSE,
437 SNMP_MIB_NAME_PREFIX "ftps.tlsSessions.sessionCount",
438 SNMP_MIB_NAME_PREFIX "ftps.tlsSessions.sessionCount.0",
439 SNMP_SMI_GAUGE32 },
440
441 { { SNMP_MIB_FTPS_SESS_OID_SESS_TOTAL, 0 },
442 SNMP_MIB_FTPS_SESS_OIDLEN_SESS_TOTAL + 1,
443 SNMP_DB_FTPS_SESS_F_SESS_TOTAL, FALSE, FALSE,
444 SNMP_MIB_NAME_PREFIX "ftps.tlsSessions.sessionTotal",
445 SNMP_MIB_NAME_PREFIX "ftps.tlsSessions.sessionTotal.0",
446 SNMP_SMI_COUNTER32 },
447
448 { { SNMP_MIB_FTPS_SESS_OID_CTRL_HANDSHAKE_ERR_TOTAL, 0 },
449 SNMP_MIB_FTPS_SESS_OIDLEN_CTRL_HANDSHAKE_ERR_TOTAL + 1,
450 SNMP_DB_FTPS_SESS_F_CTRL_HANDSHAKE_ERR_TOTAL, FALSE, FALSE,
451 SNMP_MIB_NAME_PREFIX "ftps.tlsSessions.ctrlHandshakeFailedTotal",
452 SNMP_MIB_NAME_PREFIX "ftps.tlsSessions.ctrlHandshakeFailedTotal.0",
453 SNMP_SMI_COUNTER32 },
454
455 { { SNMP_MIB_FTPS_SESS_OID_DATA_HANDSHAKE_ERR_TOTAL, 0 },
456 SNMP_MIB_FTPS_SESS_OIDLEN_DATA_HANDSHAKE_ERR_TOTAL + 1,
457 SNMP_DB_FTPS_SESS_F_DATA_HANDSHAKE_ERR_TOTAL, FALSE, FALSE,
458 SNMP_MIB_NAME_PREFIX "ftps.tlsSessions.dataHandshakeFailedTotal",
459 SNMP_MIB_NAME_PREFIX "ftps.tlsSessions.dataHandshakeFailedTotal.0",
460 SNMP_SMI_COUNTER32 },
461
462 { { SNMP_MIB_FTPS_SESS_OID_CCC_TOTAL, 0 },
463 SNMP_MIB_FTPS_SESS_OIDLEN_CCC_TOTAL + 1,
464 SNMP_DB_FTPS_SESS_F_CCC_TOTAL, FALSE, FALSE,
465 SNMP_MIB_NAME_PREFIX "ftps.tlsSessions.clearCommandChannelTotal",
466 SNMP_MIB_NAME_PREFIX "ftps.tlsSessions.clearCommandChannelTotal.0",
467 SNMP_SMI_COUNTER32 },
468
469 { { SNMP_MIB_FTPS_SESS_OID_CCC_ERR_TOTAL, 0 },
470 SNMP_MIB_FTPS_SESS_OIDLEN_CCC_ERR_TOTAL + 1,
471 SNMP_DB_FTPS_SESS_F_CCC_ERR_TOTAL, FALSE, FALSE,
472 SNMP_MIB_NAME_PREFIX "ftps.tlsSessions.clearCommandChannelFailedTotal",
473 SNMP_MIB_NAME_PREFIX "ftps.tlsSessions.clearCommandChannelFailedTotal.0",
474 SNMP_SMI_COUNTER32 },
475
476 { { SNMP_MIB_FTPS_SESS_OID_VERIFY_CLIENT_TOTAL, 0 },
477 SNMP_MIB_FTPS_SESS_OIDLEN_VERIFY_CLIENT_TOTAL + 1,
478 SNMP_DB_FTPS_SESS_F_VERIFY_CLIENT_TOTAL, FALSE, FALSE,
479 SNMP_MIB_NAME_PREFIX "ftps.tlsSessions.verifyClientTotal",
480 SNMP_MIB_NAME_PREFIX "ftps.tlsSessions.verifyClientTotal.0",
481 SNMP_SMI_COUNTER32 },
482
483 { { SNMP_MIB_FTPS_SESS_OID_VERIFY_CLIENT_ERR_TOTAL, 0 },
484 SNMP_MIB_FTPS_SESS_OIDLEN_VERIFY_CLIENT_ERR_TOTAL + 1,
485 SNMP_DB_FTPS_SESS_F_VERIFY_CLIENT_ERR_TOTAL, FALSE, FALSE,
486 SNMP_MIB_NAME_PREFIX "ftps.tlsSessions.verifyClientFailedTotal",
487 SNMP_MIB_NAME_PREFIX "ftps.tlsSessions.verifyClientFailedTotal.0",
488 SNMP_SMI_COUNTER32 },
489
490 /* ftps.tlsLogins MIBs */
491 { { SNMP_MIB_FTPS_LOGINS_OID_TOTAL, 0 },
492 SNMP_MIB_FTPS_LOGINS_OIDLEN_TOTAL + 1,
493 SNMP_DB_FTPS_LOGINS_F_TOTAL, FALSE, FALSE,
494 SNMP_MIB_NAME_PREFIX "ftps.tlsLogins.loginTotal",
495 SNMP_MIB_NAME_PREFIX "ftps.tlsLogins.loginTotal.0",
496 SNMP_SMI_COUNTER32 },
497
498 { { SNMP_MIB_FTPS_LOGINS_OID_ERR_TOTAL, 0 },
499 SNMP_MIB_FTPS_LOGINS_OIDLEN_ERR_TOTAL + 1,
500 SNMP_DB_FTPS_LOGINS_F_ERR_TOTAL, FALSE, FALSE,
501 SNMP_MIB_NAME_PREFIX "ftps.tlsLogins.loginFailedTotal",
502 SNMP_MIB_NAME_PREFIX "ftps.tlsLogins.loginFailedTotal.0",
503 SNMP_SMI_COUNTER32 },
504
505 { { SNMP_MIB_FTPS_LOGINS_OID_ERR_BAD_USER_TOTAL, 0 },
506 SNMP_MIB_FTPS_LOGINS_OIDLEN_ERR_BAD_USER_TOTAL + 1,
507 SNMP_DB_FTPS_LOGINS_F_ERR_BAD_USER_TOTAL, FALSE, FALSE,
508 SNMP_MIB_NAME_PREFIX "ftps.tlsLogins.loginBadUserTotal",
509 SNMP_MIB_NAME_PREFIX "ftps.tlsLogins.loginBadUserTotal.0",
510 SNMP_SMI_COUNTER32 },
511
512 { { SNMP_MIB_FTPS_LOGINS_OID_ERR_BAD_PASSWD_TOTAL, 0 },
513 SNMP_MIB_FTPS_LOGINS_OIDLEN_ERR_BAD_PASSWD_TOTAL + 1,
514 SNMP_DB_FTPS_LOGINS_F_ERR_BAD_PASSWD_TOTAL, FALSE, FALSE,
515 SNMP_MIB_NAME_PREFIX "ftps.tlsLogins.loginBadPasswordTotal",
516 SNMP_MIB_NAME_PREFIX "ftps.tlsLogins.loginBadPasswordTotal.0",
517 SNMP_SMI_COUNTER32 },
518
519 { { SNMP_MIB_FTPS_LOGINS_OID_ERR_GENERAL_TOTAL, 0 },
520 SNMP_MIB_FTPS_LOGINS_OIDLEN_ERR_GENERAL_TOTAL + 1,
521 SNMP_DB_FTPS_LOGINS_F_ERR_GENERAL_TOTAL, FALSE, FALSE,
522 SNMP_MIB_NAME_PREFIX "ftps.tlsLogins.loginGeneralErrorTotal",
523 SNMP_MIB_NAME_PREFIX "ftps.tlsLogins.loginGeneralErrorTotal.0",
524 SNMP_SMI_COUNTER32 },
525
526 { { SNMP_MIB_FTPS_LOGINS_OID_CERT_TOTAL, 0 },
527 SNMP_MIB_FTPS_LOGINS_OIDLEN_CERT_TOTAL + 1,
528 SNMP_DB_FTPS_LOGINS_F_ERR_GENERAL_TOTAL, FALSE, FALSE,
529 SNMP_MIB_NAME_PREFIX "ftps.tlsLogins.loginCertTotal",
530 SNMP_MIB_NAME_PREFIX "ftps.tlsLogins.loginCertTotal.0",
531 SNMP_SMI_COUNTER32 },
532
533 /* ftps.tlsDataTransfers MIBs */
534 { { SNMP_MIB_FTPS_XFERS_OID_DIR_LIST_COUNT, 0 },
535 SNMP_MIB_FTPS_XFERS_OIDLEN_DIR_LIST_COUNT + 1,
536 SNMP_DB_FTPS_XFERS_F_DIR_LIST_COUNT, FALSE, FALSE,
537 SNMP_MIB_NAME_PREFIX "ftps.tlsDataTransfers.dirListCount",
538 SNMP_MIB_NAME_PREFIX "ftps.tlsDataTransfers.dirListCount.0",
539 SNMP_SMI_GAUGE32 },
540
541 { { SNMP_MIB_FTPS_XFERS_OID_DIR_LIST_TOTAL, 0 },
542 SNMP_MIB_FTPS_XFERS_OIDLEN_DIR_LIST_TOTAL + 1,
543 SNMP_DB_FTPS_XFERS_F_DIR_LIST_TOTAL, FALSE, FALSE,
544 SNMP_MIB_NAME_PREFIX "ftps.tlsDataTransfers.dirListTotal",
545 SNMP_MIB_NAME_PREFIX "ftps.tlsDataTransfers.dirListTotal.0",
546 SNMP_SMI_COUNTER32 },
547
548 { { SNMP_MIB_FTPS_XFERS_OID_DIR_LIST_ERR_TOTAL, 0 },
549 SNMP_MIB_FTPS_XFERS_OIDLEN_DIR_LIST_ERR_TOTAL + 1,
550 SNMP_DB_FTPS_XFERS_F_DIR_LIST_ERR_TOTAL, FALSE, FALSE,
551 SNMP_MIB_NAME_PREFIX "ftps.tlsDataTransfers.dirListFailedTotal",
552 SNMP_MIB_NAME_PREFIX "ftps.tlsDataTransfers.dirListFailedTotal.0",
553 SNMP_SMI_COUNTER32 },
554
555 { { SNMP_MIB_FTPS_XFERS_OID_FILE_UPLOAD_COUNT, 0 },
556 SNMP_MIB_FTPS_XFERS_OIDLEN_FILE_UPLOAD_COUNT + 1,
557 SNMP_DB_FTPS_XFERS_F_FILE_UPLOAD_COUNT, FALSE, FALSE,
558 SNMP_MIB_NAME_PREFIX "ftps.tlsDataTransfers.fileUploadCount",
559 SNMP_MIB_NAME_PREFIX "ftps.tlsDataTransfers.fileUploadCount.0",
560 SNMP_SMI_GAUGE32 },
561
562 { { SNMP_MIB_FTPS_XFERS_OID_FILE_UPLOAD_TOTAL, 0 },
563 SNMP_MIB_FTPS_XFERS_OIDLEN_FILE_UPLOAD_TOTAL + 1,
564 SNMP_DB_FTPS_XFERS_F_FILE_UPLOAD_TOTAL, FALSE, FALSE,
565 SNMP_MIB_NAME_PREFIX "ftps.tlsDataTransfers.fileUploadTotal",
566 SNMP_MIB_NAME_PREFIX "ftps.tlsDataTransfers.fileUploadTotal.0",
567 SNMP_SMI_COUNTER32 },
568
569 { { SNMP_MIB_FTPS_XFERS_OID_FILE_UPLOAD_ERR_TOTAL, 0 },
570 SNMP_MIB_FTPS_XFERS_OIDLEN_FILE_UPLOAD_ERR_TOTAL + 1,
571 SNMP_DB_FTPS_XFERS_F_FILE_UPLOAD_ERR_TOTAL, FALSE, FALSE,
572 SNMP_MIB_NAME_PREFIX "ftps.tlsDataTransfers.fileUploadFailedTotal",
573 SNMP_MIB_NAME_PREFIX "ftps.tlsDataTransfers.fileUploadFailedTotal.0",
574 SNMP_SMI_COUNTER32 },
575
576 { { SNMP_MIB_FTPS_XFERS_OID_FILE_DOWNLOAD_COUNT, 0 },
577 SNMP_MIB_FTPS_XFERS_OIDLEN_FILE_DOWNLOAD_COUNT + 1,
578 SNMP_DB_FTPS_XFERS_F_FILE_DOWNLOAD_COUNT, FALSE, FALSE,
579 SNMP_MIB_NAME_PREFIX "ftps.tlsDataTransfers.fileDownloadCount",
580 SNMP_MIB_NAME_PREFIX "ftps.tlsDataTransfers.fileDownloadCount.0",
581 SNMP_SMI_GAUGE32 },
582
583 { { SNMP_MIB_FTPS_XFERS_OID_FILE_DOWNLOAD_TOTAL, 0 },
584 SNMP_MIB_FTPS_XFERS_OIDLEN_FILE_DOWNLOAD_TOTAL + 1,
585 SNMP_DB_FTPS_XFERS_F_FILE_DOWNLOAD_TOTAL, FALSE, FALSE,
586 SNMP_MIB_NAME_PREFIX "ftps.tlsDataTransfers.fileDownloadTotal",
587 SNMP_MIB_NAME_PREFIX "ftps.tlsDataTransfers.fileDownloadTotal.0",
588 SNMP_SMI_COUNTER32 },
589
590 { { SNMP_MIB_FTPS_XFERS_OID_FILE_DOWNLOAD_ERR_TOTAL, 0 },
591 SNMP_MIB_FTPS_XFERS_OIDLEN_FILE_DOWNLOAD_ERR_TOTAL + 1,
592 SNMP_DB_FTPS_XFERS_F_FILE_DOWNLOAD_ERR_TOTAL, FALSE, FALSE,
593 SNMP_MIB_NAME_PREFIX "ftps.tlsDataTransfers.fileDownloadFailedTotal",
594 SNMP_MIB_NAME_PREFIX "ftps.tlsDataTransfers.fileDownloadFailedTotal.0",
595 SNMP_SMI_COUNTER32 },
596
597 { { SNMP_MIB_FTPS_XFERS_OID_KB_UPLOAD_TOTAL, 0 },
598 SNMP_MIB_FTPS_XFERS_OIDLEN_KB_UPLOAD_TOTAL + 1,
599 SNMP_DB_FTPS_XFERS_F_KB_UPLOAD_TOTAL, FALSE, FALSE,
600 SNMP_MIB_NAME_PREFIX "ftps.tlsDataTransfers.kbUploadTotal",
601 SNMP_MIB_NAME_PREFIX "ftps.tlsDataTransfers.kbUploadTotal.0",
602 SNMP_SMI_COUNTER32 },
603
604 { { SNMP_MIB_FTPS_XFERS_OID_KB_DOWNLOAD_TOTAL, 0 },
605 SNMP_MIB_FTPS_XFERS_OIDLEN_KB_DOWNLOAD_TOTAL + 1,
606 SNMP_DB_FTPS_XFERS_F_KB_DOWNLOAD_TOTAL, FALSE, FALSE,
607 SNMP_MIB_NAME_PREFIX "ftps.tlsDataTransfers.kbDownloadTotal",
608 SNMP_MIB_NAME_PREFIX "ftps.tlsDataTransfers.kbDownloadTotal.0",
609 SNMP_SMI_COUNTER32 },
610
611 /* ssh.sshSessions MIBs */
612 { { SNMP_MIB_SSH_SESS_OID_KEX_ERR_TOTAL, 0 },
613 SNMP_MIB_SSH_SESS_OIDLEN_KEX_ERR_TOTAL + 1,
614 SNMP_DB_SSH_SESS_F_KEX_ERR_TOTAL, FALSE, FALSE,
615 SNMP_MIB_NAME_PREFIX "ssh.sshSessions.keyExchangeFailedTotal",
616 SNMP_MIB_NAME_PREFIX "ssh.sshSessions.keyExchangeFailedTotal.0",
617 SNMP_SMI_COUNTER32 },
618
619 { { SNMP_MIB_SSH_SESS_OID_C2S_COMPRESS_TOTAL, 0 },
620 SNMP_MIB_SSH_SESS_OIDLEN_C2S_COMPRESS_TOTAL + 1,
621 SNMP_DB_SSH_SESS_F_C2S_COMPRESS_TOTAL, FALSE, FALSE,
622 SNMP_MIB_NAME_PREFIX "ssh.sshSessions.clientCompressionTotal",
623 SNMP_MIB_NAME_PREFIX "ssh.sshSessions.clientCompressionTotal.0",
624 SNMP_SMI_COUNTER32 },
625
626 { { SNMP_MIB_SSH_SESS_OID_S2C_COMPRESS_TOTAL, 0 },
627 SNMP_MIB_SSH_SESS_OIDLEN_S2C_COMPRESS_TOTAL + 1,
628 SNMP_DB_SSH_SESS_F_S2C_COMPRESS_TOTAL, FALSE, FALSE,
629 SNMP_MIB_NAME_PREFIX "ssh.sshSessions.serverCompressionTotal",
630 SNMP_MIB_NAME_PREFIX "ssh.sshSessions.serverCompressionTotal.0",
631 SNMP_SMI_COUNTER32 },
632
633 /* ssh.sshLogins MIBs */
634 { { SNMP_MIB_SSH_LOGINS_OID_HOSTBASED_TOTAL, 0 },
635 SNMP_MIB_SSH_LOGINS_OIDLEN_HOSTBASED_TOTAL + 1,
636 SNMP_DB_SSH_LOGINS_F_HOSTBASED_TOTAL, FALSE, FALSE,
637 SNMP_MIB_NAME_PREFIX "ssh.sshLogins.hostbasedAuthTotal",
638 SNMP_MIB_NAME_PREFIX "ssh.sshLogins.hostbasedAuthTotal.0",
639 SNMP_SMI_COUNTER32 },
640
641 { { SNMP_MIB_SSH_LOGINS_OID_HOSTBASED_ERR_TOTAL, 0 },
642 SNMP_MIB_SSH_LOGINS_OIDLEN_HOSTBASED_ERR_TOTAL + 1,
643 SNMP_DB_SSH_LOGINS_F_HOSTBASED_ERR_TOTAL, FALSE, FALSE,
644 SNMP_MIB_NAME_PREFIX "ssh.sshLogins.hostbasedAuthFailedTotal",
645 SNMP_MIB_NAME_PREFIX "ssh.sshLogins.hostbasedAuthFailedTotal.0",
646 SNMP_SMI_COUNTER32 },
647
648 { { SNMP_MIB_SSH_LOGINS_OID_KBDINT_TOTAL, 0 },
649 SNMP_MIB_SSH_LOGINS_OIDLEN_KBDINT_TOTAL + 1,
650 SNMP_DB_SSH_LOGINS_F_KBDINT_TOTAL, FALSE, FALSE,
651 SNMP_MIB_NAME_PREFIX "ssh.sshLogins.keyboardInteractiveAuthTotal",
652 SNMP_MIB_NAME_PREFIX "ssh.sshLogins.keyboardInteractiveAuthTotal.0",
653 SNMP_SMI_COUNTER32 },
654
655 { { SNMP_MIB_SSH_LOGINS_OID_KBDINT_ERR_TOTAL, 0 },
656 SNMP_MIB_SSH_LOGINS_OIDLEN_KBDINT_ERR_TOTAL + 1,
657 SNMP_DB_SSH_LOGINS_F_KBDINT_ERR_TOTAL, FALSE, FALSE,
658 SNMP_MIB_NAME_PREFIX "ssh.sshLogins.keyboardInteractiveAuthFailedTotal",
659 SNMP_MIB_NAME_PREFIX "ssh.sshLogins.keyboardInteractiveAuthFailedTotal.0",
660 SNMP_SMI_COUNTER32 },
661
662 { { SNMP_MIB_SSH_LOGINS_OID_PASSWD_TOTAL, 0 },
663 SNMP_MIB_SSH_LOGINS_OIDLEN_PASSWD_TOTAL + 1,
664 SNMP_DB_SSH_LOGINS_F_PASSWD_TOTAL, FALSE, FALSE,
665 SNMP_MIB_NAME_PREFIX "ssh.sshLogins.passwordAuthTotal",
666 SNMP_MIB_NAME_PREFIX "ssh.sshLogins.passwordAuthTotal.0",
667 SNMP_SMI_COUNTER32 },
668
669 { { SNMP_MIB_SSH_LOGINS_OID_PASSWD_ERR_TOTAL, 0 },
670 SNMP_MIB_SSH_LOGINS_OIDLEN_PASSWD_ERR_TOTAL + 1,
671 SNMP_DB_SSH_LOGINS_F_PASSWD_ERR_TOTAL, FALSE, FALSE,
672 SNMP_MIB_NAME_PREFIX "ssh.sshLogins.passwordAuthFailedTotal",
673 SNMP_MIB_NAME_PREFIX "ssh.sshLogins.passwordAuthFailedTotal.0",
674 SNMP_SMI_COUNTER32 },
675
676 { { SNMP_MIB_SSH_LOGINS_OID_PUBLICKEY_TOTAL, 0 },
677 SNMP_MIB_SSH_LOGINS_OIDLEN_PUBLICKEY_TOTAL + 1,
678 SNMP_DB_SSH_LOGINS_F_PUBLICKEY_TOTAL, FALSE, FALSE,
679 SNMP_MIB_NAME_PREFIX "ssh.sshLogins.publickeyAuthTotal",
680 SNMP_MIB_NAME_PREFIX "ssh.sshLogins.publickeyAuthTotal.0",
681 SNMP_SMI_COUNTER32 },
682
683 { { SNMP_MIB_SSH_LOGINS_OID_PUBLICKEY_ERR_TOTAL, 0 },
684 SNMP_MIB_SSH_LOGINS_OIDLEN_PUBLICKEY_ERR_TOTAL + 1,
685 SNMP_DB_SSH_LOGINS_F_PUBLICKEY_ERR_TOTAL, FALSE, FALSE,
686 SNMP_MIB_NAME_PREFIX "ssh.sshLogins.publickeyAuthFailedTotal",
687 SNMP_MIB_NAME_PREFIX "ssh.sshLogins.publickeyAuthFailedTotal.0",
688 SNMP_SMI_COUNTER32 },
689
690 { { SNMP_MIB_SFTP_SESS_OID_COUNT, 0 },
691 SNMP_MIB_SFTP_SESS_OIDLEN_COUNT + 1,
692 SNMP_DB_SFTP_SESS_F_SESS_COUNT, FALSE, FALSE,
693 SNMP_MIB_NAME_PREFIX "sftp.sftpSessions.sessionCount",
694 SNMP_MIB_NAME_PREFIX "sftp.sftpSessions.sessionCount.0",
695 SNMP_SMI_GAUGE32 },
696
697 { { SNMP_MIB_SFTP_SESS_OID_TOTAL, 0 },
698 SNMP_MIB_SFTP_SESS_OIDLEN_TOTAL + 1,
699 SNMP_DB_SFTP_SESS_F_SESS_TOTAL, FALSE, FALSE,
700 SNMP_MIB_NAME_PREFIX "sftp.sftpSessions.sessionTotal",
701 SNMP_MIB_NAME_PREFIX "sftp.sftpSessions.sessionTotal.0",
702 SNMP_SMI_COUNTER32 },
703
704 { { SNMP_MIB_SFTP_SESS_OID_V3_TOTAL, 0 },
705 SNMP_MIB_SFTP_SESS_OIDLEN_V3_TOTAL + 1,
706 SNMP_DB_SFTP_SESS_F_SFTP_V3_TOTAL, FALSE, FALSE,
707 SNMP_MIB_NAME_PREFIX "sftp.sftpSessions.protocolVersion3Total",
708 SNMP_MIB_NAME_PREFIX "sftp.sftpSessions.protocolVersion3Total.0",
709 SNMP_SMI_COUNTER32 },
710
711 { { SNMP_MIB_SFTP_SESS_OID_V4_TOTAL, 0 },
712 SNMP_MIB_SFTP_SESS_OIDLEN_V4_TOTAL + 1,
713 SNMP_DB_SFTP_SESS_F_SFTP_V4_TOTAL, FALSE, FALSE,
714 SNMP_MIB_NAME_PREFIX "sftp.sftpSessions.protocolVersion4Total",
715 SNMP_MIB_NAME_PREFIX "sftp.sftpSessions.protocolVersion4Total.0",
716 SNMP_SMI_COUNTER32 },
717
718 { { SNMP_MIB_SFTP_SESS_OID_V5_TOTAL, 0 },
719 SNMP_MIB_SFTP_SESS_OIDLEN_V5_TOTAL + 1,
720 SNMP_DB_SFTP_SESS_F_SFTP_V5_TOTAL, FALSE, FALSE,
721 SNMP_MIB_NAME_PREFIX "sftp.sftpSessions.protocolVersion5Total",
722 SNMP_MIB_NAME_PREFIX "sftp.sftpSessions.protocolVersion5Total.0",
723 SNMP_SMI_COUNTER32 },
724
725 { { SNMP_MIB_SFTP_SESS_OID_V6_TOTAL, 0 },
726 SNMP_MIB_SFTP_SESS_OIDLEN_V6_TOTAL + 1,
727 SNMP_DB_SFTP_SESS_F_SFTP_V6_TOTAL, FALSE, FALSE,
728 SNMP_MIB_NAME_PREFIX "sftp.sftpSessions.protocolVersion6Total",
729 SNMP_MIB_NAME_PREFIX "sftp.sftpSessions.protocolVersion6Total.0",
730 SNMP_SMI_COUNTER32 },
731
732 /* sftp.sftpDataTransfers MIBs */
733 { { SNMP_MIB_SFTP_XFERS_OID_DIR_LIST_COUNT, 0 },
734 SNMP_MIB_SFTP_XFERS_OIDLEN_DIR_LIST_COUNT + 1,
735 SNMP_DB_SFTP_XFERS_F_DIR_LIST_COUNT, FALSE, FALSE,
736 SNMP_MIB_NAME_PREFIX "sftp.sftpDataTransfers.dirListCount",
737 SNMP_MIB_NAME_PREFIX "sftp.sftpDataTransfers.dirListCount.0",
738 SNMP_SMI_GAUGE32 },
739
740 { { SNMP_MIB_SFTP_XFERS_OID_DIR_LIST_TOTAL, 0 },
741 SNMP_MIB_SFTP_XFERS_OIDLEN_DIR_LIST_TOTAL + 1,
742 SNMP_DB_SFTP_XFERS_F_DIR_LIST_TOTAL, FALSE, FALSE,
743 SNMP_MIB_NAME_PREFIX "sftp.sftpDataTransfers.dirListTotal",
744 SNMP_MIB_NAME_PREFIX "sftp.sftpDataTransfers.dirListTotal.0",
745 SNMP_SMI_COUNTER32 },
746
747 { { SNMP_MIB_SFTP_XFERS_OID_DIR_LIST_ERR_TOTAL, 0 },
748 SNMP_MIB_SFTP_XFERS_OIDLEN_DIR_LIST_ERR_TOTAL + 1,
749 SNMP_DB_SFTP_XFERS_F_DIR_LIST_ERR_TOTAL, FALSE, FALSE,
750 SNMP_MIB_NAME_PREFIX "sftp.sftpDataTransfers.dirListFailedTotal",
751 SNMP_MIB_NAME_PREFIX "sftp.sftpDataTransfers.dirListFailedTotal.0",
752 SNMP_SMI_COUNTER32 },
753
754 { { SNMP_MIB_SFTP_XFERS_OID_FILE_UPLOAD_COUNT, 0 },
755 SNMP_MIB_SFTP_XFERS_OIDLEN_FILE_UPLOAD_COUNT + 1,
756 SNMP_DB_SFTP_XFERS_F_FILE_UPLOAD_COUNT, FALSE, FALSE,
757 SNMP_MIB_NAME_PREFIX "sftp.sftpDataTransfers.fileUploadCount",
758 SNMP_MIB_NAME_PREFIX "sftp.sftpDataTransfers.fileUploadCount.0",
759 SNMP_SMI_GAUGE32 },
760
761 { { SNMP_MIB_SFTP_XFERS_OID_FILE_UPLOAD_TOTAL, 0 },
762 SNMP_MIB_SFTP_XFERS_OIDLEN_FILE_UPLOAD_TOTAL + 1,
763 SNMP_DB_SFTP_XFERS_F_FILE_UPLOAD_TOTAL, FALSE, FALSE,
764 SNMP_MIB_NAME_PREFIX "sftp.sftpDataTransfers.fileUploadTotal",
765 SNMP_MIB_NAME_PREFIX "sftp.sftpDataTransfers.fileUploadTotal.0",
766 SNMP_SMI_COUNTER32 },
767
768 { { SNMP_MIB_SFTP_XFERS_OID_FILE_UPLOAD_ERR_TOTAL, 0 },
769 SNMP_MIB_SFTP_XFERS_OIDLEN_FILE_UPLOAD_ERR_TOTAL + 1,
770 SNMP_DB_SFTP_XFERS_F_FILE_UPLOAD_ERR_TOTAL, FALSE, FALSE,
771 SNMP_MIB_NAME_PREFIX "sftp.sftpDataTransfers.fileUploadFailedTotal",
772 SNMP_MIB_NAME_PREFIX "sftp.sftpDataTransfers.fileUploadFailedTotal.0",
773 SNMP_SMI_COUNTER32 },
774
775 { { SNMP_MIB_SFTP_XFERS_OID_FILE_DOWNLOAD_COUNT, 0 },
776 SNMP_MIB_SFTP_XFERS_OIDLEN_FILE_DOWNLOAD_COUNT + 1,
777 SNMP_DB_SFTP_XFERS_F_FILE_DOWNLOAD_COUNT, FALSE, FALSE,
778 SNMP_MIB_NAME_PREFIX "sftp.sftpDataTransfers.fileDownloadCount",
779 SNMP_MIB_NAME_PREFIX "sftp.sftpDataTransfers.fileDownloadCount.0",
780 SNMP_SMI_GAUGE32 },
781
782 { { SNMP_MIB_SFTP_XFERS_OID_FILE_DOWNLOAD_TOTAL, 0 },
783 SNMP_MIB_SFTP_XFERS_OIDLEN_FILE_DOWNLOAD_TOTAL + 1,
784 SNMP_DB_SFTP_XFERS_F_FILE_DOWNLOAD_TOTAL, FALSE, FALSE,
785 SNMP_MIB_NAME_PREFIX "sftp.sftpDataTransfers.fileDownloadTotal",
786 SNMP_MIB_NAME_PREFIX "sftp.sftpDataTransfers.fileDownloadTotal.0",
787 SNMP_SMI_COUNTER32 },
788
789 { { SNMP_MIB_SFTP_XFERS_OID_FILE_DOWNLOAD_ERR_TOTAL, 0 },
790 SNMP_MIB_SFTP_XFERS_OIDLEN_FILE_DOWNLOAD_ERR_TOTAL + 1,
791 SNMP_DB_SFTP_XFERS_F_FILE_DOWNLOAD_ERR_TOTAL, FALSE, FALSE,
792 SNMP_MIB_NAME_PREFIX "sftp.sftpDataTransfers.fileDownloadFailedTotal",
793 SNMP_MIB_NAME_PREFIX "sftp.sftpDataTransfers.fileDownloadFailedTotal.0",
794 SNMP_SMI_COUNTER32 },
795
796 { { SNMP_MIB_SFTP_XFERS_OID_KB_UPLOAD_TOTAL, 0 },
797 SNMP_MIB_SFTP_XFERS_OIDLEN_KB_UPLOAD_TOTAL + 1,
798 SNMP_DB_SFTP_XFERS_F_KB_UPLOAD_TOTAL, FALSE, FALSE,
799 SNMP_MIB_NAME_PREFIX "sftp.sftpDataTransfers.kbUploadTotal",
800 SNMP_MIB_NAME_PREFIX "sftp.sftpDataTransfers.kbUploadTotal.0",
801 SNMP_SMI_COUNTER32 },
802
803 { { SNMP_MIB_SFTP_XFERS_OID_KB_DOWNLOAD_TOTAL, 0 },
804 SNMP_MIB_SFTP_XFERS_OIDLEN_KB_DOWNLOAD_TOTAL + 1,
805 SNMP_DB_SFTP_XFERS_F_KB_DOWNLOAD_TOTAL, FALSE, FALSE,
806 SNMP_MIB_NAME_PREFIX "sftp.sftpDataTransfers.kbDownloadTotal",
807 SNMP_MIB_NAME_PREFIX "sftp.sftpDataTransfers.kbDownloadTotal.0",
808 SNMP_SMI_COUNTER32 },
809
810 /* scp.scpSessions MIBs */
811 { { SNMP_MIB_SCP_SESS_OID_COUNT, 0 },
812 SNMP_MIB_SCP_SESS_OIDLEN_COUNT + 1,
813 SNMP_DB_SCP_SESS_F_SESS_COUNT, FALSE, FALSE,
814 SNMP_MIB_NAME_PREFIX "scp.scpSessions.sessionCount",
815 SNMP_MIB_NAME_PREFIX "scp.scpSessions.sessionCount.0",
816 SNMP_SMI_GAUGE32 },
817
818 { { SNMP_MIB_SCP_SESS_OID_TOTAL, 0 },
819 SNMP_MIB_SCP_SESS_OIDLEN_TOTAL + 1,
820 SNMP_DB_SCP_SESS_F_SESS_TOTAL, FALSE, FALSE,
821 SNMP_MIB_NAME_PREFIX "scp.scpSessions.sessionTotal",
822 SNMP_MIB_NAME_PREFIX "scp.scpSessions.sessionTotal.0",
823 SNMP_SMI_COUNTER32 },
824
825 /* scp.scpDataTransfers MIBs */
826 { { SNMP_MIB_SCP_XFERS_OID_FILE_UPLOAD_COUNT, 0 },
827 SNMP_MIB_SCP_XFERS_OIDLEN_FILE_UPLOAD_COUNT + 1,
828 SNMP_DB_SCP_XFERS_F_FILE_UPLOAD_COUNT, FALSE, FALSE,
829 SNMP_MIB_NAME_PREFIX "scp.scpDataTransfers.fileUploadCount",
830 SNMP_MIB_NAME_PREFIX "scp.scpDataTransfers.fileUploadCount.0",
831 SNMP_SMI_GAUGE32 },
832
833 { { SNMP_MIB_SCP_XFERS_OID_FILE_UPLOAD_TOTAL, 0 },
834 SNMP_MIB_SCP_XFERS_OIDLEN_FILE_UPLOAD_TOTAL + 1,
835 SNMP_DB_SCP_XFERS_F_FILE_UPLOAD_TOTAL, FALSE, FALSE,
836 SNMP_MIB_NAME_PREFIX "scp.scpDataTransfers.fileUploadTotal",
837 SNMP_MIB_NAME_PREFIX "scp.scpDataTransfers.fileUploadTotal.0",
838 SNMP_SMI_COUNTER32 },
839
840 { { SNMP_MIB_SCP_XFERS_OID_FILE_UPLOAD_ERR_TOTAL, 0 },
841 SNMP_MIB_SCP_XFERS_OIDLEN_FILE_UPLOAD_ERR_TOTAL + 1,
842 SNMP_DB_SCP_XFERS_F_FILE_UPLOAD_ERR_TOTAL, FALSE, FALSE,
843 SNMP_MIB_NAME_PREFIX "scp.scpDataTransfers.fileUploadFailedTotal",
844 SNMP_MIB_NAME_PREFIX "scp.scpDataTransfers.fileUploadFailedTotal.0",
845 SNMP_SMI_COUNTER32 },
846
847 { { SNMP_MIB_SCP_XFERS_OID_FILE_DOWNLOAD_COUNT, 0 },
848 SNMP_MIB_SCP_XFERS_OIDLEN_FILE_DOWNLOAD_COUNT + 1,
849 SNMP_DB_SCP_XFERS_F_FILE_DOWNLOAD_COUNT, FALSE, FALSE,
850 SNMP_MIB_NAME_PREFIX "scp.scpDataTransfers.fileDownloadCount",
851 SNMP_MIB_NAME_PREFIX "scp.scpDataTransfers.fileDownloadCount.0",
852 SNMP_SMI_GAUGE32 },
853
854 { { SNMP_MIB_SCP_XFERS_OID_FILE_DOWNLOAD_TOTAL, 0 },
855 SNMP_MIB_SCP_XFERS_OIDLEN_FILE_DOWNLOAD_TOTAL + 1,
856 SNMP_DB_SCP_XFERS_F_FILE_DOWNLOAD_TOTAL, FALSE, FALSE,
857 SNMP_MIB_NAME_PREFIX "scp.scpDataTransfers.fileDownloadTotal",
858 SNMP_MIB_NAME_PREFIX "scp.scpDataTransfers.fileDownloadTotal.0",
859 SNMP_SMI_COUNTER32 },
860
861 { { SNMP_MIB_SCP_XFERS_OID_FILE_DOWNLOAD_ERR_TOTAL, 0 },
862 SNMP_MIB_SCP_XFERS_OIDLEN_FILE_DOWNLOAD_ERR_TOTAL + 1,
863 SNMP_DB_SCP_XFERS_F_FILE_DOWNLOAD_ERR_TOTAL, FALSE, FALSE,
864 SNMP_MIB_NAME_PREFIX "scp.scpDataTransfers.fileDownloadFailedTotal",
865 SNMP_MIB_NAME_PREFIX "scp.scpDataTransfers.fileDownloadFailedTotal.0",
866 SNMP_SMI_COUNTER32 },
867
868 { { SNMP_MIB_SCP_XFERS_OID_KB_UPLOAD_TOTAL, 0 },
869 SNMP_MIB_SCP_XFERS_OIDLEN_KB_UPLOAD_TOTAL + 1,
870 SNMP_DB_SCP_XFERS_F_KB_UPLOAD_TOTAL, FALSE, FALSE,
871 SNMP_MIB_NAME_PREFIX "scp.scpDataTransfers.kbUploadTotal",
872 SNMP_MIB_NAME_PREFIX "scp.scpDataTransfers.kbUploadTotal.0",
873 SNMP_SMI_COUNTER32 },
874
875 { { SNMP_MIB_SCP_XFERS_OID_KB_DOWNLOAD_TOTAL, 0 },
876 SNMP_MIB_SCP_XFERS_OIDLEN_KB_DOWNLOAD_TOTAL + 1,
877 SNMP_DB_SCP_XFERS_F_KB_DOWNLOAD_TOTAL, FALSE, FALSE,
878 SNMP_MIB_NAME_PREFIX "scp.scpDataTransfers.kbDownloadTotal",
879 SNMP_MIB_NAME_PREFIX "scp.scpDataTransfers.kbDownloadTotal.0",
880 SNMP_SMI_COUNTER32 },
881
882 /* ban.connections MIBs */
883 { { SNMP_MIB_BAN_CONNS_OID_CONN_BAN_TOTAL, 0 },
884 SNMP_MIB_BAN_CONNS_OIDLEN_CONN_BAN_TOTAL + 1,
885 SNMP_DB_BAN_CONNS_F_CONN_BAN_TOTAL, FALSE, FALSE,
886 SNMP_MIB_NAME_PREFIX "ban.connections.connectionBannedTotal",
887 SNMP_MIB_NAME_PREFIX "ban.connections.connectionBannedTotal.0",
888 SNMP_SMI_COUNTER32 },
889
890 { { SNMP_MIB_BAN_CONNS_OID_USER_BAN_TOTAL, 0 },
891 SNMP_MIB_BAN_CONNS_OIDLEN_USER_BAN_TOTAL + 1,
892 SNMP_DB_BAN_CONNS_F_USER_BAN_TOTAL, FALSE, FALSE,
893 SNMP_MIB_NAME_PREFIX "ban.connections.userBannedTotal",
894 SNMP_MIB_NAME_PREFIX "ban.connections.userBannedTotal.0",
895 SNMP_SMI_COUNTER32 },
896
897 { { SNMP_MIB_BAN_CONNS_OID_HOST_BAN_TOTAL, 0 },
898 SNMP_MIB_BAN_CONNS_OIDLEN_HOST_BAN_TOTAL + 1,
899 SNMP_DB_BAN_CONNS_F_HOST_BAN_TOTAL, FALSE, FALSE,
900 SNMP_MIB_NAME_PREFIX "ban.connections.hostBannedTotal",
901 SNMP_MIB_NAME_PREFIX "ban.connections.hostBannedTotal.0",
902 SNMP_SMI_COUNTER32 },
903
904 { { SNMP_MIB_BAN_CONNS_OID_CLASS_BAN_TOTAL, 0 },
905 SNMP_MIB_BAN_CONNS_OIDLEN_CLASS_BAN_TOTAL + 1,
906 SNMP_DB_BAN_CONNS_F_CLASS_BAN_TOTAL, FALSE, FALSE,
907 SNMP_MIB_NAME_PREFIX "ban.connections.classBannedTotal",
908 SNMP_MIB_NAME_PREFIX "ban.connections.classBannedTotal.0",
909 SNMP_SMI_COUNTER32 },
910
911 /* ban.bans MIBs */
912 { { SNMP_MIB_BAN_BANS_OID_BAN_COUNT, 0 },
913 SNMP_MIB_BAN_BANS_OIDLEN_BAN_COUNT + 1,
914 SNMP_DB_BAN_BANS_F_BAN_COUNT, FALSE, FALSE,
915 SNMP_MIB_NAME_PREFIX "ban.bans.banCount",
916 SNMP_MIB_NAME_PREFIX "ban.bans.banCount.0",
917 SNMP_SMI_GAUGE32 },
918
919 { { SNMP_MIB_BAN_BANS_OID_BAN_TOTAL, 0 },
920 SNMP_MIB_BAN_BANS_OIDLEN_BAN_TOTAL + 1,
921 SNMP_DB_BAN_BANS_F_BAN_TOTAL, FALSE, FALSE,
922 SNMP_MIB_NAME_PREFIX "ban.bans.banTotal",
923 SNMP_MIB_NAME_PREFIX "ban.bans.banTotal.0",
924 SNMP_SMI_COUNTER32 },
925
926 { { SNMP_MIB_BAN_BANS_OID_USER_BAN_COUNT, 0 },
927 SNMP_MIB_BAN_BANS_OIDLEN_USER_BAN_COUNT + 1,
928 SNMP_DB_BAN_BANS_F_USER_BAN_COUNT, FALSE, FALSE,
929 SNMP_MIB_NAME_PREFIX "ban.bans.userBanCount",
930 SNMP_MIB_NAME_PREFIX "ban.bans.userBanCount.0",
931 SNMP_SMI_GAUGE32 },
932
933 { { SNMP_MIB_BAN_BANS_OID_USER_BAN_TOTAL, 0 },
934 SNMP_MIB_BAN_BANS_OIDLEN_USER_BAN_TOTAL + 1,
935 SNMP_DB_BAN_BANS_F_USER_BAN_TOTAL, FALSE, FALSE,
936 SNMP_MIB_NAME_PREFIX "ban.bans.userBanTotal",
937 SNMP_MIB_NAME_PREFIX "ban.bans.userBanTotal.0",
938 SNMP_SMI_COUNTER32 },
939
940 { { SNMP_MIB_BAN_BANS_OID_HOST_BAN_COUNT, 0 },
941 SNMP_MIB_BAN_BANS_OIDLEN_HOST_BAN_COUNT + 1,
942 SNMP_DB_BAN_BANS_F_HOST_BAN_COUNT, FALSE, FALSE,
943 SNMP_MIB_NAME_PREFIX "ban.bans.hostBanCount",
944 SNMP_MIB_NAME_PREFIX "ban.bans.hostBanCount.0",
945 SNMP_SMI_GAUGE32 },
946
947 { { SNMP_MIB_BAN_BANS_OID_HOST_BAN_TOTAL, 0 },
948 SNMP_MIB_BAN_BANS_OIDLEN_HOST_BAN_TOTAL + 1,
949 SNMP_DB_BAN_BANS_F_HOST_BAN_TOTAL, FALSE, FALSE,
950 SNMP_MIB_NAME_PREFIX "ban.bans.hostBanTotal",
951 SNMP_MIB_NAME_PREFIX "ban.bans.hostBanTotal.0",
952 SNMP_SMI_COUNTER32 },
953
954 { { SNMP_MIB_BAN_BANS_OID_CLASS_BAN_COUNT, 0 },
955 SNMP_MIB_BAN_BANS_OIDLEN_CLASS_BAN_COUNT + 1,
956 SNMP_DB_BAN_BANS_F_CLASS_BAN_COUNT, FALSE, FALSE,
957 SNMP_MIB_NAME_PREFIX "ban.bans.classBanCount",
958 SNMP_MIB_NAME_PREFIX "ban.bans.classBanCount.0",
959 SNMP_SMI_GAUGE32 },
960
961 { { SNMP_MIB_BAN_BANS_OID_CLASS_BAN_TOTAL, 0 },
962 SNMP_MIB_BAN_BANS_OIDLEN_CLASS_BAN_TOTAL + 1,
963 SNMP_DB_BAN_BANS_F_CLASS_BAN_TOTAL, FALSE, FALSE,
964 SNMP_MIB_NAME_PREFIX "ban.bans.classBanTotal",
965 SNMP_MIB_NAME_PREFIX "ban.bans.classBanTotal.0",
966 SNMP_SMI_COUNTER32 },
967
968 /* This sentinel entry is always enabled. */
969 { { }, 0, 0, TRUE, FALSE, NULL, NULL, 0 }
970 };
971
972 /* We only need to look this up once. */
973 static int snmp_mib_max_idx = -1;
974
975 static const char *trace_channel = "snmp.mib";
976
snmp_mib_get_nearest_idx(oid_t * mib_oid,unsigned int mib_oidlen)977 int snmp_mib_get_nearest_idx(oid_t *mib_oid, unsigned int mib_oidlen) {
978 register unsigned int i;
979 int mib_idx = -1;
980
981 /* In this case, the caller is requesting that we treat the given OID
982 * as not being specific enough, e.g. not having an instance identifier.
983 *
984 * This is done to handle the case where we received e.g.
985 * "GetNext 1.2.3", and the next OID is "1.2.3.0". Or when we
986 * receive a "GetNext proftpd-arc" request from snmpwalk.
987 *
988 * If we find a match, we return the index of the matching entry.
989 */
990
991 /* First, make sure the requested OID is within the proftpd arc. */
992 if (mib_oidlen >= (SNMP_OID_BASELEN - 2)) {
993
994 /* First, look for OIDs which are at the level of 'proftpd.modules.snmp',
995 * then for 'proftpd.modules', then just 'proftpd'. These we can handle
996 * by treating the "next" OID as the first index.
997 */
998 if (mib_oidlen <= SNMP_OID_BASELEN) {
999 oid_t base_oid[] = { SNMP_OID_BASE };
1000
1001 for (i = 0; i <= 2; i++) {
1002 if (memcmp(base_oid, mib_oid, (SNMP_OID_BASELEN - i) *
1003 sizeof(oid_t)) == 0) {
1004 mib_idx = SNMP_MIB_FIRST_IDX;
1005 break;
1006 }
1007 }
1008
1009 } else {
1010 /* In this case, the OID being looked up is longer than SNMP_OID_BASELEN,
1011 * yet still might be too "short" to exactly match a defined OID. So
1012 * we still need to look for partial prefix matches, e.g.
1013 * 1.3.6.1.4.1.17852.2.2.2, and Do The Right Thing(tm).
1014 */
1015 for (i = SNMP_MIB_FIRST_IDX; snmp_mibs[i].mib_oidlen != 0; i++) {
1016 register unsigned int j;
1017 unsigned int nsubids, oidlen;
1018 int prefix_matched = FALSE;
1019
1020 pr_signals_handle();
1021
1022 /* Skip any disabled MIBs. */
1023 if (snmp_mibs[i].mib_enabled == FALSE) {
1024 continue;
1025 }
1026
1027 /* Skip any 'notify only' MIBs, which are only for notifications. */
1028 if (snmp_mibs[i].notify_only == TRUE) {
1029 continue;
1030 }
1031
1032 if (mib_oidlen > snmp_mibs[i].mib_oidlen) {
1033 nsubids = mib_oidlen - snmp_mibs[i].mib_oidlen;
1034 oidlen = mib_oidlen;
1035
1036 } else {
1037 nsubids = snmp_mibs[i].mib_oidlen - mib_oidlen;
1038 oidlen = snmp_mibs[i].mib_oidlen;
1039 }
1040
1041 for (j = 0; j <= nsubids; j++) {
1042 if (memcmp(snmp_mibs[i].mib_oid, mib_oid,
1043 (oidlen - j) * sizeof(oid_t)) == 0) {
1044 mib_idx = i;
1045 prefix_matched = TRUE;
1046 break;
1047 }
1048 }
1049
1050 if (prefix_matched) {
1051 break;
1052 }
1053 }
1054 }
1055 }
1056
1057 if (mib_idx < 0) {
1058 errno = ENOENT;
1059 }
1060
1061 return mib_idx;
1062 }
1063
snmp_mib_get_idx(oid_t * mib_oid,unsigned int mib_oidlen,int * lacks_instance_id)1064 int snmp_mib_get_idx(oid_t *mib_oid, unsigned int mib_oidlen,
1065 int *lacks_instance_id) {
1066 register unsigned int i;
1067 int mib_idx = -1;
1068
1069 if (lacks_instance_id != NULL) {
1070 *lacks_instance_id = FALSE;
1071 }
1072
1073 for (i = 1; snmp_mibs[i].mib_oidlen != 0; i++) {
1074 pr_signals_handle();
1075
1076 /* Skip any disabled MIBs. */
1077 if (snmp_mibs[i].mib_enabled == FALSE) {
1078 continue;
1079 }
1080
1081 if (snmp_mibs[i].mib_oidlen == mib_oidlen) {
1082 if (memcmp(snmp_mibs[i].mib_oid, mib_oid,
1083 mib_oidlen * sizeof(oid_t)) == 0) {
1084 mib_idx = i;
1085 break;
1086 }
1087 }
1088
1089 /* Check for the case where the given OID might be missing the final
1090 * ".0" instance identifier. This is done to support the slightly
1091 * more user-friendly NO_SUCH_INSTANCE exception for SNMPv2/SNMPv3
1092 * responses.
1093 */
1094
1095 if (lacks_instance_id != NULL) {
1096 if (snmp_mibs[i].mib_oidlen == (mib_oidlen + 1)) {
1097 if (memcmp(snmp_mibs[i].mib_oid, mib_oid,
1098 mib_oidlen * sizeof(oid_t)) == 0) {
1099 *lacks_instance_id = TRUE;
1100 break;
1101 }
1102 }
1103 }
1104 }
1105
1106 if (mib_idx < 0) {
1107 errno = ENOENT;
1108 }
1109
1110 return mib_idx;
1111 }
1112
snmp_mib_get_max_idx(void)1113 int snmp_mib_get_max_idx(void) {
1114 register unsigned int i;
1115
1116 if (snmp_mib_max_idx >= 0) {
1117 return snmp_mib_max_idx;
1118 }
1119
1120 for (i = 1; snmp_mibs[i].mib_oidlen != 0; i++) {
1121 /* Skip any disabled MIBs. */
1122 if (snmp_mibs[i].mib_enabled == FALSE) {
1123 continue;
1124 }
1125 }
1126
1127 /* We subtract one, since the for loop iterates one time more than
1128 * necessary, in order to find the end-of-loop condition.
1129 */
1130 snmp_mib_max_idx = i-1;
1131
1132 return snmp_mib_max_idx;
1133 }
1134
snmp_mib_get_by_idx(unsigned int mib_idx)1135 struct snmp_mib *snmp_mib_get_by_idx(unsigned int mib_idx) {
1136 if (mib_idx > (unsigned int) snmp_mib_get_max_idx()) {
1137 errno = EINVAL;
1138 return NULL;
1139 }
1140
1141 return &snmp_mibs[mib_idx];
1142 }
1143
snmp_mib_get_by_oid(oid_t * mib_oid,unsigned int mib_oidlen,int * lacks_instance_id)1144 struct snmp_mib *snmp_mib_get_by_oid(oid_t *mib_oid, unsigned int mib_oidlen,
1145 int *lacks_instance_id) {
1146 int mib_idx;
1147
1148 mib_idx = snmp_mib_get_idx(mib_oid, mib_oidlen, lacks_instance_id);
1149 if (mib_idx < 0) {
1150 return NULL;
1151 }
1152
1153 return snmp_mib_get_by_idx(mib_idx);
1154 }
1155
snmp_mib_reset_counters(void)1156 int snmp_mib_reset_counters(void) {
1157 register unsigned int i;
1158
1159 for (i = 1; snmp_mibs[i].mib_oidlen != 0; i++) {
1160 pr_signals_handle();
1161
1162 /* Explicitly skip the restart counter; that's the one counter that is
1163 * preserved.
1164 */
1165 if (snmp_mibs[i].mib_oidlen == SNMP_MIB_DAEMON_OIDLEN_RESTART_COUNT) {
1166 oid_t restart_oid[] = { SNMP_MIB_DAEMON_OID_RESTART_COUNT };
1167
1168 if (memcmp(snmp_mibs[i].mib_oid, restart_oid,
1169 SNMP_MIB_DAEMON_OIDLEN_RESTART_COUNT * sizeof(oid_t)) == 0) {
1170 continue;
1171 }
1172 }
1173
1174 if (snmp_mibs[i].smi_type == SNMP_SMI_COUNTER32 ||
1175 snmp_mibs[i].smi_type == SNMP_SMI_COUNTER64) {
1176 pr_trace_msg(trace_channel, 17, "resetting '%s' counter",
1177 snmp_mibs[i].instance_name);
1178 (void) snmp_db_reset_value(snmp_pool, snmp_mibs[i].db_field);
1179 }
1180 }
1181
1182 return 0;
1183 }
1184
snmp_mib_init(void)1185 int snmp_mib_init(void) {
1186 /* Iterate through all of the MIBs, deactivating some of them
1187 * if the related module is not loaded.
1188 */
1189
1190 if (pr_module_exists("mod_tls.c") == TRUE) {
1191 register unsigned int i;
1192
1193 /* Handle mod_tls-related MIBs. */
1194 for (i = 1; snmp_mibs[i].mib_oidlen != 0; i++) {
1195 int db_id = snmp_db_get_field_db_id(snmp_mibs[i].db_field);
1196 switch (db_id) {
1197 case SNMP_DB_ID_TLS:
1198 snmp_mibs[i].mib_enabled = TRUE;
1199 break;
1200 }
1201 }
1202 }
1203
1204 if (pr_module_exists("mod_sftp.c") == TRUE) {
1205 register unsigned int i;
1206
1207 /* Handle mod_sftp-related MIBs. */
1208 for (i = 1; snmp_mibs[i].mib_oidlen != 0; i++) {
1209 int db_id = snmp_db_get_field_db_id(snmp_mibs[i].db_field);
1210 switch (db_id) {
1211 case SNMP_DB_ID_SSH:
1212 case SNMP_DB_ID_SFTP:
1213 case SNMP_DB_ID_SCP:
1214 snmp_mibs[i].mib_enabled = TRUE;
1215 break;
1216 }
1217 }
1218 }
1219
1220 if (pr_module_exists("mod_ban.c") == TRUE) {
1221 register unsigned int i;
1222
1223 /* Handle mod_ban-related MIBs. */
1224 for (i = 1; snmp_mibs[i].mib_oidlen != 0; i++) {
1225 int db_id = snmp_db_get_field_db_id(snmp_mibs[i].db_field);
1226 switch (db_id) {
1227 case SNMP_DB_ID_BAN:
1228 snmp_mibs[i].mib_enabled = TRUE;
1229 break;
1230 }
1231 }
1232 }
1233
1234 return 0;
1235 }
1236