Compaq AAR04BCTE manual Creating a Subagent Using the eSNMP API, Creating a MIB Source File

Models: AAR04BCTE

1 132
Download 132 pages 53.41 Kb
Page 39
Image 39

Creating a Subagent Using the eSNMP API

3.3 Creating a MIB Source File

typedef struct _chess_type { OID ches;

int chessMaxGames; int chessNumGames;

char chessProductID_mark; char chessMaxGames_mark; char chessNumGames_mark;

} chess_type;

Although MIB group structures are provided for your use, you are not required to use them. You can use the structure that works best with your method routines.

5. Method Routine Prototypes Section

The fifth section of the subtree_TBL.H file describes the method routine prototypes. Each MIB group within the subtree has a method routine prototype defined. A MIB group is a collection of MIB variables that are leaf nodes and that share a common parent node.

There is always a function prototype for the method routine that handles the Get, GetNext, and GetBulk operations. If the group contains any writable variables, there is also a function prototype for the method routine that handles Set operations. Pointers to these routines appear in the subtree’s object table which is initialized in the subtree_TBL.C module. You must write method routines for each prototype that is defined, as follows:

extern int mib-groupget( METHOD *method ); extern int mib-groupset( METHOD *method );

For example:

extern int chess_get( METHOD *method ); extern int chess_set( METHOD *method );

3.3.2.4 The subtree_TBL.C Output Files

The subtree_TBL.C file file contains the following sections:

1.An array of integers representing the OIDs for each MIB variable

2.An array of OBJECT structures

3.An initialized SUBTREE structure

4.Routines for allocating and freeing the mib_group_type

The following sections describe each section of the subtree_TBL.C file.

1. Array of Integers Section

The first section of the subtree_TBL.C file is an array of integers used to represent the OID of each MIB variable in the subtree. For example:

static unsigned int elems[]

= {

 

1, 3, 6, 1, 4, 1, 36,

2, 15, 2, 99,

/* chess */

1, 3, 6, 1, 4, 1, 36, 2, 15, 2, 99, 1, 0, /* chessProductID */

. . .

1, 3, 6, 1, 4, 1, 36, 2, 15, 2, 99, 5, 1, 4, 0, /* moveStatus */

};

The first line represents the root of the tree; the other lines represent specific variables. The latter groups are all terminated by a zero, a programming convenience in internal implementations of API routines.

Creating a Subagent Using the eSNMP API 3–9

Page 39
Image 39
Compaq AAR04BCTE Creating a Subagent Using the eSNMP API, Creating a MIB Source File, Method Routine Prototypes Section