Skip to content
Adam edited this page Feb 28, 2013 · 1 revision

Table of Contents

Traffic Monitor

This project provides a first implementation of a traffic monitor on the NetFPGA. This design has been built on top of the Reference Router.

Network traffic measurement is the process of measuring the amount and type of traffic on a particular network.

Project summary

Status :
Released
Version :
2.0
Authors :
Alfio Lombardo ([email protected]), Carla Panarello ([email protected]), Diego Reforgiato Recupero ([email protected]), Andrea Reitano ([email protected]), Giovanni Schembra ([email protected]), Mario Torrisi ([email protected])
NetFPGA source :
NetFPGA source 2.0

Download

Make sure you are using the NetFPGA 2.0 base package. You will also need a beta account to be able to download. You can download the tarball here

Description

This design has been built on top of the Reference Router. Network traffic measurement is the process of measuring the amount and type of traffic on a particular network.

In this project we have modified op_lut_process_sm.v in order to duplicate incoming traffic both to output queue and to CPU queue, and then we capture traffic directed to the CPU queue to take into account the traffic information (Protocol Assign Number, see List of IP protocol number, and a packet counter of any type of protocol passed through). This structure has been dumped onto a log file (traffic.log) after a certain amount of time, that the user can specify when he runs traffic_monitor which is situated into the sw directory of the project.

Regression Tests

Same tests as the reference router and scone.

The regression tests verify the functionality of the promiscuous router. In order to run the tests, you need to have the machine connected for the regression tests as stated in the Run Regression Tests section of the Guide.

After connecting the cables. Run the following command to run the regression tests.

 nf2_regress_tests.pl --project traffic_monitor

Usage

The following describes how to install, and run the project.

Installing

  1. Download the project tarball
  2. Untar the tarball on top of your installed NF2 tree

Download Bitfile

  1. Ensure that the NetFPGA kernel driver is loaded and that the CPCI has been reprogrammed.
  2. Download the traffic monitor bitfile:
 nf2_download traffic_monitor.bit

Configuration

To try out the Traffic Monitor implementation, you will need to have at least 3 machines (PC1/PC2) and a router R. The Traffic Monitor implementation needs a NetFPGA card installed and configured on the router machine R

 PC1:
     eth0: 192.168.0.1/254 

 Router: 
     NetFPGA port #0: 192.168.0.2 
     NetFPGA port #1: 192.168.1.2  

 PC2:
     eth0: 192.168.1.1/254

You will need to set the MAC addresses and IP addresses of the router ports and run router kit project. This is done by running script script.sh which is situated into the sw directory of the project:

./script.sh

In order to modify the assigned IP address to NetFPGA router port you must modify this script

  1. !/bin/bash


    ifconfig nf2c0 192.168.0.2 netmask 255.255.255.0
    ifconfig nf2c1 192.168.1.2 netmask 255.255.255.0
    ifconfig nf2c2 192.168.2.2 netmask 255.255.255.0
    ifconfig nf2c3 192.168.3.2 netmask 255.255.255.0

As you can seen this script run router kit project.

Running

Once you have run the script as previously described, you can type the following instruction to run traffic_monitor project:

 ./traffic_monitor -log x

Where _x_ specifies an interval time (in seconds) between two consecutive updates of the log file (traffic.log). The default value is 10. Following, it is reported an example of the traffic.log content obtained using the Traffic Monitor project when transferring a 700MB file between two hosts pc set as explained into the configuration section above. The file has been sent using the ftp protocol. The overall time needed for the transferring was 35 seconds.

References

[1] Michael Ciesla and Vijay Sivaraman. URL Extraction on the NetFPGA Reference Router. Sydney, Australia.

Clone this wiki locally