Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Warning
titleDeprecated

This page is deprecated and may be removed in a near future.
The new entry point of Trellis underlay fabric installation guide can be found at Fabric Test Guide

Table of Contents

OpenFlow Conformance Test

The OF switch used to support the Fabric has to support a number of data-plane operations such as MPLS encapsulation and others described below.

In order to guarantee conformance of the switches , we decided to create a few use created few test cases using the OFTEST framework.

The OFTEST code can be found at fetched by

Code Block
git clone https://

...

gerrit.opencord.

...

org/

...

fabric-oftest

...

In this document we will describe how you can setup your own testbed as well as describe the test cases implemented.

OFTEST

...

Overview 

OFTEST The oftest framework consists of a testserver that connects test server connected to a target switch through an OpenFlow channel . The testserver also connects and directly to the dataplane ports of the OFswitch. After programming the switch the testserver , oftest inserts packets in the dataplane and verify verifies if the output is as expected.

...

We recommend using a server connected to a management network, a switch connected to the same management network, and then a minimum of 2 ports directly connected between the server and the switch. A few tests will fail if you have less than 3 ports.

OFTEST Installation guide

To install OFTEST on ubuntu, type the following:

Code Block
$ sudo apt-get install python 
$ sudo apt-get install python-pippython-pip python-dev python-lxml libffi-dev libssl-dev -y
$ sudo apt-getpip install python-lxmlcryptography
$ sudo pip install ncclient
$ sudo pip install scapy pycrypto
$ sudo apt-get install python-ecdsa git
$ git clone https://githubgerrit.opencord.comorg/castroflavio/fabric-oftest

Now let's configure the switch and point it to the testserver. Notice that we are pointing to port 6653 rather than 6633.

...

Code Block
$ cd oftest
$ sudo ./oft -V1.3 --test-dir=ofdpa flows.PacketInArp -i 12@eth1 -i 24@eth2
WARNING: No route found for IPv6 destination :: (no default route?)
flows.PacketInArp ... ok
----------------------------------------------------------------------
Ran 1 test in 4.044s
OK

Segment Routing Tests

 The following tests were implemented:

Expand
  1. Packet In Src Mac Miss
  2. Packet In UDP
  3. Arp and L2
  4. Packet In Arp
  5. L2FloodQinQ
  6. L2Flood Tagged 
  7. L2Flood Unknown Src 
  8. L2 Unicast Tagged 
  9. MTU 1500 
  10. MTU 4100
  11. L3 Unicast Tagged 
  12. L3VPNMPLS 
  13. L3 VPN_32 
  14. MPLS Termination
  15. MPLSBUG
  16. L3 Mcast To L2
  17. L3 Mcast To L3

The command below should give you the following result:

...

Warning

Oftest can't successfully delete all groups using an OF message, because of that some tests interfere with others. If the results seem suspicious, erase the flowtables and group tables and run the test alone.

...

Baseline results from OFTEST

At this date the most stable version of ofdpa is i12_1.7.  The following tests are passing.

...

New releases of the ofdpa software come out reasonably fast, in order to be able to test multiple software versions we use different branches for each version.
The version used by the cord project is i12_1.7

...

flows._24EcmpVpn

...

and it's the most stable one up to date.

Full test results can be found in the README file in the repository.

 

How to test a new switch

  • Install OFTEST
  • Run PacketIn test to make sure ports are properly connected.
  • Run baseline test and create a new branch
  • Update the OFDPA software
  • Run the test again./fix  OF test until it's stable
  • Document changes and at the wikipage or JIRA