Intel® IXP400 Software

Buffer Management

Figure 3. Intel® IXP400 Software Buffer Flow

OS

Access-layer Components

AQM

NPE

 

Allocate

 

 

OS buffer

IXP_BUF

RxFree Q

Update

 

buffer

 

Receive

 

 

IXP_BUF

 

Rx Q

:ixp_ne

 

 

 

 

structure

 

 

 

Driver

Translation

 

 

 

OSBUF<->IXP_BUF

 

 

Transmit

 

Tx Q

Update

 

 

 

OS buffer

Free IXP_BUF

 

IXP_BUF

buffer

 

:ixp_ne

 

TxDone Q

 

 

structure

 

 

 

ix_ctrl: Pool management

IX_MBUF: OS specific

ix_ne: shared structure gets

fields gets updated

structure gets updated

 

updated

 

 

 

B-3824

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.

April 2005

IXP400 Software Version 2.0

Programmer’s Guide

36

Document Number: 252539, Revision: 007

 

Page 36
Image 36
Intel manual Buffer Management, Intel IXP400 Software Buffer Flow