Skip to content

Commit

Permalink
Add IPSTATS_MIB_REASM_OVERLAPS and IPSTATS_MIB_OUTPKTS
Browse files Browse the repository at this point in the history
Signed-off-by: bebecue <109153518+bebecue@users.noreply.github.com>
  • Loading branch information
bebecue authored and cathay4t committed Jan 20, 2025
1 parent b8a59b1 commit a52986c
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 6 deletions.
18 changes: 13 additions & 5 deletions src/link/af_spec/inet6_stats.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@ use netlink_packet_utils::{
DecodeError,
};

pub(crate) const INET6_STATS_LEN: usize = 288;
pub(crate) const INET6_STATS_LEN: usize = 304;

buffer!(Inet6StatsBuffer(INET6_STATS_LEN) {
num: (i64, 0..8),
in_pkts: (i64, 8..16),
in_octets: (i64, 16..24),
in_delivers: (i64, 24..32),
out_forw_datagrams: (i64, 32..40),
out_pkts: (i64, 40..48),
out_requests: (i64, 40..48),
out_octets: (i64, 48..56),
in_hdr_errors: (i64, 56..64),
in_too_big_errors: (i64, 64..72),
Expand Down Expand Up @@ -44,6 +44,8 @@ buffer!(Inet6StatsBuffer(INET6_STATS_LEN) {
in_ect1_pkts: (i64, 264..272),
in_ect0_pkts: (i64, 272..280),
in_ce_pkts: (i64, 280..288),
reasm_overlaps: (i64, 288..296),
out_pkts: (i64, 296..304),
});

#[derive(Clone, Copy, Eq, PartialEq, Debug, Default)]
Expand All @@ -54,7 +56,7 @@ pub struct Inet6Stats {
pub in_octets: i64,
pub in_delivers: i64,
pub out_forw_datagrams: i64,
pub out_pkts: i64,
pub out_requests: i64,
pub out_octets: i64,
pub in_hdr_errors: i64,
pub in_too_big_errors: i64,
Expand Down Expand Up @@ -85,6 +87,8 @@ pub struct Inet6Stats {
pub in_ect1_pkts: i64,
pub in_ect0_pkts: i64,
pub in_ce_pkts: i64,
pub reasm_overlaps: i64,
pub out_pkts: i64,
}

impl<T: AsRef<[u8]>> Parseable<Inet6StatsBuffer<T>> for Inet6Stats {
Expand All @@ -95,7 +99,7 @@ impl<T: AsRef<[u8]>> Parseable<Inet6StatsBuffer<T>> for Inet6Stats {
in_octets: buf.in_octets(),
in_delivers: buf.in_delivers(),
out_forw_datagrams: buf.out_forw_datagrams(),
out_pkts: buf.out_pkts(),
out_requests: buf.out_requests(),
out_octets: buf.out_octets(),
in_hdr_errors: buf.in_hdr_errors(),
in_too_big_errors: buf.in_too_big_errors(),
Expand Down Expand Up @@ -126,6 +130,8 @@ impl<T: AsRef<[u8]>> Parseable<Inet6StatsBuffer<T>> for Inet6Stats {
in_ect1_pkts: buf.in_ect1_pkts(),
in_ect0_pkts: buf.in_ect0_pkts(),
in_ce_pkts: buf.in_ce_pkts(),
reasm_overlaps: buf.reasm_overlaps(),
out_pkts: buf.out_pkts(),
})
}
}
Expand All @@ -142,7 +148,7 @@ impl Emitable for Inet6Stats {
buffer.set_in_octets(self.in_octets);
buffer.set_in_delivers(self.in_delivers);
buffer.set_out_forw_datagrams(self.out_forw_datagrams);
buffer.set_out_pkts(self.out_pkts);
buffer.set_out_requests(self.out_requests);
buffer.set_out_octets(self.out_octets);
buffer.set_in_hdr_errors(self.in_hdr_errors);
buffer.set_in_too_big_errors(self.in_too_big_errors);
Expand Down Expand Up @@ -173,5 +179,7 @@ impl Emitable for Inet6Stats {
buffer.set_in_ect1_pkts(self.in_ect1_pkts);
buffer.set_in_ect0_pkts(self.in_ect0_pkts);
buffer.set_in_ce_pkts(self.in_ce_pkts);
buffer.set_reasm_overlaps(self.reasm_overlaps);
buffer.set_out_pkts(self.out_pkts);
}
}
4 changes: 3 additions & 1 deletion src/link/tests/statistics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,7 @@ fn test_parsing_link_statistics_on_kernel_4_18() {
in_octets: 182870,
in_delivers: 0,
out_forw_datagrams: 0,
out_pkts: 6,
out_requests: 6,
out_octets: 528,
in_hdr_errors: 0,
in_too_big_errors: 0,
Expand Down Expand Up @@ -370,6 +370,8 @@ fn test_parsing_link_statistics_on_kernel_4_18() {
in_ect1_pkts: 0,
in_ect0_pkts: 0,
in_ce_pkts: 0,
reasm_overlaps: 0,
out_pkts: 0,
}),
AfSpecInet6::Icmp6Stats(Icmp6Stats {
num: 6,
Expand Down

0 comments on commit a52986c

Please sign in to comment.