
Hi all, I'm currently using libsmi with Delphi/Windows (I built a DLL using GCC). I am having a strange problem with certain MIBs. When I call smiGetFirstNode(ModuleName, SMI_NODEKIND_ANY) for certain MIBs, the first node structure returned is completely empty other than the OID. The second node returned (after an smiGetNextNode) is a valid node, but is not the node expected - it is actually the 5th node that should be returned. The first OID is also strange as these MIBs are enterprise MIBs and the first OID returned is similar to the following(from example 1): 1.3.6.1.4.1.5591.1.0 where it should be: 1.3.6.1.4.1.5591.1.8.1.2 (See example 1)
The problem only seems to occur where the MIB has a construct like the following from example 1:
downLoad OBJECT IDENTIFIER ::= { downloadIdent 1 } transponderImage OBJECT IDENTIFIER ::= { downloadIdent 2 }
Example 2 does not have these constructs and the first node is returned as expected.
Any ideas? Am I doing something wrong?
===================================================== Example 1 =====================================================
SCTE-HMS-DOWNLOAD-MIB DEFINITIONS ::= BEGIN
IMPORTS enterprises FROM RFC1155-SMI OBJECT-TYPE FROM RFC-1212 TRAP-TYPE FROM RFC-1215 DisplayString FROM RFC1213-MIB scteHmsTree FROM SCTE-ROOT commonPhysAddress FROM SCTE-HMS-COMMON-MIB commonLogicalID FROM SCTE-HMS-COMMON-MIB downloadIdent FROM SCTE-HMS-ROOTS ;
downLoad OBJECT IDENTIFIER ::= { downloadIdent 1 } transponderImage OBJECT IDENTIFIER ::= { downloadIdent 2 }
-- * -- * **************************************** -- * Firmware Download Management Group -- * **************************************** -- * This portion of the Download MIB defines the core objects -- * used to manage the download of a firmware image or block -- * of data. -- *
dlDownloadDevice OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION "This object defines the device which is to have firmware downloaded.
A value of 1 specifies the transponder. A value of 2 to 256 specifies TIB devices 1 to 255. Values of dlDownloadDevice greater than 256 may be used for non-TIB devices managed by the transponder.
This indexing scheme is used to avoid using an index value of 0 to identify the transponder. This indexing scheme matches that of dlTransponderTable.
Not all transponders support TIB based devices.
There are no restrictions on the value of this object. When dlDownloadControl is set to initiate(1), an invalid value for dlDownloadImage results in the inability to set dlDownloadControl.
This value for this object reverts back to 0 after the end of any download or download error. As valid indices begins at 1, this provides some added security to prevent accidental erasure.
The value of this object should only be changed when dlDownloadStatus is done(6). Attempts to change object during any other state results in termination of the download in progress and an error being recorded. The actions associated with detecting an error are described by Note 4 of the download state diagram presented earlier in the document. The object value will not be cleared and the new value shall be accepted.
The dlDownloadKey does not affect this object.
The default value is 0. This object is volatile." ::= { downLoad 2 }
===================================================== Example 2 =====================================================
SCTE-HMS-PS-MIB DEFINITIONS ::= BEGIN
IMPORTS OBJECT-TYPE FROM RFC-1212 psIdent FROM SCTE-HMS-ROOTS ;
-- /************************************* -- * The Power Supply Group * -- *************************************/
psMonitored OBJECT-TYPE SYNTAX INTEGER ( 0..8 ) ACCESS read-only STATUS mandatory DESCRIPTION "Number of power supply connected to this NE." ::= { psIdent 1 }
-- !! This message is brought to you via the `libsmi' mailing list. !! Please do not reply to this message to unsubscribe. To subscribe or !! unsubscribe, send a mail message to libsmi-request@ibr.cs.tu-bs.de. !! See http://www.ibr.cs.tu-bs.de/projects/libsmi/ for more information.

Hi!
Santarelli, Brian writes:
Brian> Hi all, I'm currently using libsmi with Delphi/Windows (I built Brian> a DLL using GCC). I am having a strange problem with certain Brian> MIBs. When I call smiGetFirstNode(ModuleName, Brian> SMI_NODEKIND_ANY) for certain MIBs, the first node structure Brian> returned is completely empty other than the OID. The second Brian> node returned (after an smiGetNextNode) is a valid node, but is Brian> not the node expected - it is actually the 5th node that should Brian> be returned. [...]
I suspect that the modules that are loaded in this case are somehow incorrect. Please check it with smilint. Only if smilint does not complain about any severe errors, further libsmi functions can be expected to work as expected.
If your modules don't seem to contain errors, please send me the module and all imported non-standard modules in question, so that I can track down the problem.
-frank -- !! This message is brought to you via the `libsmi' mailing list. !! Please do not reply to this message to unsubscribe. To subscribe or !! unsubscribe, send a mail message to libsmi-request@ibr.cs.tu-bs.de. !! See http://www.ibr.cs.tu-bs.de/projects/libsmi/ for more information.
participants (2)
-
Frank Strauss
-
Santarelli, Brian