Solaris System Management Agent Developer's Guide

Overview of Creating Modules

You can create modules for the System Management Agent to allow a specific application, device, system, or network to be managed through a management application. The System Management Agent includes and documents the functions that are required by a module. The functions are used to register a module with the agent, to handle requests for module data, and to perform other module tasks.

You are not required to code a module manually, although you can if you prefer. Refer to the http://www.net-snmp.org/ web site for information about writing a module manually. The process is outside the scope of this document.

The high-level process described in this manual for implementing a module is as follows:

  1. Define the MIB for the objects to be managed.

    To define a MIB, you must know what management data is associated with the system or entity to be managed. You must assign variable names to each discrete management item. You must also determine the attributes and ASN.1 data types. MIB definition is outside the scope of this manual. See Defining a MIB for more information about MIBs.

  2. Generate code templates for a module from the MIB.

    To generate code templates, you convert the MIB nodes into C source code files with the mib2c tool. The code templates include API functions for registering the data, and handling the requests for the data. See Generating Code Templates for more information.

  3. Modify the code templates to fill in the data collection and management portions of the module.

    To modify the code templates, you must determine how to implement much of the functionality of the agent. See Modifying Code Templates for more information.

  4. Compile the C files into a shared object file.

    You compile a module for the System Management Agent as you would compile any C shared object file.

  5. Decide on the deployment method and configuration of the module.

    You must determine whether to configure the module as a separate subagent, or to load the module dynamically into the SNMP agent. See Chapter 6, Deploying Modules for information about deployment.