Changes between Version 6 and Version 7 of OpenFlow/Slicer/TestPlan


Ignore:
Timestamp:
11/05/14 16:09:04 (9 years ago)
Author:
tupty@bbn.com
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • OpenFlow/Slicer/TestPlan

    v6 v7  
    2828
    2929=== Step 1: Setup ===
    30  * Reserve 5 slices (using the add_slice function) [005-a]:
    31   * Slice 'samevlan' with two ports on a single switch, each on the same VLAN.  Ensure the slicer state is accurate. [001-a]
    32   * Slice 'diffvlans' with two ports on the same switch, each associated with a different VLAN.  Ensure the slicer state is accurate. [001-a]
    33   * Slice 'tenvlans' with 10 VLANs spanning across 10 switches.  Ensure the slicer state is accurate. [001-a]
    34   * Slice 'untaggedports' with two untagged ports on a single switch (doesn't need to be possible to pass).  Ensure the slicer state is accurate. [001-b]
    35   * Slice 'fullports' with two full ports on a single switch (doesn't need to be possible to pass).  Ensure the slicer state is accurate. [001-c]
     30 * Reserve 5 slices (using the add_slice function) ''(005-a)'':
     31  * Slice 'samevlan' with two ports on a single switch, each on the same VLAN.  Ensure the slicer state is accurate. ''(001-a)''
     32  * Slice 'diffvlans' with two ports on the same switch, each associated with a different VLAN.  Ensure the slicer state is accurate. ''(001-a)''
     33  * Slice 'tenvlans' with 10 VLANs spanning across 10 switches.  Ensure the slicer state is accurate. ''(001-a)''
     34  * Slice 'untaggedports' with two untagged ports on a single switch (doesn't need to be possible to pass).  Ensure the slicer state is accurate. ''(001-b)''
     35  * Slice 'fullports' with two full ports on a single switch (doesn't need to be possible to pass).  Ensure the slicer state is accurate. ''(001-c)''
    3636 * Add a hosts attached to each port with the appropriate data plane VLAN connections for 'samevlan', 'diffvlans', and hosts for at least two of the VLANs for 'tenvlans'
    3737 * Add two hosts which are on the same VLAN but do not correspond to an existing slice.
     
    4040 * Run a modified pox forwarding.l2_learning controller for 'samevlan' that installs a send-to-controller rule for unmatched traffic within the VLAN.
    4141 * Start a packet capture on the slicer facing both the switch and the controller.
    42  * Using a host that is not in a slice, send traffic on the data plane and make sure it never reaches the other host. [002] [004-a] [004-c]
    43  * Using 'samevlan', send data plane traffic between the two hosts.  Ensure that it gets through to the two hosts in 'samevlan', but not to the hosts in 'diffvlans'. [001] [003]
     42 * Using a host that is not in a slice, send traffic on the data plane and make sure it never reaches the other host. ''(002)'' ''(004-a)'' ''(004-c)''
     43 * Using 'samevlan', send data plane traffic between the two hosts.  Ensure that it gets through to the two hosts in 'samevlan', but not to the hosts in 'diffvlans'. ''(001)'' ''(003)''
    4444 * Stop the packet capture, and check for the following:
    45   * Check that traffic from the hosts that don't belong to a slice never shows up at the slicer. [004-a] [004-c]
    46   * Check that traffic from the slicer destined for a controller is only sent to a single controller [004-b] [004-d]
    47   * Check that packet-ins from the switch have a VLAN tag, but packet-ins going to the controller do not.  Also ensure that nothing else is different. [014-b] [009]
    48   * Check that packet-outs from the controller have no VLAN tag, but packet-outs going to the switch do.  Also ensure that nothing else is different. [014-a] [009]
    49   * Traffic sent to the OFPP_ALL port from the controller is funnelled into the set of ports in the slice by the slicer. [003-c]
     45  * Check that traffic from the hosts that don't belong to a slice never shows up at the slicer. ''(004-a)'' ''(004-c)''
     46  * Check that traffic from the slicer destined for a controller is only sent to a single controller ''(004-b)'' ''(004-d)''
     47  * Check that packet-ins from the switch have a VLAN tag, but packet-ins going to the controller do not.  Also ensure that nothing else is different. ''(014-b)'' ''(009)''
     48  * Check that packet-outs from the controller have no VLAN tag, but packet-outs going to the switch do.  Also ensure that nothing else is different. ''(014-a)'' ''(009)''
     49  * Traffic sent to the OFPP_ALL port from the controller is funnelled into the set of ports in the slice by the slicer. ''(003-c)''
    5050
    5151=== Step 3: Test for VLAN enforcement and translation ===
    5252 * Stop the pox forwarding.l2_learning controller for 'samevlan'.  Start a floodlight instance in its place with static flow pusher enabled.
    53  * Push a flow that matches one of the ports and VLANs, and tries to do a VLAN rewrite to a different VLAN ID.  Ensure this gets rejected by the slicer, and an error message is returned. [003-b] [004-e] [008-a]
    54  * Push a flow that matches one of the ports and VLANs, and tries to do a strip-VLAN action.  Ensure this gets rejected by the slicer, and an error message is returned. [003-a] [004-e] [008-a]
     53 * Push a flow that matches one of the ports and VLANs, and tries to do a VLAN rewrite to a different VLAN ID.  Ensure this gets rejected by the slicer, and an error message is returned. ''(003-b)'' ''(004-e)'' ''(008-a)''
     54 * Push a flow that matches one of the ports and VLANs, and tries to do a strip-VLAN action.  Ensure this gets rejected by the slicer, and an error message is returned. ''(003-a)'' ''(004-e)'' ''(008-a)''
    5555 * Run a modified pox forwarding.l2_learning controller for 'diffvlans' that installs a send-to-controller rule for unmatched traffic within the VLAN.
    56  * Send ping traffic between the 'diffvlans' hosts and make sure it gets exchanged properly. [014-d]
     56 * Send ping traffic between the 'diffvlans' hosts and make sure it gets exchanged properly. ''(014-d)''
    5757
    5858=== Step 4: Test for OF functionality ===
    5959 * Start a packet capture on the slicer facing both the switch and the controller.
    6060 * Push a flow_stats request from the controller.
    61  * Stop the packet capture, and check for the following: the flow_stats reply only went to the controller that requested it. [004-g]
    62  * Run some OFTest checks to make sure that [004-f] and [009] are met.
    63  * Test a few synchronous messages using OFTest to make sure [006] is met.
    64  * Test that [007-a], [007-b], and [007-c] all generate error messages.
     61 * Stop the packet capture, and check for the following: the flow_stats reply only went to the controller that requested it. ''(004-g)''
     62 * Run some OFTest checks to make sure that ''(004-f)'' and ''(009)'' are met.
     63 * Test a few synchronous messages using OFTest to make sure ''(006)'' is met.
     64 * Test that ''(007-a)'', ''(007-b)'', and ''(007-c)'' all generate error messages.
    6565
    6666=== Step 5: Test for stacked slicer support ===
     
    6969
    7070=== Step 6: Test for any extra fucntionality ===
    71  * Test that any documented control plane performance isoaltion solution works as expected. [011]
    72  * Test that any documented data plane performance isoaltion solution works as expected. [012]
    73  * Test that any per-slice flow limits work as expected. [012]
     71 * Test that any documented control plane performance isoaltion solution works as expected. ''(011)''
     72 * Test that any documented data plane performance isoaltion solution works as expected. ''(012)''
     73 * Test that any per-slice flow limits work as expected. ''(012)''
    7474
    7575=== Step 7: Test API ===
    76  * Call dump_slices and make sure it works as expected.  Ensure it returns which slices are active and which are disabled along with however the AM identifies the slices. [005-d] [008-b] [008-c]
    77  * Call change_controller and make sure it is reflected in the slicer state [005-c]
    78  * Call update_slice if possible and report back what happens [005-e]
    79  * Call delete_slice and clean up all slices [005-b]
     76 * Call dump_slices and make sure it works as expected.  Ensure it returns which slices are active and which are disabled along with however the AM identifies the slices. ''(005-d)'' ''(008-b)'' ''(008-c)''
     77 * Call change_controller and make sure it is reflected in the slicer state ''(005-c)''
     78 * Call update_slice if possible and report back what happens ''(005-e)''
     79 * Call delete_slice and clean up all slices ''(005-b)''
    8080
    8181== OF-OPF-SLCR-OP Testing Scenario ==
     
    8383=== Step 1: Setup ===
    8484 * Clear any existing log files that the slicer may have created.
    85  * Create 10 slices named slice{1-10}.  Each slice should have a single unique VLAN ID spanning across 10 switches between two hosts.  Generate ping traffic from a host at the end of each of the slices and make sure it is working.  Leave this traffic running for the duration of this scenario. [003]
     85 * Create 10 slices named slice{1-10}.  Each slice should have a single unique VLAN ID spanning across 10 switches between two hosts.  Generate ping traffic from a host at the end of each of the slices and make sure it is working.  Leave this traffic running for the duration of this scenario. ''(003)''
    8686
    8787=== Step 2: Collect monitoring data ===
    88  * Make sure there is some way to collect monitoring data for all of the slices that have been set up. [002]
     88 * Make sure there is some way to collect monitoring data for all of the slices that have been set up. ''(002)''
    8989
    9090=== Step 3: Test slice operations ===
    91  * Create a new slice 'testslice', use the modified pox forwarding.l2_learning controller, and ensure that pings in the other slices continue to flow.  Ensure that this slice is added with no operator intervention. [004] [001-a]
    92  * Change the controller URL for 'testslice'.  Ensure that the change takes place with no operator intervention. [001-c]
    93  * If a slicer is capable of disabling a slice, trigger 'testslice' to get disabled.  Ensure that the slicer owner either gets notified, or that at the very least, 'dump_slices' shows that the slice is disabled.  Re-enable the slice if it was disabled. [001-d]
    94  * Disconnect the controller.  Wait for about a minute, and try sending traffic.  Ensure that it doesn't get through. [008]
    95  * Delete the slice and make sure that doing so does not require operator intervention.  Check right away and make sure all flows for that slice have been removed. [001-b] [009]
     91 * Create a new slice 'testslice', use the modified pox forwarding.l2_learning controller, and ensure that pings in the other slices continue to flow.  Ensure that this slice is added with no operator intervention. ''(004)'' ''(001-a)''
     92 * Change the controller URL for 'testslice'.  Ensure that the change takes place with no operator intervention. ''(001-c)''
     93 * If a slicer is capable of disabling a slice, trigger 'testslice' to get disabled.  Ensure that the slicer owner either gets notified, or that at the very least, 'dump_slices' shows that the slice is disabled.  Re-enable the slice if it was disabled. ''(001-d)''
     94 * Disconnect the controller.  Wait for about a minute, and try sending traffic.  Ensure that it doesn't get through. ''(008)''
     95 * Delete the slice and make sure that doing so does not require operator intervention.  Check right away and make sure all flows for that slice have been removed. ''(001-b)'' ''(009)''
    9696
    9797=== Step 4: Substrate-generated traffic ===
    98  * Connect a host to the substrate that is not part of a slice, and that does not share a data plane port with the other slices.  Send a high rate of traffic out of its data plane interface and ensure that the other slices remain stable. [007]
     98 * Connect a host to the substrate that is not part of a slice, and that does not share a data plane port with the other slices.  Send a high rate of traffic out of its data plane interface and ensure that the other slices remain stable. ''(007)''
    9999
    100100=== Step 5: Test logging ===
    101  * Check that a log exists for the slicer. [005]
     101 * Check that a log exists for the slicer. ''(005)''
    102102 * Configure the logging to rotate on a daily basis.
    103  * Look at the entries for the log.  Any entries that exist in the default case should be reasonable.  At this point, the size of the log should also be reasonable. [006-a]
    104  * Try changing the log level while the slicer is running to the most verbose level.  Verify that the logs are showing more data. [006-b]
    105  * Set the logging back to a standard level.  Leave the setup running overnight.  In the morning, verify that the logs have been rotated, and that logging is still working. [006-c]
     103 * Look at the entries for the log.  Any entries that exist in the default case should be reasonable.  At this point, the size of the log should also be reasonable. ''(006-a)''
     104 * Try changing the log level while the slicer is running to the most verbose level.  Verify that the logs are showing more data. ''(006-b)''
     105 * Set the logging back to a standard level.  Leave the setup running overnight.  In the morning, verify that the logs have been rotated, and that logging is still working. ''(006-c)''
    106106
    107107Suggested 1 software development/support test case: