net-snmp supporta entrambi i protocolli di estensione dell'agente smux e agentx, consentendo ai sub-agenti di vivere in processi diversi. Hanno anche un tutorial sulla scrittura di subagenti AgentX in C.
Una soluzione spesso trascurata è l'API Agent++, che a me sembra piuttosto carina ed è sotto licenza Apache. Per quanto ne so, puoi modificare quell'agente in modo che risponda ai tuoi MIB.
Detto questo, fare un subagente non è una cattiva scelta. Si avvia lo snmpd standard senza patch (da net-snmp). Quindi ti connetti ad esso con il tuo subagente, che aggiunge solo quegli OID che vuoi che aggiunga. Il kit net-snmp per codificare i sub-agenti AgentX (come viene chiamato il protocollo) non è semplicissimo da usare, ma nemmeno molto difficile. C'è anche un modulo Perl per lo sviluppo di sub-agent:https://metacpan.org/pod/NetSNMP::agent
Il modo tradizionale per farlo in Linux è usare il pacchetto net-snmp. Assicurati di scrivere prima il MIB. Tutto è basato sul MIB e le modifiche al MIB di solito comportano molte modifiche al codice. La codifica per net-snmp non è difficile e c'è molta documentazione per iniziare, ad esempio:http://www.net-snmp.org/wiki/index.php/Tutorials#Coding_Tutorials