Skip to main content

flowparser_sflow/flow_records/
extended_switch.rs

1use nom::IResult;
2use nom::number::complete::be_u32;
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
6pub struct ExtendedSwitch {
7    pub src_vlan: u32,
8    pub src_priority: u32,
9    pub dst_vlan: u32,
10    pub dst_priority: u32,
11}
12
13pub(crate) fn parse_extended_switch(input: &[u8]) -> IResult<&[u8], ExtendedSwitch> {
14    let (input, src_vlan) = be_u32(input)?;
15    let (input, src_priority) = be_u32(input)?;
16    let (input, dst_vlan) = be_u32(input)?;
17    let (input, dst_priority) = be_u32(input)?;
18
19    Ok((
20        input,
21        ExtendedSwitch {
22            src_vlan,
23            src_priority,
24            dst_vlan,
25            dst_priority,
26        },
27    ))
28}