Intel® IXP400 Software

Buffer Management

Figure 4. IXP_BUF User Interface

Users

IXP_BUF macros

IX_OSAL_MBUF fields

IXP_BUF structure

B-3825

The usual fields to be updated between the user and the IXP_MBUF fields depends on the access- layer component, but most of the Intel® IXP400 Software API requires the use of following fields:

IX_DATA

IX_MLEN

IX_PKTLEN

IX_NEXT_BUFFER_IN_PKT_PTR (in case of chained buffers)

Raw Buffers

Raw buffer format is simply a contiguous section of memory represented in one of two ways. One way to pass raw buffers between two access-layer components is through an agreement to circularly access the same piece of raw buffer. One access-layer component circularly writes to the buffer while the other access-layer component circularly reads from the buffer. The buffer length and alignment are parts of the agreement. At run-time, another communication channel is needed to synchronize the read pointer and write pointers between the two components.

The other way to pass raw buffers between two components is through passing a pointer to the buffer between the components. If all buffers are the same size and that size is fixed, the length can be made known during configuration. Otherwise, another communication channel in run-time is needed to tell the length of the buffer. The raw buffer component is typically used for circuit- switched network data (that is, TDM-based). The access-layer component IxHssAcc channelized service uses raw buffers. Refer to Section 13.7.2 for additional information on raw buffers.

Note: Intel® IXP400 Software provides OSAL macros, which can be used to allocate memory for raw buffers as a substitute to allocating IXP_BUF from the pool.

Programmer’s Guide

IXP400 Software Version 2.0

April 2005

 

Document Number: 252539, Revision: 007

37

Page 37
Image 37
Intel IXP400 manual Ixpbuf User Interface, Raw Buffers