Intel Internet Exchange Architecture and Applications: A Practical Guide to IXP2XXX Network Processors

Hyper Task Chaining (HTC) is a pipelining approach to packet processing. HTC is given deterministic performance because each stage in the pipeline has predetermined time duration. HTC is best applied when the processing time is roughly the same for the majority of the packets, which makes for a simplified pipeline. HTC is also best used when you find a certain likelihood that the incoming packets belong to the same flow or connection. In these situations, you have a higher probability of multiple threads requesting simultaneous access to critical data, which requires a fast and efficient mechanism for locking down critical sections. Let s first look at the basics of HTC, before the benefits and limitations will become clear.
With Hyper Task Chaining, an overall networking application is broken down into a series of tasks, as follows:
Network Function = Task1 + Task2 + Task3 + + Taskn
Based on the characteristics of the function being applied to the packet, the packets can be chained in two different ways:
Function Chaining. A function chain typically performs the heavy packet processing on a packet or cell. A function chain is a series of tasks that are applied to a packet that run on several microengines. Function chaining is used when many different operations need to be done that will modify the packet.
Context Chaining. With context chaining, one task runs on one microengine. Typically,...