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)'' |
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)'' |
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)'' |
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)'' |
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. |
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)'' |
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)'' |
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)'' |