Aaron R. Kunze with Erik J. Johnson are both Senior Network Software Engineers at Intel Labs. As part of a team, they designed and implemented the microACE architecture in the Intel IXP1200 Software Development Kit, which helps software engineers create reusable packet-processing modules and combine them into network processor applications. Currently, they are designing reusable Quality of Service (QoS) components for use with the Intel IXP1200 network processor family. Erik and Aaron are the authors of IXP2400/2800 Programming.
This book shows software engineers how to program the microengines of Intel's IXP1200 family of network processors. Assuming no particular background or experience with Intel® Internet Exchange Architecture (Intel® IXA) components, the book begins with a description of the hardware and development environment. You get an explanation of the right, and sometimes the wrong, approaches to programming the microengines through a series of expanding examples, covering topics such as:
|Receiving, processing, and transmitting packets|
|Synchronizing between hardware threads|
|Using the hash unit and cyclic-redundancy check instructions|
Writing microACEs to help build complex network applications
For readers who have no experience with the Intel IXA, the authors introduce the hardware and development environment. For readers familiar with Intel's earlier network processors, the book cites differences between programming methods for Intel IXP2XXX and Intel IXP12XX product lines.
The programming examples are written in structured microC "microblocks," with microengine assembly code used occasionally for illustration.
will show you how to:
|Write your first program in microengine C|
|Use the Developer Workbench tools for compiling and debugging|
Optimize and tune your program for the highest performance
A companion CD-ROM contains all the microengine code examples found in the book, plus a complete Intel® IXA Software Development Kit (SDK) 3.0 for building your applications.