Internal Release Version 1.02 (DRAFT)
Date: January, 2000
|Plug-In-able Switching System is a switching system that can dynamically deploy application supplied stream processor modules called Switchlet, in the junction nodes (such as router or switch). inside a network Once installed, the Switchlets are placed in the flow path of the specified stream. Switchlets can perform any user defined application specific processing on the stream.|
|Plug-In-able Switching System.
A Brief Overview of the Components:
The switch is the switching system itself which resides in the network junction hosts. Switch Control Center is the host from which the user can launch switchlet applications.
The switch control center has capability to send switchlet to switches, send routing information to a switch, generate traffic data, and send control message to a switchlet.
Each switchlet is a module that can be loaded into any switch and it processes a special traffic type.
The traffic receiver receives and logs what is sented to it.
There are some other files used for setting environments.
They are master configuration file, system identification file, switch list file, routing table file, and environment file. Explanation of the files will be given later.
How to install Plug-In-able Switching System.
The source code uses C languages and Motif libraries. So, the system should have Motif and C compiler installed. It has been tested under LINUX.
In this specific distribution, the supplied source code will produce five programs, i.e. switch, switch control center, routing switchlet, cut swichlet, and traffic receiver.
Routing and cut switchlets are the two example switchlets. Routing switchlet is a simple user defined forwarding program. The Cut switchlet trims any incoming packet to a specified size. Both the switchlets uses the built-in traffic generator of the switch control center, and share the traffic receiver.
The example creates a four host system. We will install the control center in the first host and the switches in two other hosts. Then we will launch the switchlets on these intermediate switches from the control center. Finally we will test the switchlets in action by sending traffic from the control center on first host and receiving them at the last host. The switchlets in the intermediate nodes will cut and forward them.
To compile those programs, you should modify the make file to setting the environment.
The environments are include directory and library directory.
Edit Makefile to change the environment variables INC_DIR and LIB_DIR
INC_DIR should indicate the location of Motif include directories and LIB_DIR should indicate the location of Motif library directories.
If all the modification is done, run make. You can get xSwitch,
After generating the executable codes, now set up the run time environments.
XSwitch needs Sys.Id and master.cfg files which has switche's identification and over all nodes identificaion, IP address, control port number and data port number, respectively.
XSwCtrl needs master,cfg,SwitchList,RtTbl, RtSwitchlet and CutSwitchlet.
SwitchList has all the switch ID.s to send routing table. RtTbl has all the routing information. RtSwitchlet and CutSwitchletis loaded in switches by xSwCtrl.
XTrafRcv needs Sys.Id and master.cfg
XSwitch, xSwCtrl and xTrafRcv have to be installed in separate directories.
Make install helps you to make this files to proper directory.
Before running make install, you should change IP addresses
Here is a sample master.cfg.
The column of "IP Address" is needed to change to appropriate IP address for the running environment.
Sys.Id currently is only a number. For example, K0007's Sys.Id has "7" in the file excluding quotations.
The file "SwitchList" has switch names on it.
Sample routing table "RtTbl" has this entry.
This means that switch K0007 receive a packet which going to K0009, it send the packet to K0008 while in switch K0008, it sends to K0009.
When you run Make install, the work directory and all sample running environments will be set up for you.
Below the work directory, Sw1, Sw2, Ctrl, and Rcv directory can be seen and each directory contains 1st switch, 2nd switch, switch control center, and traffic receiver, respectively.
To run the program, change current directory to sample directory.
% cd sample
This shell script run the program for you.
Using the system.
In figure 1. you can see the switch main window. The number starting
with K is the switch ID. (switch address)
Figure 1. Switch main window
By pressing View Loaded Switchlets, you can see figure 2. This image shows the active switchlet modules inside the node after loading two switchlets, Switchlet 10(RtSwitchlet) and Switchlet 100(CutSwitchlet). If you press it right after start, no switchlet can be seen.
How to load switchlet is in Using Switchlet Control Center.
Figure 2. View Loaded Switchlets window
When you press View Switch Status Messages, you can see figure 3. This windows displays status messages of the switch. For examples, you can see when switchlet is loaded, when session created, when switchlet control packet received, etc.
Figure 3. View Switch Status Messages window
The Switch Control Center is the management window for all switches. With this program, you can load (push) switchlets to specific switches, control switchlets, send routing information to switches and generate traffic data. Figure 4. shows main window of Switch Control Center
Figure 4. Switch Control Center main window
Switch Control Center has buttons in three categories.
First category is the delivery and control of Switchlets. Switchlet Load button shows Switch Load windows, which can push switchlet to a specific switch. Each switchlet may have application specific controls. Switchlet Ctrl button shows list of switchlet controls.
Second category is traffic. When you click traffic generate button, you can see the window which can generate traffic data.
The last category is routing. You can send routing information to switches by clicking Routing Ctrl button and input appropriate parameter in the window.
Figure 5. Switchlet Loader
As can be seen in figure 5. you can send switchlet to a specific switch. In destination switch field, you have to input address which is starting with "K". For example, "K0007", except quotation mark. In sample configuration, there are two switches; "K0007" and "K0008".
Figure 6. Switchlet Control list window
Figure 6 shows switchlet control list window. At this time, there is only one control, CutSwitchlet control, is available. You can start CutSwitchlet control window by double clicking on the cutswithlet field.
If your control is related to traffic, then the traffic should already exist. because it controls the traffic not switchlet itself.
Figure 7. CutSwitchlet Control window
Figure 7 shows CutSwitchlet state control window.
In Switch Name field, you write switch address. For example "K0007". Cut size field is used to specify the cut size in bytes. Default cut size is 10.
In this particular example the traffic is identified by source address and session ID. These two fields are set next. Source ID fields is needed for the address of the source, for example "K0007", Session ID example is 27.
After filling up all the fields, press Send Ctrl button to send CutSwitchlet control command to the switch.
Be sure, that the traffic, which is identified by source ID and session ID already exists. In other words, First send traffic using traffic generator, and then send control command using CutSwitchlet control window.
One more things to note in this example is that that you may need to send the state control command to the switchlets on each switch separately. Here the data is travelling via K0007 and K0008 switches and the destination is K0009. Initial cut size is 10. Now you want to change the cut size to 50 of the path. Then you have to send CutSwitchlet state control command changing cut size state to 50, to both K0007 and K0008. Changing the cut size to 50 only one of the switches the path will not deliver message of size 50 at the receiver.
Figure 8. Traffic generator window
Figure 8 shows traffic generator window.
In traffic type ID field, the number, which you wrote in switchlet load switchlet ID. is needed. If you write 100 in switchlet ID. field in switchlet loader, write 100 in traffic type ID. field in traffic generator.
Figure 9 shows the routing switchlet state control window.
You can input switch info. file name SwitchList, which contains the switch addresses to receive the routing tables.
Routing table file name may be the filename of the routing table. For example, RtTbl
Figure 9. Routing control window
Using traffic receiver is very simple. Just run traffic receiver and see if traffic is being received.
Figure 10 shows traffic receiver window.
Figure 10. Traffic receiver window