Advanced Software Framework, Tools, and Languages for the IXP Family

 

The IXP network processor [1] architecture is designed to

process packets at high rates where inter-arrival times

between packets are sometimes less than the individual

memory access latencies. To keep up with such high

arrival rates, IXP presents a novel architecture consisting

of a collection of multithreaded, multiprocessors with an

explicit memory hierarchy. Such an architecture poses

interesting challenges when an application developer

wishes to develop software for a wide range of services

that can easily be ported from one IXP processor to

another. To make it easy to develop portable, modular

software on IXPs, we currently provide a combination of

development tools and a software framework consisting

of libraries, run-time infrastructure, and APIs to facilitate

the creation of application building blocks. This paper

describes the future directions in IXP programming tools,

software frameworks, languages, and compilers.

We first identify the limitations of the current IXA

software framework [3], describe extensions to remove

such limitations and discuss how these extensions also

help in the development process.

Secondly, we provide an overview of the Developer

Workbench tool suite and its features, which provide

significant advancements over traditional development

environments. We highlight features that enable

architectural task modeling, allow debugging using

bandwidth analysis, thread history, and operand tracing,

and provide a novel packet-centric analysis based on

extensible protocol packet generation, packet status, and

a graphical view of the packet dataflow.

And finally, to move the developers beyond a chip-centric

view of programming, we also investigate domainspecific

languages and adaptable run-time environments.

We describe and justify one such research project under

development, called Baker, to develop a domain-specific

language for network processing.

Download (228.74 KB)