Intel IXP400 Frozen Dessert Maker User Manual


 
Intel
®
IXP400 Software
Buffer Management
Programmer’s Guide IXP400 Software Version 2.0 April 2005
Document Number: 252539, Revision: 007 37
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.
Figure 4. IXP_BUF User Interface
B-3825
IXP_BUF macros
Users
IXP_BUF structure
IX_OSAL_MBUF fields