use super::super::frame::{ETH_HEADER_SIZE, MAX_ETHERNET_FRAME, MAX_JUMBO_PAYLOAD};
#[allow(unused_imports)]
use super::*;
use alloc::string::String;
#[derive(Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub(crate) enum FrameSize {
Standard,
Jumbo,
}
impl FrameSize {
pub(crate) const ALL: [Self; 2] = [Self::Standard, Self::Jumbo];
pub(crate) fn group_name(&self, source_name: &str) -> String {
match self {
FrameSize::Standard => alloc::format!("{}_ETH_Frame", source_name),
FrameSize::Jumbo => alloc::format!("{}_ETH_Frame_Jumbo", source_name),
}
}
pub(crate) fn max_frame_size(&self) -> usize {
match self {
FrameSize::Standard => MAX_ETHERNET_FRAME,
FrameSize::Jumbo => ETH_HEADER_SIZE + MAX_JUMBO_PAYLOAD,
}
}
pub(crate) fn from_length(len: usize) -> Self {
if len > MAX_ETHERNET_FRAME {
FrameSize::Jumbo
} else {
FrameSize::Standard
}
}
}