Difference between revisions of "The SPP Tutorial"
Line 1: | Line 1: | ||
− | {{Under | + | {{Under Construction}} |
[[Category: The SPP]] | [[Category: The SPP]] | ||
[[Category: The SPP Tutorial]] | [[Category: The SPP Tutorial]] | ||
Line 5: | Line 5: | ||
= Introduction = | = Introduction = | ||
− | + | This tutorial is designed to give a new SPP user some simple, step-by-step usage examples. | |
− | + | This page and three others illustrate the main concepts required to get you started quickly and contain links to a number of auxilliary pages that will allow you to try more complex examples. | |
− | Recall from [[Internet Scale Overlay Hosting]] that an SPP developer writes code for a ''General-purpose Processing Engine'' (GPE) and a ''Network Processor Engine'' (NPE). | + | [[ Image:SPP-components.png | thumb | right | 400px | SPP Components (LC, CP, GPE, NPE) ]] |
− | Typically, the NPE | + | |
− | + | Recall from [[Internet Scale Overlay Hosting]] that an advanced SPP developer writes code for a ''General-purpose Processing Engine'' (GPE) and a ''Network Processor Engine'' (NPE). | |
− | + | Typically, a developer configures the SPP so that the NPE handles most data packets (the ''fastpath'') while the GPE handles control and exception packets (the ''slowpath''). | |
+ | The configuration process loads code into the GPE and NPE and installs filters in the ''Line Card'' (LC) to direct packets to the GPE or NPE. | ||
+ | |||
+ | In practice, we anticipate that most developers will write a prototype version of their router software using only the GPE and work with a SPP developer to transform the performance-critical parts of their GPE code to run on the NPE because programming an NPE is quite different than programming a general-purpose processor. | ||
+ | That is, most developers will write a ''GPE-only prototype'' which captures the logic of their router software and pass this design to an advanced SPP developer to create a high-speed NPE-GPE version. | ||
There are four main wiki pages in [[The SPP Tutorial]]: | There are four main wiki pages in [[The SPP Tutorial]]: | ||
* [[The SPP Tutorial]]: is this page which gives an overview of the other tutorial pages and covers administrative issues such as creating an account and getting a slice. | * [[The SPP Tutorial]]: is this page which gives an overview of the other tutorial pages and covers administrative issues such as creating an account and getting a slice. | ||
− | * [[Hello GPE Tutorial]]: describes how to use the GPE | + | * [[The Hello GPE Tutorial]]: describes how to use the GPE to create prototype xxx. |
− | * [[Hello IPv4 Code Option Tutorial]]: describes how to use the IPv4 code option which uses the NPE to process most IPv4 packets and uses the GPE to handle slowpath packets (e.g., local delivery and exceptions). | + | * [[The Hello IPv4 Code Option Tutorial]]: describes how to use the IPv4 code option which uses the NPE to process most IPv4 packets and uses the GPE to handle slowpath packets (e.g., local delivery and exceptions). |
* [[Writing A Simple Code Option Tutorial]]: describes how to write a new code option. | * [[Writing A Simple Code Option Tutorial]]: describes how to write a new code option. | ||
Revision as of 18:22, 25 February 2010
Contents
Introduction
This tutorial is designed to give a new SPP user some simple, step-by-step usage examples. This page and three others illustrate the main concepts required to get you started quickly and contain links to a number of auxilliary pages that will allow you to try more complex examples.
Recall from Internet Scale Overlay Hosting that an advanced SPP developer writes code for a General-purpose Processing Engine (GPE) and a Network Processor Engine (NPE). Typically, a developer configures the SPP so that the NPE handles most data packets (the fastpath) while the GPE handles control and exception packets (the slowpath). The configuration process loads code into the GPE and NPE and installs filters in the Line Card (LC) to direct packets to the GPE or NPE.
In practice, we anticipate that most developers will write a prototype version of their router software using only the GPE and work with a SPP developer to transform the performance-critical parts of their GPE code to run on the NPE because programming an NPE is quite different than programming a general-purpose processor. That is, most developers will write a GPE-only prototype which captures the logic of their router software and pass this design to an advanced SPP developer to create a high-speed NPE-GPE version.
There are four main wiki pages in The SPP Tutorial:
- The SPP Tutorial: is this page which gives an overview of the other tutorial pages and covers administrative issues such as creating an account and getting a slice.
- The Hello GPE Tutorial: describes how to use the GPE to create prototype xxx.
- The Hello IPv4 Code Option Tutorial: describes how to use the IPv4 code option which uses the NPE to process most IPv4 packets and uses the GPE to handle slowpath packets (e.g., local delivery and exceptions).
- Writing A Simple Code Option Tutorial: describes how to write a new code option.
The Hello GPE Tutorial xxx
The Hello IPv4 Code Option Tutorial xxx
The Writing A Simple Code Option Tutorial xxx
Requirements
This tutorial assumes that you are using a Linux operating system and have access to standard Unix tools. In particular, you will need:
- An environment where you can compile code for a Linux operating system
- OpenSSH
- The latest version of Java to run some monitoring software and traffic generators
Getting Started
xxx