8
* mib.h - Definitions for the variables as defined in the MIB
10
* Update: 1998-07-17 <jhy@gsu.edu>
11
* Added prototypes for print_oid_report* functions.
13
/***********************************************************
14
Copyright 1988, 1989 by Carnegie Mellon University
18
Permission to use, copy, modify, and distribute this software and its
19
documentation for any purpose and without fee is hereby granted,
20
provided that the above copyright notice appear in all copies and that
21
both that copyright notice and this permission notice appear in
22
supporting documentation, and that the name of CMU not be
23
used in advertising or publicity pertaining to distribution of the
24
software without specific, written prior permission.
26
CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
27
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
28
CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
29
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
30
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
31
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
33
******************************************************************/
35
#include <stdio.h> /* for FILE */
37
#define MIB 1, 3, 6, 1, 2, 1
39
#define MIB_IFTYPE_OTHER 1
40
#define MIB_IFTYPE_REGULAR1822 2
41
#define MIB_IFTYPE_HDH1822 3
42
#define MIB_IFTYPE_DDNX25 4
43
#define MIB_IFTYPE_RFC877X25 5
44
#define MIB_IFTYPE_ETHERNETCSMACD 6
45
#define MIB_IFTYPE_ISO88023CSMACD 7
46
#define MIB_IFTYPE_ISO88024TOKENBUS 8
47
#define MIB_IFTYPE_ISO88025TOKENRING 9
48
#define MIB_IFTYPE_ISO88026MAN 10
49
#define MIB_IFTYPE_STARLAN 11
50
#define MIB_IFTYPE_PROTEON10MBIT 12
51
#define MIB_IFTYPE_PROTEON80MBIT 13
52
#define MIB_IFTYPE_HYPERCHANNEL 14
53
#define MIB_IFTYPE_FDDI 15
54
#define MIB_IFTYPE_LAPB 16
55
#define MIB_IFTYPE_SDLC 17
56
#define MIB_IFTYPE_T1CARRIER 18
57
#define MIB_IFTYPE_CEPT 19
58
#define MIB_IFTYPE_BASICISDN 20
59
#define MIB_IFTYPE_PRIMARYISDN 21
60
#define MIB_IFTYPE_PROPPOINTTOPOINTSERIAL 22
62
#define MIB_IFSTATUS_UP 1
63
#define MIB_IFSTATUS_DOWN 2
64
#define MIB_IFSTATUS_TESTING 3
66
#define MIB_FORWARD_GATEWAY 1
67
#define MIB_FORWARD_HOST 2
69
#define MIB_IPROUTETYPE_OTHER 1
70
#define MIB_IPROUTETYPE_INVALID 2
71
#define MIB_IPROUTETYPE_DIRECT 3
72
#define MIB_IPROUTETYPE_REMOTE 4
74
#define MIB_IPROUTEPROTO_OTHER 1
75
#define MIB_IPROUTEPROTO_LOCAL 2
76
#define MIB_IPROUTEPROTO_NETMGMT 3
77
#define MIB_IPROUTEPROTO_ICMP 4
78
#define MIB_IPROUTEPROTO_EGP 5
79
#define MIB_IPROUTEPROTO_GGP 6
80
#define MIB_IPROUTEPROTO_HELLO 7
81
#define MIB_IPROUTEPROTO_RIP 8
82
#define MIB_IPROUTEPROTO_ISIS 9
83
#define MIB_IPROUTEPROTO_ESIS 10
84
#define MIB_IPROUTEPROTO_CISCOIGRP 11
85
#define MIB_IPROUTEPROTO_BBNSPFIGP 12
86
#define MIB_IPROUTEPROTO_OIGP 13
88
#define MIB_TCPRTOALG_OTHER 1
89
#define MIB_TCPRTOALG_CONSTANT 2
90
#define MIB_TCPRTOALG_RSRE 3
91
#define MIB_TCPRTOALG_VANJ 4
93
#define MIB_TCPCONNSTATE_CLOSED 1
94
#define MIB_TCPCONNSTATE_LISTEN 2
95
#define MIB_TCPCONNSTATE_SYNSENT 3
96
#define MIB_TCPCONNSTATE_SYNRECEIVED 4
97
#define MIB_TCPCONNSTATE_ESTABLISHED 5
98
#define MIB_TCPCONNSTATE_FINWAIT1 6
99
#define MIB_TCPCONNSTATE_FINWAIT2 7
100
#define MIB_TCPCONNSTATE_CLOSEWAIT 8
101
#define MIB_TCPCONNSTATE_LASTACK 9
102
#define MIB_TCPCONNSTATE_CLOSING 10
103
#define MIB_TCPCONNSTATE_TIMEWAIT 11
105
#define MIB_EGPNEIGHSTATE_IDLE 1
106
#define MIB_EGPNEIGHSTATE_AQUISITION 2
107
#define MIB_EGPNEIGHSTATE_DOWN 3
108
#define MIB_EGPNEIGHSTATE_UP 4
109
#define MIB_EGPNEIGHSTATE_CEASE 5
111
struct variable_list;
114
void print_mib(FILE * fp);
115
void print_ascii_dump(FILE *);
116
int read_objid(const char *, oid *, size_t *);
117
void register_mib_handlers(void);
118
void netsnmp_set_mib_directory(const char *dir);
119
char *netsnmp_get_mib_directory(void);
120
void netsnmp_fixup_mib_directory(void);
122
void shutdown_mib(void);
123
void print_description(oid *, size_t, int);
124
void fprint_description(FILE *, oid *, size_t, int);
125
int snprint_description(char *, size_t, oid *, size_t, int);
126
int sprint_realloc_description(u_char **, size_t *, size_t *,
127
int, oid *, size_t, int);
128
int get_module_node(const char *, const char *, oid *,
130
int get_wild_node(const char *, oid *, size_t *);
131
int get_node(const char *, oid *, size_t *);
132
oid *snmp_parse_oid(const char *, oid *, size_t *);
133
struct tree *get_symbol(oid *, size_t, struct tree *, char *);
134
struct tree *get_tree(const oid *, size_t, struct tree *);
135
struct tree *get_tree_head(void);
136
void set_function(struct tree *);
138
int parse_one_oid_index(oid ** oidStart, size_t * oidLen,
139
netsnmp_variable_list * data,
141
int parse_oid_indexes(oid * oidIndex, size_t oidLen,
142
netsnmp_variable_list * data);
143
int build_oid_noalloc(oid * in, size_t in_len,
144
size_t * out_len, oid * prefix,
146
netsnmp_variable_list * indexes);
147
int build_oid(oid ** out, size_t * out_len, oid * prefix,
149
netsnmp_variable_list * indexes);
150
int build_oid_segment(netsnmp_variable_list * var);
153
void print_variable(const oid * objid, size_t objidlen,
154
const netsnmp_variable_list * variable);
156
void fprint_variable(FILE * fp,
157
const oid * objid, size_t objidlen,
158
const netsnmp_variable_list * variable);
160
int snprint_variable(char *buf, size_t buf_len,
161
const oid * objid, size_t objidlen,
162
const netsnmp_variable_list * variable);
164
int sprint_realloc_variable(u_char ** buf,
170
const netsnmp_variable_list *
173
#ifndef DISABLE_MIB_LOADING
178
netsnmp_sprint_realloc_objid_tree(u_char ** buf,
187
netsnmp_sprint_realloc_objid(u_char ** buf,
195
void print_value(const oid * objid, size_t objidlen,
196
const netsnmp_variable_list * variable);
198
void fprint_value(FILE * fp,
199
const oid * objid, size_t objidlen,
200
const netsnmp_variable_list * variable);
202
int snprint_value(char *buf, size_t buf_len,
203
const oid * objid, size_t objidlen,
204
const netsnmp_variable_list * variable);
206
int sprint_realloc_value(u_char ** buf, size_t * buf_len,
211
const netsnmp_variable_list * variable);
214
void print_objid(const oid * objid, size_t objidlen);
216
void fprint_objid(FILE * fp,
217
const oid * objid, size_t objidlen);
219
int snprint_objid(char *buf, size_t buf_len,
220
const oid * objid, size_t objidlen);
222
int sprint_realloc_objid(u_char ** buf, size_t * buf_len,
229
int sprint_realloc_by_type(u_char ** buf, size_t * buf_len,
232
const netsnmp_variable_list * var,
233
const struct enum_list *enums,
237
int sprint_realloc_hexstring(u_char ** buf,
241
const u_char *, size_t);
243
int sprint_realloc_asciistring(u_char ** buf,
250
int sprint_realloc_octet_string(u_char ** buf,
254
const netsnmp_variable_list *,
255
const struct enum_list *,
259
int sprint_realloc_opaque(u_char ** buf, size_t * buf_len,
262
const netsnmp_variable_list *,
263
const struct enum_list *, const char *,
266
int sprint_realloc_object_identifier(u_char ** buf,
270
const netsnmp_variable_list
271
*, const struct enum_list *,
275
int sprint_realloc_timeticks(u_char ** buf,
279
const netsnmp_variable_list *,
280
const struct enum_list *,
281
const char *, const char *);
283
int sprint_realloc_hinted_integer(u_char ** buf,
286
int allow_realloc, long,
287
const char, const char *,
290
int sprint_realloc_integer(u_char ** buf, size_t * buf_len,
293
const netsnmp_variable_list *,
294
const struct enum_list *,
295
const char *, const char *);
297
int sprint_realloc_uinteger(u_char ** buf,
301
const netsnmp_variable_list *,
302
const struct enum_list *,
303
const char *, const char *);
305
int sprint_realloc_gauge(u_char ** buf, size_t * buf_len,
308
const netsnmp_variable_list *,
309
const struct enum_list *, const char *,
312
int sprint_realloc_counter(u_char ** buf, size_t * buf_len,
315
const netsnmp_variable_list *,
316
const struct enum_list *,
317
const char *, const char *);
319
int sprint_realloc_networkaddress(u_char ** buf,
323
const netsnmp_variable_list *,
324
const struct enum_list *,
328
int sprint_realloc_ipaddress(u_char ** buf,
332
const netsnmp_variable_list *,
333
const struct enum_list *,
334
const char *, const char *);
336
int sprint_realloc_null(u_char ** buf, size_t * buf_len,
339
const netsnmp_variable_list *,
340
const struct enum_list *, const char *,
343
int sprint_realloc_bitstring(u_char ** buf,
347
const netsnmp_variable_list *,
348
const struct enum_list *,
349
const char *, const char *);
351
int sprint_realloc_nsapaddress(u_char ** buf,
355
const netsnmp_variable_list *,
356
const struct enum_list *,
357
const char *, const char *);
359
int sprint_realloc_counter64(u_char ** buf,
363
const netsnmp_variable_list *,
364
const struct enum_list *,
365
const char *, const char *);
367
int sprint_realloc_badtype(u_char ** buf, size_t * buf_len,
370
const netsnmp_variable_list *,
371
const struct enum_list *,
372
const char *, const char *);
374
#ifdef OPAQUE_SPECIAL_TYPES
375
int sprint_realloc_float(u_char ** buf, size_t * buf_len,
378
const netsnmp_variable_list *,
379
const struct enum_list *, const char *,
382
int sprint_realloc_double(u_char ** buf, size_t * buf_len,
385
const netsnmp_variable_list *,
386
const struct enum_list *, const char *,
391
int snprint_by_type(char *buf, size_t buf_len,
392
netsnmp_variable_list * var,
393
const struct enum_list *enums,
394
const char *hint, const char *units);
396
int snprint_hexstring(char *buf, size_t buf_len,
397
const u_char *, size_t);
399
int snprint_asciistring(char *buf, size_t buf_len,
400
const u_char * cp, size_t len);
402
int snprint_octet_string(char *buf, size_t buf_len,
403
const netsnmp_variable_list *,
404
const struct enum_list *, const char *,
407
int snprint_opaque(char *buf, size_t buf_len,
408
const netsnmp_variable_list *,
409
const struct enum_list *, const char *,
412
int snprint_object_identifier(char *buf, size_t buf_len,
413
const netsnmp_variable_list *,
414
const struct enum_list *,
415
const char *, const char *);
417
int snprint_timeticks(char *buf, size_t buf_len,
418
const netsnmp_variable_list *,
419
const struct enum_list *, const char *,
422
int snprint_hinted_integer(char *buf, size_t buf_len,
426
int snprint_integer(char *buf, size_t buf_len,
427
const netsnmp_variable_list *,
428
const struct enum_list *, const char *,
431
int snprint_uinteger(char *buf, size_t buf_len,
432
const netsnmp_variable_list *,
433
const struct enum_list *, const char *,
436
int snprint_gauge(char *buf, size_t buf_len,
437
const netsnmp_variable_list *,
438
const struct enum_list *, const char *,
441
int snprint_counter(char *buf, size_t buf_len,
442
const netsnmp_variable_list *,
443
const struct enum_list *, const char *,
446
int snprint_networkaddress(char *buf, size_t buf_len,
447
const netsnmp_variable_list *,
448
const struct enum_list *,
449
const char *, const char *);
451
int snprint_ipaddress(char *buf, size_t buf_len,
452
const netsnmp_variable_list *,
453
const struct enum_list *, const char *,
456
int snprint_null(char *buf, size_t buf_len,
457
const netsnmp_variable_list *,
458
const struct enum_list *, const char *,
461
int snprint_bitstring(char *buf, size_t buf_len,
462
const netsnmp_variable_list *,
463
const struct enum_list *, const char *,
466
int snprint_nsapaddress(char *buf, size_t buf_len,
467
const netsnmp_variable_list *,
468
const struct enum_list *, const char *,
471
int snprint_counter64(char *buf, size_t buf_len,
472
const netsnmp_variable_list *,
473
const struct enum_list *, const char *,
476
int snprint_badtype(char *buf, size_t buf_len,
477
const netsnmp_variable_list *,
478
const struct enum_list *, const char *,
481
#ifdef OPAQUE_SPECIAL_TYPES
482
int snprint_float(char *buf, size_t buf_len,
483
const netsnmp_variable_list *,
484
const struct enum_list *, const char *,
487
int snprint_double(char *buf, size_t buf_len,
488
const netsnmp_variable_list *,
489
const struct enum_list *, const char *,
493
void print_oid_report(FILE *);
494
void print_oid_report_enable_labeledoid(void);
495
void print_oid_report_enable_oid(void);
496
void print_oid_report_enable_suffix(void);
497
void print_oid_report_enable_symbolic(void);
499
const char *parse_octet_hint(const char *hint, const char *value,
500
unsigned char **new_val, int *new_val_len);
502
void clear_tree_flags(register struct tree *tp);
504
char *snmp_out_toggle_options(char *);
505
void snmp_out_toggle_options_usage(const char *, FILE *);
506
char *snmp_in_toggle_options(char *);
507
char *snmp_in_options(char *, int, char * const *);
508
void snmp_in_toggle_options_usage(const char *, FILE *);
509
u_char mib_to_asn_type(int mib_type);
512
int netsnmp_str2oid(const char *S, oid * O, int L);
515
#define NETSNMP_STRING_OUTPUT_GUESS 1
516
#define NETSNMP_STRING_OUTPUT_ASCII 2
517
#define NETSNMP_STRING_OUTPUT_HEX 3
519
#define NETSNMP_OID_OUTPUT_SUFFIX 1
520
#define NETSNMP_OID_OUTPUT_MODULE 2
521
#define NETSNMP_OID_OUTPUT_FULL 3
522
#define NETSNMP_OID_OUTPUT_NUMERIC 4
523
#define NETSNMP_OID_OUTPUT_UCD 5
524
#define NETSNMP_OID_OUTPUT_NONE 6