CS 552 Fall 2004
Assignment 1



Due Date: (NEW) Your .click file emailed to the TA on-or-before midnight,Friday , Sept. 17th, 2004.

For the this assignment, you will build a small network program using the click infrastructure from MIT.

Step 1a: (NEW) Log into a “cereal” machine running Linux. You can use your normal CS (e.g. paul) username and password. The only way in is via an ssh client program. A list of cereal machines can be found at: http://cereal.rutgers.edu. DO NOT log into the machine “cereal”; log into a client instead. Note that your keycard should get you into the labs where the cereal machines are located as well (Hill 248 and 250).

Step 1b: (NEW) Once you are logged into a cereal client, you can run click from:

/.autofs/ilab_users/edpin/click/bin/click

You might want to add this directory to your path.

OLD Step 1: download and run the click infrastructure. You do not need to do anything in kernel mode; for this class, you will stick to user mode. The instructions for downloading and running click are here. You should be able to use any unix machine for this.

Step 2: Create a small click program. Create two packet sources, one called Src1 that generates packets with random data and of length at most 1500 bytes. Another source, called Src2, generates a rated packets at 15 packets per second, for a limit of 30 packets and stops.

Create an elementclass called Filter that will connect from port 0 from Src1 and port 1 from Src2. Port 0 is queued internally (up to a maximum of 100 packets) and then sent to the output port of filter. Port 1 should be queued as well (up to 100 packets) and its rate shaped to 5 packets per second (use the Shaper element) before it's sent to the output port 1.

Connect the outputs of Filter to two packet consumers, Sink0 and Sink1 that consume packets at a rate of 1 pkt/s and 30 pkt/s. Before consuming the packets, print their contents with a timestamp.

Step 3: Email the click program to the TA: Send your .click file to the TA via email as a text attachment. The subject line should read “CS552 assignment 1”. If your program is more than 1 page you're probably doing something wrong.