Files
m241Neelima/components/ip_net2-6.9/wrsnmp/config/wrsnmp_config.c
T
2026-07-30 11:19:44 +05:30

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
****************************************************************************
*/