104
SPINE I/O
Runtime
Extension
Router
LANai
Card
Router
Application
Network
Kernel
Stack
SPINE I/O
Runtime
Extension
Router
2
3
4
5
6
1
7
Network
Kernel
User
Kernel Runtime
SPINE
LANai
Card
8
I/O Bus
Network
Wire
Wire
Figure 6.3:
SPINE IP Router Architecture
This figure shows the SPINE IP router architecture. In the common case, IP packets move directly
between LANai cards, bypassing the main CPU completely.
router is a better example of both the benefits and dangers of the overhead reduction techniques of
the SPINE approach.
6.2.1
Architecture
The SPINE system structure is illustrated in Figure 6.3. Programming re-programmable
adapters requires operating system support both on the host and on the LANai processor. A small
set of core interfaces defines the SPINE
run-time. These are implemented in C, and provide a basic
execution environment (e.g. an operating system) to SPINE
extensions. In a nutshell, SPINE exten-
sions are application defined code to be loaded onto the network adapter. Extensions are realized as
sets of Modula-3 procedures that have access to the interfaces defined by the SPINE run-time. In
our case, the extensions implement IP router code.
The run-time interfaces exported to extensions include support for messaging, safe access
to the underlying hardware (e.g., DMA controllers), and a subset of the Modula-3 interface. The
interface also consists of message FIFOs that enable user-level applications, peer devices, and ker-