mirror of
https://gitlab.com/etherlab.org/ethercat.git
synced 2026-09-20 17:17:41 +08:00
Fixed frame statistics.
This commit is contained in:
+5
-6
@@ -324,21 +324,20 @@ void ec_device_send(
|
||||
// frame statistics
|
||||
if (unlikely(jiffies - device->stats_jiffies >= HZ)) {
|
||||
unsigned int i;
|
||||
unsigned int tx_rate = device->tx_count - device->last_tx_count;
|
||||
unsigned int tx_rate =
|
||||
(device->tx_count - device->last_tx_count) * 1000;
|
||||
int loss = device->tx_count - device->rx_count;
|
||||
int loss_rate = (loss - device->last_loss) * 1000;
|
||||
for (i = 0; i < EC_RATE_COUNT; i++) {
|
||||
unsigned int n = rate_intervals[i];
|
||||
device->tx_rates[i] =
|
||||
device->tx_rates[i] * (n - 1) +
|
||||
tx_rate * n;
|
||||
(device->tx_rates[i] * (n - 1) + tx_rate) / n;
|
||||
device->loss_rates[i] =
|
||||
device->loss_rates[i] * (n - 1) +
|
||||
loss_rate * n;
|
||||
(device->loss_rates[i] * (n - 1) + loss_rate) / n;
|
||||
}
|
||||
device->last_tx_count = device->tx_count;
|
||||
device->last_loss = loss;
|
||||
device->stats_jiffies += HZ;
|
||||
device->stats_jiffies = jiffies;
|
||||
}
|
||||
|
||||
if (unlikely(!device->link_state)) // Link down
|
||||
|
||||
Reference in New Issue
Block a user