Intel IXP400 Frozen Dessert Maker User Manual


 
Intel
®
IXP400 Software
Access-Layer Components: Ethernet Access (IxEthAcc) API
Programmer’s Guide IXP400 Software Version 2.0 April 2005
Document Number: 252539, Revision: 007 137
Tx FIFO No Priority
If the selected discipline is FIFO_NO_PRIORITY, then all frames may be directly submitted to the
IxQMgr queue for that port if there is room on the port. Frames that cannot be queued in the
IxQMgr queue are stored in an IxEthAcc software queue for deferred submission to the IxQMgr
queue. The IxQMgr threshold in the configuration can be quite high. This allows the IxEthAcc
software to burst frames into the IxQMgr queue and improve system performance due to the
resultant higher cache hit rates.
Tx FIFO Priority
If the selected discipline is FIFO_PRIORITY, then frames are queued by IxEthAcc software in
separate priority queues. The threshold in the IxQMgr must be kept quite low to improve fairness
among packets submitted. Once the low threshold on the IxQMgr queue is reached, frames are
selected from the priority queues in strict priority order (i.e., all frames are consumed from the
highest priority queue before frames are consumed from the next lowest priority).
The priority is controlled by the IxEthAccTxPriority value in the IxEthAccPortTxFrameSubmit ()
function. IX_ETH_ACC_TX_PRIORITY_0 is the lowest priority submission and
IX_ETH_ACC_TX_PRIORITY_7 is the highest priority submission.
There are no fairness mechanisms applied across different priorities. Higher priority frames could
starve lower-priority frames indefinitely.
9.5.2.3 Using Chained IX_OSAL_MBUFs for Transmission / Buffer Sizing
Submission of chained IX_OSAL_MBUF clusters for transmission is supported, but excessive
chaining may have an adverse impact on performance. It is expected that chained buffers are used
to add protocol headers and for large packet handling. The payload portion of large PDUs may also
use chained IX_OSAL_MBUF clusters. The suggested minimum size for the buffers within the
payload portion of a packet is 64 bytes. The “transmit done” callback function is called with the
head of the cluster IX_OSAL_MBUF only when the entire chain has completed transmission.
The minimum size for the buffer payload is 64 bytes, including the Ethernet FCS. The
ixEthAccPortTxFrameAppendPaddingEnable () function will append up to 60 bytes to an
undersized frame, and will also enable FCS calculation and appending.
9.5.3 Ethernet Frame Reception
The Ethernet access component provides a mechanism to register a callback to receive Ethernet
frames from a particular MAC. The user-level callback is called for each Ethernet frame received.
The Ethernet access component must be supplied with receive buffers prior to any receive activity
on the Ethernet MAC. The flow of Ethernet frame reception is shown in Figure 51.
IxEthAcc also provides a callback mechanism that supports returning multiple frames to the user at
the same time. This callback mechanism will return all available entries in all of the EthRx queues.
Some operating systems may perform better when the stack is not invoked for each frame (for
example, trigger a context switch for each frame). There is also a corresponding Multi-Buffer
Callback registration function.