plexus (plek'sus) n.
an exceedingly complex organization or network syn: web, tapestry, jungle, labyrinth.

Plexus is a networking architecture that enables applications to achieve high performance with customized protocols. Application-specific protocols are written in Modula-3 as extensions to the SPIN operating system. Extensions are then dynamically installed into the operating system kernel, where they can access the network interface and other operating system services with low overhead.

The spin/user/net directory contains a set of subdirectories that implement various protocols. Extensible communication protocols are in a protocol directory and they only define protocol headers and SPIN events; clients of these protocols implement the protocol processing functions in separate directories. Currently the following standard communication protocols are defined: Ethernet, IP, UDP, ICMP, TCP. It is simple to create a new protocol within Plexus. The protocolClient directories implement the processing functions of the extensible protocol. It is simple to create a protocolClient. The following clients have been created that implement the basic processing functions of a protocol and provide a few other servers.

Abstractly, a protocol stack is structured as a graph of event raisers and event handlers. Nodes in the graph represent protocols for which protocol events are raised to announce or request the passage of a packet through the node. The protocol processing functions are implemented by event handlers that are attached to the protocol event name.

HERE WILL BE A BIG FIGURE THAT ILLUSTRATES THE PROTOCOL GRAPH

Each incoming packet is pushed through the protocol graph by events and pulled by handlers. We have describe the motivation and implementation of Plexus in a Usenix paper which should provide more detail.


Marc Fiuczynski
DAY/MONTH/YEAR