Intel IXP400 Frozen Dessert Maker User Manual


 
Intel
®
IXP400 Software
Buffer Management
April 2005 IXP400 Software Version 2.0 Programmer’s Guide
36 Document Number: 252539, Revision: 007
The access-layer component may call a client-registered callback function to return the buffer, or
may put the buffer back on a free queue for the client to poll. The access-layer components utilize
similar buffer management techniques when communicating with the NPEs.
The network data buffers and their formats (as well as management of the buffers), must be
‘familiar’ to all components so that the buffers can efficiently flow in the system. The IXP400
software uses two internal buffer formats for all network data:
IXP_BUF
raw buffer
These two formats are compatible with the IXP400 software’s access-layer components and NPEs.
IXP_BUF
The IXP_BUF is the Intel
®
IXP400 Software defined buffer format used by the access-layer
components. As shown in Figure 4, the Operating System Abstraction Layer of Intel
®
IXP400
Software v2.0 provides the users with macros to read and write the IX_OSAL_MBUF fields of the
IXP_BUF buffer. The Intel
®
IXP400 Software v2.0 users are expected to use the IX_MBUF_xxx
macros provided with the API to access the IX_OSAL_MBUF fields.
Figure 3. Intel
®
IXP400 Software Buffer Flow
B-3824
Translation
OSBUF<->IXP_BUF
RxFree Q
OS NPE
Tx Q
Access-layer Components
Rx Q
TxDone Q
AQM
Update
IXP_BUF
:ixp_ne
structure
Update
IXP_BUF
:ixp_ne
structure
OS buffer
Driver
OS buffer
Allocate
IXP_BUF
buffer
Free IXP_BUF
buffer
Transmit
Receive
ix_ne: shared structure gets
updated
IX_MBUF: OS specific
structure gets updated
ix_ctrl: Pool management
fields gets updated