Annotation of embedaddon/quagga/lib/smux.h, revision 1.1.1.3

1.1       misho       1: /* SNMP support
                      2:  * Copyright (C) 1999 Kunihiro Ishiguro <kunihiro@zebra.org>
                      3:  *
                      4:  * This file is part of GNU Zebra.
                      5:  *
                      6:  * GNU Zebra is free software; you can redistribute it and/or modify it
                      7:  * under the terms of the GNU General Public License as published by the
                      8:  * Free Software Foundation; either version 2, or (at your option) any
                      9:  * later version.
                     10:  *
                     11:  * GNU Zebra is distributed in the hope that it will be useful, but
                     12:  * WITHOUT ANY WARRANTY; without even the implied warranty of
                     13:  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
                     14:  * General Public License for more details.
                     15:  *
                     16:  * You should have received a copy of the GNU General Public License
                     17:  * along with GNU Zebra; see the file COPYING.  If not, write to the Free
                     18:  * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
                     19:  * 02111-1307, USA.  
                     20:  */
                     21: 
                     22: #ifndef _ZEBRA_SNMP_H
                     23: #define _ZEBRA_SNMP_H
                     24: 
1.1.1.2   misho      25: #include <net-snmp/agent/net-snmp-agent-includes.h>
                     26: #include <net-snmp/agent/snmp_vars.h>
1.1       misho      27: 
1.1.1.3 ! misho      28: #include "thread.h"
        !            29: 
1.1       misho      30: /* Structures here are mostly compatible with UCD SNMP 4.1.1 */
                     31: #define MATCH_FAILED     (-1)
                     32: #define MATCH_SUCCEEDED  0
                     33: 
                     34: /* SYNTAX TruthValue from SNMPv2-TC. */
                     35: #define SNMP_TRUE  1
                     36: #define SNMP_FALSE 2
                     37: 
                     38: /* SYNTAX RowStatus from SNMPv2-TC. */
                     39: #define SNMP_VALID  1
                     40: #define SNMP_INVALID 2
                     41: 
                     42: #define IN_ADDR_SIZE sizeof(struct in_addr)
                     43: 
1.1.1.2   misho      44: #undef REGISTER_MIB
1.1       misho      45: #define REGISTER_MIB(descr, var, vartype, theoid)              \
                     46:     smux_register_mib(descr, (struct variable *)var, sizeof(struct vartype), \
                     47:     sizeof(var)/sizeof(struct vartype),                        \
                     48:     theoid, sizeof(theoid)/sizeof(oid))
                     49: 
                     50: struct trap_object
                     51: {
1.1.1.2   misho      52:   int namelen; /* Negative if the object is not indexed */
1.1       misho      53:   oid name[MAX_OID_LEN];
                     54: };
                     55: 
                     56: /* Declare SMUX return value. */
                     57: #define SNMP_LOCAL_VARIABLES \
1.1.1.3 ! misho      58:   static long snmp_int_val __attribute__ ((unused)); \
        !            59:   static struct in_addr snmp_in_addr_val __attribute__ ((unused));
1.1       misho      60: 
                     61: #define SNMP_INTEGER(V) \
                     62:   ( \
                     63:     *var_len = sizeof (snmp_int_val), \
                     64:     snmp_int_val = V, \
                     65:     (u_char *) &snmp_int_val \
                     66:   )
                     67: 
                     68: #define SNMP_IPADDRESS(V) \
                     69:   ( \
                     70:     *var_len = sizeof (struct in_addr), \
                     71:     snmp_in_addr_val = V, \
                     72:     (u_char *) &snmp_in_addr_val \
                     73:   )
                     74: 
                     75: extern void smux_init (struct thread_master *tm);
                     76: extern void smux_register_mib(const char *, struct variable *, 
                     77:                               size_t, int, oid [], size_t);
                     78: extern int smux_header_generic (struct variable *, oid [], size_t *, 
                     79:                                 int, size_t *, WriteMethod **);
1.1.1.2   misho      80: extern int smux_header_table (struct variable *, oid *, size_t *, 
                     81:                              int, size_t *, WriteMethod **);
                     82: 
                     83: /* For traps, three OID are provided:
                     84: 
                     85:  1. The enterprise OID to use (the last argument will be appended to
                     86:     it to form the SNMP trap OID)
                     87: 
                     88:  2. The base OID for objects to be sent in traps.
                     89: 
                     90:  3. The index OID for objects to be sent in traps. This index is used
                     91:     to designate a particular instance of a column.
                     92: 
                     93:  The provided trap object contains the bindings to be sent with the
                     94:  trap. The base OID will be prefixed to the provided OID and, if the
                     95:  length is positive, the requested OID is assumed to be a columnar
                     96:  object and the index OID will be appended.
                     97: 
                     98:  The two first arguments are the MIB registry used to locate the trap
                     99:  objects.
                    100: 
                    101:  The use of the arguments may differ depending on the implementation
                    102:  used.
                    103: */
                    104: extern int smux_trap (struct variable *, size_t,
                    105:                      const oid *, size_t,
                    106:                      const oid *, size_t,
                    107:                      const oid *, size_t,
                    108:                      const struct trap_object *, size_t,
                    109:                      u_char);
                    110: 
1.1.1.3 ! misho     111: extern int oid_compare (const oid *, int, const oid *, int);
1.1       misho     112: extern void oid2in_addr (oid [], int, struct in_addr *);
                    113: extern void *oid_copy (void *, const void *, size_t);
                    114: extern void oid_copy_addr (oid [], struct in_addr *, int);
                    115: 
                    116: #endif /* _ZEBRA_SNMP_H */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>