SNMP MIB and callbacks

I am trying to add a new MIB for supporting snmpwalk on an OID. I see that my MIB.bin file loads fine (as per confd log), I see that my callpoint is registered (as per confd status).
But, snmpwalk fails. I get the error.
“iso.2.840.10006.300.43.1 = No Such Object available on this agent at this OID”

I also see following log whenever snmpwalk is fired.

=ERROR REPORT==== 10-Jul-2025::10:03:00.268967 ===
dbg <0.4583.0> 2/snmp snmpa_local_db:1089
ets_lookup: sysDescr

Can you please help me as to what am I missing? and also, is there a way to know what OIDs does confd support?

Hi Ashutosh,

We implement a lot of MIB data provider callpoints to provide data via SNMP and I will try to help you figuring out if any of the common issues we know may affect your setup.
Some more information about your observations will be helpful.

What ConfD/DMAP version do you use?

Do you see if any callback of the callpoint is invoked by ConfD?

Do you load the MIB .fxs file in addition to the .bin file?
Could you please share the output of “confd --status | grep mib-name” and the commands you used to compile the mib/yang/bin/fxs files?

CONFD version used – 8.0.16
Yes I see all the other callpoints being invoked. The newly added callpoint for my MIB is not getting invoked.

Yes, I loaded the fxs, bin files. Updated the confd.conf and I see my callpoint getting registered in confd --status. Which means my fxs and bins are loaded.

Commands used to generated yang

confdc --mib2yang-std
confdc -c --yangpath -a -o fxs file
confdc -o

confd --status | grep MIB

confd --status | grep IF802dot3-MIB
urn:ietf:params:xml:ns:yang:smiv2:IF802dot3-MIB prefix:IF802dot3-MIB exported to: SNMP
module: IF802dot3-MIB revision: 2025-07-02
namespace: urn:ietf:params:xml:ns:yang:smiv2:IF802dot3-MIB
prefix: IF802dot3-MIB
IF802dot3-MIB

This is my callpoint which is registered.

confd --status | grep LAG
id=ifLAGmib-cp daemonId=106 daemonName=0x7fa352468d10 callbacks=get_next,get_elem

Another thing to note is that, if I change my OID in mib file to point to a different OID than the standard here, things start working.
for instance, OID 1.3.6.1.4.1.51604.3.57.1 works.

I assume in the confdc “-a” flag you pass the annotation YANG file which contains the callpoint registration is this correct?

I also assume in the auditLog you can see successful authentication and access to the OID to which the callpoint is registered.

Unfortunately your compile commands are incomplete.
Can you double check that you specify the fxs file together with the mib file when building the bin file?
E.g. confdc -c -f ./dir -f /another/dir -- IF802dot3-MIB.mib IF802dot3-MIB.fxs

Yes. The compilation commands and other generation commands are correct and in the format you mentioned. Those are boiler plate commands which are used quite frequently.

Also, because I see callpoint being registered successfully the files are compiled correctly.
Any idea as to why after changing the OID things start to work?

Worth to mention the callpoint would also register successfully if you compile the .bin file with only the .mib file and miss to add the .fxs file.
But it would never be called, because it wouldn’t be linked between MIB<–>YANG.

The only other thing that comes to my mind are access rules (SNMP VACM, NACM/ConfD AAA), which is why I asked if the auditLog would give any hint.

Sorry, Ashutosh, I’m afraid I ran out of ideas at what else you could look at.
I think we didn’t observe such behavior before.

If you manage to find a solution I’d appretiate if you could update this thread so we can learn more about it.

I do provide fxs and mib file while generating the bin. It is the same command for both the working and non-working cases.

Any idea on how and which rules to check? how to enable them? I dont see anything on the developer logs too.

It depends on your setup, if you use SNMPv1/v2c/v3. The SNMP access rules are defined by you in the according MIBs (SNMP-COMMUNITY-MIB / SNMP-VIEW-BASED-ACM-MIB / SNMP-USER-BASED-SM-MIB for v3)

You can test the callpoint independently from the SNMP Agent and the MIB using command line tools.

Examples:
confd --check-callbacks /path/...
confd_cmd -o -c '-x /path//*' (use -o to read from the oper DB, assuming the MIB path is config false)

Good conversation and Community involvement. @metakidu mentioned the VACM rules. I used the 2-mib-to-yang example, replaced the OID with the ‘dot3’ OID, and reproduced your error message when I didn’t have the VACM rules set for that part of the tree:

snmpwalk -m ./SIMPLE-MIB.mib -c public -v2c localhost:4000 1.2.840.10006.300.43
SIMPLE-MIB::simpleMIB = No Such Object available on this agent at this OID

but then with:

<vacmViewTreeFamilyEntry>
      <vacmViewTreeFamilyViewName>internet</vacmViewTreeFamilyViewName>
      <vacmViewTreeFamilySubtree>1.2.840.10006.300.43.1</vacmViewTreeFamilySubtree>
      <vacmViewTreeFamilyMask></vacmViewTreeFamilyMask>
      <vacmViewTreeFamilyType>included</vacmViewTreeFamilyType>
    </vacmViewTreeFamilyEntry>

I get output:

snmpwalk -m ./SIMPLE-MIB.mib -c public -v2c localhost:4000 1.2.840.10006.300.43
SIMPLE-MIB::numberOfHosts.0 = INTEGER: 2
SIMPLE-MIB::hostEnabled."Kruul" = INTEGER: false(2)
SIMPLE-MIB::hostEnabled."Balnazzar" = INTEGER: true(1)
SIMPLE-MIB::hostNumberOfServers."Kruul" = INTEGER: 0
...