static struct route_table *rip_ifaddr_table;
/* Hook functions. */
-static u_char *rip2Globals(struct variable *, oid[], size_t *, int, size_t *,
- WriteMethod **);
-static u_char *rip2IfStatEntry(struct variable *, oid[], size_t *, int,
- size_t *, WriteMethod **);
-static u_char *rip2IfConfAddress(struct variable *, oid[], size_t *, int,
- size_t *, WriteMethod **);
-static u_char *rip2PeerTable(struct variable *, oid[], size_t *, int, size_t *,
- WriteMethod **);
+static uint8_t *rip2Globals(struct variable *, oid[], size_t *, int, size_t *,
+ WriteMethod **);
+static uint8_t *rip2IfStatEntry(struct variable *, oid[], size_t *, int,
+ size_t *, WriteMethod **);
+static uint8_t *rip2IfConfAddress(struct variable *, oid[], size_t *, int,
+ size_t *, WriteMethod **);
+static uint8_t *rip2PeerTable(struct variable *, oid[], size_t *, int, size_t *,
+ WriteMethod **);
static struct variable rip_variables[] = {
/* RIP Global Counters. */
extern struct thread_master *master;
-static u_char *rip2Globals(struct variable *v, oid name[], size_t *length,
- int exact, size_t *var_len,
- WriteMethod **write_method)
+static uint8_t *rip2Globals(struct variable *v, oid name[], size_t *length,
+ int exact, size_t *var_len,
+ WriteMethod **write_method)
{
+ struct rip *rip;
+
if (smux_header_generic(v, name, length, exact, var_len, write_method)
== MATCH_FAILED)
return NULL;
+ rip = rip_lookup_by_vrf_id(VRF_DEFAULT);
+ if (!rip)
+ return NULL;
+
/* Retrun global counter. */
switch (v->magic) {
case RIP2GLOBALROUTECHANGES:
- return SNMP_INTEGER(rip_global_route_changes);
+ return SNMP_INTEGER(rip->counters.route_changes);
break;
case RIP2GLOBALQUERIES:
- return SNMP_INTEGER(rip_global_queries);
+ return SNMP_INTEGER(rip->counters.queries);
break;
default:
return NULL;
if (!rn)
return 0;
i = rn->info;
- if (rn && !strncmp(i->name, ifp->name, INTERFACE_NAMSIZ)) {
+ if (!strncmp(i->name, ifp->name, INTERFACE_NAMSIZ)) {
rn->info = NULL;
route_unlock_node(rn);
route_unlock_node(rn);
size_t *length, struct in_addr *addr,
int exact)
{
+ struct rip *rip;
int len;
struct rip_peer *peer;
+ rip = rip_lookup_by_vrf_id(VRF_DEFAULT);
+ if (!rip)
+ return NULL;
+
if (exact) {
/* Check the length. */
if (*length - v->namelen != sizeof(struct in_addr) + 1)
oid2in_addr(name + v->namelen, sizeof(struct in_addr), addr);
- peer = rip_peer_lookup(addr);
+ peer = rip_peer_lookup(rip, addr);
if (peer->domain
== (int)name[v->namelen + sizeof(struct in_addr)])
oid2in_addr(name + v->namelen, len, addr);
len = *length - v->namelen;
- peer = rip_peer_lookup(addr);
+ peer = rip_peer_lookup(rip, addr);
if (peer) {
if ((len < (int)sizeof(struct in_addr) + 1)
|| (peer->domain
return peer;
}
}
- peer = rip_peer_lookup_next(addr);
+ peer = rip_peer_lookup_next(rip, addr);
if (!peer)
return NULL;
return NULL;
}
-static u_char *rip2IfStatEntry(struct variable *v, oid name[], size_t *length,
- int exact, size_t *var_len,
- WriteMethod **write_method)
+static uint8_t *rip2IfStatEntry(struct variable *v, oid name[], size_t *length,
+ int exact, size_t *var_len,
+ WriteMethod **write_method)
{
struct interface *ifp;
struct rip_interface *ri;
break;
case RIP2IFSTATRCVBADPACKETS:
*var_len = sizeof(long);
- return (u_char *)&ri->recv_badpackets;
+ return (uint8_t *)&ri->recv_badpackets;
case RIP2IFSTATRCVBADROUTES:
*var_len = sizeof(long);
- return (u_char *)&ri->recv_badroutes;
+ return (uint8_t *)&ri->recv_badroutes;
case RIP2IFSTATSENTUPDATES:
*var_len = sizeof(long);
- return (u_char *)&ri->sent_updates;
+ return (uint8_t *)&ri->sent_updates;
case RIP2IFSTATSTATUS:
*var_len = sizeof(long);
v->type = ASN_INTEGER;
- return (u_char *)&valid;
+ return (uint8_t *)&valid;
default:
return NULL;
return ripVersion2;
else if (ri->ri_send & RIPv1)
return ripVersion1;
- else if (rip) {
- if (rip->version_send == RIPv2)
+ else if (ri->rip) {
+ if (ri->rip->version_send == RIPv2)
return ripVersion2;
- else if (rip->version_send == RIPv1)
+ else if (ri->rip->version_send == RIPv1)
return ripVersion1;
}
return doNotSend;
if (!ri->running)
return doNotReceive;
- recvv = (ri->ri_receive == RI_RIP_UNSPEC) ? rip->version_recv
+ recvv = (ri->ri_receive == RI_RIP_UNSPEC) ? ri->rip->version_recv
: ri->ri_receive;
if (recvv == RI_RIP_VERSION_1_AND_2)
return rip1OrRip2;
return doNotReceive;
}
-static u_char *rip2IfConfAddress(struct variable *v, oid name[], size_t *length,
- int exact, size_t *val_len,
- WriteMethod **write_method)
+static uint8_t *rip2IfConfAddress(struct variable *v, oid name[],
+ size_t *length, int exact, size_t *val_len,
+ WriteMethod **write_method)
{
static struct in_addr addr;
static long valid = SNMP_INVALID;
static long domain = 0;
static long config = 0;
- static u_int auth = 0;
+ static unsigned int auth = 0;
struct interface *ifp;
struct rip_interface *ri;
switch (v->magic) {
case RIP2IFCONFADDRESS:
*val_len = sizeof(struct in_addr);
- return (u_char *)&addr;
+ return (uint8_t *)&addr;
case RIP2IFCONFDOMAIN:
*val_len = 2;
- return (u_char *)&domain;
+ return (uint8_t *)&domain;
case RIP2IFCONFAUTHTYPE:
auth = ri->auth_type;
*val_len = sizeof(long);
v->type = ASN_INTEGER;
- return (u_char *)&auth;
+ return (uint8_t *)&auth;
case RIP2IFCONFAUTHKEY:
*val_len = 0;
- return (u_char *)&domain;
+ return (uint8_t *)&domain;
case RIP2IFCONFSEND:
config = rip2IfConfSend(ri);
*val_len = sizeof(long);
v->type = ASN_INTEGER;
- return (u_char *)&config;
+ return (uint8_t *)&config;
case RIP2IFCONFRECEIVE:
config = rip2IfConfReceive(ri);
*val_len = sizeof(long);
v->type = ASN_INTEGER;
- return (u_char *)&config;
+ return (uint8_t *)&config;
case RIP2IFCONFDEFAULTMETRIC:
*val_len = sizeof(long);
v->type = ASN_INTEGER;
- return (u_char *)&ifp->metric;
+ return (uint8_t *)&ifp->metric;
case RIP2IFCONFSTATUS:
*val_len = sizeof(long);
v->type = ASN_INTEGER;
- return (u_char *)&valid;
+ return (uint8_t *)&valid;
case RIP2IFCONFSRCADDRESS:
*val_len = sizeof(struct in_addr);
- return (u_char *)&addr;
+ return (uint8_t *)&addr;
default:
return NULL;
return NULL;
}
-static u_char *rip2PeerTable(struct variable *v, oid name[], size_t *length,
- int exact, size_t *val_len,
- WriteMethod **write_method)
+static uint8_t *rip2PeerTable(struct variable *v, oid name[], size_t *length,
+ int exact, size_t *val_len,
+ WriteMethod **write_method)
{
static struct in_addr addr;
static int domain = 0;
switch (v->magic) {
case RIP2PEERADDRESS:
*val_len = sizeof(struct in_addr);
- return (u_char *)&peer->addr;
+ return (uint8_t *)&peer->addr;
case RIP2PEERDOMAIN:
*val_len = 2;
- return (u_char *)&domain;
+ return (uint8_t *)&domain;
case RIP2PEERLASTUPDATE:
#if 0
*/
*val_len = sizeof (time_t);
uptime = peer->uptime; /* now - snmp_agent_startup - peer->uptime */
- return (u_char *) &uptime;
+ return (uint8_t *) &uptime;
#else
- return (u_char *)NULL;
+ return (uint8_t *)NULL;
#endif
case RIP2PEERVERSION:
*val_len = sizeof(int);
version = peer->version;
- return (u_char *)&version;
+ return (uint8_t *)&version;
case RIP2PEERRCVBADPACKETS:
*val_len = sizeof(int);
- return (u_char *)&peer->recv_badpackets;
+ return (uint8_t *)&peer->recv_badpackets;
case RIP2PEERRCVBADROUTES:
*val_len = sizeof(int);
- return (u_char *)&peer->recv_badroutes;
+ return (uint8_t *)&peer->recv_badroutes;
default:
return NULL;