diff --git a/edge_utils.c b/edge_utils.c index 95e9334..0966ed0 100644 --- a/edge_utils.c +++ b/edge_utils.c @@ -85,6 +85,8 @@ struct n2n_edge_stats { uint32_t rx_p2p; uint32_t tx_sup; uint32_t rx_sup; + uint32_t tx_sup_broadcast; + uint32_t rx_sup_broadcast; }; /* ************************************** */ @@ -824,6 +826,9 @@ static int handle_PACKET(n2n_edge_t * eee, if(from_supernode) { + if(!memcmp(pkt->dstMac, broadcast_mac, 6)) + ++(eee->stats.rx_sup_broadcast); + ++(eee->stats.rx_sup); eee->last_sup=now; } @@ -1150,9 +1155,13 @@ static int send_packet(n2n_edge_t * eee, if(is_p2p) ++(eee->stats.tx_p2p); - else + else { ++(eee->stats.tx_sup); + if(!memcmp(dstMac, broadcast_mac, 6)) + ++(eee->stats.tx_sup_broadcast); + } + traceEvent(TRACE_INFO, "send_packet to %s", sock_to_cstr(sockbuf, &destination)); /* s = */ sendto_sock(eee->udp_sock, pktbuf, pktlen, &destination); @@ -1527,8 +1536,8 @@ void print_edge_stats(const n2n_edge_t *eee) { traceEvent(TRACE_NORMAL, "Packet stats:"); traceEvent(TRACE_NORMAL, " TX P2P: %u pkts", s->tx_p2p); traceEvent(TRACE_NORMAL, " RX P2P: %u pkts", s->rx_p2p); - traceEvent(TRACE_NORMAL, " TX Supernode: %u pkts", s->tx_sup); - traceEvent(TRACE_NORMAL, " RX Supernode: %u pkts", s->rx_sup); + traceEvent(TRACE_NORMAL, " TX Supernode: %u pkts (%u broadcast)", s->tx_sup, s->tx_sup_broadcast); + traceEvent(TRACE_NORMAL, " RX Supernode: %u pkts (%u broadcast)", s->rx_sup, s->rx_sup_broadcast); traceEvent(TRACE_NORMAL, "**********************************"); }