[AGENT++] Creating Rows in Shared MIB Tables
Mark Ellison
ellison at ieee.org
Fri Feb 20 18:27:32 CET 2004
Hi Frank and Jen,
Thought I might add some comments inline...
Frank Fock wrote:
> Jens,
>
> A very good question! AgentX does not provide any mechanism
> for sharing tables with a RowStatus column (thus tables where
> rows can be created dynamically via SNMP requests).
> There are three possible solutions:
>
> 1. The subagents are using preallocated index ranges, but this
> requires that the managers know these ranges and the implicit mapping
> to subagents (although this could probably extracted from the
> AGENTX-MIB).
This approach works for well known mappings of indice sets to subagents
for the shared table. Each subagent simply registers its set of
indices, even for rows that do not exist. When a set-create is
received, it will be directed to the appropriate subagent. Doesn't
scale well though.
>
> 2. Use contexts as you suggested in your posting. Each subagent uses
> its own context. But then you have no longer a shared table.
> Nevertheless,
> there could be built a read-only shared table in the default context.
non-default contexts are an alternate form of indexing, however manager
needs to keep track of which context correlates to which subagent,
instead of which set of indices correlates to which subagent. Its
tempting to work through the idea of set/creating in a non-default
context and see the composite table within the default context. One
would still need to be creative with mapping indice values between contexts.
>
> 3. Use an object outside the table to create rows in the table.
(actually, a favorite hack :-). Most tables that are shared and that
provide set/create functionality should have companion objects that
serve as an aid to managers. For example, a "next available index"
object. There would need to be one subagent that registers at a subtree
node that sits above both the companion object and the table and acts as
an "orchestrator" for the shared table.
Thus, a set-create request for a non-existent row would be dispatched to
the orchestration subagent since shared-table subagents, in this
paradigm, only register existing rows at the subtree node within the
columns of the shared table including its set of indice values. So,
from the AgentX registration and SNMP master dispatch point of view, I
don't see a hack....however, what the orchestration subagent does to
actually instantiate the new row is on the road to hacksville.
Regards,
Mark
More information about the AGENTPP
mailing list