dataeng
 All Data Structures Files Variables Typedefs Macros
Data Structures | Macros | Typedefs
dcsmsnmp.h File Reference
#include <dcossdk.h>
#include <dcdetypes.h>
#include <agent.h>

Data Structures

struct  _SMSnmpOid
 SMSnmpOid represents a SNMP object identifier (OID) in the MIB Plug-in Implementer API. More...
 
struct  _SMSnmpValue
 SMSnmpValue represents a SNMP value in the MIB Plug-in Implementer API. More...
 
struct  _SMSnmpVarBind
 SMSnmpVarBind represents a SNMP variable binding (VarBind) in the MIB Plug-in Implementer API. More...
 
struct  _SMSnmpMPIMPMDispatchTable
 SMSnmpMPIMPMDispatchTable defines the dispatch table for the Push API of the MIB Plug-in Implementer API. More...
 
struct  _SMSnmpLoadReq
 SMSnmpLoadReq defines the request data for a SM_SNMP_API_MPI_LOAD request. More...
 
struct  _SMSnmpApiReq
 SMSnmpApiReq defines the request data for a MIB Plug-in Implementer API request. More...
 
union  _SMSnmpApiReq::_ReqData
 Choose the representation that fits the request. More...
 
struct  _SMSnmpMibList
 SMSnmpMibList defines the response data for a response to a SM_SNMP_API_MPI_LIST_MIB request. More...
 
struct  _SMSnmpApiRsp
 SMSnmpApiRsp defines the response data for a response to a MIB Plug-in Implementer API request. More...
 
union  _SMSnmpApiRsp::_RspData
 Choose the representation that fits the response. More...
 

Macros

#define SM_SNMP_API_MAJOR_VER   (1)
 MIB Plug-in Implementer API Version Info:
Major version supported.
 
#define SM_SNMP_API_MINOR_VER   (0)
 MIB Plug-in Implementer API Version Info:
Minor version supported.
 
#define SM_SNMP_API_REVISION   (0)
 MIB Plug-in Implementer API Version Info:
Revision supported.
 
#define SM_SNMP_API_MPI_GET_API_MAJOR_VER   (1)
 MIB Plug-in Implementer Pull API Request Type:
Request for MIB implementer to return major version of MIB Plug-in Implementer API that it supports.
 
#define SM_SNMP_API_MPI_GET_API_MINOR_VER   (2)
 MIB Plug-in Implementer Pull API Request Type:
Request for MIB implementer to return minor version of MIB Plug-in Implementer API that it supports.
 
#define SM_SNMP_API_MPI_GET_API_REVISION   (3)
 MIB Plug-in Implementer Pull API Request Type:
Request for MIB implementer to return revision of MIB Plug-in Implementer API that it supports.
 
#define SM_SNMP_API_MPI_LOAD   (4)
 MIB Plug-in Implementer Pull API Request Type:
Request for MIB implementer to initialize because it has been loaded.
 
#define SM_SNMP_API_MPI_UNLOAD   (5)
 MIB Plug-in Implementer Pull API Request Type:
Request for MIB implementer to deinitialize because it is being unloaded.
 
#define SM_SNMP_API_MPI_LIST_MIB   (6)
 MIB Plug-in Implementer Pull API Request Type:
Request for MIB implementer to list the MIBs that it implements.
 
#define SM_SNMP_API_MPI_START_MONITOR   (7)
 MIB Plug-in Implementer Pull API Request Type:
Request for MIB implementer to start monitoring for status changes.
 
#define SM_SNMP_API_MPI_STOP_MONITOR   (8)
 MIB Plug-in Implementer Pull API Request Type:
Request for MIB implementer to stop monitoring for status changes.
 
#define SM_SNMP_API_MPI_GET   (9)
 MIB Plug-in Implementer Pull API Request Type:
Request for MIB implementer to get value for specified MIB variable.
 
#define SM_SNMP_API_MPI_GET_NEXT   (10)
 MIB Plug-in Implementer Pull API Request Type:
Request for MIB implementer to get value for next MIB variable after specified MIB variable.
 
#define SM_SNMP_API_MPI_SET_TEST   (11)
 MIB Plug-in Implementer Pull API Request Type:
Request for MIB implementer to test ability to set value for specified MIB variable.
 
#define SM_SNMP_API_MPI_SET_COMMIT   (12)
 MIB Plug-in Implementer Pull API Request Type:
Request for MIB implementer to set value for specified MIB variable.
 
#define SM_SNMP_STATUS_NO_ERROR   (0)
 MIB Plug-in Implementer API Status:
No error.
 
#define SM_SNMP_STATUS_TOO_BIG   (1)
 MIB Plug-in Implementer API Status:
Data too big.
 
#define SM_SNMP_STATUS_NO_SUCH_NAME   (2)
 MIB Plug-in Implementer API Status:
No such name.
 
#define SM_SNMP_STATUS_BAD_VALUE   (3)
 MIB Plug-in Implementer API Status:
Bad value.
 
#define SM_SNMP_STATUS_READ_ONLY   (4)
 MIB Plug-in Implementer API Status:
Read only.
 
#define SM_SNMP_STATUS_GEN_ERR   (5)
 MIB Plug-in Implementer API Status:
General error.
 
#define SM_SNMP_STATUS_EX_DUPLICATE_REG   (263)
 MIB Plug-in Implementer API Status:
Duplicate registration (not for use with SNMP requests)
 
#define SM_SNMP_TYPE_INTEGER   (0x02)
 MIB Plug-in Implementer API Value Type: INTEGER
SMSnmpValue Usage: 'val32' contains 32-bit integer value.
 
#define SM_SNMP_TYPE_OCTET_STRING   (0x04)
 MIB Plug-in Implementer API Value Type: OCTET STRING
SMSnmpValue Usage: 'valptr' points to octet string and 'val32' contains length of octet string.
 
#define SM_SNMP_TYPE_NULL   (0x05)
 MIB Plug-in Implementer API Value Type: NULL
SMSnmpValue Usage: no value.
 
#define SM_SNMP_TYPE_OBJ_ID   (0x06)
 MIB Plug-in Implementer API Value Type: OBJECT IDENTIFIER
SMSnmpValue Usage: 'valptr' points to array of 32-bit integer IDs and 'val32' contains number of IDs.
 
#define SM_SNMP_TYPE_IP_ADDRESS   (0x40)
 MIB Plug-in Implementer API Value Type: IP ADDRESS
SMSnmpValue Usage: 'valptr' points to 4-byte octet string and 'val32' contains length of octet string.
 
#define SM_SNMP_TYPE_COUNTER   (0x41)
 MIB Plug-in Implementer API Value Type: COUNTER
SMSnmpValue Usage: 'val32' contains 32-bit integer value.
 
#define SM_SNMP_TYPE_GAUGE   (0x42)
 MIB Plug-in Implementer API Value Type: GAUGE
SMSnmpValue Usage: 'val32' contains 32-bit integer value.
 
#define SM_SNMP_TYPE_TIMETICKS   (0x43)
 MIB Plug-in Implementer API Value Type: TIMETICKS
SMSnmpValue Usage: 'val32' contains 32-bit integer value.
 
#define SM_SNMP_TYPE_OPAQUE   (0x44)
 MIB Plug-in Implementer API Value Type: OPAQUE
SMSnmpValue Usage: 'valptr' points to octet string and 'val32' contains length of octet string.
 
#define SM_SNMP_GENTRAP_ENTERPRISE_SPECIFIC   (6)
 Generic trap ID for enterprise specific trap.
 
#define SM_SNMP_SNMPVER_NONE   (0)
 SNMP Version Info:
Value that represents no SNMP version.
 
#define SM_SNMP_SNMPVER_V1   BIT(0)
 SNMP Version Info:
Bit mask that represents SNMPv1.
 
#define SM_SNMP_SNMPVER_V2C   BIT(1)
 SNMP Version Info:
Bit mask that represents SNMPv2C.
 
#define SM_SNMP_SNMPVER_V3   BIT(2)
 SNMP Version Info:
Bit mask that represents SNMPv3.
 
#define SM_SNMP_OID_ENTERPRISE_ID_INDEX   (6)
 Zero-based index for position of enterprise ID in SNMP OID.
 
#define SM_SNMP_OID_MIN_NUMIDS   (2)
 Minimum number of IDs in SNMP OID.
 
#define SM_SNMP_OID_MAX_NUMIDS   (128)
 Maximum number of IDs in SNMP OID.
 
#define SM_SNMP_OID_NUMIDS(X)   (sizeof(X) / sizeof((X)[0]))
 Macro to calculate number of IDs in IDs array (X)
 
#define SM_SNMP_OID_INITIALIZER(X)   {SM_SNMP_OID_NUMIDS(X), {0}, (X)}
 Macro to initialize variable of type SMSnmpOid where number of IDs is automatically calculated from IDs array (X)
Example:
u32 myIds[] = {1, 3, 6, 1, 4, 1, 674, 99999, 1};
SMSnmpOid myOid = SM_SNMP_OID_INITIALIZER(myIds);.
 
#define SM_SNMP_OID_INITIALIZER_NUMIDS(X, Y)   {(Y), {0}, (X)}
 Macro to initialize variable of type SMSnmpOid where number of IDs (Y) is specified by user
Example:
u32 myIds[] = {1, 3, 6, 1, 4, 1, 674, 99999, 1};
SMSnmpOid myOid = SM_SNMP_OID_INITIALIZER_NUMIDS(myIds, 9);.
 
#define SM_SNMP_OID_NUMIDS2SIZE(X)   ((X) * sizeof(u32))
 Macro to convert number of IDs (X) in SNMP OID to size in bytes.
 
#define SM_SNMP_OID_SIZE2NUMIDS(X)   ((X) / sizeof(u32))
 Macro to convert size in bytes (X) to number of IDs in SNMP OID.
 

Typedefs

typedef struct _SMSnmpOid SMSnmpOid
 SMSnmpOid represents a SNMP object identifier (OID) in the MIB Plug-in Implementer API.
 
typedef struct _SMSnmpValue SMSnmpValue
 SMSnmpValue represents a SNMP value in the MIB Plug-in Implementer API.
 
typedef struct _SMSnmpVarBind SMSnmpVarBind
 SMSnmpVarBind represents a SNMP variable binding (VarBind) in the MIB Plug-in Implementer API.
 
typedef struct
_SMSnmpMPIMPMDispatchTable 
SMSnmpMPIMPMDispatchTable
 SMSnmpMPIMPMDispatchTable defines the dispatch table for the Push API of the MIB Plug-in Implementer API. More...
 
typedef struct _SMSnmpLoadReq SMSnmpLoadReq
 SMSnmpLoadReq defines the request data for a SM_SNMP_API_MPI_LOAD request.
 
typedef struct _IN _SMSnmpApiReq SMSnmpApiReq
 SMSnmpApiReq defines the request data for a MIB Plug-in Implementer API request.
 
typedef struct _SMSnmpMibList SMSnmpMibList
 SMSnmpMibList defines the response data for a response to a SM_SNMP_API_MPI_LIST_MIB request.
 
typedef struct _OUT _SMSnmpApiRsp SMSnmpApiRsp
 SMSnmpApiRsp defines the response data for a response to a MIB Plug-in Implementer API request.
 
typedef s32(* PFNSMMIBIMPLEMENTERDISPATCH )(_IN u32 reqType, _IN const void *pInBuf, _IN u32 inBufSize, _OUT void *pOutBuf, _IN u32 outBufSize, _OUT u32 *pBytesReturned)
 MIB Plug-in Implementer Dispatch Entry Point Function Type Definition. More...
 

Typedef Documentation

typedef s32( * PFNSMMIBIMPLEMENTERDISPATCH)(_IN u32 reqType, _IN const void *pInBuf, _IN u32 inBufSize, _OUT void *pOutBuf, _IN u32 outBufSize, _OUT u32 *pBytesReturned)

MIB Plug-in Implementer Dispatch Entry Point Function Type Definition.

This function is part of the Pull API of the MIB Plug-in Implementer API and is called by the MIB Plug-in Manager to dispatch requests to and get responses from MIB Plug-in Implementers.

Note
This should only be used as a prototype.

The actual exported function name has the form MODULEXX_SMMIBImplementerDispatch.

Example: If the name of the MIB Plug-in Implementer (MODULEXX) is SAMMPI32, the exported function name is SAMMPI32_SMMIBImplementerDispatch.

Using the makefiles from the Data Engine SDK, the way to set up the exported function name for MIB Plug-in Implementer compilation is:
NT: Change preprocessor value of MPIEXPORT_DISPATCHFN to MODULEXX_SMMIBImplementerDispatch.
NW: Change makefile value of LOC_MPI_DISPATCH_NAME to required MODULEXX_SMMIBImplementerDispatch.
LX: Change makefile value of LOC_MPI_DISPATCH_NAME to required MODULEXX_SMMIBImplementerDispatch.

SMSnmpMPIMPMDispatchTable defines the dispatch table for the Push API of the MIB Plug-in Implementer API.

The functions in the Push API are MIB Plug-in Manager functions called by the MIB Plug-in Implementer.