pub struct Dot15d4FcsLayer {
pub index: LayerIndex,
}Expand description
IEEE 802.15.4 MAC frame with FCS (2-byte CRC at the end).
This is a drop-in replacement for Dot15d4Layer that expects a
2-byte FCS/checksum at the end of the frame, and produces one
when building.
Fields§
§index: LayerIndexImplementations§
Source§impl Dot15d4FcsLayer
impl Dot15d4FcsLayer
Sourcepub fn new(start: usize, end: usize) -> Self
pub fn new(start: usize, end: usize) -> Self
Create a new Dot15d4FcsLayer from start/end offsets.
Sourcepub fn fcs(&self, buf: &[u8]) -> Result<u16, FieldError>
pub fn fcs(&self, buf: &[u8]) -> Result<u16, FieldError>
Read the FCS value (2 bytes, LE) from the end of the frame.
Sourcepub fn verify_fcs(&self, buf: &[u8]) -> Result<bool, FieldError>
pub fn verify_fcs(&self, buf: &[u8]) -> Result<bool, FieldError>
Verify the FCS of this frame.
pub fn fcf_raw(&self, buf: &[u8]) -> Result<u16, FieldError>
pub fn fcf_frametype(&self, buf: &[u8]) -> Result<u8, FieldError>
pub fn fcf_security(&self, buf: &[u8]) -> Result<bool, FieldError>
pub fn fcf_pending(&self, buf: &[u8]) -> Result<bool, FieldError>
pub fn fcf_ackreq(&self, buf: &[u8]) -> Result<bool, FieldError>
pub fn fcf_panidcompress(&self, buf: &[u8]) -> Result<bool, FieldError>
pub fn fcf_destaddrmode(&self, buf: &[u8]) -> Result<u8, FieldError>
pub fn fcf_framever(&self, buf: &[u8]) -> Result<u8, FieldError>
pub fn fcf_srcaddrmode(&self, buf: &[u8]) -> Result<u8, FieldError>
pub fn seqnum(&self, buf: &[u8]) -> Result<u8, FieldError>
pub fn dest_panid(&self, buf: &[u8]) -> Result<Option<u16>, FieldError>
pub fn dest_addr_short(&self, buf: &[u8]) -> Result<Option<u16>, FieldError>
pub fn dest_addr_long(&self, buf: &[u8]) -> Result<Option<u64>, FieldError>
pub fn src_panid(&self, buf: &[u8]) -> Result<Option<u16>, FieldError>
pub fn src_addr_short(&self, buf: &[u8]) -> Result<Option<u16>, FieldError>
pub fn src_addr_long(&self, buf: &[u8]) -> Result<Option<u64>, FieldError>
Sourcepub fn get_field(
&self,
buf: &[u8],
name: &str,
) -> Option<Result<FieldValue, FieldError>>
pub fn get_field( &self, buf: &[u8], name: &str, ) -> Option<Result<FieldValue, FieldError>>
Get a field value by name (includes “fcs”).
Sourcepub fn set_field(
&self,
buf: &mut [u8],
name: &str,
value: FieldValue,
) -> Option<Result<(), FieldError>>
pub fn set_field( &self, buf: &mut [u8], name: &str, value: FieldValue, ) -> Option<Result<(), FieldError>>
Set a field value by name.
Sourcepub fn field_names() -> &'static [&'static str]
pub fn field_names() -> &'static [&'static str]
Get the list of field names.
Trait Implementations§
Source§impl Clone for Dot15d4FcsLayer
impl Clone for Dot15d4FcsLayer
Source§fn clone(&self) -> Dot15d4FcsLayer
fn clone(&self) -> Dot15d4FcsLayer
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for Dot15d4FcsLayer
impl Debug for Dot15d4FcsLayer
Source§impl Layer for Dot15d4FcsLayer
impl Layer for Dot15d4FcsLayer
Source§fn header_len(&self, buf: &[u8]) -> usize
fn header_len(&self, buf: &[u8]) -> usize
Get the header length for this layer
Source§fn answers(&self, buf: &[u8], other: &Self, other_buf: &[u8]) -> bool
fn answers(&self, buf: &[u8], other: &Self, other_buf: &[u8]) -> bool
Check if this packet answers another packet.
Source§fn field_names(&self) -> &'static [&'static str]
fn field_names(&self) -> &'static [&'static str]
Get the list of field names for this layer
Auto Trait Implementations§
impl Freeze for Dot15d4FcsLayer
impl RefUnwindSafe for Dot15d4FcsLayer
impl Send for Dot15d4FcsLayer
impl Sync for Dot15d4FcsLayer
impl Unpin for Dot15d4FcsLayer
impl UnsafeUnpin for Dot15d4FcsLayer
impl UnwindSafe for Dot15d4FcsLayer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more