Designing Embedded Networking Applications: Essential Insights for Developers of Intel IXP4XX Network Processor Systems

Chapter 5: Software Toolkit Architecture

There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies. The other way is to make it so complicated that there are no obvious deficiencies.
Sir Tony Hoare

The Intel IXP400 software serves as the software toolkit for the Intel IXP4XX Network Processor. This toolkit is partitioned into a set of components or software libraries that closely corresponds to the hardware interfaces on the IXP4XX network processor. The design of each of these components follows some common principles. In this chapter, we outline these principles and describe the components at a high level. We also show you how the Intel IXP400 software can fit within the architecture of your own application.

What is Software Architecture?

First, a short digression on software architecture what it is and why it is important. Software architecture is the overall map of the software system, sometimes called the high-level design. An architecture can provide the designer with significant help during the construction of a system.

" the quality of the architecture determines the conceptual integrity of the system. That in turn determines the ultimate quality of the system. Good architecture makes construction easy."
Steve McConnell (McConnell 1993)

Every system has an architecture whether you identify it or not. This book has an architecture, an outline, that helped us stay on course during the writing of it. Some systems have evolved without any documented architecture, but they...

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: CPU Chips
Finish!
Privacy Policy

This is embarrasing...

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