Designing High-Performance Networking Applications: Essential Insights for Developers of IXP2XXX Network Processor-based Systems

Chapter 7: Writing a Microblock

Oh the heart is a free and a fetterless thing, A wave of the ocean, a bird on the wing!
Julia Pardoe

Overview

You finally get to design and write a microblock!!! Besides implementing the networking protocol of your choice, a key goal behind the design and implementation of a microblock should be to maximize the reuse of the code across applications while still achieving high performance. Achieving this goal requires you to design interfaces carefully and eliminate dependencies between microblocks. This chapter examines some of the design considerations that affect reuse and performance, specifically addressing the following questions:

  • What is the optimal decomposition of packet-processing tasks into modular functions? What is the right granularity for a microblock?

  • What is the most efficient way to manage the packet data flow between microblocks?

  • How do microblocks share packet headers and per-packet state information? What are the possible design choices while implementing caching of packet headers and packet descriptors?

  • What type of packets does a microblock send to the Intel XScale core? How do microblocks send packets to the Intel XScale core?

  • How does a microblock share data structures with the Intel XScale core?

  • What are the special design considerations for applications running on Intel IXP23XX network processors?

Granularity of a Microblock

The first task for a developer is to decompose the fast-path packet processing into modular functional blocks or microblocks. Picking the right granularity for a microblock is important.

If the decomposition is too fine-grained and the...

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.