Transmitting Packets on a Network Device
NetDev_Tx()
is used to notify the Ethernet device that a new packet is available to be transmitted. It performs the following actions:
...
- For DMA-based hardware, the driver should select the next available transmit descriptor and set the pointer to the data area equal to the address
...
- pointed to by
p_data
.
...
- For non-DMA hardware, the driver should call
Mem_Copy()
to copy the data stored in the buffer to the
...
- device’s internal memory. The address of the buffer is specified by
p_data
.
...
- Once completed, the driver must configure the device with the number of bytes to transmit. This value contained in the
size
argument. DMA-based devices have a size field within the transmit descriptor. Non-DMA devices have a transmit size register that must be configured.
...
- The driver then takes all necessary steps to initiate transmission of the data.
...
NetDev_Tx()
setsperr
toNET_DEV_ERR_NONE
and
...
- returns from the transmit function.