Title: Analysis of Network Processing Workloads
1Analysis of Network Processing Workloads
Authors Ramaswamy Ramaswamy, Ning Weng, and
Tilman Wolf Publisher IEEE 2005 Present
Shih-Chin Chang (???) Date Thursday, December
31, 2009
Department of Computer Science and Information
Engineering National Cheng Kung University,
Taiwan
2Outline
- Introduction
- PacketBench
- PacketBench System
- PacketBench API
- PacketBench Prototype
- Application Workload
- Network Processing Applications
- Network Traces and Routing Tables
- Results
- Average Statistics
- Variation across Packets
- Individual Packet Analysis
3Introduction
4Introduction (cont.)
- Compared to other network processing simulators
and benchmarks, PacketBench - First, be programmed easily
- Second, allow applications to operate on actual
packets in the same fashion as it is done inside
the NP. - Third, be able to hide the overhead for packet
preprocessing in the PacketBench framework. - PacketBench can be used in
- Application Optimization
- Allocation of Processing Tasks
- Developing Novel NP Architectures
- Understanding the Dynamics of Network Processing
5Outline
- Introduction
- PacketBench
- PacketBench System
- PacketBench API
- PacketBench Prototype
- Application Workload
- Network Processing Applications
- Network Traces and Routing Tables
- Results
- Average Statistics
- Variation across Packets
- Individual Packet Analysis
6PacketBench
PacketBench Framework
7PacketBench System
- The key point about this system design
- The application and the framework can be clearly
distinguished even though both components need
to be compiled into a single executable in order
to be simulated. - This is done by analyzing the instruction
addresses and sequence of API calls.
8PacketBench System (cont.)
- PacketBench Framework
- To provide functions that are necessary to read
and write packets, and manage memory. - PacketBench API
- To distinguish between PacketBench and
application operations during simulation. - Network Processing Application
- To implement the actual processing of the
packets. - Processor Simulator
- To get instruction-level workload statistics.
9PacketBench API
- To define how applications can receive, send, or
drop packets. - void init()
- This function is implemented by the application
and called by the framework before any packets
are processed. - void (process_packet_function)(packet )
- This function is the packet handler that is
implemented by the application. - void write_packet_to_file(packet , int)
- This function is implemented by the framework and
called by the application when processing is
complete.
10PacketBench Prototype
- Use the ARM target of the SimpleScalar simulator
to analyze the applications. - The ARM architecture is very similar to the
architecture of the core processor and the
microengines found in the Intel IXP 2400 network
processor. - The tools were setup to work on an Intel x86
workstation running RedHat Linux 9.0. - PacketBench supports packet traces in the tcpdump
format and the Time Sequenced Header (TSH) format
from NLANR.
11Outline
- Introduction
- PacketBench
- PacketBench System
- PacketBench API
- PacketBench Prototype
- Application Workload
- Network Processing Applications
- Network Traces and Routing Tables
- Results
- Average Statistics
- Variation across Packets
- Individual Packet Analysis
12Application Workload
- Network Processing Applications
- IPv4-radix
- IPv4-trie
- Flow Classification
- TSA (Top-hashed Subtree-replicated Anonymization)
- Network Traces and Routing Tables
13Outline
- Introduction
- PacketBench
- PacketBench System
- PacketBench API
- PacketBench Prototype
- Application Workload
- Network Processing Applications
- Network Traces and Routing Tables
- Results
- Average Statistics
- Variation across Packets
- Individual Packet Analysis
14Results
- Three classes of results that can be derived
- Microarchitectural Results
- Network Processing Results
- Per-Packet Analysis
- These statistics are divided into three
categories - Averaged Statistics
- Variation across Packets
- Individual Packet Analysis
- Processing complexity the average number of
instructions executed per packet. - The memory accesses and coverage statistics can
- Distinguish between instruction and data memory.
- Separate data memory into packet data and program
data.
15Average Statistics
The overhead of maintaining and traversing the
radix tree.
Take the same amount of instructions.
16Average Statistics (cont.)
- Memory Accesses
- Accesses to packet memory (e.g. the packet
header, the payload) - Accesses to non-packet memory (e.g. routing
tables, flow tables) - This analysis was performed for the first 10,000
packets of each trace.
17Average Statistics (cont.)
- Memory Coverage
- By SimpleScalar
- This analysis was performed on the first 1,000
packets of the MRA trace.
Due to large data structures.
18Variation across Packets
The first 500 packets of the MRA trace.
The first 100,000 packets of the COS trace.
19Variation across Packets (cont.)
20Individual Packet Analysis
21Individual Packet Analysis (cont.)
The first 100,000 packets of the COS trace.
22Individual Packet Analysis (cont.)
- Basic Block Access Frequency
23Individual Packet Analysis (cont.)
24Individual Packet Analysis (cont.)