Il modulo snmp_index implementa un tipo di dati astratto (ADT) per una struttura di indice SNMP per le tabelle SNMP. È implementato come una tabella ets del tipo di dati order_set, il che significa che tutte le operazioni sono O (log n). Nella tabella, la chiave è un IDENTIFICATORE OGGETTO ASN.1.
Questo indice viene utilizzato per separare l'implementazione dell'ordinamento SNMP dall'attuazione effettiva della tabella. L'ordinamento SNMP, ovvero l'implementazione di GET NEXT, è implementato in questo modulo.
Ad esempio, supponiamo che esista una tabella SNMP, che è meglio implementata in Erlang come un processo per riga di tabella SNMP. Supponiamo inoltre che l'INDICE nella tabella SNMP sia una STRETTA OCTET. La struttura dell'indice verrebbe creata come segue:
snmp_index:new(string)
Per ogni nuovo processo che creiamo, inseriamo un elemento in una struttura snmp_index:
new_process(Name, SnmpIndex) ->
Pid = start_process(),
NewSnmpIndex =
snmp_index:insert(SnmpIndex, Name, Pid),
<...>
Con questa struttura, ora possiamo mappare un IDENTIFICATORE DI OGGETTI, ad esempio in una richiesta OTTIENI SUCCESSIVA, al processo corretto:
get_next_pid(Oid, SnmpIndex) ->
{ok, {_, Pid}} = snmp_index:get_next(SnmpIndex, Oid),
Pid.
In conclusione con le informazioni che conosco e le informazioni fornite nella citazione precedente, ritengo che gli indici SNMP non debbano essere modificati a causa del fatto che vanificherebbe lo scopo di un indice (correggimi se sbaglio).
AGGIORNAMENTO: A mio modo di vedere, un indice SNMP è simile a un indice del database, ma indicizza i dispositivi di rete come riferimento. L'unica volta che questo indice dovrebbe cambiare è quando l'hardware viene rimosso o aggiunto. Non vorrai che gli indici del tuo database cambiassero su un record esistente perché potrebbe causare duplicati o altri problemi. Forse qualcuno potrebbe far luce su questa domanda con un'altra risposta o commento. Conosco molto bene il networking, ma non ho mai sentito parlare del cambiamento degli indici SNMP. Ho cercato su Google per circa un'ora e non ho trovato niente di molto utile oltre alla pagina web già menzionata e alla pagina Wiki .