The Virtual Data Plane Project is a virtual router implementation on NetFPGA platform that can be used to provide fast path
forwarding to Eight virtual routers residing on one FPGA.
Show Contents...Hide Contents...
Project summary
- Status
- Release pending:
; Version: 0.5
- Authors
-
Bilal Anwer, Nick Feamster
NetFPGA base source: 1.2:
; Wordpress Page
[]
Download
Install from NetFPGA Yum repository
- Install the NetFPGA Base Package
Obtain Project Tarball
Download from
[13]
Regression Tests
The regression tests verify the functionality of the virtualized data plane. 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 ip_vrouter
Regression Tests
Test 1: MACVE Table
- Name
- test_macve_table
- Description
- Populates MACVE table entries
# Initialize netfpga hardware
# Populate MACVE table entries.
# Verfiy MACVE table entries. $ Location
projects/ip_vrouter/regress/test_macve_table
$ Output
SUCCESS!
Test 2: VRouter Tables
- Name
- test_vrouter_tables
- Description
- Populates MACVE table for eight virtual routers. Populates two virtual routers' routing and ARP tables and then reads them back. $ Location
projects/ip_vrouter/regress/test_vrouter_tables
$ Output
SUCCESS!
Test 3: LPM Misses due to MACVE
- Name
- test_lpm_misses
- Description
- There are valid LPM and ARP table entries in Router 1 but since macve table is wrongly populated therefore packets are looked up in 2nd router. And hence LPM misses are generated.
# Initialize netfpga hardware
# Invalidate MACVE table entries.
# Populate MACVE table such that ethernet datagrams for VRouter1 are directed towards VRouter2
# Populate LPM and ARP table for VRouter1.
# Send 300 packets from one ethernet port to another.
# Packets should be sent to the CPU.
# Check LPM misses counter register. $ Location
projects/ip_vrouter/regress/test_lpm_misses
$ Output
SUCCESS!
Test 4: Single Forwarding Table
- Name
- test_lpm_single
- Description
- Populates MACVE table for one router and populate one VRouter's routing table entries. Send 100 packets from
eth1 to eth2.(The setup is same as described for reference router regression testing). All 100 packets should be forwarded from
VRouter1
$ Location
projects/ip_vrouter/regress/test_lpm_single
$ Output
SUCCESS!
Test 5: Two Forwarding Tables
- Name
- test_lpm_both
- Description
- Populates MACVE table for two virtual routers. Then populate two VRouters(Virtual Routers) routing table entries. Send 100 packets from eth1 which should have LPM hit in VRouter1 routing table's entries all these packets should
be forwarded then send 500 packets which belong to 2nd virtual router, all 500 of these packets are also forwarded.(The setup is same as described for reference router regression testing).
$ Location
projects/ip_vrouter/regress/test_lpm_both
$ Output
SUCCESS!
Test 6: MACVE Misses
- Name
- test_macve_misses
- Description
- Populates MACVE table for one virtual router.Then invalidates all the entries. Adds routing and arp table entries
for virtual router 1. Tries to send 30packets from eth1 to eth2 but all are dropped. (Set up is same as reference router regression test setup).
$ Location
projects/ip_vrouter/regress/test_macve_misses
$ Output
SUCCESS!
Usage
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 ip_vrouter.bit
Testbed Setup
In order to setup the virtualized routers. The command line tool provided with NetFPGA reference router is modified to
select different routers and add their routing table entries.
Data Path
Examples
Related Work
Original Source
The Virtual Data Plane Project is a virtual router implementation on NetFPGA platform that can be used to provide fast path
forwarding to Eight virtual routers residing on one FPGA.
== Project summary ==
; Status: Release pending
; Version: 0.5
; Authors
:[mailto:bilal@gatech.edu Bilal Anwer], [mailto:feamster@cc.gatech.edu Nick Feamster]
; NetFPGA base source: 1.2
; Wordpress Page
: []
== 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.yourwebsite.edu/project]]
== Regression Tests ==
The regression tests verify the functionality of the virtualized data plane. 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 ip_vrouter
=== Regression Tests ===
====Test 1: MACVE Table ====
:; Name: test_macve_table
:; Description: Populates MACVE table entries
::# Initialize netfpga hardware
::# Populate MACVE table entries.
::# Verfiy MACVE table entries.
:; Location
projects/ip_vrouter/regress/test_macve_table
:; Output
SUCCESS!
====Test 2: VRouter Tables ====
:; Name: test_vrouter_tables
:; Description: Populates MACVE table for eight virtual routers. Populates two virtual routers' routing and ARP tables and then reads them back.
:; Location
projects/ip_vrouter/regress/test_vrouter_tables
:; Output
SUCCESS!
====Test 3: LPM Misses due to MACVE ====
:; Name: test_lpm_misses
:; Description: There are valid LPM and ARP table entries in Router 1 but since macve table is wrongly populated therefore packets are looked up in 2nd router. And hence LPM misses are generated.
::# Initialize netfpga hardware
::# Invalidate MACVE table entries.
::# Populate MACVE table such that ethernet datagrams for VRouter1 are directed towards VRouter2
::# Populate LPM and ARP table for VRouter1.
::# Send 300 packets from one ethernet port to another.
::# Packets should be sent to the CPU.
::# Check LPM misses counter register.
:; Location
projects/ip_vrouter/regress/test_lpm_misses
:; Output
SUCCESS!
====Test 4: Single Forwarding Table ====
:; Name: test_lpm_single
:; Description: Populates MACVE table for one router and populate one VRouter's routing table entries. Send 100 packets from
eth1 to eth2.(The setup is same as described for reference router regression testing). All 100 packets should be forwarded from
VRouter1
:; Location
projects/ip_vrouter/regress/test_lpm_single
:; Output
SUCCESS!
====Test 5: Two Forwarding Tables ====
:; Name: test_lpm_both
:; Description: Populates MACVE table for two virtual routers. Then populate two VRouters(Virtual Routers) routing table entries. Send 100 packets from eth1 which should have LPM hit in VRouter1 routing table's entries all these packets should
be forwarded then send 500 packets which belong to 2nd virtual router, all 500 of these packets are also forwarded.(The setup is same as described for reference router regression testing).
:; Location
projects/ip_vrouter/regress/test_lpm_both
:; Output
SUCCESS!
====Test 6: MACVE Misses ====
:; Name: test_macve_misses
:; Description: Populates MACVE table for one virtual router.Then invalidates all the entries. Adds routing and arp table entries
for virtual router 1. Tries to send 30packets from eth1 to eth2 but all are dropped. (Set up is same as reference router regression test setup).
:; Location
projects/ip_vrouter/regress/test_macve_misses
:; Output
SUCCESS!
== Usage ==
=== 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 ip_vrouter.bit
=== Testbed Setup ===
In order to setup the virtualized routers. The command line tool provided with NetFPGA reference router is modified to
select different routers and add their routing table entries.
==== Data Path ====
==== Examples ====
== Related Work ==