#include <stdlib.h>
#include <unistd.h>
#include "rpcclt_openapi.h"
#include "proc_util.h"
static void printAppMenu(char *name)
{
printf("Usage: %s <test#> <arg1> <arg2> ... \n", name);
printf("Test 1: Get the administrative mode of the router for given VRF: %s 1 <vrfName>\n", name);
printf("Test 2: Set the administrative mode of the router for given VRF: %s 2 <vrfName> <mode>\n", name);
printf("Test 3: Get the dynamic renewal mode of IPv6 neighbors in a given VRF: %s 3 <vrfName>\n", name);
printf("Test 4: Set the dynamic renewal mode of IPv6 neighbors in a given VRF: %s 4 <vrfName> <mode>\n", name);
printf("Test 5: Get the NUD backoff-multiple value set for calculation of timeouts for NS transmissions during NUD for a given VRF: %s 5 <vrfName>\n", name);
printf("Test 6: Set the NUD backoff-multiple value for calculation of timeouts for NS transmissions during NUD for a given VRF: %s 6 <vrfName> <val>\n", name);
printf("Test 7: Get the maximum unicast neighbor solicitations sent during NUD for a given VRF: %s 7 <vrfName>\n", name);
printf("Test 8: Set the maximum unicast neighbor solicitations sent during NUD for a given VRF: %s 8 <vrfName> <val>\n", name);
printf("Test 9: Get the maximum multicast neighbor solicitations sent during NUD for a given VRF: %s 9 <vrfName>\n", name);
printf("Test 10: Set the maximum multicast neighbor solicitations sent during NUD for a given VRF: %s 10 <vrfName> <val>\n", name);
printf("Test 11: Get the rate limit value set for the unresolved IPv6 data packets coming to CPU: %s 11\n", name);
printf("Test 12: Set the rate limit value for the unresolved IPv6 data packets coming to CPU: %s 12 <val>\n", name);
printf("Test 13: Get the default IPv6 router TTL value for a given VRF: %s 13 <vrfName>\n", name);
printf("Test 14: Set the default IPv6 router TTL value for a given VRF: %s 14 <vrfName> <val>\n", name);
printf("Test 15: Get the administrative state of a given interface: %s 15 <ifNum>\n", name);
printf("Test 16: Get the operational state of a given interface: %s 16 <ifNum>\n", name);
printf("Test 17: Set the administrative state of a given interface: %s 17 <ifNum> <mode>\n", name);
printf("Test 18: Get the IPv6 AutoState mode of a given interface: %s 18 <ifNum>\n", name);
printf("Test 19: Set the IPv6 AutoState mode of a given interface: %s 19 <ifNum> <mode>\n", name);
printf("Test 20: Determine if IPv6 interface exists: %s 20 <ifNum>\n", name);
printf("Test 21: Determine if the interface is valid for participation in the IPv6 component: %s 21 <ifNum>\n", name);
printf("Test 22: Determine if the interface is valid to be configured with an IPv6 neighbor: %s 22 <ifNum>\n", name);
printf("Test 23: Get the IPv6 MTU of a given interface: %s 23 <ifNum>\n", name);
printf("Test 24: Get the IPv6 effective MTU of a given interface: %s 24 <ifNum>\n", name);
printf("Test 25: Set the IPv6 MTU of a given interface: %s 25 <ifNum> <val>\n", name);
printf("Test 26: Get the interface bandwidth of a given interface: %s 26 <ifNum>\n", name);
printf("Test 27: Get the first valid interface for participation in IPv6 component: %s 27\n", name);
printf("Test 28: Get the next valid interface for participation in IPv6 component: %s 28 <prevIfNum>\n", name);
printf("Test 29: Get the maximum IP MTU that may be set on an interface: %s 29 <ifNum>\n", name);
return;
}
{
memset(vrfNameStr, 0, sizeof(vrfNameStr));
{
printf("ERROR: Invalid VRF name string.\n");
return;
}
strncpy(vrfNameStr, vrfName, sizeof(vrfNameStr) - 1);
vrfNameBufd.
pstart = vrfNameStr;
vrfNameBufd.
size = strlen(vrfNameStr) + 1;
switch(result)
{
printf("\nThe IPv6 administrative mode of the router for given VRF is %u (1-Enabled, 0-Disabled).\n", adminMode);
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to get the IPv6 administrative mode of the router for given VRF. (result = %d)\n", result);
break;
}
return;
}
{
memset(vrfNameStr, 0, sizeof(vrfNameStr));
{
printf("\nERROR: Invalid VRF name string.\n");
return;
}
strncpy(vrfNameStr, vrfName, sizeof(vrfNameStr) - 1);
vrfNameBufd.pstart = vrfNameStr;
vrfNameBufd.size = strlen(vrfNameStr) + 1;
if (1 < mode)
{
printf("\nERROR: Invalid mode value. Expected 0(for Disable) or 1(for Enable).\n");
return;
}
if (1 == mode)
{
}
switch(result)
{
printf("\nSuccessfully set the IPv6 administrative mode of the router for given VRF.\n");
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to set the IPv6 administrative mode of the router for given VRF. (result = %d)\n", result);
break;
}
return;
}
{
memset(vrfNameStr, 0, sizeof(vrfNameStr));
{
printf("\nERROR: Invalid VRF name string.\n");
return;
}
strncpy(vrfNameStr, vrfName, sizeof(vrfNameStr) - 1);
vrfNameBufd.pstart = vrfNameStr;
vrfNameBufd.size = strlen(vrfNameStr) + 1;
switch(result)
{
printf("\nThe dynamic renewal mode of IPv6 neighbors for default VRF is %u (1-Enabled, 0-Disabled).\n", adminMode);
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to get the dynamic renewal mode of IPv6 neighbors in a given VRF. (result = %d)\n", result);
break;
}
return;
}
{
memset(vrfNameStr, 0, sizeof(vrfNameStr));
{
printf("\nERROR: Invalid VRF name string.\n");
return;
}
strncpy(vrfNameStr, vrfName, sizeof(vrfNameStr) - 1);
vrfNameBufd.pstart = vrfNameStr;
vrfNameBufd.size = strlen(vrfNameStr) + 1;
if (1 < mode)
{
printf("\nERROR: Invalid mode value. Expected 0(for Disable) or 1(for Enable).\n");
return;
}
if (1 == mode)
{
}
switch(result)
{
printf("\nSuccessfully set the dynamic renewal mode of IPv6 neighbors in the given VRF.\n");
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to set the dynamic renewal mode of IPv6 neighbors in a given VRF. (result = %d)\n", result);
break;
}
return;
}
{
uint32_t val = 0;
memset(vrfNameStr, 0, sizeof(vrfNameStr));
{
printf("\nERROR: Invalid VRF name string.\n");
return;
}
strncpy(vrfNameStr, vrfName, sizeof(vrfNameStr) - 1);
vrfNameBufd.pstart = vrfNameStr;
vrfNameBufd.size = strlen(vrfNameStr) + 1;
switch(result)
{
printf("\nThe NUD backoff-multiple value set for calculation of timeouts for NS transmissions during NUD for given VRF is %u.\n", val);
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to get NUD backoff-multiple value set for calculation of timeouts for NS transmissions during NUD for a given VRF. (result = %d)\n", result);
break;
}
return;
}
{
memset(vrfNameStr, 0, sizeof(vrfNameStr));
{
printf("\nERROR: Invalid VRF name string.\n");
return;
}
strncpy(vrfNameStr, vrfName, sizeof(vrfNameStr) - 1);
vrfNameBufd.pstart = vrfNameStr;
vrfNameBufd.size = strlen(vrfNameStr) + 1;
switch(result)
{
printf("\nSuccessfully set the NUD backoff-multiple value for calculation of timeouts for NS transmissions during NUD for the given VRF.\n");
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to set the NUD backoff-multiple value for calculation of timeouts for NS transmissions during NUD for given VRF. (result = %d)\n", result);
break;
}
return;
}
{
uint32_t val = 0;
memset(vrfNameStr, 0, sizeof(vrfNameStr));
{
printf("\nERROR: Invalid VRF name string.\n");
return;
}
strncpy(vrfNameStr, vrfName, sizeof(vrfNameStr) - 1);
vrfNameBufd.pstart = vrfNameStr;
vrfNameBufd.size = strlen(vrfNameStr) + 1;
switch(result)
{
printf("\nThe maximum unicast neighbor solicitations sent during NUD for the given VRF is %u.\n", val);
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to get the maximum unicast neighbor solicitations sent during NUD for the given VRF. (result = %d)\n", result);
break;
}
return;
}
{
memset(vrfNameStr, 0, sizeof(vrfNameStr));
{
printf("\nERROR: Invalid VRF name string.\n");
return;
}
strncpy(vrfNameStr, vrfName, sizeof(vrfNameStr) - 1);
vrfNameBufd.pstart = vrfNameStr;
vrfNameBufd.size = strlen(vrfNameStr) + 1;
switch(result)
{
printf("\nSuccessfully set the maximum unicast neighbor solicitations sent during NUD for the given VRF.\n");
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to set the maximum unicast neighbor solicitations sent during NUD for the given VRF. (result = %d)\n", result);
break;
}
return;
}
{
uint32_t val = 0;
memset(vrfNameStr, 0, sizeof(vrfNameStr));
{
printf("\nERROR: Invalid VRF name string.\n");
return;
}
strncpy(vrfNameStr, vrfName, sizeof(vrfNameStr) - 1);
vrfNameBufd.pstart = vrfNameStr;
vrfNameBufd.size = strlen(vrfNameStr) + 1;
switch(result)
{
printf("\nThe maximum multicast neighbor solicitations sent during NUD for the given VRF is %u.\n", val);
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to get the maximum multicast neighbor solicitations sent during NUD for the given VRF. (result = %d)\n", result);
break;
}
return;
}
{
memset(vrfNameStr, 0, sizeof(vrfNameStr));
{
printf("\nERROR: Invalid VRF name string.\n");
return;
}
strncpy(vrfNameStr, vrfName, sizeof(vrfNameStr) - 1);
vrfNameBufd.pstart = vrfNameStr;
vrfNameBufd.size = strlen(vrfNameStr) + 1;
switch(result)
{
printf("\nSuccessfully set the maximum multicast neighbor solicitations sent during NUD for the given VRF.\n");
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to set the maximum multicast neighbor solicitations sent during NUD for the given VRF. (result = %d)\n", result);
break;
}
return;
}
{
uint32_t val = 0;
switch(result)
{
printf("\nThe rate limit value set for the unresolved IPv6 data packets coming to CPU is %u.\n", val);
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to get the rate limit value set for the unresolved IPv6 data packets coming to CPU. (result = %d)\n", result);
break;
}
return;
}
{
switch(result)
{
printf("\nSuccessfully set the rate limit value for the unresolved IPv6 data packets coming to CPU.\n");
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to set the rate limit value for the unresolved IPv6 data packets coming to CPU. (result = %d)\n", result);
break;
}
return;
}
{
uint32_t val = 0;
memset(vrfNameStr, 0, sizeof(vrfNameStr));
{
printf("\nERROR: Invalid VRF name string.\n");
return;
}
strncpy(vrfNameStr, vrfName, sizeof(vrfNameStr) - 1);
vrfNameBufd.pstart = vrfNameStr;
vrfNameBufd.size = strlen(vrfNameStr) + 1;
switch(result)
{
printf("\nThe default IPv6 router TTL value for the given VRF is %u.\n", val);
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to get the default IPv6 router TTL value for the given VRF. (result = %d)\n", result);
break;
}
return;
}
{
memset(vrfNameStr, 0, sizeof(vrfNameStr));
{
printf("\nERROR: Invalid VRF name string.\n");
return;
}
strncpy(vrfNameStr, vrfName, sizeof(vrfNameStr) - 1);
vrfNameBufd.pstart = vrfNameStr;
vrfNameBufd.size = strlen(vrfNameStr) + 1;
switch(result)
{
printf("\nSuccessfully set the default IPv6 router TTL value for the given VRF.\n");
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to set the default IPv6 router TTL value for the given VRF. (result = %d)\n", result);
break;
}
return;
}
{
switch(result)
{
printf("\nThe IPv6 administrative state of a given interface is %u (1-Enabled, 0-Disabled).\n", adminMode);
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to get the IPv6 administrative state of a given interface. (result = %d)\n", result);
break;
}
return;
}
{
switch(result)
{
printf("\nThe operational state of a given interface is %u (1-Enabled, 0-Disabled).\n", adminMode);
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to get the operational state of a given interface. (result = %d)\n", result);
break;
}
return;
}
{
if (1 < mode)
{
printf("\n Invalid mode value. Expected 0(for Disable) or 1(for Enable).\n");
return;
}
if (1 == mode)
{
}
switch(result)
{
printf("\nSuccessfully set the IPv6 administrative state of the given interface.\n");
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to set the IPv6 administrative state of the given interface. (result = %d)\n", result);
break;
}
return;
}
{
switch(result)
{
printf("\nThe IPv6 AutoState mode of a given interface is %u (1-Enabled, 0-Disabled).\n", adminMode);
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to get the IPv6 AutoState mode of a given interface. (result = %d)\n", result);
break;
}
return;
}
void ip6RtrIntfAutoStateModeSet(
openapiClientHandle_t *client_handle, uint32_t ifNum, uint32_t autoStateMode)
{
if (1 < autoStateMode)
{
printf("\nERROR: Invalid mode value. Expected 0(for Disable) or 1(for Enable).\n");
return;
}
if (1 == autoStateMode)
{
}
switch(result)
{
printf("\nSuccessfully set the IPv6 AutoState mode of the given interface.\n");
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to set the IPv6 AutoState mode of a given interface. (result = %d)\n", result);
break;
}
return;
}
{
switch(result)
{
printf("\nTRUE.\n");
break;
printf("\nFALSE.\n");
break;
default:
printf("\nERROR: Bad return code trying to determine if IPv6 interface exists. (result = %d)\n", result);
break;
}
return;
}
{
switch(result)
{
printf("\nTRUE.\n");
break;
printf("\nFALSE.\n");
break;
default:
printf("\nERROR: Bad return code trying to determine if the interface is valid for participation in the IPv6 component. (result = %d)\n", result);
break;
}
return;
}
{
switch(result)
{
printf("\nTRUE.\n");
break;
printf("\nFALSE.\n");
break;
default:
printf("\nERROR: Bad return code trying to determine if the interface is valid to be configured with an IPv6 neighbor. (result = %d)\n", result);
break;
}
return;
}
{
uint32_t val = 0;
switch(result)
{
printf("\nThe IPv6 MTU of the given interface is %u.\n", val);
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to get the IPv6 MTU of a given interface. (result = %d)\n", result);
break;
}
return;
}
{
uint32_t val = 0;
switch(result)
{
printf("\nThe IPv6 effective MTU of the given interface is %u.\n", val);
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to get the IPv6 effective MTU of a given interface. (result = %d)\n", result);
break;
}
return;
}
{
uint32_t val = 0;
switch(result)
{
printf("\nThe maximum IPv6 MTU that may be set on the given interface is %u.\n", val);
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to get the maximum IPv6 MTU that may be set on the given interface. (result = %d)\n", result);
break;
}
return;
}
{
switch(result)
{
printf("\nSuccessfully set the IPv6 MTU of the given interface.\n");
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to set the IPv6 MTU of a given interface. (result = %d)\n", result);
break;
}
return;
}
{
uint32_t val = 0;
switch(result)
{
printf("\nThe interface bandwidth of a given interface is %u.\n", val);
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to get the interface bandwidth of a given interface. (result = %d)\n", result);
break;
}
return;
}
{
uint32_t ifNum = 0;
switch(result)
{
printf("\nThe first valid interface for participation in IPv6 component is %u.\n", ifNum);
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to get the first valid interface for participation in IPv6 component. (result = %d)\n", result);
break;
}
return;
}
{
uint32_t nextIfNum = 0;
switch(result)
{
printf("\nThe next valid interface for participation in IPv6 component is %u.\n", nextIfNum);
break;
printf("\nERROR: Invalid argument passed.\n");
break;
default:
printf("\nERROR: Bad return code trying to get the next valid interface for participation in IPv6 component. (result = %d)\n", result);
break;
}
return;
}
int main(int argc, char **argv)
{
uint32_t testNum;
char switch_os_revision_string[100];
int show_help = 1;
uint32_t value = 0;
uint32_t ifNum = 0;
if (argc < 2)
{
printAppMenu(argv[0]);
return -1;
}
testNum = atoi(argv[1]);
l7proc_crashlog_register();
{
printf("\nFailed to initialize RPC to OpEN. Exiting (result = %d)\n", result);
return -1;
}
{
sleep(1);
}
L7PROC_LOGF(L7PROC_LOG_SEVERITY_INFO, 0, "Starting IP6Map 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("\n");
switch (testNum)
{
case 1:
if (argc == 3)
{
ip6VrRtrAdminModeGet(&client_handle, argv[2]);
show_help = 0;
}
break;
case 2:
if (argc == 4)
{
value = atoi(argv[3]);
ip6VrRtrAdminModeSet(&client_handle, argv[2], value);
show_help = 0;
}
break;
case 3:
if (argc == 3)
{
ip6VrNbrsDynRenewGet(&client_handle, argv[2]);
show_help = 0;
}
break;
case 4:
if (argc == 4)
{
value = atoi(argv[3]);
ip6VrNbrsDynRenewSet(&client_handle, argv[2], value);
show_help = 0;
}
break;
case 5:
if (argc == 3)
{
ip6VrNudBackoffMultipleGet(&client_handle, argv[2]);
show_help = 0;
}
break;
case 6:
if (argc == 4)
{
value = atoi(argv[3]);
ip6VrNudBackoffMultipleSet(&client_handle, argv[2], value);
show_help = 0;
}
break;
case 7:
if (argc == 3)
{
ip6VrNudMaxUnicastSolicitsGet(&client_handle, argv[2]);
show_help = 0;
}
break;
case 8:
if (argc == 4)
{
value = atoi(argv[3]);
ip6VrNudMaxUnicastSolicitsSet(&client_handle, argv[2], value);
show_help = 0;
}
break;
case 9:
if (argc == 3)
{
ip6VrNudMaxMcastSolicitsGet(&client_handle, argv[2]);
show_help = 0;
}
break;
case 10:
if (argc == 4)
{
value = atoi(argv[3]);
ip6VrNudMaxMcastSolicitsSet(&client_handle, argv[2], value);
show_help = 0;
}
break;
case 11:
if (argc == 2)
{
ip6UnresolvedRateLimitGet(&client_handle);
show_help = 0;
}
break;
case 12:
if (argc == 3)
{
value = atoi(argv[2]);
ip6UnresolvedRateLimitSet(&client_handle, value);
show_help = 0;
}
break;
case 13:
if (argc == 3)
{
ip6VrRtrDefaultTTLGet(&client_handle, argv[2]);
show_help = 0;
}
break;
case 14:
if (argc == 4)
{
value = atoi(argv[3]);
ip6VrRtrDefaultTTLSet(&client_handle, argv[2], value);
show_help = 0;
}
break;
case 15:
if (argc == 3)
{
ifNum = atoi(argv[2]);
ip6RtrIntfModeGet(&client_handle, ifNum);
show_help = 0;
}
break;
case 16:
if (argc == 3)
{
ifNum = atoi(argv[2]);
ip6RtrIntfOperModeGet(&client_handle, ifNum);
show_help = 0;
}
break;
case 17:
if (argc == 4)
{
ifNum = atoi(argv[2]);
value = atoi(argv[3]);
ip6RtrIntfModeSet(&client_handle, ifNum, value);
show_help = 0;
}
break;
case 18:
if (argc == 3)
{
ifNum = atoi(argv[2]);
ip6RtrIntfAutoStateModeGet(&client_handle, ifNum);
show_help = 0;
}
break;
case 19:
if (argc == 4)
{
ifNum = atoi(argv[2]);
value = atoi(argv[3]);
ip6RtrIntfAutoStateModeSet(&client_handle, ifNum, value);
show_help = 0;
}
break;
case 20:
if (argc == 3)
{
ifNum = atoi(argv[2]);
ip6IntfExists(&client_handle, ifNum);
show_help = 0;
}
break;
case 21:
if (argc == 3)
{
ifNum = atoi(argv[2]);
ip6MapIntfIsValid(&client_handle, ifNum);
show_help = 0;
}
break;
case 22:
if (argc == 3)
{
ifNum = atoi(argv[2]);
ip6MapNbrIntfIsValid(&client_handle, ifNum);
show_help = 0;
}
break;
case 23:
if (argc == 3)
{
ifNum = atoi(argv[2]);
ip6RtrIntfIpv6MtuGet(&client_handle, ifNum);
show_help = 0;
}
break;
case 24:
if (argc == 3)
{
ifNum = atoi(argv[2]);
ip6RtrIntfIpv6EffectiveMtuGet(&client_handle, ifNum);
show_help = 0;
}
break;
case 25:
if (argc == 4)
{
ifNum = atoi(argv[2]);
value = atoi(argv[3]);
ip6RtrIntfIpv6MtuSet(&client_handle, ifNum, value);
show_help = 0;
}
break;
case 26:
if (argc == 3)
{
ifNum = atoi(argv[2]);
ip6RtrIntfBandwidthGet(&client_handle, ifNum);
show_help = 0;
}
break;
case 27:
if (argc == 2)
{
ip6MapIntfValidFirstGet(&client_handle);
show_help = 0;
}
break;
case 28:
if (argc == 3)
{
value = atoi(argv[2]);
ip6MapIntfValidNextGet(&client_handle, value);
show_help = 0;
}
break;
case 29:
if (argc == 3)
{
ifNum = atoi(argv[2]);
ip6RtrIntfMaxIpv6MtuGet(&client_handle, ifNum);
show_help = 0;
}
break;
default:
break;
}
if (show_help == 1)
{
printAppMenu(argv[0]);
}
L7PROC_LOGF(L7PROC_LOG_SEVERITY_INFO, 0, "Stopping IP6Map API example application");
return 0;
}