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