| This test is designed to verify that an ONOS cluster behaves correctly when |
| some ONOS nodes are partitioned. Currently, we will partition nodes so that |
| each raft partition will lose a member, but we make sure that there is always |
| a majority of nodes available in each partition. We are partitioning the nodes |
| by using iptable firewall rules |
| |
| As written, the test only supports an ONOS cluster of 3,5, or 7 nodes. |
| This is because the test doesn't apply to a single node cluster, ONOS clusters |
| should be deployed in odd numbers, and the raft partition generation and node |
| partitioning scheme used doesn't give the same properties for clusters of more |
| than 7 nodes. Namely, each partition won't have exactly one node unavailable. |
| |
| The gerneral structure for the test: |
| - Startup |
| - Assign switches |
| - Verify ONOS state and functionality |
| - Device mastership |
| - Intents |
| - Leadership election |
| - Distributed Primitives |
| - Partition some ONOS nodes |
| - Verify ONOS state and functionality |
| - Heal partition |
| - Verify ONOS state and functionality |
| - Dataplane failures |
| - link down and up |
| - switch down and up |