]> git.puffer.fish Git - matthieu/frr.git/commitdiff
zebra: Correctly report metrics
authorDonald Sharp <sharpd@nvidia.com>
Wed, 25 Sep 2024 16:09:40 +0000 (12:09 -0400)
committerMergify <37929162+mergify[bot]@users.noreply.github.com>
Wed, 25 Sep 2024 18:51:42 +0000 (18:51 +0000)
Report the routes metric in IPFORWARDMETRIC1 and return
-1 for the other metrics as required by the IP-FORWARD-MIB.

inetCidrRouteMetric2 OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
           "An alternate routing metric for this route.  The
            semantics of this metric are determined by the routing-
            protocol specified in the route's inetCidrRouteProto
            value.  If this metric is not used, its value should be
            set to -1."
    DEFVAL { -1 }
    ::= { inetCidrRouteEntry 13 }

I've included metric2 but it's the same for all of them.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit e41ae0acc1940b568def5018efad3df019023f85)

zebra/zebra_snmp.c

index 006f7b4fab87bdcfc814fb955f9bbd6aafcbd77b..c9f27e70f86b6ddb8658a81a982ade36149332ee 100644 (file)
@@ -491,23 +491,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: