in below/model/src/network.rs [374:450]
fn new(
interface: &str,
sample: &procfs::InterfaceStat,
last: Option<(&procfs::InterfaceStat, Duration)>,
) -> SingleNetModel {
let rx_bytes_per_sec = last
.map(|(l, d)| {
count_per_sec!(
l.rx_bytes.map(|s| s as u64),
sample.rx_bytes.map(|s| s as u64),
d
)
})
.unwrap_or_default();
let tx_bytes_per_sec = last
.map(|(l, d)| {
count_per_sec!(
l.tx_bytes.map(|s| s as u64),
sample.tx_bytes.map(|s| s as u64),
d
)
})
.unwrap_or_default();
let throughput_per_sec =
Some(rx_bytes_per_sec.unwrap_or_default() + tx_bytes_per_sec.unwrap_or_default());
SingleNetModel {
interface: interface.to_string(),
rx_bytes_per_sec,
tx_bytes_per_sec,
throughput_per_sec,
rx_packets_per_sec: last
.map(|(l, d)| {
count_per_sec!(
l.rx_packets.map(|s| s as u64),
sample.rx_packets.map(|s| s as u64),
d
)
})
.unwrap_or_default()
.map(|s| s as u64),
tx_packets_per_sec: last
.map(|(l, d)| {
count_per_sec!(
l.tx_packets.map(|s| s as u64),
sample.tx_packets.map(|s| s as u64),
d
)
})
.unwrap_or_default()
.map(|s| s as u64),
collisions: sample.collisions.map(|s| s as u64),
multicast: sample.multicast.map(|s| s as u64),
rx_bytes: sample.rx_bytes.map(|s| s as u64),
rx_compressed: sample.rx_compressed.map(|s| s as u64),
rx_crc_errors: sample.rx_crc_errors.map(|s| s as u64),
rx_dropped: sample.rx_dropped.map(|s| s as u64),
rx_errors: sample.rx_errors.map(|s| s as u64),
rx_fifo_errors: sample.rx_fifo_errors.map(|s| s as u64),
rx_frame_errors: sample.rx_frame_errors.map(|s| s as u64),
rx_length_errors: sample.rx_length_errors.map(|s| s as u64),
rx_missed_errors: sample.rx_missed_errors.map(|s| s as u64),
rx_nohandler: sample.rx_nohandler.map(|s| s as u64),
rx_over_errors: sample.rx_over_errors.map(|s| s as u64),
rx_packets: sample.rx_packets.map(|s| s as u64),
tx_aborted_errors: sample.tx_aborted_errors.map(|s| s as u64),
tx_bytes: sample.tx_bytes.map(|s| s as u64),
tx_carrier_errors: sample.tx_carrier_errors.map(|s| s as u64),
tx_compressed: sample.tx_compressed.map(|s| s as u64),
tx_dropped: sample.tx_dropped.map(|s| s as u64),
tx_errors: sample.tx_errors.map(|s| s as u64),
tx_fifo_errors: sample.tx_fifo_errors.map(|s| s as u64),
tx_heartbeat_errors: sample.tx_heartbeat_errors.map(|s| s as u64),
tx_packets: sample.tx_packets.map(|s| s as u64),
tx_window_errors: sample.tx_window_errors.map(|s| s as u64),
}
}