Difference between revisions of "The SPP Tutorial"
Line 3: | Line 3: | ||
= Introduction = | = Introduction = | ||
+ | |||
+ | The main tutorial pages are designed to give a new SPP user step-by-step, simple examples that illustrate the main SPP concepts and contain links to a number of auxilliary pages that provide more information. | ||
+ | It is hoped that these main pages will get you started quickly but supply sufficient information and links so you can try more complex examples. | ||
There are three main wiki pages in [[The SPP Tutorial]] in addition to this page: | There are three main wiki pages in [[The SPP Tutorial]] in addition to this page: | ||
* [[Hello GPE Tutorial]] | * [[Hello GPE Tutorial]] | ||
+ | <blockquote> | ||
+ | xxx | ||
+ | </blockquote> | ||
* [[Hello IPv4 Code Option Tutorial]] | * [[Hello IPv4 Code Option Tutorial]] | ||
+ | <ul> | ||
+ | xxx | ||
+ | </ul> | ||
* [[Writing A Simple Code Option Tutorial]] | * [[Writing A Simple Code Option Tutorial]] | ||
− | + | <ul> | |
− | + | xxx | |
− | + | </ul> | |
This page covers administrative issues such as creating an account and getting a slice. | This page covers administrative issues such as creating an account and getting a slice. |
Revision as of 19:21, 24 February 2010
Contents
Introduction
The main tutorial pages are designed to give a new SPP user step-by-step, simple examples that illustrate the main SPP concepts and contain links to a number of auxilliary pages that provide more information. It is hoped that these main pages will get you started quickly but supply sufficient information and links so you can try more complex examples.
There are three main wiki pages in The SPP Tutorial in addition to this page:
xxx
-
xxx
-
xxx
This page covers administrative issues such as creating an account and getting a slice. The Hello GPE Tutorial xxx The Hello IPv4 Code Option Tutorial xxx The Writing A Simple Code Option Tutorial xxx
We anticipate that a typical SPP user will develop their router software in four steps:
- Develop a slow-path version by writing a stylized socket program that captures the semantics of the protocol processing and debug it using any PlanetLab-like host.
- Repeat the testing of the slow-path version of the router software on the SPPs' GPEs.
- Send to the SPP developers information regarding the slow-path program that handles your new protocol (e.g., slow-path code, test results, informal/formal protocol description).
- The SPP developers will transform the slow-path socket program into a slow-path part that will run on a GPE and a fast-path part that will run on an NPE.
- The slow-path part typically handles the control path and exception processing.
- The fast-path part handles the data path.
This approach is needed because programming NPEs (used for the fast-path) is specific to the IXP network processors. Programming GPEs (General-purpose Processing Engines) is similar to programming any general-purpose processor with multiple network interfaces. We are currently working through an example of this process using an early version of the Forest Protocol. This effort is described in The Forest Project.
Using a GPE is similar to using any PlanetLab node except that SPP slices are administered through a special PLC (PlanetLab Central) site at http://drn06.arl.wustl.edu/. But the following PlanetLab procedure still holds:
- A Principle Investigator (PI) must create a slice for you.
- The PI must assign you to that slice.
- Then, you can add SPP nodes to your slice.
In a typical scenario, you (as an ordinary PlanetLab user) will use both normal PlanetLab nodes and SPP nodes. This requires that you are assigned both a normal PlanetLab slice and an SPP slice. Once you have been assigned to an SPP slice, you can log into the GPE of an SPP slice like any other PlanetLab node using ssh and develop a socket program as you would for any other PlanetLab node except for a few small differences:
- An SPP has multiple network interfaces if you want to use more than one interface.
- You must configure the SPP before you can use it.
But the configuration process is fairly straightforward since a user typically customizes an existing configuration script to do the configuration.