flowparser_sflow/counter_records/
ethernet_interface.rs1use nom::IResult;
2use nom::number::complete::be_u32;
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
6pub struct EthernetInterface {
7 pub dot3_stats_alignment_errors: u32,
8 pub dot3_stats_fcs_errors: u32,
9 pub dot3_stats_single_collision_frames: u32,
10 pub dot3_stats_multiple_collision_frames: u32,
11 pub dot3_stats_sqe_test_errors: u32,
12 pub dot3_stats_deferred_transmissions: u32,
13 pub dot3_stats_late_collisions: u32,
14 pub dot3_stats_excessive_collisions: u32,
15 pub dot3_stats_internal_mac_transmit_errors: u32,
16 pub dot3_stats_carrier_sense_errors: u32,
17 pub dot3_stats_frame_too_longs: u32,
18 pub dot3_stats_internal_mac_receive_errors: u32,
19 pub dot3_stats_symbol_errors: u32,
20}
21
22pub(crate) fn parse_ethernet_interface(input: &[u8]) -> IResult<&[u8], EthernetInterface> {
23 let (input, dot3_stats_alignment_errors) = be_u32(input)?;
24 let (input, dot3_stats_fcs_errors) = be_u32(input)?;
25 let (input, dot3_stats_single_collision_frames) = be_u32(input)?;
26 let (input, dot3_stats_multiple_collision_frames) = be_u32(input)?;
27 let (input, dot3_stats_sqe_test_errors) = be_u32(input)?;
28 let (input, dot3_stats_deferred_transmissions) = be_u32(input)?;
29 let (input, dot3_stats_late_collisions) = be_u32(input)?;
30 let (input, dot3_stats_excessive_collisions) = be_u32(input)?;
31 let (input, dot3_stats_internal_mac_transmit_errors) = be_u32(input)?;
32 let (input, dot3_stats_carrier_sense_errors) = be_u32(input)?;
33 let (input, dot3_stats_frame_too_longs) = be_u32(input)?;
34 let (input, dot3_stats_internal_mac_receive_errors) = be_u32(input)?;
35 let (input, dot3_stats_symbol_errors) = be_u32(input)?;
36
37 Ok((
38 input,
39 EthernetInterface {
40 dot3_stats_alignment_errors,
41 dot3_stats_fcs_errors,
42 dot3_stats_single_collision_frames,
43 dot3_stats_multiple_collision_frames,
44 dot3_stats_sqe_test_errors,
45 dot3_stats_deferred_transmissions,
46 dot3_stats_late_collisions,
47 dot3_stats_excessive_collisions,
48 dot3_stats_internal_mac_transmit_errors,
49 dot3_stats_carrier_sense_errors,
50 dot3_stats_frame_too_longs,
51 dot3_stats_internal_mac_receive_errors,
52 dot3_stats_symbol_errors,
53 },
54 ))
55}