Пример #1
0
static int _netif_stats(kernel_pid_t iface, unsigned module, bool reset)
{
    netstats_t *stats;
    int res = gnrc_netapi_get(iface, NETOPT_STATS, module, &stats,
                              sizeof(&stats));

    if (res < 0) {
        puts("           Protocol or device doesn't provide statistics.");
    }
    else if (reset) {
        memset(stats, 0, sizeof(netstats_t));
        printf("Reset statistics for module %s!\n", _netstats_module_to_str(module));
    }
    else {
        printf("          Statistics for %s\n"
               "            RX packets %u  bytes %u\n"
               "            TX packets %u (Multicast: %u)  bytes %u\n"
               "            TX succeeded %u errors %u\n",
               _netstats_module_to_str(module),
               (unsigned) stats->rx_count,
               (unsigned) stats->rx_bytes,
               (unsigned) (stats->tx_unicast_count + stats->tx_mcast_count),
               (unsigned) stats->tx_mcast_count,
               (unsigned) stats->tx_bytes,
               (unsigned) stats->tx_success,
               (unsigned) stats->tx_failed);
        res = 0;
    }
    return res;
}
Пример #2
0
static int _netif_stats(kernel_pid_t dev, unsigned module, bool reset)
{
    netstats_t *stats;
    int res = -ENOTSUP;

    if (module == NETSTATS_LAYER2) {
        res = gnrc_netapi_get(dev, NETOPT_STATS, 0, &stats, sizeof(&stats));
    }
#ifdef MODULE_NETSTATS_IPV6
    else if (module == NETSTATS_IPV6) {
        stats = gnrc_ipv6_netif_get_stats(dev);
        if (stats != NULL) {
            res = 1;
        }
    }
#endif

    if (res < 0) {
        puts("           Protocol or device doesn't provide statistics.");
    }
    else if (reset) {
        memset(stats, 0, sizeof(netstats_t));
        printf("Reset statistics for module %s!\n", _netstats_module_to_str(module));
    }
    else {
        printf("           Statistics for %s\n"
               "            RX packets %u  bytes %u\n"
               "            TX packets %u (Multicast: %u)  bytes %u\n"
               "            TX succeeded %u errors %u\n",
               _netstats_module_to_str(module),
               (unsigned) stats->rx_count,
               (unsigned) stats->rx_bytes,
               (unsigned) (stats->tx_unicast_count + stats->tx_mcast_count),
               (unsigned) stats->tx_mcast_count,
               (unsigned) stats->tx_bytes,
               (unsigned) stats->tx_success,
               (unsigned) stats->tx_failed);
        res = 0;
    }
    return res;
}