#include <stdlib.h>
#include <stdbool.h>
#include <unistd.h>
#include "rpcclt_openapi.h"
#include "proc_util.h"
#define PRINTBADRESULT(result, msg, feat) \
if (result==OPEN_E_UNAVAIL) { printf("Feature not supported - %s.\n", msg); } \
else if (result==OPEN_E_NOT_FOUND) { printf("Test Skipped (not found) - %s %s.\n", msg, feat); } \
else if (result!=OPEN_E_NONE) { printf("Test Failure - %s (err %d).\n", msg, result); }
bool fVerbose = true;
static void printSNMPAppMenu(char *name)
{
printf("Usage: %s <test#> <arg1> <arg2> ... \n", name);
printf("Test 1: Sets the system name: %s 1 <sysName>\n", name);
printf("Test 2: Gets the system name: %s 2\n", name);
printf("Test 3: Sets the system location: %s 3 <sysLocation>\n", name);
printf("Test 4: Gets the system location: %s 4\n", name);
printf("Test 5: Sets the system contact: %s 5 <sysContact>\n", name);
printf("Test 6: Gets the system contact: %s 6\n", name);
printf("Test 7: Sets the SNMP source interface: %s 7 <intf>\n", name);
printf("Test 8: Gets the SNMP source interface: %s 8\n", name);
printf("Test 9: Sets the SNMP trap flag mode: %s 9 <trapFlag> <mode>\n", name);
printf("Test 10: Gets the SNMP trap flag mode: %s 10 <trapFlag>\n", name);
printf("Test 11: Sets the SNMP Engine ID: %s 11 <engineId>\n", name);
printf("Test 12: Gets the SNMP Engine ID: %s 12\n", name);
printf("Test 13: Deletes the SNMP Engine ID: %s 13\n", name);
printf("Test 14: Creates the SNMP user: %s 14 <userName> <groupName> <authProto> "
"<authPwd> <authKey> <privProto> <privPwd> <privKey> <engineId>\n", name);
printf("Test 15: Gets the SNMP user details configured for a given user name: %s 15 <userName>\n", name);
printf("Test 16: Gets all the SNMP users configured: %s 16\n", name);
printf("Test 17: Deletes the SNMP user: %s 17 <userName> <engineId>\n", name);
printf("Test 18: Creates the SNMP group: %s 18 <groupName> <securityModel> "
"<securityLevel> <contextPrefix> <readView> <writeView> <notifyView>\n", name);
printf("Test 19: Gets the SNMP group details for a given group: %s 19 <groupName>\n", name);
printf("Test 20: Gets all the SNMP groups configured: %s 20\n", name);
printf("Test 21: Deletes the SNMP group: %s 21 <groupName> <securityModel> <securityLevel> <contextPrefix>\n", name);
printf("Test 22: Creates the SNMP filter: %s 22 <filterName> <oidTree> <filterType>\n", name);
printf("Test 23: Gets the SNMP filter details for a given filter: %s 23 <filterName>\n", name);
printf("Test 24: Gets all the SNMP filters configured: %s 24\n", name);
printf("Test 25: Deletes the SNMP filter: %s 25 <filterName> <oidTree>\n", name);
printf("Test 26: Creates the SNMP view: %s 26 <viewName> <oidTree> <viewType>\n", name);
printf("Test 27: Gets the SNMP view details for a given view: %s 27 <viewName>\n", name);
printf("Test 28: Gets all the SNMP views configured: %s 28\n", name);
printf("Test 29: Deletes the SNMP view: %s 29 <viewName> <oidTree>\n", name);
printf("Test 30: Creates the SNMP host: %s 30 <host> <serverPort> <securityName> "
"<securityModel> <securityLevel> <notifyType> <timeout> <retries> <filter>\n", name);
printf("Test 31: Gets the SNMP host details for a given host: %s 31 <host>\n", name);
printf("Test 32: Gets all the SNMP hosts configured: %s 32\n", name);
printf("Test 33: Deletes the SNMP host: %s 33 <host> <notifyType>\n", name);
printf("Test 34: Creates the SNMP community: %s 34 <communityName> <accessType> <viewName> <addr>\n", name);
printf("Test 35: Creates the SNMP community along with group: %s 35 <communityName> <groupName> <addr>\n", name);
printf("Test 36: Gets the SNMP community details for a given community: %s 36 <communityName>\n", name);
printf("Test 37: Gets all the SNMP communities configured: %s 37\n", name);
printf("Test 38: Deletes the SNMP community: %s 38 <communityName>\n", name);
printf("Test 39: Run API sanity checks: %s 39\n", name);
printf("Test 40: Run test for SNMP community create, delete, trap create and delete for Non CONF APIs: %s 40\n", name);
return;
}
{
open_buffdesc communityDesc, nextCommunityDesc, groupDesc, viewDesc;
open_buffdesc contextDesc, readDesc, writeDesc, notifyDesc, nextGroupDesc, nextContextDesc;
open_buffdesc userName, engineId, nextUserName, nextEngineId, authPwd;
open_buffdesc authKey, privPwd, privKey, host, securityName, nextHost, nextOidTree;
open_buffdesc sysName, nextViewName, sysLocation, sysContact, oidString, oidVal;
char buffer[128] = {0}, ipStr[128] = {0}, contextStr[30+1] = {0}, readStr[30+1] = {0};
char writeStr[30+1] = {0}, notifyStr[30+1] = {0}, nextGroupStr[30+1], nextContextStr[30+1];
char communityStr[20+1] ={0}, nextCommunityStr[20+1] ={0}, viewStr[30+1] = {0}, nextViewStr[30+1] = {0};
char groupStr[30+1] = {0}, filterStr[30+1] = {0}, oidStr[128+1] = {0};
char userNameStr[30+1] = {0}, engineStr[32], nextUserNameStr[30+1], nextEngineStr[32];
char nextOidStr[128+1] = {0}, nextFilterStr[30+1] = {0};
char aPwdStr[32+1] = {0}, aKeyStr[48+1] = {0}, pPwdStr[32+1] = {0}, pKeyStr[32+1];
char str[255+1] = {0}, oidStringStr[128+1] = {0}, oidValStr[128+1]= {0};
char hostStr[158+1] = {0}, securityStr[30+1] = {0}, nextHostStr[158+1] = {0};
uint32_t serverPort = 162, timeout = 3, retries = 1, trapFlag = 1, intf, type;
bool mode = 1;
badBufdescPointer.
pstart = (
void *) NULL;
badBufdescPointer.
size =
sizeof(buffer);
badBufdescPointer.size = 0;
zeroLenBuf.pstart = buffer;
zeroLenBuf.size = 0;
sysName.pstart = str;
sysName.size = sizeof(str);
sysLocation.pstart = str;
sysLocation.size = sizeof(str);
sysContact.pstart = str;
sysContact.size = sizeof(str);
host.pstart = hostStr;
host.size = sizeof(hostStr);
securityName.pstart = securityStr;
securityName.size = sizeof(securityStr);
nextHost.pstart = nextHostStr;
nextHost.size = sizeof(nextHostStr);
memset(oidStringStr, 0, sizeof(oidStringStr));
oidString.pstart = oidStringStr;
oidString.size = sizeof(oidStringStr);
memset(oidValStr, 0, sizeof(oidValStr));
oidVal.pstart = oidValStr;
oidVal.size = sizeof(oidValStr);
nextViewName.pstart = nextViewStr;
nextViewName.size = sizeof(nextViewStr);
nextOidTree.pstart = nextOidStr;
nextOidTree.size = sizeof(nextOidStr);
userName.pstart = userNameStr;
userName.size = sizeof(userNameStr);
engineId.pstart = engineStr;
engineId.size = sizeof(engineStr);
memset(nextGroupStr, 0, sizeof(nextGroupStr));
nextGroupDesc.pstart = nextGroupStr;
nextGroupDesc.size = sizeof(nextGroupStr);
nextUserName.pstart = nextUserNameStr;
nextUserName.size = sizeof(nextUserNameStr);
nextEngineId.pstart = nextEngineStr;
nextEngineId.size = sizeof(nextEngineStr);
authPwd.pstart = aPwdStr;
authPwd.size = sizeof(aPwdStr);
authKey.pstart = aKeyStr;
authKey.size = sizeof(aKeyStr);
privPwd.pstart = pPwdStr;
privPwd.size = sizeof(pPwdStr);
privKey.pstart = pKeyStr;
privKey.size = sizeof(pKeyStr);
filterDesc.pstart = filterStr;
filterDesc.size = sizeof(filterStr);
oidDesc.pstart = oidStr;
oidDesc.size = sizeof(oidStr);
contextDesc.pstart = contextStr;
contextDesc.size = sizeof(contextStr);
memset(nextContextStr, 0, sizeof(nextContextStr));
nextContextDesc.pstart = nextContextStr;
nextContextDesc.size = sizeof(nextContextStr);
memset(readStr, 0, sizeof(readStr));
readDesc.pstart = readStr;
readDesc.size = sizeof(readStr);
memset(writeStr, 0, sizeof(writeStr));
writeDesc.pstart = writeStr;
writeDesc.size = sizeof(writeStr);
memset(notifyStr, 0, sizeof(notifyStr));
notifyDesc.pstart = notifyStr;
notifyDesc.size = sizeof(notifyStr);
communityDesc.pstart = communityStr;
communityDesc.size = sizeof(communityStr);
nextCommunityDesc.pstart = nextCommunityStr;
nextCommunityDesc.size = sizeof(nextCommunityStr);
groupDesc.pstart = groupStr;
groupDesc.size = strlen(groupStr) + 1;
viewDesc.pstart = viewStr;
viewDesc.size = strlen(viewStr)+1;
memset(nextFilterStr, 0, sizeof(nextFilterStr));
nextFilterDesc.pstart = nextFilterStr;
nextFilterDesc.size = sizeof(nextFilterStr);
memset(nextOidStr, 0, sizeof(nextOidStr));
nextOidDesc.pstart = nextOidStr;
nextOidDesc.size = sizeof(nextOidStr);
memset(&ipAddr, 0, sizeof(ipAddr));
memset(ipStr, 0, sizeof(ipStr));
snprintf(ipStr, sizeof(ipStr), "%s", "0.0.0.0");
inet_pton(AF_INET, ipStr, (
void*)&(ipAddr.
addr.
ipv4));
printf("Testing SNMP OpEN APIs sanity:\n\n");
printf("Testing openapiSnmpCommunityCreate():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("NULL community name argument 2:(result = %d)\n", result);
printf("Buffdesc 0 length for community name argument 2:(result = %d)\n", result);
printf("less than minimum value access type argument 3:(result = %d)\n", result);
printf("greater than maximum value access type argument 3:(result = %d)\n", result);
printf("Null view name argument 4:(result = %d)\n", result);
printf("Buffdesc 0 length for view name argument 4:(result = %d)\n", result);
printf("NULL IP address argument 5:(result = %d)\n", result);
printf("Testing openapiSnmpCommunityCreate() done.\n\n");
printf("Testing openapiSnmpCommunityDelete():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("NULL community name argument 2:(result = %d)\n", result);
printf("Buffdesc 0 length for community name argument 2:(result = %d)\n", result);
printf("Testing openapiSnmpCommunityDelete() done.\n\n");
printf("Testing openapiSnmpCommunityGetNext():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("NULL community name argument 2:(result = %d)\n", result);
printf("Buffdesc 0 length for community name argument 2:(result = %d)\n", result);
printf("NULL acccess type argument 3:(result = %d)\n", result);
printf("NULL view name argument 4:(result = %d)\n", result);
printf("Buffdesc 0 length for view name argument 4:(result = %d)\n", result);
printf("NULL IP address argument 5:(result = %d)\n", result);
printf("NULL next community name argument 6:(result = %d)\n", result);
printf("Buffdesc 0 length for next community name argument 6:(result = %d)\n", result);
printf("Testing openapiSnmpCommunityGetNext() done.\n\n");
printf("Testing openapiSnmpCommunityGroupCreate():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("NULL community name argument 2:(result = %d)\n", result);
printf("Buffdesc 0 length for community name argument 2:(result = %d)\n", result);
printf("NULL group name argument 3:(result = %d)\n", result);
printf("Buffdesc 0 length for group name argument 3:(result = %d)\n", result);
printf("NULL IP address argument 4:(result = %d)\n", result);
printf("Testing openapiSnmpCommunityGroupCreate() done.\n\n");
printf("Testing openapiSnmpFilterCreate():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("NULL filter name argument 2:(result = %d)\n", result);
printf("Buffdesc 0 length for filter name argument 2:(result = %d)\n", result);
printf("NULL OID argument 3:(result = %d)\n", result);
printf("Buffdesc 0 length for OID argument 3:(result = %d)\n", result);
printf("less than minimum value filter type argument 4:(result = %d)\n", result);
printf("greater than maximum value filter type argument 4:(result = %d)\n", result);
printf("Testing openapiSnmpFilterCreate() done.\n\n");
printf("Testing openapiSnmpFilterDelete():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("NULL filter name argument 2:(result = %d)\n", result);
printf("Buffdesc 0 length for filter name argument 2:(result = %d)\n", result);
printf("NULL OID argument 3:(result = %d)\n", result);
printf("Buffdesc 0 length for OID argument 3:(result = %d)\n", result);
printf("Testing openapiSnmpFilterDelete() done.\n\n");
printf("Testing openapiSnmpFilterGetNext():\n");
&filterType, &nextFilterDesc, &nextOidDesc);
printf("NULL client handle argument 1:(result = %d)\n", result);
&filterType, &nextFilterDesc, &nextOidDesc);
printf("NULL filter name argument 2:(result = %d)\n", result);
&filterType, &nextFilterDesc, &nextOidDesc);
printf("Buffdesc 0 length for filter name argument 2:(result = %d)\n", result);
&filterType, &nextFilterDesc, &nextOidDesc);
printf("NULL OID argument 3:(result = %d)\n", result);
&filterType, &nextFilterDesc, &nextOidDesc);
printf("Buffdesc 0 length for OID argument 3:(result = %d)\n", result);
NULL, &nextFilterDesc, &nextOidDesc);
printf("NULL filter type argument 4:(result = %d)\n", result);
&filterType, &badBufdescPointer, &nextOidDesc);
printf("NULL next filter name argument 5:(result = %d)\n", result);
&filterType, &zeroLenBuf, &nextOidDesc);
printf("Buffdesc 0 length for next filter name argument 5:(result = %d)\n", result);
&filterType, &nextFilterDesc, &badBufdescPointer);
printf("NULL next OID argument 6:(result = %d)\n", result);
&filterType, &nextFilterDesc, &zeroLenBuf);
printf("Buffdesc 0 length for next OID argument 6:(result = %d)\n", result);
printf("Testing openapiSnmpFilterGetNext() done.\n\n");
printf("Testing openapiSnmpGroupCreate():\n");
&contextDesc, &readDesc, &writeDesc, ¬ifyDesc);
printf("NULL client handle argument 1:(result = %d)\n", result);
&contextDesc, &readDesc, &writeDesc, ¬ifyDesc);
printf("NULL group name argument 2:(result = %d)\n", result);
&contextDesc, &readDesc, &writeDesc, ¬ifyDesc);
printf("Buffdesc 0 length for group name argument 2:(result = %d)\n", result);
&contextDesc, &readDesc, &writeDesc, ¬ifyDesc);
printf("less than minimum value security model argument 3:(result = %d)\n", result);
&contextDesc, &readDesc, &writeDesc, ¬ifyDesc);
printf("greater than maximum value security model argument 3:(result = %d)\n", result);
&contextDesc, &readDesc, &writeDesc, ¬ifyDesc);
printf("less than minimum value security level argument 4:(result = %d)\n", result);
&contextDesc, &readDesc, &writeDesc, ¬ifyDesc);
printf("greater than maximum value security level argument 4:(result = %d)\n", result);
&badBufdescPointer, &readDesc, &writeDesc, ¬ifyDesc);
printf("NULL context argument 5:(result = %d)\n", result);
&zeroLenBuf, &readDesc, &writeDesc, ¬ifyDesc);
printf("Buffdesc 0 length for context argument 5:(result = %d)\n", result);
&contextDesc, &badBufdescPointer, &writeDesc, ¬ifyDesc);
printf("NULL readview argument 6:(result = %d)\n", result);
&contextDesc, &zeroLenBuf, &writeDesc, ¬ifyDesc);
printf("Buffdesc 0 length for readview argument 6:(result = %d)\n", result);
&contextDesc, &readDesc, &badBufdescPointer, ¬ifyDesc);
printf("NULL writeview argument 7:(result = %d)\n", result);
&contextDesc, &readDesc, &zeroLenBuf, ¬ifyDesc);
printf("Buffdesc 0 length for writeview argument 7:(result = %d)\n", result);
&contextDesc, &readDesc, &writeDesc, &badBufdescPointer);
printf("NULL notifyview argument 8:(result = %d)\n", result);
&contextDesc, &readDesc, &writeDesc, &zeroLenBuf);
printf("Buffdesc 0 length for notifyview argument 8:(result = %d)\n", result);
printf("Testing openapiSnmpGroupCreate() done.\n\n");
printf("Testing openapiSnmpGroupDelete():\n");
securityLevel, &contextDesc);
printf("NULL client handle argument 1:(result = %d)\n", result);
securityLevel, &contextDesc);
printf("NULL group name argument 2:(result = %d)\n", result);
securityLevel, &contextDesc);
printf("Buffdesc 0 length for group name argument 2:(result = %d)\n", result);
securityLevel, &contextDesc);
printf("less than minimum value security model argument 3:(result = %d)\n", result);
securityLevel, &contextDesc);
printf("greater than maximum value security model argument 3:(result = %d)\n", result);
printf("less than minimum value security level argument 4:(result = %d)\n", result);
printf("greater than maximum value security level argument 4:(result = %d)\n", result);
securityLevel, &badBufdescPointer);
printf("NULL context argument 5:(result = %d)\n", result);
securityLevel, &zeroLenBuf);
printf("Buffdesc 0 length for context argument 5:(result = %d)\n", result);
printf("Testing openapiSnmpGroupDelete() done.\n\n");
printf("Testing openapiSnmpGroupGetNext():\n");
&contextDesc, &readDesc, &writeDesc, ¬ifyDesc,
&nextGroupDesc, &nextContextDesc);
printf("NULL client handle argument 1:(result = %d)\n", result);
&contextDesc, &readDesc, &writeDesc, ¬ifyDesc,
&nextGroupDesc, &nextContextDesc);
printf("NULL group name argument 2:(result = %d)\n", result);
&contextDesc, &readDesc, &writeDesc, ¬ifyDesc,
&nextGroupDesc, &nextContextDesc);
printf("Buffdesc 0 length for group name argument 2:(result = %d)\n", result);
&contextDesc, &readDesc, &writeDesc, ¬ifyDesc,
&nextGroupDesc, &nextContextDesc);
printf("NULL security model argument 3:(result = %d)\n", result);
&contextDesc, &readDesc, &writeDesc, ¬ifyDesc,
&nextGroupDesc, &nextContextDesc);
printf("NULL security level argument 4:(result = %d)\n", result);
&badBufdescPointer, &readDesc, &writeDesc, ¬ifyDesc,
&nextGroupDesc, &nextContextDesc);
printf("NULL context argument 5:(result = %d)\n", result);
&zeroLenBuf, &readDesc, &writeDesc, ¬ifyDesc,
&nextGroupDesc, &nextContextDesc);
printf("Buffdesc 0 length for context argument 5:(result = %d)\n", result);
&contextDesc, &badBufdescPointer, &writeDesc, ¬ifyDesc,
&nextGroupDesc, &nextContextDesc);
printf("NULL readview argument 6:(result = %d)\n", result);
&contextDesc, &zeroLenBuf, &writeDesc, ¬ifyDesc,
&nextGroupDesc, &nextContextDesc);
printf("Buffdesc 0 length for readview argument 6:(result = %d)\n", result);
&contextDesc, &readDesc, &badBufdescPointer, ¬ifyDesc,
&nextGroupDesc, &nextContextDesc);
printf("NULL writeview argument 7:(result = %d)\n", result);
&contextDesc, &readDesc, &zeroLenBuf, ¬ifyDesc,
&nextGroupDesc, &nextContextDesc);
printf("Buffdesc 0 length for writeview argument 7:(result = %d)\n", result);
&contextDesc, &readDesc, &writeDesc, &badBufdescPointer,
&nextGroupDesc, &nextContextDesc);
printf("NULL notifyview argument 8:(result = %d)\n", result);
&contextDesc, &readDesc, &writeDesc, &zeroLenBuf,
&nextGroupDesc, &nextContextDesc);
printf("Buffdesc 0 length for notifyview argument 8:(result = %d)\n", result);
&contextDesc, &readDesc, &writeDesc, ¬ifyDesc,
&badBufdescPointer, &nextContextDesc);
printf("NULL next group name argument 9:(result = %d)\n", result);
&contextDesc, &readDesc, &writeDesc, ¬ifyDesc,
&zeroLenBuf, &nextContextDesc);
printf("Buffdesc 0 length for next group name argument 9:(result = %d)\n", result);
&contextDesc, &readDesc, &writeDesc, ¬ifyDesc,
&nextGroupDesc, &badBufdescPointer);
printf("NULL next context argument 10:(result = %d)\n", result);
&contextDesc, &readDesc, &writeDesc, ¬ifyDesc,
&nextGroupDesc, &zeroLenBuf);
printf("Buffdesc 0 length for next context argument 10:(result = %d)\n", result);
printf("Testing openapiSnmpGroupGetNext() done.\n\n");
printf("Testing openapiSnmpLocalEngineIdDelete():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("Testing openapiSnmpLocalEngineIdDelete() done.\n\n");
printf("Testing openapiSnmpLocalEngineIdGet():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("NULL engine id argument 2:(result = %d)\n", result);
printf("Buffdesc 0 length for engine id argument 2:(result = %d)\n", result);
printf("Testing openapiSnmpLocalEngineIdGet() done.\n\n");
printf("Testing openapiSnmpLocalEngineIdSet():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("NULL engine id argument 2:(result = %d)\n", result);
printf("Buffdesc 0 length for engine id argument 2:(result = %d)\n", result);
printf("Testing openapiSnmpLocalEngineIdSet() done.\n\n");
printf("Testing openapiSnmpUserCreate():\n");
&authPwd, &authKey, privProto, &privPwd,
&privKey, &engineId);
printf("NULL client handle argument 1:(result = %d)\n", result);
&authPwd, &authKey, privProto, &privPwd,
&privKey, &engineId);
printf("NULL user name argument 2:(result = %d)\n", result);
&authPwd, &authKey, privProto, &privPwd,
&privKey, &engineId);
printf("Buffdesc 0 length for user name argument 2:(result = %d)\n", result);
&authPwd, &authKey, privProto, &privPwd,
&privKey, &engineId);
printf("NULL group name argument 3:(result = %d)\n", result);
&authPwd, &authKey, privProto, &privPwd,
&privKey, &engineId);
printf("Buffdesc 0 length for group name argument 3:(result = %d)\n", result);
&authPwd, &authKey, privProto, &privPwd,
&privKey, &engineId);
printf("less than minimum value auth protocol argument 4:(result = %d)\n", result);
&authPwd, &authKey, privProto, &privPwd,
&privKey, &engineId);
printf("greater than maximum value auth protocol argument 4:(result = %d)\n", result);
&badBufdescPointer, &authKey, privProto, &privPwd,
&privKey, &engineId);
printf("NULL auth password argument 5:(result = %d)\n", result);
&zeroLenBuf, &authKey, privProto, &privPwd,
&privKey, &engineId);
printf("Buffdesc 0 length for auth password argument 5:(result = %d)\n", result);
&authPwd, &badBufdescPointer, privProto, &privPwd,
&privKey, &engineId);
printf("NULL auth key argument 6:(result = %d)\n", result);
&authPwd, &zeroLenBuf, privProto, &privPwd,
&privKey, &engineId);
printf("Buffdesc 0 length for auth key argument 6:(result = %d)\n", result);
&privKey, &engineId);
printf("less than minimum value priv protocol argument 7:(result = %d)\n", result);
&privKey, &engineId);
printf("greater than maximum value priv protocol argument 7:(result = %d)\n", result);
&authPwd, &authKey, privProto, &badBufdescPointer,
&privKey, &engineId);
printf("NULL priv password argument 8:(result = %d)\n", result);
&authPwd, &authKey, privProto, &zeroLenBuf,
&privKey, &engineId);
printf("Buffdesc 0 length for priv password argument 8:(result = %d)\n", result);
&authPwd, &authKey, privProto, &privPwd,
&badBufdescPointer, &engineId);
printf("NULL priv key argument 9:(result = %d)\n", result);
&authPwd, &authKey, privProto, &privPwd,
&zeroLenBuf, &engineId);
printf("Buffdesc 0 length for priv key argument 9:(result = %d)\n", result);
&authPwd, &authKey, privProto, &privPwd,
&privKey, &badBufdescPointer);
printf("NULL engine id argument 10:(result = %d)\n", result);
&authPwd, &authKey, privProto, &privPwd,
&privKey, &zeroLenBuf);
printf("Buffdesc 0 length for engine id argument 10:(result = %d)\n", result);
printf("Testing openapiSnmpUserCreate() done.\n\n");
printf("Testing openapiSnmpUserDelete():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("NULL user name argument 2:(result = %d)\n", result);
printf("Buffdesc 0 length for user name argument 2:(result = %d)\n", result);
printf("NULL engine id argument 3:(result = %d)\n", result);
printf("Buffdesc 0 length for engine id argument 3:(result = %d)\n", result);
printf("Testing openapiSnmpUserDelete() done.\n\n");
printf("Testing openapiSnmpUserGetNext():\n");
&authProto, &privProto, &nextUserName, &nextEngineId);
printf("NULL client handle argument 1:(result = %d)\n", result);
&authProto, &privProto, &nextUserName, &nextEngineId);
printf("NULL user name argument 2:(result = %d)\n", result);
&authProto, &privProto, &nextUserName, &nextEngineId);
printf("Buffdesc 0 length for user name argument 2:(result = %d)\n", result);
&authProto, &privProto, &nextUserName, &nextEngineId);
printf("NULL engine id argument 3:(result = %d)\n", result);
&authProto, &privProto, &nextUserName, &nextEngineId);
printf("Buffdesc 0 length for engine id argument 3:(result = %d)\n", result);
&authProto, &privProto, &nextUserName, &nextEngineId);
printf("NULL group name argument 4:(result = %d)\n", result);
&authProto, &privProto, &nextUserName, &nextEngineId);
printf("Buffdesc 0 length for group name argument 4:(result = %d)\n", result);
NULL, &privProto, &nextUserName, &nextEngineId);
printf("NULL auth protocol argument 5:(result = %d)\n", result);
&authProto, NULL, &nextUserName, &nextEngineId);
printf("NULL priv protocol argument 6:(result = %d)\n", result);
&authProto, &privProto, &badBufdescPointer, &nextEngineId);
printf("NULL next user name argument 7:(result = %d)\n", result);
&authProto, &privProto, &zeroLenBuf, &nextEngineId);
printf("Buffdesc 0 length for next user name argument 7:(result = %d)\n", result);
&authProto, &privProto, &nextUserName, &badBufdescPointer);
printf("NULL next engine id argument 8:(result = %d)\n", result);
&authProto, &privProto, &nextUserName, &zeroLenBuf);
printf("Buffdesc 0 length for next engine id argument 8:(result = %d)\n", result);
printf("Testing openapiSnmpUserGetNext() done.\n\n");
printf("Testing openapiSnmpHostCreate():\n");
securityLevel, notifyType, timeout, retries, &filterDesc);
printf("NULL client handle argument 1:(result = %d)\n", result);
&securityName, securityModel, securityLevel,
notifyType, timeout, retries, &filterDesc);
printf("NULL host argument 2:(result = %d)\n", result);
securityModel, securityLevel, notifyType,
timeout, retries, &filterDesc);
printf("Buffdesc 0 length for host argument 2:(result = %d)\n", result);
securityModel, securityLevel, notifyType,
timeout, retries, &filterDesc);
printf("less than minimum value port argument 3:(result = %d)\n", result);
securityLevel, notifyType, timeout, retries, &filterDesc);
printf("greater than maximum value port argument 3:(result = %d)\n", result);
securityModel, securityLevel, notifyType,
timeout, retries, &filterDesc);
printf("NULL security name argument 4:(result = %d)\n", result);
securityModel, securityLevel, notifyType,
timeout, retries, &filterDesc);
printf("Buffdesc 0 length for security name argument 4:(result = %d)\n", result);
timeout, retries, &filterDesc);
printf("less than minimum value security model argument 5:(result = %d)\n", result);
timeout, retries, &filterDesc);
printf("greater than maximum value security model argument 5:(result = %d)\n", result);
timeout, retries, &filterDesc);
printf("less than minimum value security level argument 6:(result = %d)\n", result);
timeout, retries, &filterDesc);
printf("greater than maximum value security level argument 6:(result = %d)\n", result);
timeout, retries, &filterDesc);
printf("less than minimum value notify type argument 7:(result = %d)\n", result);
timeout, retries, &filterDesc);
printf("greater than maximum value notify type argument 7:(result = %d)\n", result);
securityModel, securityLevel, notifyType,
0, retries, &filterDesc);
printf("less than minimum value timeout argument 8:(result = %d)\n", result);
securityModel, securityLevel, notifyType,
301, retries, &filterDesc);
printf("greater than maximum value timeout argument 8:(result = %d)\n", result);
securityModel, securityLevel, notifyType,
timeout, 0, &filterDesc);
printf("less than minimum value retries argument 9:(result = %d)\n", result);
securityModel, securityLevel, notifyType,
timeout, 256, &filterDesc);
printf("greater than maximum value retries argument 9:(result = %d)\n", result);
securityModel, securityLevel, notifyType,
timeout, retries, &badBufdescPointer);
printf("NULL filter argument 10:(result = %d)\n", result);
securityModel, securityLevel, notifyType,
timeout, retries, &zeroLenBuf);
printf("Buffdesc 0 length for filter argument 10:(result = %d)\n", result);
printf("Testing openapiSnmpHostCreate() done.\n\n");
printf("Testing openapiSnmpHostDelete():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("NULL host argument 2:(result = %d)\n", result);
printf("Buffdesc 0 length for host argument 2:(result = %d)\n", result);
printf("less than minimum value notify type argument 3:(result = %d)\n", result);
printf("greater than maximum value notify type argument 3:(result = %d)\n", result);
printf("Testing openapiSnmpHostDelete() done.\n\n");
printf("Testing openapiSnmpHostGetNext():\n");
&securityModel, &securityLevel, ¬ifyType,
&timeout, &retries, &filterDesc, &nextHost);
printf("NULL client handle argument 1:(result = %d)\n", result);
&securityName, &securityModel, &securityLevel,
¬ifyType, &timeout, &retries, &filterDesc, &nextHost);
printf("NULL host argument 2:(result = %d)\n", result);
&securityModel, &securityLevel, ¬ifyType,
&timeout, &retries, &filterDesc, &nextHost);
printf("Buffdesc 0 length for host argument 2:(result = %d)\n", result);
&securityModel, &securityLevel, ¬ifyType,
&timeout, &retries, &filterDesc, &nextHost);
printf("NULL port argument 3:(result = %d)\n", result);
&securityModel, &securityLevel, ¬ifyType, &timeout,
&retries, &filterDesc, &nextHost);
printf("NULL security name argument 4:(result = %d)\n", result);
&securityModel, &securityLevel, ¬ifyType,
&timeout, &retries, &filterDesc, &nextHost);
printf("Buffdesc 0 length for security name argument 4:(result = %d)\n", result);
NULL, &securityLevel, ¬ifyType, &timeout,
&retries, &filterDesc, &nextHost);
printf("NULL security model argument 5:(result = %d)\n", result);
&securityModel, NULL, ¬ifyType, &timeout,
&retries, &filterDesc, &nextHost);
printf("NULL security level argument 6:(result = %d)\n", result);
&securityModel, &securityLevel, NULL, &timeout,
&retries, &filterDesc, &nextHost);
printf("NULL notify type argument 7:(result = %d)\n", result);
&securityModel, &securityLevel, ¬ifyType, NULL,
&retries, &filterDesc, &nextHost);
printf("NULL timeout argument 8:(result = %d)\n", result);
&securityModel, &securityLevel, ¬ifyType, &timeout,
NULL, &filterDesc, &nextHost);
printf("NULL retries argument 9:(result = %d)\n", result);
&securityModel, &securityLevel, ¬ifyType, &timeout,
&retries, &badBufdescPointer, &nextHost);
printf("NULL filter argument 10:(result = %d)\n", result);
&securityModel, &securityLevel, ¬ifyType, &timeout,
&retries, &zeroLenBuf, &nextHost);
printf("Buffdesc 0 length for filter argument 10:(result = %d)\n", result);
&securityModel, &securityLevel, ¬ifyType, &timeout,
&retries, &filterDesc, &badBufdescPointer);
printf("NULL next host argument 11:(result = %d)\n", result);
&securityModel, &securityLevel, ¬ifyType, &timeout,
&retries, &filterDesc, &zeroLenBuf);
printf("Buffdesc 0 length for next host argument 11:(result = %d)\n", result);
printf("Testing openapiSnmpHostGetNext() done.\n\n");
printf("Testing openapiSnmpTrapFlagGet():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("less than minimum value trap flag argument 2:(result = %d)\n", result);
printf("greater than maximum value trap flag argument 2:(result = %d)\n", result);
printf("NULL trap mode argument 3:(result = %d)\n", result);
printf("Testing openapiSnmpTrapFlagGet() done.\n\n");
printf("Testing openapiSnmpTrapFlagSet():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("less than minimum value trap flag argument 2:(result = %d)\n", result);
printf("greater than maximum value trap flag argument 2:(result = %d)\n", result);
printf("invalid trap mode argument 3:(result = %d)\n", result);
printf("Testing openapiSnmpTrapFlagSet() done.\n\n");
printf("Testing openapiSnmpTrapSrcIntfGet():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("NULL source interface argument 1:(result = %d)\n", result);
printf("NULL source interface type argument 2:(result = %d)\n", result);
printf("NULL source address argument 3:(result = %d)\n", result);
printf("Testing openapiSnmpTrapSrcIntfGet() done.\n\n");
printf("Testing openapiSnmpTrapSrcIntfSet():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("less than minimum value source interface argument 2:(result = %d)\n", result);
printf("greater than maximum value source interface argument 2:(result = %d)\n", result);
printf("Testing openapiSnmpTrapSrcIntfSet() done.\n\n");
printf("Testing openapiSnmpViewCreate():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("NULL view name argument 2:(result = %d)\n", result);
printf("Buffdesc 0 length for view name argument 2:(result = %d)\n", result);
printf("NULL oid argument 3:(result = %d)\n", result);
printf("Buffdesc 0 length for oid argument 3:(result = %d)\n", result);
printf("less than minimum value view type argument 4:(result = %d)\n", result);
printf("greater than maximum value view type argument 3:(result = %d)\n", result);
printf("Testing openapiSnmpViewCreate() done.\n\n");
printf("Testing openapiSnmpViewDelete():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("NULL view name argument 2:(result = %d)\n", result);
printf("Buffdesc 0 length for view name argument 2:(result = %d)\n", result);
printf("NULL oid argument 3:(result = %d)\n", result);
printf("Buffdesc 0 length for oid argument 3:(result = %d)\n", result);
printf("Testing openapiSnmpViewDelete() done.\n\n");
printf("Testing openapiSnmpViewGetNext():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
result =
openapiSnmpViewGetNext(clientHandle, &badBufdescPointer, &oidDesc, &viewType, &nextViewName, &nextOidTree);
printf("NULL view name argument 2:(result = %d)\n", result);
printf("Buffdesc 0 length for view name argument 2:(result = %d)\n", result);
result =
openapiSnmpViewGetNext(clientHandle, &viewDesc, &badBufdescPointer, &viewType, &nextViewName, &nextOidTree);
printf("NULL oid argument 3:(result = %d)\n", result);
result =
openapiSnmpViewGetNext(clientHandle, &viewDesc, &zeroLenBuf, &viewType, &nextViewName, &nextOidTree);
printf("Buffdesc 0 length for oid argument 3:(result = %d)\n", result);
printf("NULL view type argument 4:(result = %d)\n", result);
result =
openapiSnmpViewGetNext(clientHandle, &viewDesc, &oidDesc, &viewType, &badBufdescPointer, &nextOidTree);
printf("NULL next view name argument 5:(result = %d)\n", result);
printf("Buffdesc 0 length for next view name argument 5:(result = %d)\n", result);
result =
openapiSnmpViewGetNext(clientHandle, &viewDesc, &oidDesc, &viewType, &nextViewName, &badBufdescPointer);
printf("NULL next oid argument 6:(result = %d)\n", result);
printf("Buffdesc 0 length for next oid argument 6:(result = %d)\n", result);
printf("Testing openapiSnmpViewGetNext() done.\n\n");
printf("Testing openapiSnmpTreeFamilyOidStringGet():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("NULL view name argument 2:(result = %d)\n", result);
printf("Buffdesc 0 length for view name argument 2:(result = %d)\n", result);
printf("NULL oid argument 3:(result = %d)\n", result);
printf("Buffdesc 0 length for oid argument 3:(result = %d)\n", result);
printf("less than minimum value tree type argument 4:(result = %d)\n", result);
printf("greater than maximum value tree type argument 4:(result = %d)\n", result);
printf("NULL next oid string argument 5:(result = %d)\n", result);
printf("Buffdesc 0 length for oid string argument 5:(result = %d)\n", result);
printf("Testing openapiSnmpTreeFamilyOidStringGet() done.\n\n");
printf("Testing openapiSnmpTreeFamilyOidValGet():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("NULL view name argument 2:(result = %d)\n", result);
printf("Buffdesc 0 length for view name argument 2:(result = %d)\n", result);
printf("NULL oid argument 3:(result = %d)\n", result);
printf("Buffdesc 0 length for oid argument 3:(result = %d)\n", result);
printf("less than minimum value tree type argument 4:(result = %d)\n", result);
printf("greater than maximum value tree type argument 4:(result = %d)\n", result);
printf("NULL next oid value argument 5:(result = %d)\n", result);
printf("Buffdesc 0 length for oid value argument 5:(result = %d)\n", result);
printf("Testing openapiSnmpTreeFamilyOidValGet() done.\n\n");
printf("Testing openapiSnmpSysContactGet():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("NULL sys contact argument 2:(result = %d)\n", result);
printf("Buffdesc 0 length for sys contact argument 2:(result = %d)\n", result);
printf("Testing openapiSnmpSysContactGet() done.\n\n");
printf("Testing openapiSnmpSysContactSet():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("NULL sys contact argument 2:(result = %d)\n", result);
printf("Buffdesc 0 length for sys contact argument 2:(result = %d)\n", result);
printf("Testing openapiSnmpSysContactSet() done.\n\n");
printf("Testing openapiSnmpSysNameGet():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("NULL sys name argument 2:(result = %d)\n", result);
printf("Buffdesc 0 length for sys name argument 2:(result = %d)\n", result);
printf("Testing openapiSnmpSysNameGet() done.\n\n");
printf("Testing openapiSnmpSysNameSet():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("NULL sys name id argument 2:(result = %d)\n", result);
printf("Buffdesc 0 length for sys name argument 2:(result = %d)\n", result);
printf("Testing openapiSnmpSysNameSet() done.\n\n");
printf("Testing openapiSnmpSysLocationGet():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("NULL sys location argument 2:(result = %d)\n", result);
printf("Buffdesc 0 length for sys location argument 2:(result = %d)\n", result);
printf("Testing openapiSnmpSysLocationGet() done.\n\n");
printf("Testing openapiSnmpSysLocationSet():\n");
printf("NULL client handle argument 1:(result = %d)\n", result);
printf("NULL sys location argument 2:(result = %d)\n", result);
printf("Buffdesc 0 length for sys location 2:(result = %d)\n", result);
printf("Testing openapiSnmpSysLocationSet() done.\n\n");
printf("SNMP OpEN APIs sanity done.\n");
return;
}
{
switch (type)
{
return "ACL";
return "Fan status";
return "Power supply status";
return "Temperature status";
return "BGP";
return "Link up/down";
return "multiple logins";
return "OSPFv2";
return "OSPFv3";
return "Spanning Tree";
return "User authentication";
return "Port MAC locking security violations";
}
return "";
}
{
switch (type)
{
return "Included";
return "Excluded";
}
return "";
}
{
switch (type)
{
return "Included";
return "Excluded";
}
return "";
}
{
switch (secLevel)
{
return "NoAuthNoPriv";
return "AuthNoPriv";
return "AuthPriv";
}
return "";
}
{
switch (secModel)
{
return "Any";
return "SNMPv1";
return "SNMPv2c";
return "SNMPv3";
}
return "";
}
{
switch (type)
{
return "Trap";
return "Inform";
}
return "";
}
{
switch (type)
{
return "None";
return "Read-Only";
return "Read-Write";
return "Super-User";
}
return "";
}
{
switch (type)
{
return "None";
return "SHA";
return "MD5";
}
return "";
}
{
switch (type)
{
return "None";
return "DES";
return "3DES";
return "AES128";
return "AES192";
return "AES256";
}
return "";
}
char* getInterfaceType(uint32_t type)
{
switch (type)
{
return "Port";
return "VLAN";
return "Loop";
return "Tnnl";
}
return "";
}
{
{
printf("\nSNMP Engine ID is deleted successfully.\n");
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
{
char str[32+1];
memset(str, 0, sizeof(str));
desc.pstart = str;
desc.size = sizeof(str);
{
unsigned char *ptr = desc.pstart;
uint32_t idx;
if (fVerbose)
{
printf("Engine Id : ");
for (idx=0; idx<desc.size; idx++)
{
printf("%02x", (unsigned char) *ptr++);
}
printf("\n");
}
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
char *engineId)
{
char str[32+1];
if (strcmp(engineId, "default") == 0) { strcpy(str, "1"); }
else { strcpy(str, engineId); }
desc.pstart = str;
desc.size = strlen(str) + 1;
{
printf("\nSNMP Engine Id '%s' is configured successfully.\n", engineId);
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
{
char str[255+1];
memset(str, 0, sizeof(str));
desc.pstart = str;
desc.size = sizeof(str);
{
printf("\nSystem Name:%s \n", str);
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
char *sysName)
{
char str[255+1];
strcpy(str, sysName);
desc.pstart = str;
desc.size = strlen(str) + 1;
{
printf("\nSystem name '%s' is configured successfully.\n", sysName);
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
{
char str[255+1];
memset(str, 0, sizeof(str));
desc.pstart = str;
desc.size = sizeof(str);
{
printf("\nSystem Contact:%s \n", str);
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
char *sysContact)
{
char str[255+1];
strcpy(str, sysContact);
desc.pstart = str;
desc.size = strlen(str) + 1;
{
printf("\nSystem contact '%s' is configured successfully.\n", sysContact);
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
{
char str[255+1];
memset(str, 0, sizeof(str));
desc.pstart = str;
desc.size = sizeof(str);
{
printf("\nSystem Location:%s \n", str);
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
char *sysLocation)
{
char str[255+1];
strcpy(str, sysLocation);
desc.pstart = str;
desc.size = strlen(str) + 1;
{
printf("\nSystem location '%s' is configured successfully.\n", sysLocation);
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
char *userName,
char *groupName,
char *authPwd,
char *authKey,
char *privPwd,
char *privKey,
char *engineId)
{
char userNameStr[30+1];
char gStr[30+1];
char aPwdStr[32+1];
char aKeyStr[48+1];
char pPwdStr[32+1];
char pKeyStr[32+1];
char eStr[32+1];
strcpy(userNameStr, userName);
userDesc.pstart = userNameStr;
userDesc.size = strlen(userNameStr) + 1;
strcpy(gStr, groupName);
groupDesc.pstart = gStr;
groupDesc.size = strlen(gStr) + 1;
strcpy(aPwdStr, authPwd);
aPwdDesc.pstart = aPwdStr;
aPwdDesc.size = strlen(aPwdStr) + 1;
strcpy(aKeyStr, authKey);
aKeyDesc.pstart = aKeyStr;
aKeyDesc.size = strlen(aKeyStr) + 1;
strcpy(pPwdStr, privPwd);
pPwdDesc.pstart = pPwdStr;
pPwdDesc.size = strlen(pPwdStr) + 1;
strcpy(pKeyStr, privKey);
pKeyDesc.pstart = pKeyStr;
pKeyDesc.size = strlen(pKeyStr) + 1;
strcpy(eStr, engineId);
engineDesc.pstart = eStr;
engineDesc.size = strlen(eStr) + 1;
&userDesc, &groupDesc,
authProto, &aPwdDesc, &aKeyDesc,
privProto, &pPwdDesc, &pKeyDesc,
&engineDesc);
{
printf("\nSNMPv3 user '%s' is configured successfully.\n", userName);
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
char *userName,
char *engineId)
{
char userNameStr[30+1];
char eStr[32+1];
strcpy(userNameStr, userName);
userDesc.pstart = userNameStr;
userDesc.size = strlen(userNameStr) + 1;
strcpy(eStr, engineId);
engineDesc.pstart = eStr;
engineDesc.size = strlen(eStr) + 1;
&userDesc,
&engineDesc);
{
printf("\nSNMPv3 user '%s' is deleted successfully.\n", userName);
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
char *userName)
{
char userNameStr[30+1];
char groupNameStr[30+1];
char engineStr[32];
char nextUserNameStr[30+1];
char nextEngineStr[32];
bool fFound = false;
bool displayAllEntries = false;
uint32_t idx;
if ((NULL != userName) &&
(0 == strlen(userName)))
{
displayAllEntries = true;
}
memset(userNameStr, 0, sizeof(userNameStr));
userDesc.pstart = userNameStr;
userDesc.size = sizeof(userNameStr);
memset(groupNameStr, 0, sizeof(groupNameStr));
groupDesc.pstart = groupNameStr;
groupDesc.size = sizeof(groupNameStr);
memset(engineStr, 0, sizeof(engineStr));
engineDesc.pstart = engineStr;
engineDesc.size = sizeof(engineStr);
memset(nextUserNameStr, 0, sizeof(nextUserNameStr));
nextUserDesc.pstart = nextUserNameStr;
nextUserDesc.size = sizeof(nextUserNameStr);
memset(nextEngineStr, 0, sizeof(nextEngineStr));
nextEngineDesc.pstart = nextEngineStr;
nextEngineDesc.size = sizeof(nextEngineStr);
&userDesc,
&engineDesc,
&groupDesc,
&authProto,
&privProto,
&nextUserDesc,
{
if (strcmp(userName, nextUserDesc.pstart)==0)
{
fFound = true;
break;
}
if (true == displayAllEntries)
{
printf("\n");
if (fVerbose)
{
printf("User name : %s\n"
"Group name : %s\n"
"Authentication : %d (%s)\n"
"Privilege : %d (%s)\n"
"Engine Id : ",
(char *) nextUserDesc.pstart,
(char *) groupDesc.pstart,
authProto, getAuthType(authProto),
privProto, getPrivType(privProto));
for (idx=0; idx<nextEngineDesc.size; idx++)
{
printf("%02x", nextEngineStr[idx]);
}
printf("\n");
}
}
memset(userNameStr, 0, sizeof(userNameStr));
strncpy(userDesc.pstart, nextUserDesc.pstart, nextUserDesc.size);
userDesc.size = nextUserDesc.size;
memset(engineStr, 0, sizeof(engineStr));
memcpy(engineDesc.pstart, nextEngineDesc.pstart, nextEngineDesc.size);
engineDesc.size = nextEngineDesc.size;
memset(nextEngineStr, 0, sizeof(nextEngineStr));
memset(groupNameStr, 0, sizeof(groupNameStr));
memset(nextUserNameStr, 0, sizeof(nextUserNameStr));
groupDesc.size = sizeof(groupNameStr);
nextUserDesc.size = sizeof(nextUserNameStr);
nextEngineDesc.size = sizeof(nextEngineStr);
}
if (fFound)
{
unsigned char *ptr = nextEngineDesc.pstart;
if (fVerbose)
{
printf("User name : %s\n"
"Group name : %s\n"
"Authentication : %d (%s)\n"
"Privilege : %d (%s)\n"
"Engine Id : ",
(char *) nextUserDesc.pstart,
(char *) groupDesc.pstart,
authProto, getAuthType(authProto),
privProto, getPrivType(privProto));
for (idx=0; idx<nextEngineDesc.size; idx++)
{
printf("%02x", (unsigned char) *ptr++);
}
printf("\n");
}
}
return;
}
char *groupName,
char *contextPrefix,
char *readView,
char *writeView,
char *notifyView)
{
char groupStr[30+1];
char contextStr[30+1];
char readStr[30+1];
char writeStr[30+1];
char notifyStr[30+1];
strcpy(groupStr, groupName);
groupDesc.pstart = groupStr;
groupDesc.size = strlen(groupStr) + 1;
strcpy(contextStr, contextPrefix);
contextDesc.pstart = contextStr;
contextDesc.size = strlen(contextStr) + 1;
strcpy(readStr, readView);
readDesc.pstart = readStr;
readDesc.size = strlen(readStr) + 1;
strcpy(writeStr, writeView);
writeDesc.pstart = writeStr;
writeDesc.size = strlen(writeStr) + 1;
strcpy(notifyStr, notifyView);
notifyDesc.pstart = notifyStr;
notifyDesc.size = strlen(notifyStr) + 1;
&groupDesc, securityModel, securityLevel,
&contextDesc, &readDesc, &writeDesc, ¬ifyDesc);
{
printf("\nSNMP group '%s' is configured successfully.\n", groupName);
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
char *groupName,
char *contextPrefix)
{
char groupStr[30+1];
char contextStr[30+1];
strcpy(groupStr, groupName);
groupDesc.pstart = groupStr;
groupDesc.size = strlen(groupStr) + 1;
strcpy(contextStr, contextPrefix);
contextDesc.pstart = contextStr;
contextDesc.size = strlen(contextStr) + 1;
&groupDesc,
securityModel,
securityLevel,
&contextDesc);
{
printf("\nSNMP group '%s' is deleted successfully.\n", groupName);
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
char *group)
{
char groupStr[30+1];
char contextStr[30+1];
char readStr[30+1];
char writeStr[30+1];
char notifyStr[30+1];
char nextGroupStr[30+1];
char nextContextStr[30+1];
bool displayAllEntries = false;
if ((NULL != group) &&
(0 == strlen(group)))
{
displayAllEntries = true;
}
memset(groupStr, 0, sizeof(groupStr));
groupDesc.pstart = groupStr;
groupDesc.size = sizeof(groupStr);
memset(nextGroupStr, 0, sizeof(nextGroupStr));
nextGroupDesc.pstart = nextGroupStr;
nextGroupDesc.size = sizeof(nextGroupStr);
memset(contextStr, 0, sizeof(contextStr));
contextDesc.pstart = contextStr;
contextDesc.size = sizeof(contextStr);
memset(nextContextStr, 0, sizeof(nextContextStr));
nextContextDesc.pstart = nextContextStr;
nextContextDesc.size = sizeof(nextContextStr);
memset(readStr, 0, sizeof(readStr));
readDesc.pstart = readStr;
readDesc.size = sizeof(readStr);
memset(writeStr, 0, sizeof(writeStr));
writeDesc.pstart = writeStr;
writeDesc.size = sizeof(writeStr);
memset(notifyStr, 0, sizeof(notifyStr));
notifyDesc.pstart = notifyStr;
notifyDesc.size = sizeof(notifyStr);
&groupDesc,
&securityModel,
&securityLevel,
&contextDesc,
&readDesc,
&writeDesc,
¬ifyDesc,
&nextGroupDesc,
{
if (true == displayAllEntries)
{
if (fVerbose)
{
printf("\n");
printf("Group name : %s\n"
"Security model : %d (%s)\n"
"Security level : %d (%s)\n"
"Context name : %s\n"
"Read view : %s\n"
"Write view : %s\n"
"Notify view : %s\n",
(char *) nextGroupDesc.pstart,
securityModel, getVersion(securityModel),
securityLevel, getSecurityLevel(securityLevel),
(char *) nextContextDesc.pstart,
(char *) readDesc.pstart,
(char *) writeDesc.pstart,
(char *) notifyDesc.pstart);
printf("\n");
}
}
else
{
if (strcmp(group, nextGroupDesc.pstart)==0)
{
if (fVerbose)
{
printf("\n");
printf("Group name : %s\n"
"Security model : %d (%s)\n"
"Security level : %d (%s)\n"
"Context name : %s\n"
"Read view : %s\n"
"Write view : %s\n"
"Notify view : %s\n",
(char *) nextGroupDesc.pstart,
securityModel, getVersion(securityModel),
securityLevel, getSecurityLevel(securityLevel),
(char *) nextContextDesc.pstart,
(char *) readDesc.pstart,
(char *) writeDesc.pstart,
(char *) notifyDesc.pstart);
printf("\n");
}
}
}
memset(readStr, 0, sizeof(readStr));
memset(writeStr, 0, sizeof(writeStr));
memset(notifyStr, 0, sizeof(notifyStr));
strncpy(groupDesc.pstart, nextGroupDesc.pstart, nextGroupDesc.size);
groupDesc.size = nextGroupDesc.size;
strncpy(contextDesc.pstart, nextContextDesc.pstart, nextContextDesc.size);
contextDesc.size = nextContextDesc.size;
nextGroupDesc.size = sizeof(nextGroupStr);
nextContextDesc.size = sizeof(nextContextStr);
}
return;
}
char *view,
char *oid,
{
char viewStr[30+1];
char oidStr[128+1];
strcpy(viewStr, view);
viewDesc.pstart = viewStr;
viewDesc.size = strlen(viewStr)+1;
strcpy(oidStr, oid);
oidDesc.pstart = oidStr;
oidDesc.size = strlen(oidStr)+1;
{
printf("\nSNMP view '%s' is configured successfully.\n", view);
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
char *view)
{
char viewStr[30+1];
char oidStr[128+1];
char oidValStr[128+1];
char oidStringStr[128+1];
char nextViewStr[30+1];
char nextOidStr[128+1];
bool displayAllEntries = false;
if ((NULL != view) &&
(0 == strlen(view)))
{
displayAllEntries = true;
}
memset(viewStr, 0, sizeof(viewStr));
viewDesc.pstart = viewStr;
viewDesc.size = sizeof(viewStr);
memset(oidStr, 0, sizeof(oidStr));
oidDesc.pstart = oidStr;
oidDesc.size = sizeof(oidStr);
memset(nextViewStr, 0, sizeof(nextViewStr));
nextViewDesc.pstart = nextViewStr;
nextViewDesc.size = sizeof(nextViewStr);
memset(nextOidStr, 0, sizeof(nextOidStr));
nextOidDesc.pstart = nextOidStr;
nextOidDesc.size = sizeof(nextOidStr);
memset(oidValStr, 0, sizeof(oidValStr));
oidValDesc.pstart = oidValStr;
oidValDesc.size = sizeof(oidValStr);
memset(oidStringStr, 0, sizeof(oidStringStr));
oidStringDesc.pstart = oidStringStr;
oidStringDesc.size = sizeof(oidStringStr);
strcpy(viewStr, view);
&viewDesc,
&oidDesc,
&type,
&nextViewDesc,
{
if (true == displayAllEntries)
{
if (fVerbose)
{
printf("\n");
printf("View name : %s\n"
"OID Tree : %s\n"
"OID String : %s\n"
"View Type : %d (%s)\n",
(char *) nextViewDesc.pstart,
(char *) nextOidDesc.pstart,
(char *) oidStringDesc.pstart,
type, getViewType(type));
printf("\n");
}
}
else
{
if (strcmp(view, nextViewDesc.pstart)==0)
{
if (fVerbose)
{
printf("\n");
printf("View name : %s\n"
"OID Tree : %s\n"
"OID String : %s\n"
"View Type : %d (%s)\n",
(char *) nextViewDesc.pstart,
(char *) nextOidDesc.pstart,
(char *) oidStringDesc.pstart,
type, getViewType(type));
printf("\n");
}
}
}
strncpy(viewDesc.pstart, nextViewDesc.pstart, nextViewDesc.size);
viewDesc.size = nextViewDesc.size;
strncpy(oidDesc.pstart, nextOidDesc.pstart, nextOidDesc.size);
oidDesc.size = nextOidDesc.size;
nextViewDesc.size = sizeof(nextViewStr);
nextOidDesc.size = sizeof(nextOidStr);
}
return;
}
char *view,
char *oid)
{
char viewStr[30+1];
char oidStr[128+1];
strcpy(viewStr, view);
viewDesc.pstart = viewStr;
viewDesc.size = strlen(viewStr)+1;
strcpy(oidStr, oid);
oidDesc.pstart = oidStr;
oidDesc.size = strlen(oidStr)+1;
{
printf("\nSNMP view '%s' is deleted successfully.\n", view);
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
char *filter,
char *oid,
{
char filterStr[30+1];
char oidStr[128+1];
strcpy(filterStr, filter);
filterDesc.pstart = filterStr;
filterDesc.size = strlen(filterStr)+1;
strcpy(oidStr, oid);
oidDesc.pstart = oidStr;
oidDesc.size = strlen(oidStr)+1;
{
printf("\nSNMP filter '%s' is configured successfully.\n", filter);
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
char *filter,
char *oid)
{
char filterStr[30+1];
char oidStr[128+1];
strcpy(filterStr, filter);
filterDesc.pstart = filterStr;
filterDesc.size = strlen(filterStr)+1;
strcpy(oidStr, oid);
oidDesc.pstart = oidStr;
oidDesc.size = strlen(oidStr)+1;
{
printf("\nSNMP filter '%s' is deleted successfully.\n", filter);
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
char *filter)
{
char filterStr[30+1];
char oidStr[128+1];
char oidValStr[128+1];
char oidStringStr[128+1];
char nextFilterStr[30+1];
char nextOidStr[128+1];
bool fFound = false;
bool displayAllEntries = false;
if ((NULL != filter) &&
(0 == strlen(filter)))
{
displayAllEntries = true;
}
memset(filterStr, 0, sizeof(filterStr));
filterDesc.pstart = filterStr;
filterDesc.size = sizeof(filterStr);
memset(oidStr, 0, sizeof(oidStr));
oidDesc.pstart = oidStr;
oidDesc.size = sizeof(oidStr);
memset(nextFilterStr, 0, sizeof(nextFilterStr));
nextFilterDesc.pstart = nextFilterStr;
nextFilterDesc.size = sizeof(nextFilterStr);
memset(nextOidStr, 0, sizeof(nextOidStr));
nextOidDesc.pstart = nextOidStr;
nextOidDesc.size = sizeof(nextOidStr);
memset(oidValStr, 0, sizeof(oidValStr));
oidValDesc.pstart = oidValStr;
oidValDesc.size = sizeof(oidValStr);
memset(oidStringStr, 0, sizeof(oidStringStr));
oidStringDesc.pstart = oidStringStr;
oidStringDesc.size = sizeof(oidStringStr);
strcpy(filterStr, filter);
&filterDesc,
&oidDesc,
&type,
&nextFilterDesc,
{
if (strcmp(filter, nextFilterDesc.pstart)==0)
{
fFound = true;
break;
}
if (true == displayAllEntries)
{
if (fVerbose)
{
printf("\n");
printf("Filter name : %s\n"
"OID Tree : %s\n"
"OID String : %s\n"
"View Type : %d (%s)\n",
(char *) nextFilterDesc.pstart,
(char *) nextOidDesc.pstart,
(char *) oidStringDesc.pstart,
type, getFilterType(type));
printf("\n");
}
}
strncpy(filterDesc.pstart, nextFilterDesc.pstart, nextFilterDesc.size);
filterDesc.size = nextFilterDesc.size;
strncpy(oidDesc.pstart, nextOidDesc.pstart, nextOidDesc.size);
oidDesc.size = nextOidDesc.size;
nextFilterDesc.size = sizeof(nextFilterStr);
nextOidDesc.size = sizeof(nextOidStr);
}
if (fFound)
{
if (fVerbose)
{
printf("Filter name : %s\n"
"OID Tree : %s\n"
"OID String : %s\n"
"View Type : %d (%s)\n",
(char *) nextFilterDesc.pstart,
(char *) nextOidDesc.pstart,
(char *) oidStringDesc.pstart,
type, getFilterType(type));
}
}
return;
}
char *host,
uint32_t serverPort,
char *securityName,
uint32_t timeout,
uint32_t retries,
char *filter)
{
char hostStr[158+1];
char securityStr[30+1];
char filterStr[30+1];
strcpy(hostStr, host);
hostDesc.pstart = hostStr;
hostDesc.size = strlen(hostStr)+1;
strcpy(securityStr, securityName);
securityDesc.pstart = securityStr;
securityDesc.size = strlen(securityStr)+1;
strcpy(filterStr, filter);
filterDesc.pstart = filterStr;
filterDesc.size = strlen(filterStr)+1;
&hostDesc, serverPort,
&securityDesc, securityModel,
securityLevel, notifyType,
timeout, retries,
&filterDesc);
{
printf("\nSNMP host '%s' is configured successfully.\n", host);
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
char *host,
{
char hostStr[158+1];
strcpy(hostStr, host);
hostDesc.pstart = hostStr;
hostDesc.size = strlen(hostStr)+1;
{
printf("\nSNMP host '%s' is deleted successfully.\n", host);
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
char *community,
char *viewName,
char *ipStr)
{
char communityStr[20+1];
char viewStr[30+1];
strcpy(communityStr, community);
communityDesc.pstart = communityStr;
communityDesc.size = strlen(communityStr)+1;
strcpy(viewStr, viewName);
viewDesc.pstart = viewStr;
viewDesc.size = strlen(viewStr)+1;
memset(&ipAddr, 0, sizeof(ipAddr));
inet_pton(AF_INET, ipStr, (void*)&(ipAddr.addr.ipv4));
{
printf("\nSNMP community '%s' is configured successfully.\n", community);
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
char *community)
{
char communityStr[20+1];
strcpy(communityStr, community);
communityDesc.pstart = communityStr;
communityDesc.size = strlen(communityStr)+1;
{
printf("\nSNMP community '%s' is deleted successfully.\n", community);
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
char *community)
{
char ipAddrStr[32];
char communityStr[20+1];
char viewStr[30+1];
char nextCommunityStr[20+1];
bool fFound = false;
bool displayAllEntries = false;
if ((NULL != community) &&
(0 == strlen(community)))
{
displayAllEntries = true;
}
memset(communityStr, 0, sizeof(communityStr));
communityDesc.pstart = communityStr;
communityDesc.size = sizeof(communityStr);
memset(viewStr, 0, sizeof(viewStr));
viewDesc.pstart = viewStr;
viewDesc.size = sizeof(viewStr);
memset(nextCommunityStr, 0, sizeof(nextCommunityStr));
nextCommunityDesc.pstart = nextCommunityStr;
nextCommunityDesc.size = sizeof(nextCommunityStr);
&communityDesc,
&accessType,
&viewDesc,
&addr,
{
if (strcmp(community, nextCommunityDesc.pstart)==0)
{
fFound = true;
break;
}
if (true == displayAllEntries)
{
{
memset(&ipAddrStr, 0, sizeof(ipAddrStr));
if (inet_ntop(AF_INET, (void*)&(addr.addr.ipv4), ipAddrStr, sizeof(ipAddrStr)) == NULL)
{
}
}
else
{
strcpy(ipAddrStr, "All");
}
PRINTBADRESULT(result, "inet_ntop", "");
if (fVerbose)
{
printf("\n");
printf("Community : %s\n"
"Access Type : %d (%s)\n"
"View Name : %s\n"
"IP Address : %s\n",
(char *) nextCommunityDesc.pstart,
accessType, getAccessType(accessType),
(char *) viewDesc.pstart,
ipAddrStr);
printf("\n");
}
}
memset(&ipAddrStr, 0, sizeof(ipAddrStr));
memset(viewStr, 0, sizeof(viewStr));
viewDesc.size = sizeof(viewStr);
strncpy(communityDesc.pstart, nextCommunityDesc.pstart, nextCommunityDesc.size);
communityDesc.size = nextCommunityDesc.size;
nextCommunityDesc.size = sizeof(nextCommunityStr);
memset(nextCommunityStr, 0, sizeof(nextCommunityStr));
}
if (fFound)
{
{
memset(&ipAddrStr, 0, sizeof(ipAddrStr));
if (inet_ntop(AF_INET, (void*)&(addr.addr.ipv4), ipAddrStr, sizeof(ipAddrStr)) == NULL)
{
}
}
else
{
strcpy(ipAddrStr, "All");
}
PRINTBADRESULT(result, "inet_ntop", "");
if (fVerbose)
{
printf("Community : %s\n"
"Access Type : %d (%s)\n"
"View Name : %s\n"
"IP Address : %s\n",
(char *) nextCommunityDesc.pstart,
accessType,getAccessType(accessType),
(char *) viewDesc.pstart,
ipAddrStr);
}
}
return;
}
char *community,
char *group,
char *ipStr)
{
char communityStr[20+1];
char groupStr[30+1];
strcpy(communityStr, community);
communityDesc.pstart = communityStr;
communityDesc.size = strlen(communityStr)+1;
strcpy(groupStr, group);
groupDesc.pstart = groupStr;
groupDesc.size = strlen(groupStr) + 1;
memset(&ipAddr, 0, sizeof(ipAddr));
inet_pton(AF_INET, ipStr, (void*)&(ipAddr.addr.ipv4));
{
printf("\nSNMP community '%s' is configured successfully.\n", community);
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
char *host)
{
char hostStr[30+1];
char securityStr[30+1];
char filterStr[30+1];
char nextHostStr[30+1];
uint32_t serverPort = 0;
uint32_t timeout = 0;
uint32_t retries = 0;
bool fFound = false;
bool displayAllEntries = false;
if ((NULL != host) &&
(0 == strlen(host)))
{
displayAllEntries = true;
}
memset(hostStr, 0, sizeof(hostStr));
hostDesc.pstart = hostStr;
hostDesc.size = sizeof(hostStr);
memset(securityStr, 0, sizeof(securityStr));
securityDesc.pstart = securityStr;
securityDesc.size = sizeof(securityStr);
memset(filterStr, 0, sizeof(filterStr));
filterDesc.pstart = filterStr;
filterDesc.size = sizeof(filterStr);
memset(nextHostStr, 0, sizeof(nextHostStr));
nextHostDesc.pstart = nextHostStr;
nextHostDesc.size = sizeof(nextHostStr);
&hostDesc,
&serverPort,
&securityDesc,
&securityModel,
&securityLevel,
¬ifyType,
&timeout,
&retries,
&filterDesc,
{
if (strcmp(host, nextHostDesc.pstart)==0)
{
fFound = true;
break;
}
if (true == displayAllEntries)
{
if (fVerbose)
{
printf("\n");
printf("Address:port : %s:%d\n"
"Security name : %s\n"
"Security model : %d (%s)\n"
"Security level : %d (%s)\n"
"Notify type : %d (%s)\n"
"Timeout : %d\n"
"Retries : %d\n"
"Filter : %s\n",
(char *) nextHostDesc.pstart, serverPort,
(char *) securityDesc.pstart,
securityModel, getVersion(securityModel),
securityLevel, getSecurityLevel(securityLevel),
notifyType, getNotifyType(notifyType),
timeout,
retries,
(char *) filterDesc.pstart);
printf("\n");
}
}
memset(securityStr, 0, sizeof(securityStr));
strncpy(hostDesc.pstart, nextHostDesc.pstart, nextHostDesc.size);
hostDesc.size = nextHostDesc.size;
nextHostDesc.size = sizeof(nextHostStr);
}
if (fFound)
{
if (fVerbose)
{
printf("Address:port : %s:%d\n"
"Security name : %s\n"
"Security model : %d (%s)\n"
"Security level : %d (%s)\n"
"Notify type : %d (%s)\n"
"Timeout : %d\n"
"Retries : %d\n"
"Filter : %s\n",
(char *) nextHostDesc.pstart, serverPort,
(char *) securityDesc.pstart,
securityModel, getVersion(securityModel),
securityLevel, getSecurityLevel(securityLevel),
notifyType, getNotifyType(notifyType),
timeout,
retries,
(char *) filterDesc.pstart);
}
}
return;
}
uint32_t flagBits,
bool mode)
{
{
printf("\nSNMP trap flag %d (%s) is configured successfully with mode %d.\n",
flagBits, getTrapFlagType(flagBits), mode);
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
uint32_t flagBits)
{
bool tmpMode = 0;
{
printf("\nSNMP trap flag:%d (%s) mode:%d\n", flagBits, getTrapFlagType(flagBits), tmpMode);
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
uint32_t intf)
{
{
printf("\nSNMP Source interface '%d' is configured successfully.\n", intf);
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
{
uint32_t tmpIntf;
char msg[256]= {0};
char ipAddr[32];
memset(&ipAddr, 0, sizeof(ipAddr));
PRINTBADRESULT(result, "openapiSnmpTrapSrcIntfGet", msg);
{
{
if (inet_ntop(AF_INET, (void*)&(addr.addr.ipv4), ipAddr, sizeof(ipAddr)) == NULL)
{
}
}
else
{
if (inet_ntop(AF_INET6, (
void*)&(addr.addr.
ipv6), ipAddr,
sizeof(ipAddr)) == NULL)
{
}
}
{
if (fVerbose)
{
printf("Interface:%d Type:%d Address:%s\n", tmpIntf, tmpType, ipAddr);
}
}
else
{
PRINTBADRESULT(result, "inet_ntop", msg);
}
}
else
{
PRINTBADRESULT(result, __func__, "");
}
return;
}
char *communityName,
char *ipAddr,
char *ipMask,
OPEN_SNMP_COMMUNITY_STATUS_t status)
{
uint32_t temp = 0;
strncpy(str, communityName, sizeof(str));
buffDesc.pstart = str;
buffDesc.size = strlen(str) + 1;
memset(&community, 0, sizeof(community));
community.
type = accessType;
inet_pton(AF_INET, ipAddr, (void*)&temp);
community.ipAddr.addr.ipv4 = ntohl(temp);
temp = 0;
inet_pton(AF_INET, ipMask, (void*)&temp);
community.ipMask.addr.ipv4 = ntohl(temp);
community.
status = status;
&buffDesc,
community);
PRINTBADRESULT(result, "testSnmpCommunityWithIPAddrCreate", "");
return;
}
char *communityName)
{
strncpy(str, communityName, sizeof(str));
buffDesc.pstart = str;
buffDesc.size = strlen(str) + 1;
PRINTBADRESULT(result, "testSnmpCommunityAndIPAddrDelete", "");
return;
}
char *communityName)
{
strncpy(str, communityName, sizeof(str));
buffDesc.pstart = str;
buffDesc.size = strlen(str) + 1;
memset(&community, 0, sizeof(community));
{
printf("SNMP community get is successful :%s \n", communityName);
printf("Community Name: %s \n", str);
printf("Access Type: %d \n", community.type);
printf("IP address: %x \n", community.ipAddr.addr.ipv4);
printf("IP address mask: %x \n", community.ipMask.addr.ipv4);
printf("Status: %d \n", community.status);
}
PRINTBADRESULT(result, "testSnmpCommunityAndIPAddrGet", "");
return;
}
char *communityName)
{
strncpy(str, communityName, sizeof(str));
buffDesc.pstart = str;
buffDesc.size = strlen(str) + 1;
{
printf("SNMP community get next is successful :%s next community :%s \n", communityName, str);
}
PRINTBADRESULT(result, "testSnmpCommunityAndIPAddrGet", "");
return;
}
char *communityName,
char *ipAddr,
OPEN_SNMP_TRAP_VERSION_t version,
OPEN_SNMP_COMMUNITY_STATUS_t status)
{
uint32_t temp = 0;
memset(str, 0, sizeof(str));
strncpy(str, communityName, sizeof(str));
buffDesc.pstart = str;
buffDesc.size = strlen(str) + 1;
memset(&trapConfig, 0, sizeof(trapConfig));
memset(&addr, 0, sizeof(addr));
inet_pton(AF_INET, ipAddr, (void*)&temp);
addr.addr.ipv4 = ntohl(temp);
trapConfig.
version = version;
trapConfig.
status = status;
&buffDesc,
addr,
trapConfig);
PRINTBADRESULT(result, __FUNCTION__, "");
return;
}
char *communityName,
char *ipAddr)
{
uint32_t temp = 0;
memset(str, 0, sizeof(str));
strncpy(str, communityName, sizeof(str));
buffDesc.pstart = str;
buffDesc.size = strlen(str) + 1;
memset(&addr, 0, sizeof(addr));
inet_pton(AF_INET, ipAddr, (void*)&temp);
addr.addr.ipv4 = ntohl(temp);
&buffDesc,
addr);
PRINTBADRESULT(result, __FUNCTION__, "");
return;
}
char *communityName,
char *ipAddr)
{
uint32_t temp = 0;
memset(str, 0, sizeof(str));
strncpy(str, communityName, sizeof(str));
buffDesc.pstart = str;
buffDesc.size = strlen(str) + 1;
memset(&addr, 0, sizeof(addr));
inet_pton(AF_INET, ipAddr, (void*)&temp);
addr.addr.ipv4 = ntohl(temp);
memset(&trapConfig, 0, sizeof(trapConfig));
&buffDesc,
addr,
&trapConfig);
{
printf("Get successful for SNMP trap entry. \n");
printf("Community :%s \n", str);
printf("IP address :%s [%x] \n", ipAddr, addr.addr.ipv4);
printf("Version :%d \n", trapConfig.version);
printf("Status :%d \n", trapConfig.status);
}
PRINTBADRESULT(result, __FUNCTION__, "");
return;
}
char *communityName,
char *ipAddr)
{
uint32_t temp = 0;
char ipAddrStr[OPEN_IP_ADDR_LENGTH];
memset(str, 0, sizeof(str));
strncpy(str, communityName, sizeof(str));
buffDesc.pstart = str;
buffDesc.size = strlen(str) + 1;
memset(tmp, 0, sizeof(tmp));
tmpBuf.pstart = tmp;
tmpBuf.size = sizeof(tmp);
memset(&addr, 0, sizeof(addr));
inet_pton(AF_INET, ipAddr, (void*)&temp);
addr.addr.ipv4 = ntohl(temp);
&buffDesc,
addr,
&tmpBuf);
{
printf("Get next successful for SNMP trap entry. \n");
printf("Community :%s \n", communityName);
printf("IP address :%s [%x] \n", ipAddr, addr.addr.ipv4);
printf("Next Community :%s \n", tmp);
}
&buffDesc,
addr,
&addr);
{
{
memset(&ipAddrStr, 0, sizeof(ipAddrStr));
inet_ntop(AF_INET, (void*)&(addr.addr.ipv4), ipAddrStr, sizeof(ipAddrStr));
}
printf("Next IP address :%s [%x] \n", ipAddrStr, addr.addr.ipv4);
}
PRINTBADRESULT(result, __FUNCTION__, "");
return;
}
char *communityName,
char *ipAddr,
char *ipMask,
char *viewName,
OPEN_SNMP_COMMUNITY_STATUS_t status)
{
char view[31];
memset(str, 0, sizeof(str));
strncpy(str, communityName, sizeof(str));
buffDesc.pstart = str;
buffDesc.size = strlen(str) + 1;
memset(view, 0, sizeof(view));
strncpy(view, viewName, sizeof(view));
memset(&community, 0, sizeof(community));
community.type = accessType;
strncpy((
char *)community.
viewName, viewName,
sizeof(community.viewName));
if (inet_pton(AF_INET, ipAddr, (void*)&(community.ipAddr.addr.ipv4)) > 0)
{
}
else if (inet_pton(AF_INET6, ipAddr, (void*)&(community.ipAddr.addr.ipv6)) > 0)
{
}
else
{
printf("Bad return code trying to convert ip address.\n");
}
{
if (inet_pton(AF_INET, ipMask, (void*)&(community.ipMask.addr.ipv4)) > 0)
{
}
else
{
printf("Bad return code trying to convert ip address.\n");
}
}
{
}
community.status = status;
{
&buffDesc,
community);
}
PRINTBADRESULT(result, "testSnmpCommunityWithIPAddrCreate", "");
return;
}
char *communityName)
{
char ipDescStr[46];
char maskDescStr[46];
ipDesc.pstart = ipDescStr;
ipDesc.size = sizeof(ipDescStr)-1;
maskDesc.pstart = maskDescStr;
maskDesc.size = sizeof(maskDescStr)-1;
strncpy(str, communityName, sizeof(str));
buffDesc.pstart = str;
buffDesc.size = strlen(str) + 1;
memset(&community, 0, sizeof(community));
{
printf("SNMP community get is successful :%s \n", communityName);
printf("Community Name: %s \n", str);
printf("Access Type: %d \n", community.type);
{
printf("IP address: %s \n", ipDescStr);
printf("IP address mask: %s \n", maskDescStr);
}
{
printf("IPv6 address/Prefix Length: %s/%d \n", ipDescStr, community.ipv6PrefixLen);
}
printf("View Name: %s \n", community.viewName);
printf("Status: %d \n", community.status);
}
PRINTBADRESULT(result, "testSnmpCommunityAndIPAddrGet", "");
return;
}
{
printf("\nCreating SNMP communities with IP address and mask\n");
testSnmpCommunityWithIPAddrCreate(clientHandle,
"test1",
"10.11.12.1",
"255.255.255.255",
OPEN_SNMP_COMMUNITY_STATUS_VALID);
testSnmpCommunityWithIPAddrCreate(clientHandle,
"test2",
"10.11.12.2",
"255.255.255.255",
OPEN_SNMP_COMMUNITY_STATUS_VALID);
testSnmpCommunityWithIPAddrAndViewNameCreate(clientHandle,
"test3",
"2001::1",
"",
64,
"view-1",
OPEN_SNMP_COMMUNITY_STATUS_VALID);
testSnmpCommunityWithIPAddrAndViewNameCreate(clientHandle,
"test4",
"10.11.12.4",
"255.255.255.255",
0,
"",
OPEN_SNMP_COMMUNITY_STATUS_VALID);
testSnmpCommunityAndIPAddrGet(clientHandle,
"test1");
testSnmpCommunityAndIPAddrGet(clientHandle,
"test2");
testSnmpCommunityAndIPAddrAndViewnameGet(clientHandle,
"test3");
testSnmpCommunityAndIPAddrAndViewnameGet(clientHandle,
"test4");
testSnmpCommunityAndIPAddrGetNext(clientHandle,
"test1");
testSnmpCommunityAndIPAddrDelete(clientHandle,
"test2");
printf("\nCreating SNMP Trap configuration. \n");
testSnmpTrapManagerConfigCreate(clientHandle,
"community1",
"22.23.24.1",
OPEN_SNMP_TRAP_VER_SNMPV2C,
OPEN_SNMP_COMMUNITY_STATUS_VALID);
testSnmpTrapManagerConfigCreate(clientHandle,
"community2",
"22.23.24.2",
OPEN_SNMP_TRAP_VER_SNMPV1,
OPEN_SNMP_COMMUNITY_STATUS_INVALID);
testSnmpTrapManagerConfigCreate(clientHandle,
"community3",
"22.23.24.3",
OPEN_SNMP_TRAP_VER_SNMPV1,
OPEN_SNMP_COMMUNITY_STATUS_VALID);
testSnmpTrapManagerConfigGet(clientHandle,
"community1",
"22.23.24.1");
testSnmpTrapManagerConfigGet(clientHandle,
"community2",
"22.23.24.2");
testSnmpTrapManagerConfigGet(clientHandle,
"community3",
"22.23.24.3");
testSnmpTrapManagerConfigGetNext(clientHandle,
"community1",
"22.23.24.1");
testSnmpTrapManagerConfigDelete(clientHandle,
"community2",
"22.23.24.2");
return;
}
int main (int argc, char **argv)
{
uint32_t testNum;
char switchOsRevisionStr[100];
if (argc < 2)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testNum = atoi(argv[1]);
l7proc_crashlog_register();
{
printf("\nFailed to initialize RPC to OpEN. Exiting (result = %d)\n", result);
exit(2);
}
{
sleep(1);
}
L7PROC_LOGF(L7PROC_LOG_SEVERITY_INFO, 0, "Starting SNMP API example application");
printf("\n");
switchOsRevision.pstart = switchOsRevisionStr;
switchOsRevision.size = sizeof(switchOsRevisionStr);
{
printf("Network OS version = %s\n", switchOsRevisionStr);
}
else
{
printf("Network OS version retrieve error\n");
}
printf("\n");
switch (testNum)
{
case 1:
if (argc != 3)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpSysNameSet(&clientHandle, argv[2]);
break;
case 2:
if (argc != 2)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpSysNameGet(&clientHandle);
break;
case 3:
if (argc != 3)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpSysLocationSet(&clientHandle, argv[2]);
break;
case 4:
if (argc != 2)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpSysLocationGet(&clientHandle);
break;
case 5:
if (argc != 3)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpSysContactSet(&clientHandle, argv[2]);
break;
case 6:
if (argc != 2)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpSysContactGet(&clientHandle);
break;
case 7:
if (argc != 3)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpTrapSourceInterfaceSet(&clientHandle, atoi(argv[2]));
break;
case 8:
if (argc != 2)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpTrapSourceInterfaceGet(&clientHandle);
break;
case 9:
if (argc != 4)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpTrapFlagSet(&clientHandle, atoi(argv[2]), atoi(argv[3]));
break;
case 10:
if (argc != 3)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpTrapFlagGet(&clientHandle, atoi(argv[2]));
break;
case 11:
if (argc != 3)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpLocalEngineIdSet(&clientHandle, argv[2]);
break;
case 12:
if (argc != 2)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpLocalEngineIdGet(&clientHandle);
break;
case 13:
if (argc != 2)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpLocalEngineIdDelete(&clientHandle);
break;
case 14:
if (argc != 11)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpUserCreate(&clientHandle, argv[2], argv[3], atoi(argv[4]), argv[5], argv[6],
atoi(argv[7]), argv[8], argv[9], argv[10]);
break;
case 15:
if (argc != 3)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpUserGet(&clientHandle, argv[2]);
break;
case 16:
if (argc != 2)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpUserGet(&clientHandle, "");
break;
case 17:
if (argc != 4)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpUserDelete(&clientHandle, argv[2], argv[3]);
break;
case 18:
if (argc != 9)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpGroupCreate(&clientHandle, argv[2], atoi(argv[3]), atoi(argv[4]), argv[5], argv[6],
argv[7], argv[8]);
break;
case 19:
if (argc != 3)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpGroupGet(&clientHandle, argv[2]);
break;
case 20:
if (argc != 2)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpGroupGet(&clientHandle, "");
break;
case 21:
if (argc != 6)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpGroupDelete(&clientHandle, argv[2], atoi(argv[3]), atoi(argv[4]), argv[5]);
break;
case 22:
if (argc != 5)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpFilterCreate(&clientHandle, argv[2], argv[3], atoi(argv[4]));
break;
case 23:
if (argc != 3)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpFilterGet(&clientHandle, argv[2]);
break;
case 24:
if (argc != 2)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpFilterGet(&clientHandle, "");
break;
case 25:
if (argc != 4)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpFilterDelete(&clientHandle, argv[2], argv[3]);
break;
case 26:
if (argc != 5)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpViewCreate(&clientHandle, argv[2], argv[3], atoi(argv[4]));
break;
case 27:
if (argc != 3)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpViewGet(&clientHandle, argv[2]);
break;
case 28:
if (argc != 2)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpViewGet(&clientHandle, "");
break;
case 29:
if (argc != 4)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpViewDelete(&clientHandle, argv[2], argv[3]);
break;
case 30:
if (argc != 11)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpHostCreate(&clientHandle, argv[2], atoi(argv[3]), argv[4],
atoi(argv[5]), atoi(argv[6]), atoi(argv[7]),
atoi(argv[8]), atoi(argv[9]), argv[10]);
break;
case 31:
if (argc != 3)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpHostGet(&clientHandle, argv[2]);
break;
case 32:
if (argc != 2)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpHostGet(&clientHandle, "");
break;
case 33:
if (argc != 4)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpHostDelete(&clientHandle, argv[2], atoi(argv[3]));
break;
case 34:
if (argc != 6)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpCommunity(&clientHandle, argv[2], atoi(argv[3]), argv[4], argv[5]);
break;
case 35:
if (argc != 5)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpCommunityGroup(&clientHandle, argv[2], argv[3], argv[4]);
break;
case 36:
if (argc != 3)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpCommunityGet(&clientHandle, argv[2]);
break;
case 37:
if (argc != 2)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpCommunityGet(&clientHandle, "");
break;
case 38:
if (argc != 3)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
testSnmpCommunityDelete(&clientHandle, argv[2]);
break;
case 39:
if (argc != 2)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
runSnmpSanity(&clientHandle);
break;
case 40:
if (argc != 2)
{
printSNMPAppMenu(argv[0]);
exit(1);
}
runSnmpNoConfApiTests(&clientHandle);
break;
default:
printSNMPAppMenu(argv[0]);
break;
}
L7PROC_LOGF(L7PROC_LOG_SEVERITY_INFO, 0, "Stopping SNMP API example application");
return 0;
}