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

Table of Contents

VirtualDataPlane

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 :
Bilal Anwer, Nick Feamster
NetFPGA base source :
1.2

Download

Install from NetFPGA Yum repository

  1. Install the NetFPGA Base Package

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
  1. Initialize netfpga hardware
  2. Populate MACVE table entries.
  3. 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.
  1. Initialize netfpga hardware
  2. Invalidate MACVE table entries.
  3. Populate MACVE table such that ethernet datagrams for VRouter1 are directed towards VRouter2
  4. Populate LPM and ARP table for VRouter1.
  5. Send 300 packets from one ethernet port to another.
  6. Packets should be sent to the CPU.
  7. 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

NetFPGA source package

  1. 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.

Clone this wiki locally