IXP1200 Programming: The Microengine Coding Guide for the Intel IXP1200 Network Processor Family

Chapter 5: Receiving and Processing Basics

Overview

The goal of this chapter is to tie together the general concepts of Chapters 2, 3 and 4 into a working example of microengine C software that receives and counts packets. We will only deal with a singlethreaded application in this chapter, to simplify the code, and to allow a focus on the receive reassembly basics. By the end of the chapter, you should be able to understand how to allocate buffers to hold packets, reassemble mpackets into a complete packet, and test the entire setup with a simulated packet generator.

All network software can be modeled as receive, process and then transmit. Well, that is a sweeping generalization that assumes arbitrarily complex process steps, nevertheless, this model still provides a foundation for our IXP12xx software.

This chapter takes a first look at receiving and processing packets usingsingle-threaded software to receive and count packets from a port on the IXP12xx.

Ordinarily, hardware handles much of the receive task. Thus, the token-task of counting packets is not worth an entire chapter. However, on the IXP12xx, the receive task requires a significant amount of software. The IXP12xx external data bus, the IX bus, segments all incoming packets into 64-byte mpackets. The receive task must reassemble these mpackets into a complete packet.

The real necessity for studying the receive task is the impact it has on the performance and flexibility of the processing tasks. The choices made in the structure of the receive task have a profound effect on the overall...

UNLIMITED FREE
ACCESS
TO THE WORLD'S BEST IDEAS

SUBMIT
Already a GlobalSpec user? Log in.

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.

Customize Your GlobalSpec Experience

Category: Packet Generators
Finish!
Privacy Policy

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.