SnapLlcFrame

Struct SnapLlcFrame 

Source
pub struct SnapLlcFrame<'a, Payload = &'a [u8]> {
    pub oui: [u8; 3],
    pub ether_type: EtherType,
    pub payload: Payload,
    pub _phantom: PhantomData<&'a ()>,
}
Expand description

An unnumbered LLC frame, with the SNAP extension.

§Structure

This struct represents an unnumbered LLC frame with a SNAP header. This means, that DSAP and SSAP are equal to 0xaa. It is also expected, that the first two bits of the control field are set to one. If any of these assumptions aren’t met, an error will be returned.

Fields§

§oui: [u8; 3]

The organizationally unique identifier.

In most cases this is just all zeroes.

§ether_type: EtherType

The type of the protocol carried in Self::payload.

NOTE: If the oui isn’t all zeroes, this isn’t actually an ether type. However this is quite uncommon, and an ether type is usually correct. If this isn’t the case, use self.ether_type.into_bits() to get the raw u16 protocol ID.

§payload: Payload

The payload of the LLC frame.

§_phantom: PhantomData<&'a ()>

Trait Implementations§

Source§

impl<'a, Payload: Clone> Clone for SnapLlcFrame<'a, Payload>

Source§

fn clone(&self) -> SnapLlcFrame<'a, Payload>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a, Payload: Debug> Debug for SnapLlcFrame<'a, Payload>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a, Payload: Default> Default for SnapLlcFrame<'a, Payload>

Source§

fn default() -> SnapLlcFrame<'a, Payload>

Returns the “default value” for a type. Read more
Source§

impl<Payload: MeasureWith<()>> MeasureWith<()> for SnapLlcFrame<'_, Payload>

Source§

fn measure_with(&self, ctx: &()) -> usize

How large is Self, given the ctx?
Source§

impl<'a, Payload: PartialEq> PartialEq for SnapLlcFrame<'a, Payload>

Source§

fn eq(&self, other: &SnapLlcFrame<'a, Payload>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<'a> TryFromCtx<'a> for SnapLlcFrame<'a>

Source§

type Error = Error

Source§

fn try_from_ctx(from: &'a [u8], _ctx: ()) -> Result<(Self, usize), Self::Error>

Source§

impl<Payload: TryIntoCtx<Error = Error>> TryIntoCtx for SnapLlcFrame<'_, Payload>

Source§

type Error = Error

Source§

fn try_into_ctx(self, buf: &mut [u8], _ctx: ()) -> Result<usize, Self::Error>

Source§

impl<'a, Payload: Copy> Copy for SnapLlcFrame<'a, Payload>

Source§

impl<'a, Payload: Eq> Eq for SnapLlcFrame<'a, Payload>

Source§

impl<'a, Payload> StructuralPartialEq for SnapLlcFrame<'a, Payload>

Auto Trait Implementations§

§

impl<'a, Payload> Freeze for SnapLlcFrame<'a, Payload>
where Payload: Freeze,

§

impl<'a, Payload> RefUnwindSafe for SnapLlcFrame<'a, Payload>
where Payload: RefUnwindSafe,

§

impl<'a, Payload> Send for SnapLlcFrame<'a, Payload>
where Payload: Send,

§

impl<'a, Payload> Sync for SnapLlcFrame<'a, Payload>
where Payload: Sync,

§

impl<'a, Payload> Unpin for SnapLlcFrame<'a, Payload>
where Payload: Unpin,

§

impl<'a, Payload> UnwindSafe for SnapLlcFrame<'a, Payload>
where Payload: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.