Intel® IXP400 Software

Buffer Management

Figure 12. IXP_BUF: NPE Shared Structure

ix p _ n e x t

ix p _ len

 

 

ix p _ p k t_ len

 

 

 

 

 

ix p _ d a ta

 

 

 

 

 

N P E

S ervice

S pecific

F ield

N P E

S ervice

S pecific

F ield

 

 

 

 

N P E

S ervice

S pecific

F ield

 

 

 

 

N P E

S ervice

S pecific

F ield

 

 

 

 

N P E

S ervice

S pecific

F ield

 

 

 

 

ix_ n e: 3rd S tru ctu re o f IX _ B U F (N P E S h ared stru ctu re)

3.4Mapping of IX_MBUF to Shared Structure

The Figure 13 below shows an example case on how the IX_MBUF headers are internally mapped to the NPE shared structure as in the case of the Ethernet and Crypto access-layer components only. The IX_MBUF standard buffer format is used throughout the access-layer code. In order to minimize overhead in reading the whole buffer control structure from the memory to the NPE while performing NPE-specific services, the pointer to the NPE shared structure is passed to the NPE for processing the data instead of the buffer descriptor pointer itself. Therefore, for the access- layer components, only the required information (such as next buffer pointer, buffer data pointer, buffer length and packet length) from the buffer control structure is copied into NPE shared structure. Depending upon the endianness, the IXP400 software internally swaps the buffers of packetised data and the headers between the upper software layers and the NPEs for the Ethernet and the Crypto access-layer components. It is important to note that NPE shared buffer format used by the IXP400 software is hard-coded in the NPE microcode. It is not possible to change this shared buffer format.

Programmer’s Guide

IXP400 Software Version 2.0

April 2005

 

Document Number: 252539, Revision: 007

43

Page 43
Image 43
Intel IXP400 manual Mapping of Ixmbuf to Shared Structure, Ixpbuf NPE Shared Structure