version 1.1.1.1, 2012/02/21 17:26:11
|
version 1.1.1.2, 2013/07/21 23:54:41
|
Line 22
|
Line 22
|
#include <zebra.h> |
#include <zebra.h> |
|
|
#ifdef HAVE_SNMP |
#ifdef HAVE_SNMP |
#ifdef HAVE_NETSNMP |
|
#include <net-snmp/net-snmp-config.h> |
#include <net-snmp/net-snmp-config.h> |
#include <net-snmp/net-snmp-includes.h> |
#include <net-snmp/net-snmp-includes.h> |
#else |
|
#include <asn1.h> |
|
#include <snmp.h> |
|
#include <snmp_impl.h> |
|
#endif |
|
|
|
#include "if.h" |
#include "if.h" |
#include "log.h" |
#include "log.h" |
Line 156 ipFwNumber (struct variable *v, oid objid[], size_t *o
|
Line 150 ipFwNumber (struct variable *v, oid objid[], size_t *o
|
/* Return number of routing entries. */ |
/* Return number of routing entries. */ |
result = 0; |
result = 0; |
for (rn = route_top (table); rn; rn = route_next (rn)) |
for (rn = route_top (table); rn; rn = route_next (rn)) |
for (rib = rn->info; rib; rib = rib->next) | RNODE_FOREACH_RIB (rn, rib) |
result++; |
result++; |
|
|
return (u_char *)&result; |
return (u_char *)&result; |
Line 181 ipCidrNumber (struct variable *v, oid objid[], size_t
|
Line 175 ipCidrNumber (struct variable *v, oid objid[], size_t
|
/* Return number of routing entries. */ |
/* Return number of routing entries. */ |
result = 0; |
result = 0; |
for (rn = route_top (table); rn; rn = route_next (rn)) |
for (rn = route_top (table); rn; rn = route_next (rn)) |
for (rib = rn->info; rib; rib = rib->next) | RNODE_FOREACH_RIB (rn, rib) |
result++; |
result++; |
|
|
return (u_char *)&result; |
return (u_char *)&result; |
Line 375 get_fwtable_route_node(struct variable *v, oid objid[]
|
Line 369 get_fwtable_route_node(struct variable *v, oid objid[]
|
{ |
{ |
if (!in_addr_cmp(&(*np)->p.u.prefix, (u_char *)&dest)) |
if (!in_addr_cmp(&(*np)->p.u.prefix, (u_char *)&dest)) |
{ |
{ |
for (*rib = (*np)->info; *rib; *rib = (*rib)->next) | RNODE_FOREACH_RIB (*np, *rib) |
{ |
{ |
if (!in_addr_cmp((u_char *)&(*rib)->nexthop->gate.ipv4, |
if (!in_addr_cmp((u_char *)&(*rib)->nexthop->gate.ipv4, |
(u_char *)&nexthop)) |
(u_char *)&nexthop)) |
Line 394 get_fwtable_route_node(struct variable *v, oid objid[]
|
Line 388 get_fwtable_route_node(struct variable *v, oid objid[]
|
|
|
/* Check destination first */ |
/* Check destination first */ |
if (in_addr_cmp(&np2->p.u.prefix, (u_char *)&dest) > 0) |
if (in_addr_cmp(&np2->p.u.prefix, (u_char *)&dest) > 0) |
for (rib2 = np2->info; rib2; rib2 = rib2->next) | RNODE_FOREACH_RIB (np2, rib2) |
check_replace(np2, rib2, np, rib); |
check_replace(np2, rib2, np, rib); |
|
|
if (in_addr_cmp(&np2->p.u.prefix, (u_char *)&dest) == 0) |
if (in_addr_cmp(&np2->p.u.prefix, (u_char *)&dest) == 0) |
{ /* have to look at each rib individually */ |
{ /* have to look at each rib individually */ |
for (rib2 = np2->info; rib2; rib2 = rib2->next) | RNODE_FOREACH_RIB (np2, rib2) |
{ |
{ |
int proto2, policy2; |
int proto2, policy2; |
|
|
Line 457 ipFwTable (struct variable *v, oid objid[], size_t *ob
|
Line 451 ipFwTable (struct variable *v, oid objid[], size_t *ob
|
static struct in_addr netmask; |
static struct in_addr netmask; |
struct nexthop *nexthop; |
struct nexthop *nexthop; |
|
|
|
if (smux_header_table(v, objid, objid_len, exact, val_len, write_method) |
|
== MATCH_FAILED) |
|
return NULL; |
|
|
get_fwtable_route_node(v, objid, objid_len, exact, &np, &rib); |
get_fwtable_route_node(v, objid, objid_len, exact, &np, &rib); |
if (!np) |
if (!np) |
return NULL; |
return NULL; |
Line 555 static u_char *
|
Line 553 static u_char *
|
ipCidrTable (struct variable *v, oid objid[], size_t *objid_len, |
ipCidrTable (struct variable *v, oid objid[], size_t *objid_len, |
int exact, size_t *val_len, WriteMethod **write_method) |
int exact, size_t *val_len, WriteMethod **write_method) |
{ |
{ |
|
if (smux_header_table(v, objid, objid_len, exact, val_len, write_method) |
|
== MATCH_FAILED) |
|
return NULL; |
|
|
switch (v->magic) |
switch (v->magic) |
{ |
{ |
case IPCIDRROUTEDEST: |
case IPCIDRROUTEDEST: |