Compaq AAR04BCTE User Manual

Page 39

Advertising
background image

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-group get( METHOD *method );

extern int mib-group set( 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

Advertising