mirror of
https://github.com/LibreQoE/LibreQoS.git
synced 2025-02-25 18:55:32 -06:00
Apply the atomic u64 pair to the rest of ThroughputTracker
This commit is contained in:
parent
fd8fbc43c2
commit
5a69ca5ea8
@ -131,13 +131,9 @@ async fn submit_throughput_stats(long_term_stats_tx: Sender<StatsUpdateMessage>)
|
||||
// Gather Global Stats
|
||||
let packets_per_second = (
|
||||
THROUGHPUT_TRACKER
|
||||
.packets_per_second
|
||||
.0
|
||||
.load(std::sync::atomic::Ordering::Relaxed),
|
||||
.packets_per_second.get_down(),
|
||||
THROUGHPUT_TRACKER
|
||||
.packets_per_second
|
||||
.1
|
||||
.load(std::sync::atomic::Ordering::Relaxed),
|
||||
.packets_per_second.get_up(),
|
||||
);
|
||||
let bits_per_second = THROUGHPUT_TRACKER.bits_per_second();
|
||||
let shaped_bits_per_second = THROUGHPUT_TRACKER.shaped_bits_per_second();
|
||||
|
@ -12,8 +12,8 @@ pub struct ThroughputTracker {
|
||||
pub(crate) cycle: AtomicU64,
|
||||
pub(crate) raw_data: DashMap<XdpIpAddress, ThroughputEntry>,
|
||||
pub(crate) bytes_per_second: AtomicDownUp,
|
||||
pub(crate) packets_per_second: (AtomicU64, AtomicU64),
|
||||
pub(crate) shaped_bytes_per_second: (AtomicU64, AtomicU64),
|
||||
pub(crate) packets_per_second: AtomicDownUp,
|
||||
pub(crate) shaped_bytes_per_second: AtomicDownUp,
|
||||
}
|
||||
|
||||
impl ThroughputTracker {
|
||||
@ -25,8 +25,8 @@ impl ThroughputTracker {
|
||||
cycle: AtomicU64::new(RETIRE_AFTER_SECONDS),
|
||||
raw_data: DashMap::with_capacity(lqos_sys::max_tracked_ips()),
|
||||
bytes_per_second: AtomicDownUp::zeroed(),
|
||||
packets_per_second: (AtomicU64::new(0), AtomicU64::new(0)),
|
||||
shaped_bytes_per_second: (AtomicU64::new(0), AtomicU64::new(0)),
|
||||
packets_per_second: AtomicDownUp::zeroed(),
|
||||
shaped_bytes_per_second: AtomicDownUp::zeroed(),
|
||||
}
|
||||
}
|
||||
|
||||
@ -353,8 +353,8 @@ impl ThroughputTracker {
|
||||
pub(crate) fn update_totals(&self) {
|
||||
let current_cycle = self.cycle.load(std::sync::atomic::Ordering::Relaxed);
|
||||
self.bytes_per_second.set_to_zero();
|
||||
Self::set_atomic_tuple_to_zero(&self.packets_per_second);
|
||||
Self::set_atomic_tuple_to_zero(&self.shaped_bytes_per_second);
|
||||
self.packets_per_second.set_to_zero();
|
||||
self.shaped_bytes_per_second.set_to_zero();
|
||||
self
|
||||
.raw_data
|
||||
.iter()
|
||||
@ -373,9 +373,9 @@ impl ThroughputTracker {
|
||||
})
|
||||
.for_each(|(bytes_down, bytes_up, packets_down, packets_up, shaped)| {
|
||||
self.bytes_per_second.checked_add_tuple((bytes_down, bytes_up));
|
||||
Self::add_atomic_tuple(&self.packets_per_second, (packets_down, packets_up));
|
||||
self.packets_per_second.checked_add_tuple((packets_down, packets_up));
|
||||
if shaped {
|
||||
Self::add_atomic_tuple(&self.shaped_bytes_per_second, (bytes_down, bytes_up));
|
||||
self.shaped_bytes_per_second.checked_add_tuple((bytes_down, bytes_up));
|
||||
}
|
||||
});
|
||||
|
||||
@ -406,13 +406,16 @@ impl ThroughputTracker {
|
||||
}
|
||||
|
||||
pub(crate) fn shaped_bits_per_second(&self) -> (u64, u64) {
|
||||
(self.shaped_bytes_per_second.0.load(std::sync::atomic::Ordering::Relaxed) * 8, self.shaped_bytes_per_second.1.load(std::sync::atomic::Ordering::Relaxed) * 8)
|
||||
(
|
||||
self.shaped_bytes_per_second.get_down() * 8,
|
||||
self.shaped_bytes_per_second.get_up() * 8
|
||||
)
|
||||
}
|
||||
|
||||
pub(crate) fn packets_per_second(&self) -> (u64, u64) {
|
||||
(
|
||||
self.packets_per_second.0.load(std::sync::atomic::Ordering::Relaxed),
|
||||
self.packets_per_second.1.load(std::sync::atomic::Ordering::Relaxed),
|
||||
self.packets_per_second.get_down(),
|
||||
self.packets_per_second.get_up(),
|
||||
)
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user