[AGENT++] Dependent MIB Tables and MibTable implementation
Jens Engel
Jens.Engel at marconi.com
Mon Nov 17 09:54:55 CET 2003
Modelling in SMI largely relies on dependent MIB tables.
There are different types of dependent MIB Tables:
- Augmentation Table
- ...
The short description of these modelling concepts are presented in:
[1] David T. Perkins, "Inter-Table Indexing in SNMP MIBs", 14-june-1998.
http://www.snmpinfo.com/tables.pdf
On the first view, the Agentpp::MibTable class seems to well suited
to implement dependent tables because row creation and deletion can be
observed
by other Agentpp::MibTable objects or derived classes.
But when you have a closer look at the implementation of the MibTable
class,
there is at least one "bug" when you want that a dependent MIB table is
informed about row creation/deletion:
In MibTable::set_value() [else part]:
A new row is created automatically, when it does not exist yet.
Table observers (and derived classes) are informed of the row creation.
Then, when the value assignment to the columnar manged objects of this
row fails,
the row is SILENTLY removed.
Table observers (and derived classes) cannot notice this.
NOTE: This may lead to inconsistencies in a dependent MIB tables.
NOTE: A similar problem might exist in MibTable::remove_obsolete_rows().
QUESTIONS:
Is this a bug or an intended feature?
If it is an intended feature: How should dependent MIB tables be
implemented?
Jens Engel, EG-FW/SSW, Marconi Communications GmbH.
mailto:Jens.Engel at marconi.com
More information about the AGENTPP
mailing list