Title: A Practical Packet Reordering Mechanism
1A Practical Packet Reordering Mechanism with
Flow Granularity for Parallel Exploiting in
Network Processors
13th WPDRTS April 4, 2005
Beibei Wu, Yang Xu, Bin Liu, Hongbin
Lu Department of Computer Science, Tsinghua
University, Beijing, P.R.China
2Background Problem
- Network Processor (NP)
- A special purpose, programmable hardware device
that combines the flexibility of a RISC processor
with the speed of ASIC. They are building blocks
used to construct network systems - Data path Processing Engine (PE)
- Two Design Goals
- High Speed Multiple PEs
- packet level
parallelism - High Flexibility Versatile processing
requirements - unpredictable
processing time for each packet - The Packet Disordering (PD) Problem
- Packets depart in a different order from their
arrival - Network performance may be deteriorated greatly
3Objective
NP Model
PE0
Dispatcher
Aggregator
PEn
- To design a practical mechanism which can
preserve packet order in NP, at the same time to
ensure the utilization of PE
4Contents
- Design Issues
- Global-scope Vs. within-flow-scope order
preserving - Pre-processing Vs. post-processing order
scheduling - The Proposed Solution
- Packet chains for all the flow sequence
information - The working process
- Simulation
5Design Issues(1)the scope of packets to preserve
order
- Global-scope
- All packets leave strictly in order
- Within-flow-scope
- Only packets of the same flow leave in order
- Processing delay of different flows is different
in NP - within-flow-order-preserving is quite necessary
6Design Issues(2)Where order scheduling is taking
place?
- Order scheduling location
- Pre-processing scheduling
- SPSL--Sequential Processing Sequential
Leaving - Post-processing scheduling
- UPSL-- Un-sequential Processing Sequential
Leaving
7Design Issues(2)the shortcoming of
pre-processing scheduling?
PE0
Dispatcher
Aggregator
PEn
Packet Buffer
8Contents
- Design Issues
- Global-scope Vs. within-flow-scope order
preserving - Pre-processing Vs. post-processing order
scheduling - The Proposed Solution
- Packet chains for sequence information
- The working process
- Simulation
9The Proposed Solution (1)The methods of
reordering
- in traditional network devices
- Sequence number or timestamp
- global order preserving
- in our NP
- Packet chains
- Providing ability to discriminate among flows
10The Proposed Solution (2)NP System with Packet
Data Buffer
PE Complex
t1
p2
pn
p1
t2
tm
b1
b2
bk
Dispatcher
Packet Data Buffer
Aggregator
- packet lt-gt thread lt-gt block
- blocks lt-gt disordered packets buffering
11The Proposed Solution (3)
- Packet in the NP lt-gt block in the Packet Data
Memory - When to transmit packet in which block?
- How to discriminate among flows?
12The Proposed Solution (4) using packet chains to
record sequence information
Flow Table
Block Table
f(1)
p(a)
p(b)
f(j)
p(e)
FlowID
End Packet
Head Packet
p(d)
p(x)
p(y)
p(z)
FlowID
packet
Dispatcher
13The Proposed Solution (5)The Working Process
PE 1
Packet Data Buffer
f
4
b1
PE 2
r
1
f
b2
f
5
b3
f
b4
1
2
3
4
5
r
2
b5
f
f
b6
f
3
b7
f
b8
f0
5
7
1
5
3
7
2
flowID
head
end
14Contents
- Design Issues
- Global-scope Vs. within-flow-scope order
preserving - Pre-processing Vs. post-processing order
scheduling - The Proposed Solution
- Packet chains for sequence information
- The working process
- Simulation
15Simulationthroughput vs flow number, for three
traces
A NP system with 4 PEs, each 4 threads and
totally 8432 memory blocks
- Trace1 f1 100 constant 40bytes f2 0
- Trace2 f1 95 constant 40bytes f2 5
random from 40 to 60bytes - Trace3 f1 90 constant 40bytes f2 10
random from 80 to 120bytes
f1 is length unrelated app. Packets,
f2 is length related app. packets
Where
16Simulation Utilization of 4 PEs under traces
with the fewest flows
- Time fraction of active thread number for each PE
trace1
trace2
trace3
All traces have the fewest flows
17Simulation Buffer Occupation with the fewest
flows
- Time fraction of free block number for each PE
-
trace1
trace2
trace3
All traces have the fewest flows
18A Summary
- A solution to preserve packet order in NP with
multiple PE for data plane processing - Packet chains to record sequence information of
different flows to preserve packet order - Reordering within-flow-scope is quite necessary
in NP - Future work optimize Memory block and PE
resources
19Thank you for your attention!