5 int do_ports_state (int argc, const char **argv UNUSED, struct ngadmin *nga)
8 const struct swi_attr *sa;
9 unsigned char *ports = NULL;
13 printf("this command takes no argument\n");
18 sa = ngadmin_getCurrentSwitch(nga);
20 printf("must be logged\n");
25 ports = malloc(sa->ports * sizeof(unsigned char));
26 i = ngadmin_getPortsStatus(nga, ports);
33 for (i = 0; i < sa->ports; i++)
34 printf("port %i: %s\n", i + 1, safeStr(getSpeedStr(ports[i])));
44 int do_ports_statistics_reset (int argc, const char **argv UNUSED, struct ngadmin *nga)
50 printf("this command takes no argument\n");
54 if (ngadmin_getCurrentSwitch(nga) == NULL) {
55 printf("must be logged\n");
59 i = ngadmin_resetPortsStatistics(nga);
66 int do_ports_statistics_show (int argc, const char **argv UNUSED, struct ngadmin *nga)
69 const struct swi_attr *sa;
70 struct port_stats *ps = NULL;
74 printf("this command takes no argument\n");
79 sa = ngadmin_getCurrentSwitch(nga);
81 printf("must be logged\n");
86 ps = calloc(sa->ports, sizeof(struct port_stats));
87 i = ngadmin_getPortsStatistics(nga, ps);
94 printf("Port Received Sent CRC errors\n");
95 for (i = 0; i < sa->ports; i++)
96 printf("% 4i%21llu%21llu%21llu\n", i + 1, ps[i].recv, ps[i].sent, ps[i].crc);