Hello,

I have written a module allowing to add "specifics" interfaces at a fixed oid (50000) following the "linux" interfaces provided by default by the package (version 5.7.3).

However, it's not good for the customer has there is ".0" at the end of the oids inserted for the "specifics" interfaces (the same oids for the "linux" interfaces do not have this ".0" at the end).

Example: request on the "alias field" of the mib2 (in ifXEntry)

$ snmpwalk -v2c -c neufnet 192.168.247.123 1.3.6.1.2.1.31.1.1.1.18
iso.3.6.1.2.1.31.1.1.1.18.1 = ""
iso.3.6.1.2.1.31.1.1.1.18.2 = ""
iso.3.6.1.2.1.31.1.1.1.18.3 = ""
iso.3.6.1.2.1.31.1.1.1.18.4 = ""
iso.3.6.1.2.1.31.1.1.1.18.5 = ""
iso.3.6.1.2.1.31.1.1.1.18.6 = ""
iso.3.6.1.2.1.31.1.1.1.18.7 = ""
iso.3.6.1.2.1.31.1.1.1.18.8 = ""
iso.3.6.1.2.1.31.1.1.1.18.9 = ""
iso.3.6.1.2.1.31.1.1.1.18.10 = ""
iso.3.6.1.2.1.31.1.1.1.18.11 = ""
iso.3.6.1.2.1.31.1.1.1.18.50000.0 = STRING: "description of the specific interface"        <= Here is the oid inserted by the module with the ".0" at the end

Instead of having:

iso.3.6.1.2.1.31.1.1.1.18.50000.0 = STRING: "description of the specific interface"

I would like having:

iso.3.6.1.2.1.31.1.1.1.18.50000 = STRING: "description of the specific interface"


May be someone has ever faced the same issue ?


Best Regards,

Damien GARCIA


Bellow the some parts of the code I use to create the module:


#define OFFSET_TO_GPON 50000

#define ALIAS    18

static struct variable2 gpon_fields_alias[] = { ALIAS, ASN_OCTET_STR, RONLY, var_update_field, 2, { 18, 0 } };

static oid gpon_fields_alias_oid[] = { 1, 3, 6, 1, 2, 1, 31, 1, 1, 1 }; /* .1.3.6.1.2.1.31.1.1.1  (ifXEntry) */

static void register_mib_interface_tree()
{
    /* Register OID for gpon0 alias in ifXEntry*/
    gpon_fields_alias[0].name[1] = OFFSET_TO_GPON;
    REGISTER_MIB("gpon_fields_alias", gpon_fields_alias, variable2, gpon_fields_alias_oid);
}

static u_char* var_update_field(struct variable *vp, oid * name, size_t * length, int exact, size_t * var_len, WriteMethod ** write_method)
{
    DEBUGMSGTL(("gpon0", "var_update_field entered\n"));
    if (header_generic(vp, name, length, exact, var_len, write_method) == MATCH_FAILED) {         snmp_log(LOG_ERR, "Error header_generic_fix: return MATCH_FAILED !\n");
        return NULL;
    }

    switch (vp->magic) {
    case ALIAS: /* This object is an 'alias' name for the interface as specified by a network manager, and provides a non-volatile 'handle' for the interface */
        *var_len = strlen(descriptionGpon_g);
        return (u_char *) descriptionGpon_g;

    default:
        DEBUGMSGTL(("snmpd", "unknown sub-id %d in mib_gpon/var_update_field\n", vp->magic));

    }
    return NULL;
}



_______________________________________________
Net-snmp-coders mailing list
Net-snmp-coders@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders

Reply via email to