1 |
Suez : Arabic Qanat as-Suways, sea-level waterway running north-south across the Isthmus of Suez in Egypt to connect the Mediterranean and the Red seas. The canal is an open cut, without locks, and provides the shortest maritime route between Europe and the lands lying around the Indian and western Pacific oceans. 2 |
The key design principle of Suez is to cleanly decouple the packet forwarding path from a general-purpose computation framework, and to provide a light-weight linkage between them. The key enabling feature for achieving this decoupling is the use of programmable network processors in the forwarding path, that encode an efficient, lock-free and interrupt-free forwarding pipeline. Selected flows in the datapath are bound to processing in the computation framework. The computation framework runs on a general-purpose processor, allowing a rich set of extensions to be added to the router. The computation framework and the forwarding path operate independently and asynchronously post work to each other. The system works without using any interrupts, and all interactions take place via lock-free queues.
The key features of the datapath are an efficient routing lookup algorithm and an efficient link scheduling algorithm. The routing lookup algorithm exploits the redundancy present in the outcome of a routing lookup operation to come up with an efficient hash function. This is a simple bit-selector function that is then used as an index into a route lookup cache [1]. The scheduling algorithm is a discretized variant of fluid fair queuing that gives a parameterizable deviation from fluid fair queuing's optimal delay and fairness bounds, but incurs constant scheduling overhead independent of the number of real-time flows [3]. Combined with an efficient pipelined datapath implementation [2], these algorithms yield a high-performance forwarding path for Suez.
The computation framework of Suez, called Srishti, allows the composition of a computation graph for flow processing. Two critical features of Srishti are that it provides strong memory protection and performance isolation guarantees to the core router functions from the dynamically added router functions. For this, the key enabling components of Srishti are an efficient intra-address space protection mechanism [4], and a CPU scheduler that prioritizes core router functions over router extensions. Flows are first-class resource principals in Srishti, and all computation is composed in terms of flows. Srishti's CPU scheduler also arbitrates the CPU between flows according to their reservations, so that end-to-end performance guarantees can be offered even to flows that have computation interposed in their datapath.
A functional prototype of Suez has been built from off-the-shelf Intel
hardware and a Gbit/sec system-area network technology from Myrinet. The
system consists of a set of nodes, each of which is a general-purpose PC,
hosting Pentium-II 400 MHz CPUs. Each node connects to a Myrinet switch,
which acts as a fast backplane for the system, and to the rest of the network,
through Myrinet interfaces. These interfaces host on-board Lanai 4.X processors,
which are the programmable network processors implementing Suez's forwarding
path.