ONL At A Glance
Contents
General Comments
The description below assumes that you will be using the
NPRs.
Most of the description also applies to the older NSPs.
See the
The NSP Tutorial for the details.
-
The NPR Tutorial
describes most of the features of the ONL Testbed and the
Remote Laboratory Interface (RLI).
The earlier tutorial
The NSP Tutorial describes the Network Services Platform,
the first-generation experimental router and the RLI.
Both tutorials can be accessed from the sidebar of the
main ONL web page
http://www.onl.wustl.edu.
- Some users find the examples in the NPR Tutorial useful.
These can be accessed by clicking
The NPR Tutorial => Examples or through the
NPR Tutorial link in the sidebar of the ONL website
www.onl.wustl.edu.
The RLI
More information can be found in the tutorial page
NPR Tutorial => The Remote Laboratory Interface.
- In the beginning, use NPRs, hosts and links.
Later, try GigE switches.
You can try NSPs, but their plugins can not run at line speed.
NetFPGAs will be available soon.
- Route Tables:
Both NPR and NSP routers initially have an empty forwarding
(route) table.
So, you have to define some forwarding mechanism.
Topology => Generate Default Routes will setup default
route tables at each of the input ports.
- Reservations:
The only way to reserve resources is through the RLI.
And the only way to change that reservation is to delete it and
add a new reservation.
So, the typical user sequence is:
- Use the RLI to define the maximal network.
- Save the configuration periodically (File => Save As ...
or File => Save).
- Make a reservation (File => Make Reservation).
- File => Commit:
- You can monitor the progress of your File => Commit
using the Testbed Status link in the sidebar of the
ONL website.
- The My Reservations link gives you a page showing
your reservations.
- The Resource Availability link gives you a page
showing you what resources are available.
- Monitoring Charts:
- Metrics such as bandwidth and
queue length are obtained by
daemons that read counters at some specified polling period
(default 1 second) and in the case of bandwidth, computing
the rate over the polling period.
- On an existing chart, you can see the source of the data
by clicking on the line label in the legend which will
open a dialogue box which contains the properties of the
line (e.g. units, rate or absolute value).
- The Y-axis label can be changed to something more meaningful
by selecting View => Change Y-Axis Label in the
monitoring window and choosing more appropriate units
(e.g., Mb/s for bandwidth charts).
- Use Monitoring => Add Parameter to add a parameter
to a chart.
For example, to add an output port bandwidth:
- Main Window: Select Monitoring => Add Parameter.
- Main Window: Select the port.
- Port Window: Select Monitoring => TXBYTE
- Dialogue Box: Enter the polling rate;
check the rate box; and select Enter.
- No Commit is needed.
Filters, Queues and Bandwidth
More information can be found in the tutorial page
NPR Tutorial => Filters, Queues and Bandwidth.
- Packet Forwarding:
- Packets are forwarded to (packet scheduling) queues
associated with each output port.
The queues are identified by non-negative integers
(i.e., QIDs).
The forwarding is based on route tables and filter
tables at each input port.
- These tables can be configured by selecting the port in the
router icon and then selecting
Configuration => Route Table or
Configuration => Filters.
- The entry used for forwarding is the highest priority
(smallest priority number) matching entry.
Route tables are matched using a Longest Prefix Matching
algorithm.
- Packets forwarded by a routing table match are hashed
into one of 64 datagram queues (i.e., stochastic queueing).
- Packet Dropping and Duplication
Filters can also be used to drop packets (drop checkbox)
or duplicate packets (aux checkbox for auxilliary filter).
- Output Port Rate (Capacity)
The actual output port rate after configuration has completed
is the largest integer multiple of 64 Kb/s that is no greater
than the value entered in the port rate box.
This means that if you ask for 300 Mb/s, you will actually
get something slightly less than 300 Mb/s.
- Packet Queues
- Packet queues are scheduled using a Weighted Deficit Round
Robin (WDRR) scheduling algorithm.
The weight is controlled by the quantum value of the
queue.
The ratio of quantum values determines the relative
rate. e.g., if the port capacity is 12 Mb/s and two
queues have quantum values of 1500 and 3000, the
long-term backlogged service rates will be 4 Mb/s and
8 Mb/s.
The absolute quantum values can be thought of as the number
of bytes to add to a token counter.
The packet at the head of a queue is transmitted when the
queue's turn arrives and its token counter is atleast equal
to the size of the packet.
- The default size (drop threshold) of packet queues
is 32,000 bytes.
- The datagram queues are numbered from 0-63.
The reserved flow queues are numbered from 64-8191.
- A route table entry hashes to one of the datagram queues (0-63).
A filter table entry is configured to forward to a specific
queue in the range 0-8191 or a plugin microengine.
If a queue is chosen, it is typically a reserved
queue (64-8191).
Using Plugins
More information can be found in the tutorial page
NPR Tutorial => Router Plugins.
- Plugins
Plugins allow you to do custom packet processing.
Each NPR has five IXP microengines (MEs) that can be loaded
with plugins.
One of the most useful provided plugins is the delay
plugin that allows you to delay packets as they move from
an input port to a packet queue at an output port.
- Using A Plugin
To use a plugin, you need to install the plugin and a
filter to direct packets to the plugin.
Note: You can not install a plugin until after
a File => Commit has finished.
- Installing A Plugin
To install the delay plugin (after
File => Commit has finished):
- RLI Window:
Click the center of the NPR icon,
and select Configuration => Plugin Table.
- Plugin Table:
Select Edit => Add Plugin => delay
- Plugin Dialogue Box:
Enter an integer from 0 to 4 to indicate
the plugin microengine (ME) number where you
want the plugin to be loaded.
Note: Only one plugin can be loaded into
each ME.
This loads a plugin with a default delay of
50 msec.
- Installing A Filter
The previous section
Filters, Queues And Bandwidth
explained how to install a filter to direct packets to
a scheduling queue.
To install a filter to direct packets to a plugin involves
two changes:
- Select plugin only from the
port/plugin selection menu, and
- Enter the microengine number (0-4) of the plugin
in the output plugins field.
- Sending A Message To A Plugin
- Plugins respond to a small set of messages.
For example, the delay plugin responds to five
messages including:
- =counts:
Return three counter values:
(ninq)
the number
of packets seen by the plugin,
(maxinq)
the maximum number of packets in
its delay queue, and
(ndrops)
the number of
packets dropped because of a full
delay queue.
- reset:
- delay= X: (the space after the
'=' is important)
Set the delay to X
milliseconds.
- To change the delay in a delay plugin
that has been installed in ME 2 to 10 msec:
- Plugin Window:
Select Edit => Send Command to Plugin.
- Send Command Window:
Enter 2 in the microengine
box;
Enter delay= 10 in the message
box (Note the space after the '='character.).
- The section
NPR Tutorial => Writing A Plugin
explains how you can write your own plugin.
Revised: Aug 14, 2009