net-snmp
5.4.1
|
00001 #ifndef MIB_H 00002 #define MIB_H 00003 00004 #ifdef __cplusplus 00005 extern "C" { 00006 #endif 00007 /* 00008 * mib.h - Definitions for the variables as defined in the MIB 00009 * 00010 * Update: 1998-07-17 <jhy@gsu.edu> 00011 * Added prototypes for print_oid_report* functions. 00012 */ 00013 /*********************************************************** 00014 Copyright 1988, 1989 by Carnegie Mellon University 00015 00016 All Rights Reserved 00017 00018 Permission to use, copy, modify, and distribute this software and its 00019 documentation for any purpose and without fee is hereby granted, 00020 provided that the above copyright notice appear in all copies and that 00021 both that copyright notice and this permission notice appear in 00022 supporting documentation, and that the name of CMU not be 00023 used in advertising or publicity pertaining to distribution of the 00024 software without specific, written prior permission. 00025 00026 CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 00027 ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL 00028 CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR 00029 ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 00030 WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 00031 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 00032 SOFTWARE. 00033 ******************************************************************/ 00034 00035 #include <stdio.h> /* for FILE */ 00036 00037 #define MIB 1, 3, 6, 1, 2, 1 00038 00039 #define MIB_IFTYPE_OTHER 1 00040 #define MIB_IFTYPE_REGULAR1822 2 00041 #define MIB_IFTYPE_HDH1822 3 00042 #define MIB_IFTYPE_DDNX25 4 00043 #define MIB_IFTYPE_RFC877X25 5 00044 #define MIB_IFTYPE_ETHERNETCSMACD 6 00045 #define MIB_IFTYPE_ISO88023CSMACD 7 00046 #define MIB_IFTYPE_ISO88024TOKENBUS 8 00047 #define MIB_IFTYPE_ISO88025TOKENRING 9 00048 #define MIB_IFTYPE_ISO88026MAN 10 00049 #define MIB_IFTYPE_STARLAN 11 00050 #define MIB_IFTYPE_PROTEON10MBIT 12 00051 #define MIB_IFTYPE_PROTEON80MBIT 13 00052 #define MIB_IFTYPE_HYPERCHANNEL 14 00053 #define MIB_IFTYPE_FDDI 15 00054 #define MIB_IFTYPE_LAPB 16 00055 #define MIB_IFTYPE_SDLC 17 00056 #define MIB_IFTYPE_T1CARRIER 18 00057 #define MIB_IFTYPE_CEPT 19 00058 #define MIB_IFTYPE_BASICISDN 20 00059 #define MIB_IFTYPE_PRIMARYISDN 21 00060 #define MIB_IFTYPE_PROPPOINTTOPOINTSERIAL 22 00061 00062 #define MIB_IFSTATUS_UP 1 00063 #define MIB_IFSTATUS_DOWN 2 00064 #define MIB_IFSTATUS_TESTING 3 00065 00066 #define MIB_FORWARD_GATEWAY 1 00067 #define MIB_FORWARD_HOST 2 00068 00069 #define MIB_IPROUTETYPE_OTHER 1 00070 #define MIB_IPROUTETYPE_INVALID 2 00071 #define MIB_IPROUTETYPE_DIRECT 3 00072 #define MIB_IPROUTETYPE_REMOTE 4 00073 00074 #define MIB_IPROUTEPROTO_OTHER 1 00075 #define MIB_IPROUTEPROTO_LOCAL 2 00076 #define MIB_IPROUTEPROTO_NETMGMT 3 00077 #define MIB_IPROUTEPROTO_ICMP 4 00078 #define MIB_IPROUTEPROTO_EGP 5 00079 #define MIB_IPROUTEPROTO_GGP 6 00080 #define MIB_IPROUTEPROTO_HELLO 7 00081 #define MIB_IPROUTEPROTO_RIP 8 00082 #define MIB_IPROUTEPROTO_ISIS 9 00083 #define MIB_IPROUTEPROTO_ESIS 10 00084 #define MIB_IPROUTEPROTO_CISCOIGRP 11 00085 #define MIB_IPROUTEPROTO_BBNSPFIGP 12 00086 #define MIB_IPROUTEPROTO_OIGP 13 00087 00088 #define MIB_TCPRTOALG_OTHER 1 00089 #define MIB_TCPRTOALG_CONSTANT 2 00090 #define MIB_TCPRTOALG_RSRE 3 00091 #define MIB_TCPRTOALG_VANJ 4 00092 00093 #define MIB_TCPCONNSTATE_CLOSED 1 00094 #define MIB_TCPCONNSTATE_LISTEN 2 00095 #define MIB_TCPCONNSTATE_SYNSENT 3 00096 #define MIB_TCPCONNSTATE_SYNRECEIVED 4 00097 #define MIB_TCPCONNSTATE_ESTABLISHED 5 00098 #define MIB_TCPCONNSTATE_FINWAIT1 6 00099 #define MIB_TCPCONNSTATE_FINWAIT2 7 00100 #define MIB_TCPCONNSTATE_CLOSEWAIT 8 00101 #define MIB_TCPCONNSTATE_LASTACK 9 00102 #define MIB_TCPCONNSTATE_CLOSING 10 00103 #define MIB_TCPCONNSTATE_TIMEWAIT 11 00104 00105 #define MIB_EGPNEIGHSTATE_IDLE 1 00106 #define MIB_EGPNEIGHSTATE_AQUISITION 2 00107 #define MIB_EGPNEIGHSTATE_DOWN 3 00108 #define MIB_EGPNEIGHSTATE_UP 4 00109 #define MIB_EGPNEIGHSTATE_CEASE 5 00110 00111 struct variable_list; 00112 struct enum_list; 00113 00114 void print_mib(FILE * fp); 00115 void print_ascii_dump(FILE *); 00116 int read_objid(const char *, oid *, size_t *); 00117 void register_mib_handlers(void); 00118 void netsnmp_set_mib_directory(const char *dir); 00119 char *netsnmp_get_mib_directory(void); 00120 void netsnmp_fixup_mib_directory(void); 00121 void netsnmp_init_mib(void); 00122 #ifndef NETSNMP_CLEAN_NAMESPACE 00123 void init_mib(void); 00124 #endif 00125 void shutdown_mib(void); 00126 void print_description(oid *, size_t, int); 00127 void fprint_description(FILE *, oid *, size_t, int); 00128 int snprint_description(char *, size_t, oid *, size_t, int); 00129 int sprint_realloc_description(u_char **, size_t *, size_t *, 00130 int, oid *, size_t, int); 00131 int get_module_node(const char *, const char *, oid *, 00132 size_t *); 00133 int get_wild_node(const char *, oid *, size_t *); 00134 int get_node(const char *, oid *, size_t *); 00135 oid *snmp_parse_oid(const char *, oid *, size_t *); 00136 struct tree *get_tree(const oid *, size_t, struct tree *); 00137 struct tree *get_tree_head(void); 00138 void set_function(struct tree *); 00139 00140 int parse_one_oid_index(oid ** oidStart, size_t * oidLen, 00141 netsnmp_variable_list * data, 00142 int complete); 00143 int parse_oid_indexes(oid * oidIndex, size_t oidLen, 00144 netsnmp_variable_list * data); 00145 int build_oid_noalloc(oid * in, size_t in_len, 00146 size_t * out_len, oid * prefix, 00147 size_t prefix_len, 00148 netsnmp_variable_list * indexes); 00149 int build_oid(oid ** out, size_t * out_len, oid * prefix, 00150 size_t prefix_len, 00151 netsnmp_variable_list * indexes); 00152 int build_oid_segment(netsnmp_variable_list * var); 00153 00154 00155 void print_variable(const oid * objid, size_t objidlen, 00156 const netsnmp_variable_list * variable); 00157 00158 void fprint_variable(FILE * fp, 00159 const oid * objid, size_t objidlen, 00160 const netsnmp_variable_list * variable); 00161 00162 int snprint_variable(char *buf, size_t buf_len, 00163 const oid * objid, size_t objidlen, 00164 const netsnmp_variable_list * variable); 00165 00166 int sprint_realloc_variable(u_char ** buf, 00167 size_t * buf_len, 00168 size_t * out_len, 00169 int allow_realloc, 00170 const oid * objid, 00171 size_t objidlen, 00172 const netsnmp_variable_list * 00173 variable); 00174 00175 #ifndef NETSNMP_DISABLE_MIB_LOADING 00176 struct tree * 00177 #else 00178 void 00179 #endif 00180 netsnmp_sprint_realloc_objid_tree(u_char ** buf, 00181 size_t * buf_len, 00182 size_t * out_len, 00183 int allow_realloc, 00184 int *buf_overflow, 00185 const oid * objid, 00186 size_t objidlen); 00187 00188 void 00189 netsnmp_sprint_realloc_objid(u_char ** buf, 00190 size_t * buf_len, 00191 size_t * out_len, 00192 int allow_realloc, 00193 int *buf_overflow, 00194 const oid * objid, 00195 size_t objidlen); 00196 00197 void print_value(const oid * objid, size_t objidlen, 00198 const netsnmp_variable_list * variable); 00199 00200 void fprint_value(FILE * fp, 00201 const oid * objid, size_t objidlen, 00202 const netsnmp_variable_list * variable); 00203 00204 int snprint_value(char *buf, size_t buf_len, 00205 const oid * objid, size_t objidlen, 00206 const netsnmp_variable_list * variable); 00207 00208 int sprint_realloc_value(u_char ** buf, size_t * buf_len, 00209 size_t * out_len, 00210 int allow_realloc, 00211 const oid * objid, 00212 size_t objidlen, 00213 const netsnmp_variable_list * variable); 00214 00215 00216 void print_objid(const oid * objid, size_t objidlen); 00217 00218 void fprint_objid(FILE * fp, 00219 const oid * objid, size_t objidlen); 00220 00221 int snprint_objid(char *buf, size_t buf_len, 00222 const oid * objid, size_t objidlen); 00223 00224 int sprint_realloc_objid(u_char ** buf, size_t * buf_len, 00225 size_t * out_len, 00226 int allow_realloc, 00227 const oid * objid, 00228 size_t objidlen); 00229 00230 00231 int sprint_realloc_by_type(u_char ** buf, size_t * buf_len, 00232 size_t * out_len, 00233 int allow_realloc, 00234 const netsnmp_variable_list * var, 00235 const struct enum_list *enums, 00236 const char *hint, 00237 const char *units); 00238 00239 int sprint_realloc_hexstring(u_char ** buf, 00240 size_t * buf_len, 00241 size_t * out_len, 00242 int allow_realloc, 00243 const u_char *, size_t); 00244 00245 int sprint_realloc_asciistring(u_char ** buf, 00246 size_t * buf_len, 00247 size_t * out_len, 00248 int allow_realloc, 00249 const u_char * cp, 00250 size_t len); 00251 00252 int sprint_realloc_octet_string(u_char ** buf, 00253 size_t * buf_len, 00254 size_t * out_len, 00255 int allow_realloc, 00256 const netsnmp_variable_list *, 00257 const struct enum_list *, 00258 const char *, 00259 const char *); 00260 00261 int sprint_realloc_opaque(u_char ** buf, size_t * buf_len, 00262 size_t * out_len, 00263 int allow_realloc, 00264 const netsnmp_variable_list *, 00265 const struct enum_list *, const char *, 00266 const char *); 00267 00268 int sprint_realloc_object_identifier(u_char ** buf, 00269 size_t * buf_len, 00270 size_t * out_len, 00271 int allow_realloc, 00272 const netsnmp_variable_list 00273 *, const struct enum_list *, 00274 const char *, 00275 const char *); 00276 00277 int sprint_realloc_timeticks(u_char ** buf, 00278 size_t * buf_len, 00279 size_t * out_len, 00280 int allow_realloc, 00281 const netsnmp_variable_list *, 00282 const struct enum_list *, 00283 const char *, const char *); 00284 00285 int sprint_realloc_hinted_integer(u_char ** buf, 00286 size_t * buf_len, 00287 size_t * out_len, 00288 int allow_realloc, long, 00289 const char, const char *, 00290 const char *); 00291 00292 int sprint_realloc_integer(u_char ** buf, size_t * buf_len, 00293 size_t * out_len, 00294 int allow_realloc, 00295 const netsnmp_variable_list *, 00296 const struct enum_list *, 00297 const char *, const char *); 00298 00299 int sprint_realloc_uinteger(u_char ** buf, 00300 size_t * buf_len, 00301 size_t * out_len, 00302 int allow_realloc, 00303 const netsnmp_variable_list *, 00304 const struct enum_list *, 00305 const char *, const char *); 00306 00307 int sprint_realloc_gauge(u_char ** buf, size_t * buf_len, 00308 size_t * out_len, 00309 int allow_realloc, 00310 const netsnmp_variable_list *, 00311 const struct enum_list *, const char *, 00312 const char *); 00313 00314 int sprint_realloc_counter(u_char ** buf, size_t * buf_len, 00315 size_t * out_len, 00316 int allow_realloc, 00317 const netsnmp_variable_list *, 00318 const struct enum_list *, 00319 const char *, const char *); 00320 00321 int sprint_realloc_networkaddress(u_char ** buf, 00322 size_t * buf_len, 00323 size_t * out_len, 00324 int allow_realloc, 00325 const netsnmp_variable_list *, 00326 const struct enum_list *, 00327 const char *, 00328 const char *); 00329 00330 int sprint_realloc_ipaddress(u_char ** buf, 00331 size_t * buf_len, 00332 size_t * out_len, 00333 int allow_realloc, 00334 const netsnmp_variable_list *, 00335 const struct enum_list *, 00336 const char *, const char *); 00337 00338 int sprint_realloc_null(u_char ** buf, size_t * buf_len, 00339 size_t * out_len, 00340 int allow_realloc, 00341 const netsnmp_variable_list *, 00342 const struct enum_list *, const char *, 00343 const char *); 00344 00345 int sprint_realloc_bitstring(u_char ** buf, 00346 size_t * buf_len, 00347 size_t * out_len, 00348 int allow_realloc, 00349 const netsnmp_variable_list *, 00350 const struct enum_list *, 00351 const char *, const char *); 00352 00353 int sprint_realloc_nsapaddress(u_char ** buf, 00354 size_t * buf_len, 00355 size_t * out_len, 00356 int allow_realloc, 00357 const netsnmp_variable_list *, 00358 const struct enum_list *, 00359 const char *, const char *); 00360 00361 int sprint_realloc_counter64(u_char ** buf, 00362 size_t * buf_len, 00363 size_t * out_len, 00364 int allow_realloc, 00365 const netsnmp_variable_list *, 00366 const struct enum_list *, 00367 const char *, const char *); 00368 00369 int sprint_realloc_badtype(u_char ** buf, size_t * buf_len, 00370 size_t * out_len, 00371 int allow_realloc, 00372 const netsnmp_variable_list *, 00373 const struct enum_list *, 00374 const char *, const char *); 00375 00376 #ifdef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES 00377 int sprint_realloc_float(u_char ** buf, size_t * buf_len, 00378 size_t * out_len, 00379 int allow_realloc, 00380 const netsnmp_variable_list *, 00381 const struct enum_list *, const char *, 00382 const char *); 00383 00384 int sprint_realloc_double(u_char ** buf, size_t * buf_len, 00385 size_t * out_len, 00386 int allow_realloc, 00387 const netsnmp_variable_list *, 00388 const struct enum_list *, const char *, 00389 const char *); 00390 #endif 00391 00392 00393 int snprint_by_type(char *buf, size_t buf_len, 00394 netsnmp_variable_list * var, 00395 const struct enum_list *enums, 00396 const char *hint, const char *units); 00397 00398 int snprint_hexstring(char *buf, size_t buf_len, 00399 const u_char *, size_t); 00400 00401 int snprint_asciistring(char *buf, size_t buf_len, 00402 const u_char * cp, size_t len); 00403 00404 int snprint_octet_string(char *buf, size_t buf_len, 00405 const netsnmp_variable_list *, 00406 const struct enum_list *, const char *, 00407 const char *); 00408 00409 int snprint_opaque(char *buf, size_t buf_len, 00410 const netsnmp_variable_list *, 00411 const struct enum_list *, const char *, 00412 const char *); 00413 00414 int snprint_object_identifier(char *buf, size_t buf_len, 00415 const netsnmp_variable_list *, 00416 const struct enum_list *, 00417 const char *, const char *); 00418 00419 int snprint_timeticks(char *buf, size_t buf_len, 00420 const netsnmp_variable_list *, 00421 const struct enum_list *, const char *, 00422 const char *); 00423 00424 int snprint_hinted_integer(char *buf, size_t buf_len, 00425 long, const char *, 00426 const char *); 00427 00428 int snprint_integer(char *buf, size_t buf_len, 00429 const netsnmp_variable_list *, 00430 const struct enum_list *, const char *, 00431 const char *); 00432 00433 int snprint_uinteger(char *buf, size_t buf_len, 00434 const netsnmp_variable_list *, 00435 const struct enum_list *, const char *, 00436 const char *); 00437 00438 int snprint_gauge(char *buf, size_t buf_len, 00439 const netsnmp_variable_list *, 00440 const struct enum_list *, const char *, 00441 const char *); 00442 00443 int snprint_counter(char *buf, size_t buf_len, 00444 const netsnmp_variable_list *, 00445 const struct enum_list *, const char *, 00446 const char *); 00447 00448 int snprint_networkaddress(char *buf, size_t buf_len, 00449 const netsnmp_variable_list *, 00450 const struct enum_list *, 00451 const char *, const char *); 00452 00453 int snprint_ipaddress(char *buf, size_t buf_len, 00454 const netsnmp_variable_list *, 00455 const struct enum_list *, const char *, 00456 const char *); 00457 00458 int snprint_null(char *buf, size_t buf_len, 00459 const netsnmp_variable_list *, 00460 const struct enum_list *, const char *, 00461 const char *); 00462 00463 int snprint_bitstring(char *buf, size_t buf_len, 00464 const netsnmp_variable_list *, 00465 const struct enum_list *, const char *, 00466 const char *); 00467 00468 int snprint_nsapaddress(char *buf, size_t buf_len, 00469 const netsnmp_variable_list *, 00470 const struct enum_list *, const char *, 00471 const char *); 00472 00473 int snprint_counter64(char *buf, size_t buf_len, 00474 const netsnmp_variable_list *, 00475 const struct enum_list *, const char *, 00476 const char *); 00477 00478 int snprint_badtype(char *buf, size_t buf_len, 00479 const netsnmp_variable_list *, 00480 const struct enum_list *, const char *, 00481 const char *); 00482 00483 #ifdef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES 00484 int snprint_float(char *buf, size_t buf_len, 00485 const netsnmp_variable_list *, 00486 const struct enum_list *, const char *, 00487 const char *); 00488 00489 int snprint_double(char *buf, size_t buf_len, 00490 const netsnmp_variable_list *, 00491 const struct enum_list *, const char *, 00492 const char *); 00493 #endif 00494 00495 void print_oid_report(FILE *); 00496 void print_oid_report_enable_labeledoid(void); 00497 void print_oid_report_enable_oid(void); 00498 void print_oid_report_enable_suffix(void); 00499 void print_oid_report_enable_symbolic(void); 00500 void print_oid_report_enable_mibchildoid(void); 00501 00502 const char *parse_octet_hint(const char *hint, const char *value, 00503 unsigned char **new_val, int *new_val_len); 00504 00505 void clear_tree_flags(register struct tree *tp); 00506 00507 char *snmp_out_toggle_options(char *); 00508 void snmp_out_toggle_options_usage(const char *, FILE *); 00509 char *snmp_in_toggle_options(char *); 00510 char *snmp_in_options(char *, int, char * const *); 00511 void snmp_in_toggle_options_usage(const char *, FILE *); 00512 u_char mib_to_asn_type(int mib_type); 00513 00514 00515 int netsnmp_str2oid(const char *S, oid * O, int L); 00516 00517 00518 #define NETSNMP_STRING_OUTPUT_GUESS 1 00519 #define NETSNMP_STRING_OUTPUT_ASCII 2 00520 #define NETSNMP_STRING_OUTPUT_HEX 3 00521 00522 #define NETSNMP_OID_OUTPUT_SUFFIX 1 00523 #define NETSNMP_OID_OUTPUT_MODULE 2 00524 #define NETSNMP_OID_OUTPUT_FULL 3 00525 #define NETSNMP_OID_OUTPUT_NUMERIC 4 00526 #define NETSNMP_OID_OUTPUT_UCD 5 00527 #define NETSNMP_OID_OUTPUT_NONE 6 00528 #ifdef __cplusplus 00529 } 00530 #endif 00531 #endif /* MIB_H */