Implementation and Performance Analysis of a Delay Based Packet
Scheduling Algorithm for an Embedded Open Source Router
Master’s Thesis PresentationJune 5, 2007
Olli-Pekka LamminenTKK, Networking Laboratory
Supervisor: Professor Raimo KantolaInstructor: Lic.Sc.(Tech.) Marko Luoma
June 5, 2007 Olli-Pekka Lamminen 2
Outline• Goals• Technology• Packet forwarding and traffic control in Linux• Packet scheduling algorithms
• Implementation• Development environment• HPD scheduling discipline
• Validation• Measurement setup• Measurement results
• Conclusions and future work
June 5, 2007 Olli-Pekka Lamminen 3
Goals
• To implement delay-bounded hybrid proportional delay packet scheduler for Linux traffic control
• To port DBHPD scheduler enabled Linux for Necsom Media Switch embedded router environment
• To validate the functionality of DBHPD scheduler against other packet schedulers already available on NMS system
June 5, 2007 Olli-Pekka Lamminen 4
Linux Networking Kernel
• Networking can be divided into receiving and transmitting sides
• Both sides consist of three layers• Hardware layer handles communication with
network interfaces via drivers• Network layer includes facilities to handle
network level protocols, firewall, packet forwarding and traffic control
• Application layer manages states for stateful traffic like TCP, and conveys data to and from software outside the kernel
June 5, 2007 Olli-Pekka Lamminen 5
Linux Traffic Control
• Linux traffic control includes shaping and queuing• Shaping is handled on receiving side• Queuing is done on transmitting side
• Queuing has modular structure• The basic building block is queuing
discipline• Queuing discipline includes filters and
classes• Filters direct traffic to classes• Classes can have sub-queuing disciplines
June 5, 2007 Olli-Pekka Lamminen 6
Common Packet Schedulers• Commonly used packet schedulers
include FIFO, PRIQ and CBQ• FIFO is classless scheduler• First come, first serve
• PRIQ and CBQ are classful schedulers• In PRIQ classes have static priorities• Classes are server in priority order
• In CBQ classes form a hierarchical tree• Root bandwidth is shared by leaf classes• A class is allowed to transmit traffic according
to its bandwidth allocation• Classes can borrow bandwidth from their
parents and siblings
June 5, 2007 Olli-Pekka Lamminen 7
DBHPD Packet Scheduler
• HPD scheduler prioritizes traffic by experienced delay
• Delay is calculated and normalized with one of three EWMA estimators• Simple EWMA estimator• EWMA estimator with restart• EWMA with proportional error of
estimate
• Classes can also have hard delay bounds
June 5, 2007 Olli-Pekka Lamminen 8
NMS Hardware
• Networking cards interconnected with circular FSR bus
• Each card is a computer on its own• 200 MHz MPC 8260 processor• 64 MB of memory• 10/100 Mbps Ethernet interface• Runs Linux kernel version 2.4.18• 8 MB flash for kernel and ramdisk
June 5, 2007 Olli-Pekka Lamminen 9
DBHPD Implementation
• HPD queuing discipline in kernel• Implements packet scheduling API• Scheduling functionality in enqueue and
dequeue functions• Main management function called
change_class• Statistics collected with dump function
• Controlled with TC user application• Implements TC API• Controls queuing disciplines• Displays statistics
June 5, 2007 Olli-Pekka Lamminen 10
Raw Performance Measurements
• Designed to show raw system performance
• Maximum throughput• How many packets per second the
router can process
• Queuing delay• How long it takes for the router to
process a packet
June 5, 2007 Olli-Pekka Lamminen 11
Traffic Simulations
• Designed to simulate real life traffic situations
• Delay distribution shows the effectiveness of the scheduler
• Traffic classes correspond to different traffic types• VoIP, WWW, FTP, and noise• Both high and low noise traffic mixture
used
June 5, 2007 Olli-Pekka Lamminen 12
Measurement Results
• Raw performance measurements show no real difference between the schedulers• The limiting factor is the hardware not
the algorithm
• Traffic measurements show HPD having a long tail• Problem either with the implementation
or with the hardware
June 5, 2007 Olli-Pekka Lamminen 13
Conclusions and Future Work
• NMS hardware is old and unfinished• Development has ceased• Drivers are still buggy• Supported version of Linux outdated
• HPD algorithm is promising• Ability to prioritize according to delays• Tailing should be investigated with more
modern hardware
• For future research the scheduler should be ported to Linux version 2.6 and ran on PC hardware or a network processor
Thank you!
Any questions?