In a network environment, reliability plays a very important role. If one link fails, the traffic flowing through the link will switch to other paths. This test case is used to test the time it takes for the path to switch. If the time is more than 5 minutes, then it was deemed to can't support so many switches.
In this test, we chose two types of topologies, ring, and full mesh. In the ring topology, we select any two adjacent switches, and create one host in each switch, enable traffic between this two host, and then disconnect the link of this two switches to observe the traffic recovery time. In full mesh topology, the steps are consistent with the above, except that you can select any other two switches and disconnect them.
This test will create multiple switches with ring or full mesh topology connected to one controller. Datapath depends on the flow tables needed, after the link disconnectd, the flows download to the switches in another path will start, when all the switches have these flow table entries, datapath can be recovery successfully.
By capture, the time can be caculated by the packets below
1、The port status packet
2、The last flow_mod packet
The test was done by different number of switches with the sequence of 100、200、300、400 ... ...(ring), and 10、20、30、40 ... ...(full mesh)
Features install
onos> feature:install onos-drivers onos> feature:install onos-openflow onos> feature:install onos-openflow-base onos> feature:install onos-app-fwd onos> feature:install onos-lldp-provider onos> feature:install onos-host-provider |
1. Config IxNetwork with switches (first with 100 (ring) or 10 (full mesh) ) with ring or full mesh topology and two hosts in the adjacent switches (ring) or any other two switches (full mesh).
2. Start the controller with the features install.
3. Start the OF protocol of the switch.
4. Wait until the channel is established and Echo message interaction started.
5. Enable the traffic between this two hosts, wait until the hosts can ping through each other.
6. Start the capture of IxNetwork.
7. Disconnect the link of this two switches, and wait until the traffic recovery
8. Stop the capture, analyse the messages captured. Write down the time of the port status message T1 and the time of the last flow mod message T2. Caculate the time of Datapath recovery time T=T2-T1
9. Clean the configuration of controllers and IxNetwork.
10. Repeat test step 1-9 for three times.
11. Restart the test with another number of switches.
Datapath Failure Recovery Time (ring)
Switches | First (ms) | Second (ms) | Third (ms) | Avg (ms) |
---|---|---|---|---|
100 | 1381 | 951 | 857 | 1063 |
200 | 2365 | 2128 | 1844 | 2112 |
300 | 5556 | 5103 | 4531 | 5063 |
400 | 10527 | 9063 | 12007 | 10532 |
500 | 18281 | 22523 | 18142 | 19649 |
600 | 35883 | 45297 | 35568 | 38916 |
700 | 95209 | 76759 | 59439 | 77136 |
Datapath Failure Recovery Time (full mesh)
Switches | First (ms) | Second (ms) | Third (ms) | Avg (ms) |
---|---|---|---|---|
10 | 702 | 704 | 857 | 739 |
20 | 304 | 443 | 336 | 361 |
30 | 488 | 334 | 341 | 388 |
40 | 375 | 387 | 700 | 487 |
50 | 311 | 691 | 706 | 569 |
60 | 971 | 587 | 522 | 660 |
70 | 512 | 483 | 721 | 572 |
80 | 524 | 794 | 776 | 698 |
As the result shown, in ring topology, datapath failure recovery time increase significantly with the number of switches. But in full mesh topology, the time is no diffenence with the number of switches.