#[repr(C)]
pub struct AdvancedRxDescriptor { pub packet_buffer_address: Volatile<u64>, pub header_buffer_address: Volatile<u64>, }
Expand description

Advanced Receive Descriptor used in the Ixgbe driver. It has 2 modes: Read and Write Back, both of which use the whole 128 bits. There is one receive descriptor per receive buffer that can be converted between these 2 modes. Read contains the addresses that the driver writes. Write Back contains information the hardware writes on receiving a packet. More information can be found in the 82599 datasheet.

Fields§

§packet_buffer_address: Volatile<u64>

Starting physcal address of the receive buffer for the packet.

§header_buffer_address: Volatile<u64>

Starting physcal address of the receive buffer for the header. This field will only be used if header splitting is enabled.

Implementations§

source§

impl AdvancedRxDescriptor

source

pub fn get_rss_type(&self) -> u64

Write Back mode function for the Advanced Receive Descriptor. Returns the packet type that was used for the Receive Side Scaling hash function.

source

pub fn get_packet_type(&self) -> u64

Write Back mode function for the Advanced Receive Descriptor. Returns the packet type as identified by the hardware.

source

pub fn get_rsccnt(&self) -> u64

Write Back mode function for the Advanced Receive Descriptor. Returns the number of Receive Side Coalesced packets that start in this descriptor.

source

pub fn get_hdr_len(&self) -> u64

Write Back mode function for the Advanced Receive Descriptor. Returns the size of the packet header in bytes.

source

pub fn get_sph(&self) -> bool

Write Back mode function for the Advanced Receive Descriptor. When set to 1b, indicates that the hardware has found the length of the header.

source

pub fn get_rss_hash(&self) -> u64

Write Back mode function for the Advanced Receive Descriptor. Returns the Receive Side Scaling hash.

source

pub fn get_fdf_id(&self) -> u64

Write Back mode function for the Advanced Receive Descriptor. Returns the Flow Director Filter ID if the packet matches a filter.

source

pub fn get_ext_status(&self) -> u64

Write Back mode function for the Advanced Receive Descriptor. Status information indicates whether a descriptor has been used and whether the buffer is the last one for a packet

source

pub fn get_ext_error(&self) -> u64

Write Back mode function for the Advanced Receive Descriptor. Returns errors reported by hardware for different packet types

source

pub fn get_pkt_len(&self) -> u64

Write Back mode function for the Advanced Receive Descriptor. Returns the number of bytes posted to the packet buffer

source

pub fn get_vlan_tag(&self) -> u64

Write Back mode function for the Advanced Receive Descriptor. If the vlan header is stripped from the packet, then the 16 bits of the VLAN tag are posted here

Trait Implementations§

source§

impl Debug for AdvancedRxDescriptor

source§

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

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

impl RxDescriptor for AdvancedRxDescriptor

source§

fn init(&mut self, packet_buffer_address: PhysicalAddress)

Initializes a receive descriptor by clearing its status and setting the descriptor’s physical address. Read more
source§

fn set_packet_address(&mut self, packet_buffer_address: PhysicalAddress)

Updates the descriptor’s physical address. Read more
source§

fn reset_status(&mut self)

Clears the status bits of the descriptor.
source§

fn descriptor_done(&self) -> bool

Returns true if the descriptor has a received packet copied to its buffer.
source§

fn end_of_packet(&self) -> bool

Returns true if the descriptor’s packet buffer is the last in a frame.
source§

fn length(&self) -> u64

The length of the packet in the descriptor’s packet buffer.
source§

impl FromBytes for AdvancedRxDescriptor

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. 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 Twhere 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 Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.