-
Notifications
You must be signed in to change notification settings - Fork 141
TrafficMonitor
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.
- Status :
- Version :
- Authors :
- NetFPGA source :
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
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.
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
The following describes how to install, and run the project.
- Download the project tarball
- Untar the tarball on top of your installed NF2 tree
- Ensure that the NetFPGA kernel driver is loaded and that the CPCI has been reprogrammed.
- Download the traffic monitor bitfile:
nf2_download traffic_monitor.bit
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
- !/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.
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.
[1] Michael Ciesla and Vijay Sivaraman. URL Extraction on the NetFPGA Reference Router. Sydney, Australia.