summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonald Sharp <donaldsharp72@gmail.com>2024-10-01 18:01:26 -0400
committerGitHub <noreply@github.com>2024-10-01 18:01:26 -0400
commit7d4eeb3584e72b32396f9390f1a6de934aad92c3 (patch)
tree085f0528d0be417c8df346583b0bc92f3160b9c9
parent5105661f2b8ff6c56cb1bbad12e1f3bea820099d (diff)
parentaad4ef186838730a672c260fb19d932331944ff5 (diff)
Merge pull request #16924 from FRRouting/mergify/bp/stable/8.4/pr-16918
zebra snmp fixes (backport #16918)
-rw-r--r--zebra/zebra_snmp.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/zebra/zebra_snmp.c b/zebra/zebra_snmp.c
index 6fe24dfa54..13409417c4 100644
--- a/zebra/zebra_snmp.c
+++ b/zebra/zebra_snmp.c
@@ -242,6 +242,8 @@ static int proto_trans(int type)
return 3; /* static route */
case ZEBRA_ROUTE_RIP:
return 8; /* rip */
+ case ZEBRA_ROUTE_ISIS:
+ return 9;
case ZEBRA_ROUTE_RIPNG:
return 1; /* shouldn't happen */
case ZEBRA_ROUTE_OSPF:
@@ -250,6 +252,8 @@ static int proto_trans(int type)
return 1; /* shouldn't happen */
case ZEBRA_ROUTE_BGP:
return 14; /* bgp */
+ case ZEBRA_ROUTE_EIGRP:
+ return 16;
default:
return 1; /* other */
}
@@ -266,9 +270,11 @@ static void check_replace(struct route_node *np2, struct route_entry *re2,
return;
}
- if (prefix_cmp(&(*np)->p, &np2->p) < 0)
+ if (in_addr_cmp((uint8_t *)&(*np)->p.u.prefix4,
+ (uint8_t *)&np2->p.u.prefix4) < 0)
return;
- if (prefix_cmp(&(*np)->p, &np2->p) > 0) {
+ if (in_addr_cmp((uint8_t *)&(*np)->p.u.prefix4,
+ (uint8_t *)&np2->p.u.prefix4) > 0) {
*np = np2;
*re = re2;
return;
@@ -311,14 +317,8 @@ static void get_fwtable_route_node(struct variable *v, oid objid[],
int i;
/* Init index variables */
-
- pnt = (uint8_t *)&dest;
- for (i = 0; i < 4; i++)
- *pnt++ = 0;
-
- pnt = (uint8_t *)&nexthop;
- for (i = 0; i < 4; i++)
- *pnt++ = 0;
+ memset(&dest, 0, sizeof(dest));
+ memset(&nexthop, 0, sizeof(nexthop));
proto = 0;
policy = 0;
@@ -509,23 +509,23 @@ static uint8_t *ipFwTable(struct variable *v, oid objid[], size_t *objid_len,
*val_len = sizeof(int);
return (uint8_t *)&result;
case IPFORWARDMETRIC1:
- result = 0;
+ result = re->metric;
*val_len = sizeof(int);
return (uint8_t *)&result;
case IPFORWARDMETRIC2:
- result = 0;
+ result = -1;
*val_len = sizeof(int);
return (uint8_t *)&result;
case IPFORWARDMETRIC3:
- result = 0;
+ result = -1;
*val_len = sizeof(int);
return (uint8_t *)&result;
case IPFORWARDMETRIC4:
- result = 0;
+ result = -1;
*val_len = sizeof(int);
return (uint8_t *)&result;
case IPFORWARDMETRIC5:
- result = 0;
+ result = -1;
*val_len = sizeof(int);
return (uint8_t *)&result;
default: