[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