flowparser_sflow/counter_records/
token_ring.rs1use nom::IResult;
2use nom::number::complete::be_u32;
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
6pub struct TokenRing {
7 pub dot5_stats_line_errors: u32,
8 pub dot5_stats_burst_errors: u32,
9 pub dot5_stats_ac_errors: u32,
10 pub dot5_stats_abort_trans_errors: u32,
11 pub dot5_stats_internal_errors: u32,
12 pub dot5_stats_lost_frame_errors: u32,
13 pub dot5_stats_receive_congestions: u32,
14 pub dot5_stats_frame_copied_errors: u32,
15 pub dot5_stats_token_errors: u32,
16 pub dot5_stats_soft_errors: u32,
17 pub dot5_stats_hard_errors: u32,
18 pub dot5_stats_signal_loss: u32,
19 pub dot5_stats_transmit_beacons: u32,
20 pub dot5_stats_recoverys: u32,
21 pub dot5_stats_lobe_wires: u32,
22 pub dot5_stats_removes: u32,
23 pub dot5_stats_singles: u32,
24 pub dot5_stats_freq_errors: u32,
25}
26
27pub(crate) fn parse_token_ring(input: &[u8]) -> IResult<&[u8], TokenRing> {
28 let (input, dot5_stats_line_errors) = be_u32(input)?;
29 let (input, dot5_stats_burst_errors) = be_u32(input)?;
30 let (input, dot5_stats_ac_errors) = be_u32(input)?;
31 let (input, dot5_stats_abort_trans_errors) = be_u32(input)?;
32 let (input, dot5_stats_internal_errors) = be_u32(input)?;
33 let (input, dot5_stats_lost_frame_errors) = be_u32(input)?;
34 let (input, dot5_stats_receive_congestions) = be_u32(input)?;
35 let (input, dot5_stats_frame_copied_errors) = be_u32(input)?;
36 let (input, dot5_stats_token_errors) = be_u32(input)?;
37 let (input, dot5_stats_soft_errors) = be_u32(input)?;
38 let (input, dot5_stats_hard_errors) = be_u32(input)?;
39 let (input, dot5_stats_signal_loss) = be_u32(input)?;
40 let (input, dot5_stats_transmit_beacons) = be_u32(input)?;
41 let (input, dot5_stats_recoverys) = be_u32(input)?;
42 let (input, dot5_stats_lobe_wires) = be_u32(input)?;
43 let (input, dot5_stats_removes) = be_u32(input)?;
44 let (input, dot5_stats_singles) = be_u32(input)?;
45 let (input, dot5_stats_freq_errors) = be_u32(input)?;
46
47 Ok((
48 input,
49 TokenRing {
50 dot5_stats_line_errors,
51 dot5_stats_burst_errors,
52 dot5_stats_ac_errors,
53 dot5_stats_abort_trans_errors,
54 dot5_stats_internal_errors,
55 dot5_stats_lost_frame_errors,
56 dot5_stats_receive_congestions,
57 dot5_stats_frame_copied_errors,
58 dot5_stats_token_errors,
59 dot5_stats_soft_errors,
60 dot5_stats_hard_errors,
61 dot5_stats_signal_loss,
62 dot5_stats_transmit_beacons,
63 dot5_stats_recoverys,
64 dot5_stats_lobe_wires,
65 dot5_stats_removes,
66 dot5_stats_singles,
67 dot5_stats_freq_errors,
68 },
69 ))
70}