#include <stdlib.h>
#include <unistd.h>
#include "rpcclt_openapi.h"
#include "proc_util.h"
void printEeeAppMenu()
{
printf("Usage: eee_example <test#> <arg1> <arg2> ... \n");
printf("Test 1: testGreenEthrEeeIsValidIntf:eee_example 1 <interface>\n");
printf("Test 2: testGreenEthrEeeValidIntfFirstGet:eee_example 2\n");
printf("Test 3: testGreenEthrEeeValidIntfNextGet:eee_example 3 <interface>\n");
printf("Test 4: testGreenEthrEeeAdminModeGet:eee_example 4 <interface>\n");
printf("Test 5: testGreenEthrEeeTxIdleTimeGet:eee_example 5 <interface>\n");
printf("Test 6: testGreenEthrEeeTxWakeTimeGet:eee_example 6 <interface>\n");
printf("Test 7: testGreenEthrEeeAdminModeSet:eee_example 7 <interface> <mode>\n");
printf("Test 8: testGreenEthrEeeTxIdleTimeSet:eee_example 8 <interface> <time>\n");
printf("Test 9: testGreenEthrEeeTxWakeTimeSet:eee_example 9 <interface> <time>\n");
printf("Test 10: testGreenEthrEeeStatisticsClear:eee_example 10 <interface>\n");
printf("Test 11: testGreenEthrEeeTxEventsGet:eee_example 11 <interface>\n");
printf("Test 12: testGreenEthrEeeTxDurationGet:eee_example 12 <interface>\n");
printf("Test 13: testGreenEthrEeeRxEventsGet:eee_example 13 <interface>\n");
printf("Test 14: testGreenEthrEeeRxDurationGet:eee_example 14 <interface>\n");
printf("Test 15: testGreenEthrEeeTxTwsysGet:eee_example 15 <interface>\n");
printf("Test 16: testGreenEthrEeeRxTwsysGet:eee_example 16 <interface>\n");
printf("Test 17: testGreenEthrEeeFbTwsysGet:eee_example 17 <interface>\n");
printf("Test 18: testGreenEthrEeeEchoTxTwsysGet:eee_example 18 <interface>\n");
printf("Test 19: testGreenEthrEeeEchoRxTwsysGet:eee_example 19 <interface>\n");
printf("Test 20: testGreenEthrEeeRemTxTwsysGet:eee_example 20 <interface>\n");
printf("Test 21: testGreenEthrEeeRemTxTwsysEchoGet:eee_example 21 <interface>\n");
printf("Test 22: testGreenEthrEeeRemRxTwsysGet:eee_example 22 <interface>\n");
printf("Test 23: testGreenEthrEeeRemRxTwsysEchoGet:eee_example 23 <interface>\n");
printf("Test 24: testGreenEthrEeeRemFbTwsysGet:eee_example 24 <interface>\n");
printf("Test 25: testGreenEthrEeeTxDllEnableGet:eee_example 25 <interface>\n");
printf("Test 26: testGreenEthrEeeTxDllReadyGet:eee_example 26 <interface>\n");
printf("Test 27: testGreenEthrEeeRxDllEnableGet:eee_example 27 <interface>\n");
printf("Test 28: testGreenEthrEeeRxDllReadyGet:eee_example 28 <interface>\n");
printf("Test 29: testGreenEthrEeeTotalLpiTimeGet:eee_example 29\n");
printf("Test 30: testGreenEthrEeeLocalSummaryGet:eee_example 30 <interface>\n");
printf("Test 31: testGreenEthrEeeRemoteSummaryGet:eee_example 31 <interface>\n");
printf("Test 32: testGreenEthrGlobalEeeAdminModeGet:eee_example 32\n");
printf("Test 33: testGreenEthrGlobalEeeAdminModeSet:eee_example 33 <mode>\n");
printf("Test 34: testGreenEthrEeeTimeSinceLastStatsResetGet:eee_example 34 <interface>\n");
printf("Test 35: testxGreenEthrEeeTimeSinceLastStatsResetGet:eee_example 35 <interface>\n");
return;
}
{
{
printf("Bad return code trying to get valid interface. (result = %d)\n", result);
}
else
{
printf("Interface valid: %d. (result = %d)\n", valid, result);
}
return;
}
{
uint32_t intIfNum;
{
printf("Bad return code trying to get first interface. (result = %d)\n", result);
}
else
{
printf("Valid interface: %d. (result = %d)\n", intIfNum, result);
}
return;
}
{
uint32_t intIfNum;
{
printf("Bad return code trying to get next interface. (result = %d)\n", result);
}
else
{
printf("Next interface: %d. (result = %d)\n", intIfNum, result);
}
return;
}
{
{
printf("Bad return code trying to get EEE admin mode. (result = %d)\n", result);
}
else
{
printf("EEE admin mode: %d. (result = %d)\n", adminMode, result);
}
return;
}
{
uint32_t time;
{
printf("Bad return code trying to get EEE Transmit Idle Time. (result = %d)\n", result);
}
else
{
printf("EEE Transmit Idle Time: %d. (result = %d)\n", time, result);
}
return;
}
{
uint32_t time;
{
printf("Bad return code trying to get EEE Transmit wake Time. (result = %d)\n", result);
}
else
{
printf("EEE Transmit wake Time: %d. (result = %d)\n", time, result);
}
return;
}
{
{
printf("Bad return code trying to set EEE admin mode. (result = %d)\n", result);
}
else
{
printf("EEE admin mode: %d. (result = %d)\n", mode, result);
}
return;
}
void testGreenEthrEeeTxIdleTimeSet(
openapiClientHandle_t *clientHandle, uint32_t intIfNum, uint32_t time)
{
{
printf("Bad return code trying to set idle time. (result = %d)\n", result);
}
else
{
printf("Set idle time: %d. (result = %d)\n", time, result);
}
return;
}
void testGreenEthrEeeTxWakeTimeSet(
openapiClientHandle_t *clientHandle, uint32_t intIfNum, uint32_t time)
{
{
printf("Bad return code trying to set wake time. (result = %d)\n", result);
}
else
{
printf("Set wake time: %d. (result = %d)\n", time, result);
}
return;
}
{
{
printf("Bad return code trying to Clear EEE statistics counters. (result = %d)\n", result);
}
else
{
printf("Clear EEE statistics counters. (result = %d)\n", result);
}
return;
}
{
uint32_t count;
{
printf("Bad return code trying to EEE Transmit LPI event count. (result = %d)\n", result);
}
else
{
printf("EEE Transmit LPI event count: %d. (result = %d)\n", count, result);
}
return;
}
{
uint32_t high;
uint32_t low;
{
printf("Bad return code trying to EEE Transmit duration. (result = %d)\n", result);
}
else
{
printf("EEE Transmit LPI duration: high %d low %d. (result = %d)\n", high, low, result);
}
return;
}
{
uint32_t count;
{
printf("Bad return code trying to EEE receive LPI event count. (result = %d)\n", result);
}
else
{
printf("EEE receive LPI event count: %d. (result = %d)\n", count, result);
}
return;
}
{
uint32_t high;
uint32_t low;
{
printf("Bad return code trying to EEE receive duration. (result = %d)\n", result);
}
else
{
printf("EEE receive LPI duration: high %d low %d. (result = %d)\n", high, low, result);
}
return;
}
{
uint32_t count;
{
printf("Bad return code trying to EEE transmit Tw_sys. (result = %d)\n", result);
}
else
{
printf("EEE transmit Tw_sys: %d. (result = %d)\n", count, result);
}
return;
}
{
uint32_t count;
{
printf("Bad return code trying to EEE receive Tw_sys. (result = %d)\n", result);
}
else
{
printf("EEE receive Tw_sys: %d. (result = %d)\n", count, result);
}
return;
}
{
uint32_t count;
{
printf("Bad return code trying to EEE fallback Tw_sys. (result = %d)\n", result);
}
else
{
printf("EEE fallback Tw_sys: %d. (result = %d)\n", count, result);
}
return;
}
{
uint32_t count;
{
printf("Bad return code trying to EEE echo transmit Tw_sys. (result = %d)\n", result);
}
else
{
printf("EEE echo transmit Tw_sys: %d. (result = %d)\n", count, result);
}
return;
}
{
uint32_t count;
{
printf("Bad return code trying to EEE echo receive Tw_sys. (result = %d)\n", result);
}
else
{
printf("EEE echo receive Tw_sys: %d. (result = %d)\n", count, result);
}
return;
}
uint32_t remIndex,uint32_t timestamp)
{
uint32_t count;
{
printf("Bad return code trying to remote EEE transmit Tw_sys. (result = %d)\n", result);
}
else
{
printf("Remote EEE transmit Tw_sys: %d. (result = %d)\n", count, result);
}
return;
}
uint32_t remIndex,uint32_t timestamp)
{
uint32_t count;
{
printf("Bad return code trying to remote EEE transmit Tw_sys echo. (result = %d)\n", result);
}
else
{
printf("Remote EEE transmit Tw_sys echo: %d. (result = %d)\n", count, result);
}
return;
}
uint32_t remIndex,uint32_t timestamp)
{
uint32_t count;
{
printf("Bad return code trying to remote EEE receive Tw_sys. (result = %d)\n", result);
}
else
{
printf("Remote EEE receive Tw_sys: %d. (result = %d)\n", count, result);
}
return;
}
uint32_t remIndex,uint32_t timestamp)
{
uint32_t count;
{
printf("Bad return code trying to remote EEE receive Tw_sys echo. (result = %d)\n", result);
}
else
{
printf("Remote EEE receive Tw_sys echo: %d. (result = %d)\n", count, result);
}
return;
}
uint32_t remIndex,uint32_t timestamp)
{
uint32_t count;
{
printf("Bad return code trying to remote EEE fallback Tw_sys. (result = %d)\n", result);
}
else
{
printf("Remote EEE fallback Tw_sys: %d. (result = %d)\n", count, result);
}
return;
}
{
{
printf("Bad return code trying to get Transmit DLL Enable Status. (result = %d)\n", result);
}
else
{
printf("Transmit DLL Enable Status: %d. (result = %d)\n", enable, result);
}
return;
}
{
{
printf("Bad return code trying to get Transmit DLL ready Status. (result = %d)\n", result);
}
else
{
printf("Transmit DLL ready Status: %d. (result = %d)\n", enable, result);
}
return;
}
{
{
printf("Bad return code trying to get receive DLL Enable Status. (result = %d)\n", result);
}
else
{
printf("Receive DLL Enable Status: %d. (result = %d)\n", enable, result);
}
return;
}
{
{
printf("Bad return code trying to get receive DLL ready Status. (result = %d)\n", result);
}
else
{
printf("Receive DLL ready Status: %d. (result = %d)\n", enable, result);
}
return;
}
{
uint64_t val;
{
printf("Bad return code trying to get time of last reset. (result = %d)\n", result);
}
else
{
printf("Time of last reset: %ld. (result = %d)\n", val, result);
}
return;
}
{
uint32_t d, h, m, s;
{
printf("Bad return code trying to get time of last reset. (result = %d)\n", result);
}
else
{
printf("Time of last reset: D %d H %d M %d S %d (result = %d)\n", d, h, m, s, result);
}
return;
}
{
uint32_t count;
{
printf("Bad return code trying to percentage of Total LPI time. (result = %d)\n", result);
}
else
{
printf("Percentage of Total LPI time: %d. (result = %d)\n", count, result);
}
return;
}
{
uint32_t t, te, r, re, tf, tde, tdr, rde, rdr;
&t, &te, &r, &re, &tf, &tde, &tdr, &rde, &rdr)) !=
OPEN_E_NONE)
{
printf("Bad return code trying to get eee counters. (result = %d)\n", result);
}
else
{
printf("eee counters (result = %d)\n", result);
printf("twSysTx %d\n", t);
printf("twSysTxEcho %d\n", te);
printf("twSysRx %d\n", r);
printf("twSysRxEcho %d\n", re);
printf("twSysTxFb %d\n", tf);
printf("txDllEnabled %d\n", tde);
printf("txDllReady %d\n", tdr);
printf("rxDllEnabled %d\n", rde);
printf("rxDllReady %d\n", rdr);
}
return;
}
{
uint32_t t, te, r, re, tf;
{
printf("Bad return code trying to get remote eee counters. (result = %d)\n", result);
}
else
{
printf("Remote eee counters (result = %d)\n", result);
printf("twSysTx %d\n", t);
printf("twSysTxEcho %d\n", te);
printf("twSysRx %d\n", r);
printf("twSysRxEcho %d\n", re);
printf("twSysTxFb %d\n", tf);
}
return;
}
{
{
printf("Bad return code trying to get global EEE administrative mode. (result = %d)\n", result);
}
else
{
printf("Global EEE administrative mode: %d. (result = %d)\n", adminMode, result);
}
return;
}
{
if (1 == mode)
{
}
else if (0 == mode)
{
}
else
{
printf("Invalid input params\n");
return;
}
{
printf("Bad return code trying to set global EEE administrative mode. (result = %d)\n", result);
}
else
{
printf("Global EEE administrative mode. (result = %d)\n", result);
}
return;
}
{
printf("Sanity successful.\n");
return;
}
int main(int argc, char **argv)
{
char switch_os_revision_string[OPENAPI_OS_REVISION_STR_SIZE];
uint32_t arg1, arg2, arg3;
uint32_t testNum;
if (argc < 2)
{
printEeeAppMenu();
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 eee API example application");
printf("\n");
switch_os_revision.
pstart = switch_os_revision_string;
switch_os_revision.
size =
sizeof(switch_os_revision_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("\n");
switch (testNum)
{
case 1:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testGreenEthrEeeIsValidIntf(&clientHandle,arg1);
break;
case 2:
if (argc != 2)
{
printEeeAppMenu();
exit(1);
}
testGreenEthrEeeValidIntfFirstGet(&clientHandle);
break;
case 3:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testGreenEthrEeeValidIntfNextGet(&clientHandle, arg1);
break;
case 4:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testGreenEthrEeeAdminModeGet(&clientHandle, arg1);
break;
case 5:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testGreenEthrEeeTxIdleTimeGet(&clientHandle, arg1);
break;
case 6:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testGreenEthrEeeTxWakeTimeGet(&clientHandle, arg1);
break;
case 7:
if (argc != 4)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
arg2 = atoi(argv[3]);
testGreenEthrEeeAdminModeSet(&clientHandle, arg1, arg2);
break;
case 8:
if (argc != 4)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
arg2 = atoi(argv[3]);
testGreenEthrEeeTxIdleTimeSet(&clientHandle, arg1, arg2);
break;
case 9:
if (argc != 4)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
arg2 = atoi(argv[3]);
testGreenEthrEeeTxWakeTimeSet(&clientHandle, arg1, arg2);
break;
case 10:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testGreenEthrEeeStatisticsClear(&clientHandle, arg1);
break;
case 11:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testGreenEthrEeeTxEventsGet(&clientHandle, arg1);
break;
case 12:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testGreenEthrEeeTxDurationGet(&clientHandle, arg1);
break;
case 13:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testGreenEthrEeeRxEventsGet(&clientHandle, arg1);
break;
case 14:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testGreenEthrEeeRxDurationGet(&clientHandle, arg1);
break;
case 15:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testGreenEthrEeeTxTwsysGet(&clientHandle, arg1);
break;
case 16:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testGreenEthrEeeRxTwsysGet(&clientHandle, arg1);
break;
case 17:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testGreenEthrEeeFbTwsysGet(&clientHandle, arg1);
break;
case 18:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testGreenEthrEeeEchoTxTwsysGet(&clientHandle, arg1);
break;
case 19:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testGreenEthrEeeEchoRxTwsysGet(&clientHandle, arg1);
break;
case 20:
if (argc != 5)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
arg2 = atoi(argv[3]);
arg3 = atoi(argv[4]);
testGreenEthrEeeRemTxTwsysGet(&clientHandle, arg1, arg2, arg3);
break;
case 21:
if (argc != 5)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
arg2 = atoi(argv[3]);
arg3 = atoi(argv[4]);
testGreenEthrEeeRemTxTwsysEchoGet(&clientHandle, arg1, arg2, arg3);
break;
case 22:
if (argc != 5)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
arg2 = atoi(argv[3]);
arg3 = atoi(argv[4]);
testGreenEthrEeeRemRxTwsysGet(&clientHandle, arg1, arg2, arg3);
break;
case 23:
if (argc != 5)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
arg2 = atoi(argv[3]);
arg3 = atoi(argv[4]);
testGreenEthrEeeRemRxTwsysEchoGet(&clientHandle, arg1, arg2, arg3);
break;
case 24:
if (argc != 5)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
arg2 = atoi(argv[3]);
arg3 = atoi(argv[4]);
testGreenEthrEeeRemFbTwsysGet(&clientHandle, arg1, arg2, arg3);
break;
case 25:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testGreenEthrEeeTxDllEnableGet(&clientHandle, arg1);
break;
case 26:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testGreenEthrEeeTxDllReadyGet(&clientHandle, arg1);
break;
case 27:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testGreenEthrEeeRxDllEnableGet(&clientHandle, arg1);
break;
case 28:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testGreenEthrEeeRxDllReadyGet(&clientHandle, arg1);
break;
case 29:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testGreenEthrEeeTotalLpiTimeGet(&clientHandle);
break;
case 30:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testGreenEthrEeeLocalSummaryGet(&clientHandle, arg1);
break;
case 31:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testGreenEthrEeeRemoteSummaryGet(&clientHandle, arg1);
break;
case 32:
if (argc != 2)
{
printEeeAppMenu();
exit(1);
}
testGreenEthrGlobalEeeAdminModeGet(&clientHandle);
break;
case 33:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testGreenEthrGlobalEeeAdminModeSet(&clientHandle, arg1);
break;
case 34:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testGreenEthrEeeTimeSinceLastStatsResetGet(&clientHandle, arg1);
break;
case 35:
if (argc != 3)
{
printEeeAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
testxGreenEthrEeeTimeSinceLastStatsResetGet(&clientHandle, arg1);
break;
default:
printEeeAppMenu();
break;
}
L7PROC_LOGF(L7PROC_LOG_SEVERITY_INFO, 0, "Stopping green ethernet API example application");
return 0;
}