use deku::prelude::*;
#[derive(Debug, PartialEq, DekuRead, DekuWrite)]
#[deku(ctx = "endian: deku::ctx::Endian", endian = "endian")]
pub struct ICMPExtension {
#[deku(update = "self.mpls_labels.len() * 4")]
data_length: u16,
ext_class: u8,
ext_type: u8,
#[deku(count = "data_length / 4")]
mpls_labels: Vec<MPLSLabel>,
}
impl ICMPExtension {
pub fn new(mpls_labels: Vec<MPLSLabel>) -> Self {
ICMPExtension {
data_length: (mpls_labels.len() * 4) as u16,
ext_class: 1,
ext_type: 1,
mpls_labels,
}
}
pub fn mpls_labels(&self) -> &Vec<MPLSLabel> {
&self.mpls_labels
}
}
#[derive(Debug, PartialEq, DekuRead, DekuWrite)]
#[deku(ctx = "endian: deku::ctx::Endian", endian = "endian")]
pub struct MPLSLabel {
data: u32,
}
impl MPLSLabel {
}