411 lines
13 KiB
C
411 lines
13 KiB
C
/*
|
|
* Copyright 2006 Wind River Systems, Inc.
|
|
* All rights reserved. Provided under license only.
|
|
* Distribution or other use of this software is only
|
|
* permitted pursuant to the terms of a license agreement
|
|
* from Wind River Systems (and is otherwise prohibited).
|
|
* Refer to that license agreement for terms of use.
|
|
*/
|
|
|
|
/* wrsnmp_config.c - initialization routines for SNMP method routines */
|
|
|
|
/*
|
|
modification history
|
|
--------------------
|
|
01i,30jul09,y_t fix for the warnings
|
|
01h,22jul08,j_y added RFC3873(SCTP) mib node
|
|
01g,22jul08,zhr commented bjid_if_root_node and objid_tcp_root_node
|
|
01f,04jun08,zhr added RFC1213 mib node
|
|
01e,14apr08,zhr updated for m2Lib migration
|
|
01d,20aug07,nlu mip
|
|
01c,14aug07,jbl temporarily remove non-building modules
|
|
01b,18jul07,nlu add mip4
|
|
01a,26jun07,msa Add RFC 4293 support
|
|
*/
|
|
|
|
/*
|
|
******************************************************************************
|
|
******************************************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 1 DESCRIPTION
|
|
****************************************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 2 INCLUDE FILES
|
|
****************************************************************************
|
|
*/
|
|
#include <wrn/wm/snmp/engine/asn1conf.h>
|
|
#include <wrn/wm/snmp/engine/asn1.h>
|
|
#include <wrn/wm/snmp/engine/auxfuncs.h>
|
|
#include <ipnet_config.h>
|
|
#include <ipnet_h.h>
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 6 LOCAL PROTOTYPES
|
|
****************************************************************************
|
|
*/
|
|
|
|
int wrsnmp_configure(int);
|
|
|
|
|
|
/*
|
|
****************************************************************************
|
|
* DATA
|
|
****************************************************************************
|
|
*/
|
|
|
|
#define SNMP_USE_IPNET_MIB 0
|
|
#define SNMP_USE_M2LIB_MIB 1
|
|
|
|
/**
|
|
** Subtree Object Identifier for Add_Node_From_Root
|
|
** interfaces OBJECT IDENTIFIER ::= { mib-2 2 }
|
|
**/
|
|
|
|
/**
|
|
** Subtree Object Identifier for Add_Node_From_Root
|
|
** mib-2 OBJECT IDENTIFIER ::= { mgmt 1 }
|
|
**/
|
|
|
|
/**
|
|
* m2Lib mibs
|
|
** Subtree Object Identifier for Add_Node_From_Root
|
|
** tcp OBJECT IDENTIFIER ::= { mib-2 6 }
|
|
|
|
static OIDC_T oid_tcp1213_root_node[] = { 1, 3, 6, 1, 2, 1, 6 };
|
|
OBJ_ID_T objid_tcp1213_root_node = {
|
|
sizeof(oid_tcp1213_root_node)/sizeof(OIDC_T),
|
|
oid_tcp1213_root_node
|
|
};
|
|
**/
|
|
|
|
extern OBJ_ID_T objid_tcp1213_root_node;
|
|
extern MIBNODE_T tcp1213_root_node;
|
|
|
|
/**
|
|
** Subtree Object Identifier for Add_Node_From_Root
|
|
** ip OBJECT IDENTIFIER ::= { mib-2 4 }
|
|
static OIDC_T oid_ip1213_root_node[] = { 1, 3, 6, 1, 2, 1, 4 };
|
|
OBJ_ID_T objid_ip1213_root_node = {
|
|
sizeof(oid_ip1213_root_node)/sizeof(OIDC_T),
|
|
oid_ip1213_root_node
|
|
};
|
|
**/
|
|
|
|
extern OBJ_ID_T objid_ip1213_root_node;
|
|
extern MIBNODE_T ip1213_root_node;
|
|
|
|
/**
|
|
** Subtree Object Identifier for Add_Node_From_Root
|
|
** interfaces OBJECT IDENTIFIER ::= { mib-2 2 }
|
|
static OIDC_T oid_if1213_root_node[] = { 1, 3, 6, 1, 2, 1, 2 };
|
|
OBJ_ID_T objid_if1213_root_node = {
|
|
sizeof(oid_if1213_root_node)/sizeof(OIDC_T),
|
|
oid_if1213_root_node
|
|
};
|
|
**/
|
|
|
|
extern OBJ_ID_T objid_if1213_root_node;
|
|
extern MIBNODE_T if1213_root_node;
|
|
|
|
|
|
/**
|
|
** Subtree Object Identifier for Add_Node_From_Root
|
|
** icmp OBJECT IDENTIFIER ::= { mib-2 5 }
|
|
static OIDC_T oid_icmp1213_root_node[] = { 1, 3, 6, 1, 2, 1, 5 };
|
|
OBJ_ID_T objid_icmp1213_root_node = {
|
|
sizeof(oid_icmp1213_root_node)/sizeof(OIDC_T),
|
|
oid_icmp1213_root_node
|
|
};
|
|
**/
|
|
|
|
extern OBJ_ID_T objid_icmp1213_root_node;
|
|
extern MIBNODE_T icmp1213_root_node;
|
|
|
|
/**
|
|
** Subtree Object Identifier for Add_Node_From_Root
|
|
** ifMIB OBJECT IDENTIFIER ::= { mib-2 31 }
|
|
static OIDC_T oid_if2233_root_node[] = { 1, 3, 6, 1, 2, 1, 31 };
|
|
OBJ_ID_T objid_if2233_root_node = {
|
|
sizeof(oid_if2233_root_node)/sizeof(OIDC_T),
|
|
oid_if2233_root_node
|
|
};
|
|
**/
|
|
|
|
extern OBJ_ID_T objid_if2233_root_node;
|
|
extern MIBNODE_T if2233_root_node;
|
|
|
|
/**
|
|
** Subtree Object Identifier for Add_Node_From_Root
|
|
** udp OBJECT IDENTIFIER ::= { mib-2 7 }
|
|
static OIDC_T oid_udp1213_root_node[] = { 1, 3, 6, 1, 2, 1, 7 };
|
|
OBJ_ID_T objid_udp1213_root_node = {
|
|
sizeof(oid_udp1213_root_node)/sizeof(OIDC_T),
|
|
oid_udp1213_root_node
|
|
};
|
|
**/
|
|
extern OBJ_ID_T objid_udp1213_root_node;
|
|
extern MIBNODE_T udp1213_root_node;
|
|
|
|
/*
|
|
* ipnet mibs
|
|
*/
|
|
|
|
/**
|
|
static OIDC_T oid_if_root_node[] = { 1, 3, 6, 1, 2, 1, 2 };
|
|
OBJ_ID_T objid_if_root_node = { sizeof(oid_if_root_node)/sizeof(OIDC_T), oid_if_root_node };
|
|
|
|
**/
|
|
|
|
extern OBJ_ID_T objid_if_root_node;
|
|
extern MIBNODE_T if_root_node;
|
|
|
|
/**
|
|
** Subtree Object Identifier for Add_Node_From_Root
|
|
** tcp OBJECT IDENTIFIER ::= { mib-2 6 }
|
|
|
|
STATIC OIDC_T oid_tcp_root_node[] = { 1, 3, 6, 1, 2, 1, 6 };
|
|
OBJ_ID_T objid_tcp_root_node = { sizeof(oid_tcp_root_node)/sizeof(OIDC_T), oid_tcp_root_node };
|
|
**/
|
|
|
|
extern OBJ_ID_T objid_tcp_root_node;
|
|
extern MIBNODE_T tcp_root_node;
|
|
|
|
/**
|
|
** Subtree Object Identifier for Add_Node_From_Root
|
|
** udp OBJECT IDENTIFIER ::= { mib-2 7 }
|
|
static OIDC_T oid_udp_root_node[] = { 1, 3, 6, 1, 2, 1, 7 };
|
|
OBJ_ID_T objid_udp_root_node = {
|
|
sizeof(oid_udp_root_node)/sizeof(OIDC_T),
|
|
oid_udp_root_node
|
|
};
|
|
**/
|
|
extern OBJ_ID_T objid_udp_root_node;
|
|
extern MIBNODE_T udp_root_node;
|
|
|
|
/**
|
|
** Subtree Object Identifier for Add_Node_From_Root
|
|
** ifMIB OBJECT IDENTIFIER ::= { mib-2 31 }
|
|
STATIC OIDC_T oid_ifmib_root_node[] = { 1, 3, 6, 1, 2, 1, 31 };
|
|
OBJ_ID_T objid_ifmib_root_node = {
|
|
sizeof(oid_ifmib_root_node)/sizeof(OIDC_T),
|
|
oid_ifmib_root_node
|
|
};
|
|
**/
|
|
extern OBJ_ID_T objid_ifmib_root_node;
|
|
extern MIBNODE_T ifmib_root_node;
|
|
|
|
/**
|
|
** Subtree Object Identifier for Add_Node_From_Root
|
|
** ip OBJECT IDENTIFIER ::= { mib-2 4 }
|
|
STATIC OIDC_T oid_ip4293_root_node[] = { 1, 3, 6, 1, 2, 1, 4 };
|
|
OBJ_ID_T objid_ip4293_root_node = {
|
|
sizeof(oid_ip4293_root_node)/sizeof(OIDC_T),
|
|
oid_ip4293_root_node
|
|
};
|
|
**/
|
|
extern OBJ_ID_T objid_ip4293_root_node;
|
|
extern MIBNODE_T ip4293_root_node; extern MIBNODE_T mib_root_node;
|
|
/**
|
|
** Subtree Object Identifier for Add_Node_From_Root
|
|
** icmp OBJECT IDENTIFIER ::= { mib-2 5 }
|
|
STATIC OIDC_T oid_icmp4293_root_node[] = { 1, 3, 6, 1, 2, 1, 5 };
|
|
OBJ_ID_T objid_icmp4293_root_node = {
|
|
sizeof(oid_icmp4293_root_node)/sizeof(OIDC_T),
|
|
oid_icmp4293_root_node
|
|
};
|
|
**/
|
|
extern OBJ_ID_T objid_icmp4293_root_node;
|
|
extern MIBNODE_T icmp4293_root_node;
|
|
|
|
extern OBJ_ID_T objid_icmp4293_root_node;
|
|
extern MIBNODE_T icmp4293_root_node;
|
|
|
|
extern OBJ_ID_T objid_mip4_root_node;
|
|
extern MIBNODE_T mip4_root_node;
|
|
|
|
extern OBJ_ID_T objid_mip6_root_node;
|
|
extern MIBNODE_T mip6_root_node;
|
|
|
|
extern OBJ_ID_T objid_sctp_root_node;
|
|
extern MIBNODE_T sctp_root_node;
|
|
|
|
extern OBJ_ID_T objid_radius_root_node;
|
|
extern MIBNODE_T radius_root_node;
|
|
|
|
extern OBJ_ID_T objid_tunnel_root_node;
|
|
extern MIBNODE_T tunnel_root_node;
|
|
|
|
|
|
/*
|
|
*===========================================================================
|
|
* getSysUpTime
|
|
*===========================================================================
|
|
* Description: A wrapper for ENVOY_NOW, the SNMP user exit which returns the
|
|
* current sysUpTime in milliseconds.
|
|
*
|
|
* Parameters: None.
|
|
*
|
|
* Returns: From RFC1213, "The time (in hundredths of a second) since the
|
|
* network management portion of the system was last
|
|
* re-initialized."
|
|
*
|
|
*/
|
|
static Ipcom_mib2_TimeStamp getSysUpTime(void)
|
|
{
|
|
return (ENVOY_NOW () / 10);
|
|
}
|
|
|
|
/*
|
|
*===========================================================================
|
|
* ipwrsnmp_configure
|
|
*===========================================================================
|
|
* Description:
|
|
*
|
|
* Parameters: None.
|
|
*
|
|
* Returns: IPCOM_SUCCESS
|
|
* IPCOM_ERR_FAILED
|
|
*
|
|
*/
|
|
int wrsnmp_configure(int snmpMibRequest)
|
|
{
|
|
MIBNODE_T *rnode;
|
|
int status;
|
|
|
|
if (snmpMibRequest == SNMP_USE_IPNET_MIB)
|
|
{
|
|
printf ("Loading mibs of IPNET...\n");
|
|
status = Add_Node_From_Root(&mib_root_node,
|
|
&objid_if_root_node,
|
|
&if_root_node,
|
|
&rnode);
|
|
printf ("Loading if_root_node%s, ",(status ==0)? "": "ERROR");
|
|
status = Add_Node_From_Root(&mib_root_node,
|
|
&objid_ip4293_root_node,
|
|
&ip4293_root_node,
|
|
&rnode);
|
|
printf ("Loading ip4293_root_node%s, ",(status ==0)? "": "ERROR");
|
|
status = Add_Node_From_Root(&mib_root_node,
|
|
&objid_icmp4293_root_node,
|
|
&icmp4293_root_node,
|
|
&rnode);
|
|
printf ("Loading icmp4239_node%s, ",(status ==0)? "": "ERROR");
|
|
status = Add_Node_From_Root(&mib_root_node,
|
|
&objid_tcp_root_node,
|
|
&tcp_root_node,
|
|
&rnode);
|
|
printf ("Loading tcp_root_node%s, ",(status ==0)? "": "ERROR");
|
|
status = Add_Node_From_Root(&mib_root_node,
|
|
&objid_udp_root_node,
|
|
&udp_root_node,
|
|
&rnode);
|
|
printf ("Loading udp_root_node%s, ",(status ==0)? "": "ERROR");
|
|
status = Add_Node_From_Root(&mib_root_node,
|
|
&objid_ifmib_root_node,
|
|
&ifmib_root_node,
|
|
&rnode);
|
|
printf ("Loading ifmib_root_node %s\n",(status ==0)? "OK.": "ERROR");
|
|
|
|
|
|
#ifdef IPMIP4
|
|
status = Add_Node_From_Root(&mib_root_node,
|
|
&objid_mip4_root_node,
|
|
&mip4_root_node,
|
|
&rnode);
|
|
printf ("Loading mip4_root_node %s\n",(status ==0)? "OK": "ERROR");
|
|
#endif
|
|
|
|
#ifdef IPMIP6
|
|
status = Add_Node_From_Root(&mib_root_node,
|
|
&objid_mip6_root_node,
|
|
&mip6_root_node,
|
|
&rnode);
|
|
printf ("Loading mip6_root_node %s\n",(status ==0)? "OK": "ERROR");
|
|
#endif
|
|
}
|
|
else if (snmpMibRequest == SNMP_USE_M2LIB_MIB)
|
|
{
|
|
printf ("Loading mibs of M2LIB...\n");
|
|
status = Add_Node_From_Root(&mib_root_node,
|
|
&objid_tcp1213_root_node,
|
|
&tcp1213_root_node,
|
|
&rnode);
|
|
printf ("Loading tcp1213_node%s, ",(status ==0)? "": "ERROR");
|
|
|
|
status = Add_Node_From_Root(&mib_root_node,
|
|
&objid_ip1213_root_node,
|
|
&ip1213_root_node,
|
|
&rnode);
|
|
printf ("Loading ip1213_node%s, ",(status ==0)? "": "ERROR");
|
|
|
|
status = Add_Node_From_Root(&mib_root_node,
|
|
&objid_if1213_root_node,
|
|
&if1213_root_node,
|
|
&rnode);
|
|
printf ("Loading if1213_node%s, ",(status ==0)? "": "ERROR");
|
|
|
|
|
|
status = Add_Node_From_Root(&mib_root_node,
|
|
&objid_if2233_root_node,
|
|
&if2233_root_node,
|
|
&rnode);
|
|
printf ("Loading if2233_node%s, ",(status ==0)? "": "ERROR");
|
|
|
|
status = Add_Node_From_Root(&mib_root_node,
|
|
&objid_udp1213_root_node,
|
|
&udp1213_root_node,
|
|
&rnode);
|
|
printf ("Loading udp1213_node%s, ",(status ==0)? "": "ERROR");
|
|
|
|
status = Add_Node_From_Root(&mib_root_node,
|
|
&objid_icmp1213_root_node,
|
|
&icmp1213_root_node,
|
|
&rnode);
|
|
printf ("Loading icmp1213_root_node %s\n",(status ==0)? "OK": "ERROR");
|
|
|
|
}
|
|
|
|
#ifdef IPSCTP
|
|
status = Add_Node_From_Root(&mib_root_node,
|
|
&objid_sctp_root_node,
|
|
&sctp_root_node,
|
|
&rnode);
|
|
printf ("Loading sctp_root_node %s\n",(status ==0)? "OK": "ERROR");
|
|
#endif
|
|
|
|
#ifdef IPRADIUS
|
|
status = Add_Node_From_Root(&mib_root_node,
|
|
&objid_radius_root_node,
|
|
&radius_root_node,
|
|
&rnode);
|
|
printf ("Loading radius_root_node %s\n",(status ==0)? "OK": "ERROR");
|
|
#endif
|
|
|
|
#ifdef IPNET_USE_TUNNEL
|
|
status = Add_Node_From_Root(&mib_root_node,
|
|
&objid_tunnel_root_node,
|
|
&tunnel_root_node,
|
|
&rnode);
|
|
printf ("Loading tunnel_root_node %s\n",(status ==0)? "OK": "ERROR");
|
|
#endif
|
|
|
|
status = ipcom_mib2_register_sysUpTimeFunc (getSysUpTime);
|
|
return IPCOM_SUCCESS;
|
|
|
|
}
|
|
|
|
|
|
/*
|
|
****************************************************************************
|
|
* END OF FILE
|
|
****************************************************************************
|
|
*/
|
|
|