flowparser_sflow/counter_records/
queue_length.rs1use nom::IResult;
2use nom::number::complete::be_u32;
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
6pub struct QueueLength {
7 pub queue_index: u32,
8 pub segment_size: u32,
9 pub queue_segments: u32,
10 pub queue_length_0: u32,
11 pub queue_length_1: u32,
12 pub queue_length_2: u32,
13 pub queue_length_4: u32,
14 pub queue_length_8: u32,
15 pub queue_length_32: u32,
16 pub queue_length_128: u32,
17 pub queue_length_1024: u32,
18 pub queue_length_more: u32,
19 pub dropped: u32,
20}
21
22pub(crate) fn parse_queue_length(input: &[u8]) -> IResult<&[u8], QueueLength> {
23 let (input, queue_index) = be_u32(input)?;
24 let (input, segment_size) = be_u32(input)?;
25 let (input, queue_segments) = be_u32(input)?;
26 let (input, queue_length_0) = be_u32(input)?;
27 let (input, queue_length_1) = be_u32(input)?;
28 let (input, queue_length_2) = be_u32(input)?;
29 let (input, queue_length_4) = be_u32(input)?;
30 let (input, queue_length_8) = be_u32(input)?;
31 let (input, queue_length_32) = be_u32(input)?;
32 let (input, queue_length_128) = be_u32(input)?;
33 let (input, queue_length_1024) = be_u32(input)?;
34 let (input, queue_length_more) = be_u32(input)?;
35 let (input, dropped) = be_u32(input)?;
36
37 Ok((
38 input,
39 QueueLength {
40 queue_index,
41 segment_size,
42 queue_segments,
43 queue_length_0,
44 queue_length_1,
45 queue_length_2,
46 queue_length_4,
47 queue_length_8,
48 queue_length_32,
49 queue_length_128,
50 queue_length_1024,
51 queue_length_more,
52 dropped,
53 },
54 ))
55}