Intel® IXP400 Software

Buffer Management

Figure 9 below shows the interface between the OSAL pool management module and the pool management fields used for pool maintenance. The pool management field also stores the os_buf_ptr field, which is used by the access-layer to retrieve the original pointer to the OS buffer and is set at the time of pool allocation.

Figure 9. Pool Management Fields

IX_OSAL_MBUF_POOL

Pool manager

 

 

field macros and field

 

 

 

names

 

 

 

 

IXP_BUF

IX_MBUF

Data, len …

(standard along CSR APIs)

Reserved for pool

management and extra fields

ix_ne: NPE Shared structure

(service specific)

IX_MBUF: OS-Dependent Buffer Format

As shown in Figure 10, the IX_MBUF information follows a format originally defined in Berkeley Software Distribution (BSD) TCP/IP code distribution to preserve the backward compatibility with previous Intel® IXP400 Software releases. The OSAL layer provides translation functions to map the OS-dependent buffer format to the IX_MBUF format for Linux* and VxWorks* operating systems. This simplifies the buffer management without sacrificing functionality and flexibility.

Figure 10. IXP_BUF: IX_MBUF Structure

ix_next

ix_nextpacket

ix_data

ix_len

ix_type

ix_flags

ix_reserved

 

 

 

ix_rsvd

ix_PktLen

Reserved

IX_MBUF: 1st Structure of IXP_BUF (IX_MBUF fields)

Programmer’s Guide

IXP400 Software Version 2.0

April 2005

 

Document Number: 252539, Revision: 007

41

Page 41
Image 41
Intel IXP400 manual Pool Management Fields, Ixmbuf OS-Dependent Buffer Format