X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=utilities%2Fovs-dpctl.c;h=4d0d3c2db0c4265db836b3006b78ee12b2992c4c;hb=4bfff3c8b608bf174e2accd39f7c56d8f827bf2b;hp=e084868175f9e0124e214bbdb55ce5a8a4a2abea;hpb=18812dff32ce650440b9f1eac1bb00afe08c621a;p=openvswitch diff --git a/utilities/ovs-dpctl.c b/utilities/ovs-dpctl.c index e0848681..4d0d3c2d 100644 --- a/utilities/ovs-dpctl.c +++ b/utilities/ovs-dpctl.c @@ -366,22 +366,22 @@ show_dpif(struct dpif *dpif) { struct dpif_port_dump dump; struct dpif_port dpif_port; - struct odp_stats stats; + struct dpif_dp_stats stats; + struct netdev *netdev; printf("%s:\n", dpif_name(dpif)); if (!dpif_get_dp_stats(dpif, &stats)) { - printf("\tlookups: frags:%llu, hit:%llu, missed:%llu, lost:%llu\n", - (unsigned long long int) stats.n_frags, - (unsigned long long int) stats.n_hit, - (unsigned long long int) stats.n_missed, - (unsigned long long int) stats.n_lost); - printf("\tflows: %llu\n", (unsigned long long int)stats.n_flows); + printf("\tlookups: frags:%"PRIu64, stats.n_frags); + printf(" hit:%"PRIu64, stats.n_hit); + printf(" missed:%"PRIu64, stats.n_missed); + printf(" lost:%"PRIu64"\n", stats.n_lost); + + printf("\tflows: %"PRIu64"\n", stats.n_flows); } DPIF_PORT_FOR_EACH (&dpif_port, &dump, dpif) { printf("\tport %u: %s", dpif_port.port_no, dpif_port.name); if (strcmp(dpif_port.type, "system")) { - struct netdev *netdev; int error; printf (" (%s", dpif_port.type); @@ -418,29 +418,42 @@ show_dpif(struct dpif *dpif) putchar('\n'); if (print_statistics) { - const struct netdev_stats *s = &dpif_port.stats; + struct netdev_stats s; + int error; + + error = netdev_open(dpif_port.name, dpif_port.type, &netdev); + if (error) { + printf(", open failed (%s)", strerror(error)); + continue; + } + error = netdev_get_stats(netdev, &s); + if (error) { + printf(", could not retrieve stats (%s)", strerror(error)); + continue; + } - print_stat("\t\tRX packets:", s->rx_packets); - print_stat(" errors:", s->rx_errors); - print_stat(" dropped:", s->rx_dropped); - print_stat(" overruns:", s->rx_over_errors); - print_stat(" frame:", s->rx_frame_errors); + netdev_close(netdev); + print_stat("\t\tRX packets:", s.rx_packets); + print_stat(" errors:", s.rx_errors); + print_stat(" dropped:", s.rx_dropped); + print_stat(" overruns:", s.rx_over_errors); + print_stat(" frame:", s.rx_frame_errors); printf("\n"); - print_stat("\t\tTX packets:", s->tx_packets); - print_stat(" errors:", s->tx_errors); - print_stat(" dropped:", s->tx_dropped); - print_stat(" aborted:", s->tx_aborted_errors); - print_stat(" carrier:", s->tx_carrier_errors); + print_stat("\t\tTX packets:", s.tx_packets); + print_stat(" errors:", s.tx_errors); + print_stat(" dropped:", s.tx_dropped); + print_stat(" aborted:", s.tx_aborted_errors); + print_stat(" carrier:", s.tx_carrier_errors); printf("\n"); - print_stat("\t\tcollisions:", s->collisions); + print_stat("\t\tcollisions:", s.collisions); printf("\n"); - print_stat("\t\tRX bytes:", s->rx_bytes); - print_human_size(s->rx_bytes); - print_stat(" TX bytes:", s->tx_bytes); - print_human_size(s->tx_bytes); + print_stat("\t\tRX bytes:", s.rx_bytes); + print_human_size(s.rx_bytes); + print_stat(" TX bytes:", s.tx_bytes); + print_human_size(s.tx_bytes); printf("\n"); } }