diff options
author | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2021-08-06 13:33:01 -0700 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2021-08-09 15:01:29 -0700 |
commit | ea224edbd0c42cffa71c55255a742422f5f187c6 (patch) | |
tree | a5469cc6367148f7c5310286fbc4947f1791c62a /monitor/analyze.c | |
parent | 44e1bcffcd491ae1e7d5904e44c9bc6d296d0093 (diff) | |
download | bluez-ea224edbd0c42cffa71c55255a742422f5f187c6.tar.gz |
monitor: Fix median packet size
Calculating the median packet based on the current median + size / 2
does not account for last packet could smaller e.g. opp transfer could
end with just 1 byte which would cut the median in a half, so this
switch to more traditional means of calculating by doing total bytes
sent / num of packets so each an every packet has the same weight.
Diffstat (limited to 'monitor/analyze.c')
-rw-r--r-- | monitor/analyze.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/monitor/analyze.c b/monitor/analyze.c index 839c2f7e9..5e0957ad1 100644 --- a/monitor/analyze.c +++ b/monitor/analyze.c @@ -61,6 +61,7 @@ struct hci_conn { unsigned long rx_num; unsigned long tx_num; unsigned long tx_num_comp; + size_t tx_bytes; struct timeval last_tx; struct timeval last_tx_comp; struct timeval tx_lat_min; @@ -99,6 +100,8 @@ static void conn_destroy(void *data) break; } + conn->tx_pkt_med = conn->tx_bytes / conn->tx_num; + printf(" Found %s connection with handle %u\n", str, conn->handle); printf(" BD_ADDR %2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X\n", conn->bdaddr[5], conn->bdaddr[4], conn->bdaddr[3], @@ -485,16 +488,12 @@ static void acl_pkt(struct timeval *tv, uint16_t index, bool out, if (out) { conn->tx_num++; conn->last_tx = *tv; + conn->tx_bytes += size; if (!conn->tx_pkt_min || size < conn->tx_pkt_min) conn->tx_pkt_min = size; if (!conn->tx_pkt_max || size > conn->tx_pkt_max) conn->tx_pkt_max = size; - if (conn->tx_pkt_med) { - conn->tx_pkt_med += (size + 1); - conn->tx_pkt_med /= 2; - } else - conn->tx_pkt_med = size; } else { conn->rx_num++; } |