FLOW THROUGHPUT

Summary:
        This is a performance test suite to test the flow throughput
        capabilities of ONOS with various controller cluster sizes. This
        This test uses the null-provider to simulate a network topology
        and tests the throughput via a python script called flow-tester.py.

Pre-requisites: To run out-of-the box this test requires 7 NODES.
    OC1->OC7 must be set before initiating the test. Passwordless login
    must be set from TestStation "admin" root user.

***If you wish to run this test with less than 7 nodes the following
    alterations must be made:

NOTE: Only scale sizes 1,3,5 and 7 will be functional

Modifying .params file:
-- Remove any values in the comma separated list in the
    <scale> tag that are above your desired cluster size.

-- Remove one instance of “1,2” from the <testcases>
    tag for each value you removed from <scale> (case 1 and 2 are each
    called once for each scale value)

-- Change the value in the <max> tag to your desired scale size (1,3, or 5)

Modifying .topo file:
-- Change the <ONOSbench/COMPONENTS/nodes> tag to your desired scale size

-- Remove all unneeded <ONOS#cli> tags and their contents
