Struct libpacket::gre::Gre[][src]

pub struct Gre {
Show fields pub checksum_present: u1, pub routing_present: u1, pub key_present: u1, pub sequence_present: u1, pub strict_source_route: u1, pub recursion_control: u3, pub zero_flags: u5, pub version: u3, pub protocol_type: u16be, pub checksum: Vec<U16BE>, pub offset: Vec<U16BE>, pub key: Vec<U32BE>, pub sequence: Vec<U32BE>, pub routing: Vec<u8>, pub payload: Vec<u8>,
}
Expand description

GRE (Generic Routing Encapsulation) Packet.

See RFCs 1701, 2784, 2890, 7676, 2637

Current status of implementation:

  • RFC 1701 except for source routing and checksums. Processing a source routed packet will panic. Checksums are able to be inspected, but not calculated or verified.

  • RFC 2784 except for checksums (same as 1701 status). Note that it is possible to generate noncompliant packets by setting any of the reserved bits (but see 2890).

  • RFC 2890 implemented.

  • RFC 7676 has no packet changes - compliance is up to the user.

  • RFC 2637 not implemented.

Note that routing information from RFC 1701 is not implemented, packets with routing_present true will currently cause a panic.

Fields

checksum_present: u1routing_present: u1key_present: u1sequence_present: u1strict_source_route: u1recursion_control: u3zero_flags: u5version: u3protocol_type: u16bechecksum: Vec<U16BE>offset: Vec<U16BE>key: Vec<U32BE>sequence: Vec<U32BE>routing: Vec<u8>payload: Vec<u8>

Trait Implementations

impl Debug for Gre[src]

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

Formats the value using the given formatter. Read more

Auto Trait Implementations

impl RefUnwindSafe for Gre

impl Send for Gre

impl Sync for Gre

impl Unpin for Gre

impl UnwindSafe for Gre

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.