#[repr(C)]
pub struct AdvancedTxDescriptor { pub packet_buffer_address: Volatile<u64>, pub data_len: Volatile<u16>, pub dtyp_mac_rsv: Volatile<u8>, pub dcmd: Volatile<u8>, pub paylen_popts_cc_idx_sta: Volatile<u32>, }
Expand description

Advanced Transmit Descriptor used by the ixgbe NIC driver.

Two usage modes

It has 2 modes: Read and Write Back, both of which use the whole 128 bits. There is one transmit descriptor per transmit buffer; it 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 physical address of the receive buffer for the packet.

§data_len: Volatile<u16>

Length of data buffer

§dtyp_mac_rsv: Volatile<u8>

A multi-part field:

  • dtyp: Descriptor Type, occupies bits [7:4],
  • mac: options to apply LinkSec and time stamp, occupies bits [3:2].
§dcmd: Volatile<u8>

Command bits

§paylen_popts_cc_idx_sta: Volatile<u32>

A multi-part field:

  • paylen: the size in bytes of the data buffer in host memory. not including the fields that the hardware adds), occupies bits [31:14].
  • popts: options to offload checksum calculation, occupies bits [13:8].
  • sta: status of the descriptor (whether it’s in use or not), occupies bits [3:0].

Trait Implementations§

source§

impl Debug for AdvancedTxDescriptor

source§

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

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

impl TxDescriptor for AdvancedTxDescriptor

source§

fn init(&mut self)

Initializes a transmit descriptor by clearing all of its values.
source§

fn send( &mut self, transmit_buffer_addr: PhysicalAddress, transmit_buffer_length: u16 )

Updates the transmit descriptor to send the packet. We assume that one transmit descriptor will be used to send one packet. Read more
source§

fn wait_for_packet_tx(&self)

Polls the Descriptor Done bit until the packet has been sent.
source§

impl FromBytes for AdvancedTxDescriptor

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.