diff options
Diffstat (limited to 'agent/mibgroup/mibII/ipCidrRouteTable_access.c')
-rw-r--r-- | agent/mibgroup/mibII/ipCidrRouteTable_access.c | 258 |
1 files changed, 258 insertions, 0 deletions
diff --git a/agent/mibgroup/mibII/ipCidrRouteTable_access.c b/agent/mibgroup/mibII/ipCidrRouteTable_access.c new file mode 100644 index 0000000..c905c4b --- /dev/null +++ b/agent/mibgroup/mibII/ipCidrRouteTable_access.c @@ -0,0 +1,258 @@ + +/* + * Note: this file originally auto-generated by mib2c using + * : mib2c.access_functions.conf$ + */ + +#include <net-snmp/net-snmp-config.h> +#include "route_headers.h" +#include <net-snmp/net-snmp-includes.h> +#include <net-snmp/agent/net-snmp-agent-includes.h> +#include "ipCidrRouteTable_access.h" +#include "ipCidrRouteTable_enums.h" + +/* + * NOTE: + * - these GET routines MUST return freshly malloced data and must not + * return a pointer which is still in use somewhere else. + * - these SET routines must copy the incoming data and can not take + * ownership of the memory passed in by the val pointer. + */ + +/** a global static we'll make use of a lot to map to the right + datatype to return (which for SNMP integer's is always a long). */ +static u_long long_ret; +static in_addr_t addr_ret; + +/* + * User-defined data access functions for data in table ipCidrRouteTable + */ + +u_long * +get_ipCidrRouteDest(void *data_context, size_t * ret_len) +{ + RTENTRY *ourroute = (RTENTRY *) data_context; + addr_ret = ((struct sockaddr_in *) (&ourroute->rt_dst))->sin_addr.s_addr; + *ret_len = sizeof(addr_ret); + return &addr_ret; +} + +u_long * +get_ipCidrRouteMask(void *data_context, size_t * ret_len) +{ + RTENTRY *ourroute = (RTENTRY *) data_context; + addr_ret = ((struct sockaddr_in *) (&ourroute->rt_genmask))->sin_addr.s_addr; + *ret_len = sizeof(addr_ret); + return &addr_ret; +} + +long * +get_ipCidrRouteTos(void *data_context, size_t * ret_len) +{ + RTENTRY *ourroute = (RTENTRY *) data_context; + long_ret = ourroute->rt_tos; + *ret_len = sizeof(long_ret); + return &long_ret; +} + +u_long * +get_ipCidrRouteNextHop(void *data_context, size_t * ret_len) +{ + RTENTRY *ourroute = (RTENTRY *) data_context; + addr_ret = ((struct sockaddr_in *) (&ourroute->rt_gateway))->sin_addr.s_addr; + *ret_len = sizeof(addr_ret); + return &addr_ret; +} + +long * +get_ipCidrRouteIfIndex(void *data_context, size_t * ret_len) +{ + RTENTRY *ourroute = (RTENTRY *) data_context; + long_ret = ourroute->rt_unit; + *ret_len = sizeof(long_ret);; + return &long_ret; +} + +int +set_ipCidrRouteIfIndex(void *data_context, long *val, size_t val_len) +{ + return SNMP_ERR_NOERROR; /** XXX: change if an error occurs */ +} + +long * +get_ipCidrRouteType(void *data_context, size_t * ret_len) +{ + RTENTRY *ourroute = (RTENTRY *) data_context; + + if (ourroute->rt_flags & RTF_UP) { + if (ourroute->rt_flags & RTF_GATEWAY) { + long_ret = IPCIDRROUTETYPE_REMOTE; + } else { + long_ret = IPCIDRROUTETYPE_LOCAL; + } + } else { + long_ret = IPCIDRROUTETYPE_REJECT; + } + *ret_len = sizeof(long_ret); + return &long_ret; + +} + +int +set_ipCidrRouteType(void *data_context, long *val, size_t val_len) +{ + return SNMP_ERR_NOERROR; /** XXX: change if an error occurs */ +} + +long * +get_ipCidrRouteProto(void *data_context, size_t * ret_len) +{ + RTENTRY *ourroute = (RTENTRY *) data_context; + /* XXX: this is wacked */ + long_ret = (ourroute->rt_flags & RTF_DYNAMIC) + ? IPCIDRROUTEPROTO_ICMP : IPCIDRROUTEPROTO_LOCAL; + *ret_len = sizeof(long_ret); + return &long_ret; +} + +long * +get_ipCidrRouteAge(void *data_context, size_t * ret_len) +{ + long_ret = 0; /* we don't know, and defval = 0 */ + *ret_len = sizeof(long_ret); + return &long_ret; +} + +oid * +get_ipCidrRouteInfo(void *data_context, size_t * ret_len) +{ + static oid zerodotzero[2] = { 0, 0 }; + *ret_len = sizeof(zerodotzero); + return zerodotzero; +} + +int +set_ipCidrRouteInfo(void *data_context, oid * val, size_t val_len) +{ + return SNMP_ERR_NOERROR; /** XXX: change if an error occurs */ +} + +/** XXX: return a data pointer to the data for the ipCidrRouteNextHopAS column and set + ret_len to its proper size in bytes. */ +long * +get_ipCidrRouteNextHopAS(void *data_context, size_t * ret_len) +{ + long_ret = 0; /* we don't know, and defval = 0 */ + *ret_len = sizeof(long_ret); + return &long_ret; +} + +int +set_ipCidrRouteNextHopAS(void *data_context, long *val, size_t val_len) +{ + return SNMP_ERR_NOERROR; /** XXX: change if an error occurs */ +} + +long * +get_ipCidrRouteMetric1(void *data_context, size_t * ret_len) +{ + RTENTRY *ourroute = (RTENTRY *) data_context; + long_ret = ourroute->rt_metric; + *ret_len = sizeof(long_ret); + return &long_ret; +} + +int +set_ipCidrRouteMetric1(void *data_context, long *val, size_t val_len) +{ + return SNMP_ERR_NOERROR; /** XXX: change if an error occurs */ +} + +long * +get_ipCidrRouteMetric2(void *data_context, size_t * ret_len) +{ + long_ret = -1; /* unused */ + *ret_len = sizeof(long_ret); + return &long_ret; +} + + /** XXX: Set the value of the ipCidrRouteMetric2 column and return + SNMPERR_SUCCESS on SNMPERR_GENERR on failure. */ +int +set_ipCidrRouteMetric2(void *data_context, long *val, size_t val_len) +{ + return SNMP_ERR_NOERROR; /** XXX: change if an error occurs */ +} + +/** XXX: return a data pointer to the data for the ipCidrRouteMetric3 column and set + ret_len to its proper size in bytes. */ +long * +get_ipCidrRouteMetric3(void *data_context, size_t * ret_len) +{ + long_ret = -1; /* unused */ + *ret_len = sizeof(long_ret); + return &long_ret; +} + + /** XXX: Set the value of the ipCidrRouteMetric3 column and return + SNMPERR_SUCCESS on SNMPERR_GENERR on failure. */ +int +set_ipCidrRouteMetric3(void *data_context, long *val, size_t val_len) +{ + return SNMP_ERR_NOERROR; /** XXX: change if an error occurs */ +} + +/** XXX: return a data pointer to the data for the ipCidrRouteMetric4 column and set + ret_len to its proper size in bytes. */ +long * +get_ipCidrRouteMetric4(void *data_context, size_t * ret_len) +{ + long_ret = -1; /* unused */ + *ret_len = sizeof(long_ret); + return &long_ret; +} + + /** XXX: Set the value of the ipCidrRouteMetric4 column and return + SNMPERR_SUCCESS on SNMPERR_GENERR on failure. */ +int +set_ipCidrRouteMetric4(void *data_context, long *val, size_t val_len) +{ + return SNMP_ERR_NOERROR; /** XXX: change if an error occurs */ +} + +/** XXX: return a data pointer to the data for the ipCidrRouteMetric5 column and set + ret_len to its proper size in bytes. */ +long * +get_ipCidrRouteMetric5(void *data_context, size_t * ret_len) +{ + long_ret = -1; /* unused */ + *ret_len = sizeof(long_ret); + return &long_ret; +} + + /** XXX: Set the value of the ipCidrRouteMetric5 column and return + SNMPERR_SUCCESS on SNMPERR_GENERR on failure. */ +int +set_ipCidrRouteMetric5(void *data_context, long *val, size_t val_len) +{ + return SNMP_ERR_NOERROR; /** XXX: change if an error occurs */ +} + +/** XXX: return a data pointer to the data for the ipCidrRouteStatus column and set + ret_len to its proper size in bytes. */ +long * +get_ipCidrRouteStatus(void *data_context, size_t * ret_len) +{ + /* the only value supported for real routes */ + long_ret = IPCIDRROUTESTATUS_ACTIVE; + *ret_len = sizeof(long_ret); + return &long_ret; +} + + /** XXX: Set the value of the ipCidrRouteStatus column and return + SNMPERR_SUCCESS on SNMPERR_GENERR on failure. */ +int +set_ipCidrRouteStatus(void *data_context, long *val, size_t val_len) +{ + return SNMP_ERR_NOERROR; /** XXX: change if an error occurs */ +} |