#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include "rpcclt_openapi.h"
#include "proc_util.h"
void printAppMenu(char *name)
{
printf("Usage: %s <test#> <arg1> <arg2> ...\n", name);
printf("Test 1: Get max number of tracked periods: %s 1\n", name);
printf("Test 2: Get total CPU utilization for tracked periods: %s 2\n", name);
printf("Test 3: Run OpEN APIs Sanity: %s 3\n", name);
return;
}
{
{
printf("Bad return code trying to get max periods. (result = %d)\n", result);
}
else
{
printf("Max periods is %d (result = %d)\n", *max, result);
}
return result;
}
{
uint32_t max;
int i;
result = getMaxPeriods(clientHandle, &max);
{
{
printf("Unable to allocate array\n");
}
else
{
buffdesc.
pstart = (
void *) periods;
{
printf("Bad return code trying to get CPU utilization info. (result = %d)\n", result);
}
else
{
p = periods;
printf("Period Utilization\n");
printf("------ -----------\n");
{
p++;
}
}
free(periods);
}
}
else
{
printf("Bad return code trying to get max number of tracked utilization periods. (result = %d)\n", result);
}
return;
}
{
uint32_t max;
uint32_t constBufsize;
printf("Testing openapiCpuUtilMaxPeriodsGet(): \n");
printf("NULL Client Handle. (result = %d)\n", result);
printf("NULL argument. (result = %d)\n", result);
printf("Testing openapiTotalCpuUtilArrayGet(): \n");
buffdesc.pstart = (void *) p;
buffdesc.size = constBufsize;
printf("NULL Client Handle. (result = %d)\n", result);
buffdesc.pstart = (void *) NULL;
buffdesc.size = constBufsize;
printf("NULL buffdesc pstart. (result = %d)\n", result);
buffdesc.pstart = (void *) p;
buffdesc.size = constBufsize - 1;
printf("NULL buffdesc invalid size. (result = %d)\n", result);
free(p);
}
int main(int argc, char **argv)
{
uint32_t testNum;
uint32_t max;
char switch_os_revision_string[OPENAPI_OS_REVISION_STR_SIZE];
char switch_hw_version_string[OPENAPI_HW_VERSION_STR_SIZE];
if (argc < 2)
{
printAppMenu(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 CPU utilization tracking example application");
printf("\n");
switch_os_revision.pstart = switch_os_revision_string;
switch_os_revision.size = sizeof(switch_os_revision_string);
switch_hw_version.pstart = switch_hw_version_string;
switch_hw_version.size = sizeof(switch_hw_version_string);
printf("Network OS Version = %s\n", switch_os_revision_string);
else
printf("Network OS Version retrieve error\n");
printf("Open API Version = %d.%d.%d.%d\n",
openApiVersion.
maint_level,
openApiVersion.
build_num);
else
printf("Open API Version retrieve error\n");
printf("Network Processing Device = %s\n", switch_hw_version_string);
else
printf("Network processing device retrieve error\n");
printf("\n");
switch (testNum)
{
case 1:
if (argc != 2)
{
printAppMenu(argv[0]);
exit(1);
}
getMaxPeriods(&clientHandle, &max);
break;
case 2:
if (argc != 2)
{
printAppMenu(argv[0]);
exit(1);
}
getTrackedUtilizationPeriods(&clientHandle);
break;
case 3:
if (argc != 2)
{
printAppMenu(argv[0]);
exit(1);
}
runSanityChecks(&clientHandle);
break;
default:
printAppMenu(argv[0]);
break;
}
L7PROC_LOGF(L7PROC_LOG_SEVERITY_INFO, 0, "Stopping CPU utilization tracking example application");
return 0;
}