El módulo snmp_index implementa un tipo de datos abstractos (ADT) para una estructura de índice SNMP para tablas SNMP. Se implementa como una tabla ets del tipo de datos ordenados, lo que significa que todas las operaciones son O (log n). En la tabla, la clave es un IDENTIFICADOR DE OBJETO ASN.1.
Este índice se utiliza para separar la implementación del pedido SNMP de la implementación real de la tabla. El pedido SNMP, que es la implementación de GET NEXT, se implementa en este módulo.
Por ejemplo, suponga que hay una tabla SNMP, que se implementa mejor en Erlang como un proceso por fila de la tabla SNMP. Supongamos además que el ÍNDICE en la tabla SNMP es una OCTET STRING. La estructura del índice se crearía de la siguiente manera:
snmp_index:new(string)
Para cada nuevo proceso que creamos, insertamos un elemento en una estructura snmp_index:
new_process(Name, SnmpIndex) ->
Pid = start_process(),
NewSnmpIndex =
snmp_index:insert(SnmpIndex, Name, Pid),
<...>
Con esta estructura, ahora podemos asignar un IDENTIFICADOR DE OBJETO en, por ejemplo, una solicitud GET NEXT, al proceso correcto:
get_next_pid(Oid, SnmpIndex) ->
{ok, {_, Pid}} = snmp_index:get_next(SnmpIndex, Oid),
Pid.
En conclusión con la información que conozco y la información provista en la cita anterior, creo que los índices SNMP no deberían cambiarse debido a que podría anular el propósito de un índice (corríjame si me equivoco).
ACTUALIZACIÓN: A mi modo de ver, un índice SNMP es similar a un índice de base de datos, pero indexa los dispositivos de red como referencia. El único momento en que este índice debe cambiar es cuando se elimina o agrega hardware. No querrá que sus índices de base de datos cambien en un registro existente porque podría causar duplicados u otros problemas. Tal vez alguien podría arrojar algo de luz sobre esta pregunta con otra respuesta o comentario. Sé mucho acerca de las redes, pero nunca he oído hablar de cambios en indeces SNMP. Busqué en Google esto durante aproximadamente una hora y no encontré nada muy útil aparte de la página web ya mencionada y la página Wiki .