You are here: Foswiki>NetFPGA/OneGig/Projects Web>RED (04 Aug 2009, Jingyang)EditAttach

RED

Two paragraph summary goes here

See Projects:AirFPGA as an example.

Show Contents...Hide Contents...

Project summary

Status
Release pending:
; Version: 1.0
Authors
Names Jingyang Xue Gustav Rydstedt
NetFPGA base source: 2.0: ; Wordpress Page
[]

Introduction

The reference router utilizes tail-drop for its output queues, which is dropping all incoming packets once the output queue buffer is filled, and resuming packet process when the buffer has space again.

Random Early Detection detects the occupancy of the output queue buffer as a percentage of total space available, and drops the package based on an algorithm which uses this percentage and other parameters. The fuller the queue is, the more likely the incoming packet will be dropped. This is a congestion avoidance algorithm.

Download

Install from NetFPGA Yum repository

  1. Install the NetFPGA Base Package

Obtain Project Tarball

Download from Hardwire_RED

Regression Tests

The regression tests verify the functionality of this project. 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.

 nf21_regress_test.pl --project hardwire_with_red

Regression Tests

Test 1: Example

Name
test_red_all_drop
Description
With queue drop probability to 100%, no packet will be routed
# Initialize netfpga hardware
# Hardwire output port from eth0 to eth1
# Set drop probability to 100%
# Send packets from eth0
# Verify that no data packets arrive at eth1 $ Location
projects/hardwire_with_red/regress/test_red_all_drop $ Output
 SUCCESS!

Test 2: Example

Name
test_hardwire
Description
With queue drop probability to 0%, packets are routed normally
# Initialize netfpga hardware
# Hardwire output port from eth0 to eth1
# Set drop probability to 0%
# Send packets from eth0
# Verify that all data packets arrive at eth1 $ Location
projects/hardwire_with_red/regress/test_hardwire $ Output
 SUCCESS!

Usage

Run RED software to calculate drop probability. To make the software, go to projects/hardwire_with_red/sw, type in make. Run redexec

Preparation

  • Explain how to prepare your machine for a demonstration

Installation

  • Describe how to install your tools

NetFPGA source package

  1. Download project bitfile:
 nf2_download hardwire_with_red.bit

GUI

Run java GUI to view buffer occupancy in graphical format, and control RED parameters dynamically.

Examples

Below are a couple screen shots showing the effect of RED on the GUI:

Related Work

Read original RED paper: [10]

Original Source

Two paragraph summary goes here

See [[Projects:AirFPGA]] as an example.

== Project summary ==

; Status: Release pending
; Version: 1.0
; Authors
:Names [mailto:jxue@stanford.edu Jingyang Xue] [mailto:rydstedt@stanford.edu Gustav Rydstedt]
; NetFPGA base source: 2.0
; Wordpress Page
: []

== Introduction ==
The reference router utilizes tail-drop for its output queues, which is dropping all incoming packets once the output queue buffer is filled, and resuming packet process when the buffer has space again. 

Random Early Detection detects the occupancy of the output queue buffer as a percentage of total space available, and drops the package based on an algorithm which uses this percentage and other parameters. The fuller the queue is, the more likely the incoming packet will be dropped. This is a congestion avoidance algorithm.
== Download ==

=== Install from NetFPGA Yum repository ===
#Install the [http://netfpga.org/netfpgawiki/index.php/Guide#Install_NetFPGA_Base_Package NetFPGA Base Package]

=== Obtain Project Tarball === 
Download from [http://www.stanford.edu/~jxue/netfpga.hardwire_with_red.1_0.tar.gz Hardwire_RED]


== Regression Tests ==

The regression tests verify the functionality of this project.  In order to run the tests, you need to have the machine connected for the regression tests as stated in the [http://netfpga.org/netfpgawiki/index.php/Guide#Run_Regression_Tests Run Regression Tests] section of the Guide.

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

 nf21_regress_test.pl --project hardwire_with_red

=== Regression Tests === 

====Test 1: Example ====
:; Name: test_red_all_drop
:; Description: With queue drop probability to 100%, no packet will be routed
::# Initialize netfpga hardware
::# Hardwire output port from eth0 to eth1
::# Set drop probability to 100%
::# Send packets from eth0
::# Verify that no data packets arrive at eth1
:; Location
projects/hardwire_with_red/regress/test_red_all_drop
:; Output
 SUCCESS!

====Test 2: Example ====
:; Name: test_hardwire
:; Description: With queue drop probability to 0%, packets are routed normally
::# Initialize netfpga hardware
::# Hardwire output port from eth0 to eth1
::# Set drop probability to 0%
::# Send packets from eth0
::# Verify that all data packets arrive at eth1
:; Location
projects/hardwire_with_red/regress/test_hardwire
:; Output
 SUCCESS!

== Usage ==
Run RED software to calculate drop probability. 
To make the software, go to projects/hardwire_with_red/sw, type in make. Run redexec

=== Preparation ===
* Explain how to prepare your machine for a demonstration

==== Installation  ====
* Describe how to install your tools

==== NetFPGA source package ====
# Download project bitfile:
 nf2_download hardwire_with_red.bit

=== GUI ===
Run java GUI to view buffer occupancy in graphical format, and control RED parameters dynamically. 

==== Examples ====
Below are a couple screen shots showing the effect of RED on the GUI: 


== Related Work ==
Read original RED paper:
[http://www.icir.org/floyd/papers/red/red.html]
Topic revision: r1 - 04 Aug 2009 - 19:33:16 - Jingyang