|
Packit |
857059 |
/* This file shows a simple example of requesting and printing OPA
|
|
Packit |
857059 |
* port counters data
|
|
Packit |
857059 |
*
|
|
Packit |
857059 |
*/
|
|
Packit |
857059 |
|
|
Packit |
857059 |
//core API
|
|
Packit |
857059 |
#include <opamgt/opamgt.h>
|
|
Packit |
857059 |
//extensions for PA queries
|
|
Packit |
857059 |
#include <opamgt/opamgt_pa.h>
|
|
Packit |
857059 |
#include <inttypes.h>
|
|
Packit |
857059 |
|
|
Packit |
857059 |
|
|
Packit |
857059 |
int main()
|
|
Packit |
857059 |
{
|
|
Packit |
857059 |
struct omgt_port * port = NULL;
|
|
Packit |
857059 |
OMGT_STATUS_T status;
|
|
Packit |
857059 |
int exitcode = 0;
|
|
Packit |
857059 |
|
|
Packit |
857059 |
STL_PA_IMAGE_ID_DATA image_ID = {0};
|
|
Packit |
857059 |
STL_PA_IMAGE_INFO_DATA image_info;
|
|
Packit |
857059 |
|
|
Packit |
857059 |
status = omgt_open_port_by_num(&port, 1, 1, NULL);
|
|
Packit |
857059 |
if(OMGT_STATUS_SUCCESS != status) {
|
|
Packit |
857059 |
fprintf(stderr, "Failed to open port or initialize PA connection\n");
|
|
Packit |
857059 |
exitcode=1;
|
|
Packit |
857059 |
goto fail1;
|
|
Packit |
857059 |
}
|
|
Packit |
857059 |
|
|
Packit |
857059 |
if (omgt_pa_get_image_info(port, image_ID, &image_info)){
|
|
Packit |
857059 |
fprintf(stderr, "Failed to get PA image\n");
|
|
Packit |
857059 |
exitcode=1;
|
|
Packit |
857059 |
goto fail2;
|
|
Packit |
857059 |
}
|
|
Packit |
857059 |
|
|
Packit |
857059 |
printf("Sweep start: %s", ctime((time_t *)&image_info.sweepStart));
|
|
Packit |
857059 |
|
|
Packit |
857059 |
STL_PORT_COUNTERS_DATA port_counters;
|
|
Packit |
857059 |
/*loop here, collecting counters and storing or displaying*/
|
|
Packit |
857059 |
/*maybe show capability to get specific images*/
|
|
Packit |
857059 |
if (omgt_pa_get_port_stats2(port, image_ID, 1, 1, &image_ID, &port_counters, NULL, 0, 1)){
|
|
Packit |
857059 |
fprintf(stderr, "Failed to get port counters\n");
|
|
Packit |
857059 |
exitcode=1;
|
|
Packit |
857059 |
goto fail2;
|
|
Packit |
857059 |
}
|
|
Packit |
857059 |
|
|
Packit |
857059 |
printf("Port Counters Data:\n");
|
|
Packit |
857059 |
printf("portXmitData: %"PRIu64"\n", port_counters.portXmitData);
|
|
Packit |
857059 |
printf("portRcvData: %"PRIu64"\n", port_counters.portRcvData);
|
|
Packit |
857059 |
printf("portXmitPkts: %"PRIu64"\n", port_counters.portXmitPkts);
|
|
Packit |
857059 |
printf("portRcvPkts: %"PRIu64"\n", port_counters.portRcvPkts);
|
|
Packit |
857059 |
printf("localLinkIntegrityErrors: %"PRIu64"\n", port_counters.localLinkIntegrityErrors);
|
|
Packit |
857059 |
printf("linkDowned: %u\n", port_counters.linkDowned);
|
|
Packit |
857059 |
|
|
Packit |
857059 |
fail2:
|
|
Packit |
857059 |
omgt_close_port(port);
|
|
Packit |
857059 |
fail1:
|
|
Packit |
857059 |
return exitcode;
|
|
Packit |
857059 |
}
|