User login

Richard Sanger's blog

16

Feb

2016

I have been working through creating graphs and putting results into the paper I'm writing. I worked through scripting up the creation of graphs as well as modifying the existing scripts to look better at a small size. I also worked through modifying scripts to colour bars based upon the switch such that all graphs are consistent.

Processing all the results took a littler longer than expected as I looked through the results a few changes were required to ensure setup/teardown were not included in results. And in general looking through all the results to ensure that there is nothing obviously wrong with a given test and pick the most interesting cases.

27

Jan

2016

I've continued writing sections of the paper, I've been working through describing a way to avoid Packet-Ins and Outs.

I've also worked on the patch panel manager. Last week I had started on a simple ryu app using the REST API which I could link two ports together with. I've worked on web interface, for this I've opted to use angular, and so far it has been working well. It seems to be very well suited to displaying lists of JSON object which matches with my REST api output. This simple web interface allows two ports to be linked together and manage these links in general. I still have to finish implementing some things such as loading and saving configurations etc, and other features such as addingSPAN ports.

19

Jan

2016

I have mainly been focused on writing up a paper surrounding the packet in and out tests. I've been working through the background section, method and solution so far.
For the background section I have drawn some diagrams of the structure of packet in and out messages. As well as collecting various pieces of relevant information into tables which seem to work nicely at displaying data in a concise format.

I've also had Brad move all of our switches to connect to the Pica3290. And I've started working on a ryu application to control it via ryu's REST API's, essentially an OpenFlow controlled patch panel. This will be used as part of a fully automated testbed.

15

Dec

2015

Tracked down a rare bug with packets from the previous packet-out test still being transmitted after that tested completed, presumably due to some buffering on the switch. The caused some tests to segfault and fail to produce results.

Continued to work on drawing graphs from my resulting data and rerunning any failed tests such as those caused by the above bug. As per Matthew's suggestions I went with gnuplot which has made it possible to plot multiple data sources etc on the same graph which has been useful particularly to allow both packets in and out to be plotted on the same graph.

01

Dec

2015

Per Richard's suggestion during the weekly meeting I've added a version of the addflows test with packet-in's but without reactive install i.e. adding flows as fast as possible while receiving packet ins. This was a minor modification to the existing test code to allow these arguments to be set in this way.

I've run the tests including this updated one on one of Josh's switches.

I've also been continuing working through processing the results and adding statistical measures such as 95% CI's using scipy and in general getting all the numbers you could possibly want. I've found the odd test that has failed to run correctly, however these appear to be very rare - I'm still not sure of the root cause.

24

Nov

2015

I've re-run a couple of tests this week firstly the add-flow tests on the pica8 because these had a threading bug in them. I then re-run the HP tests as these were unintentionally run on 100Mbit ports so for consistency purposed these were moved to the 1Gbit ports. I also run the tests against OVS.

I've been working through processing the results, verifying the results and looking for any anomalies that I might need to take into account. I found some very low figures from the Brocade tests in some cases, these could be related to it becoming unstable and crashing (either the cause or if it is a gradual leak just timing).

Some aspects of the tests that I have been looking at include receiving packets out of order along with rates and latencies.

16

Nov

2015

This week I've been running more testing on the Brocade which has a tendency to crash during testing. Testing over the secure channel seems to be problematic but I've managed to get through most tests now.

I've also run through the packet in and out tests on the HP. I will run those tests adding flows next week in case these cause issues (as I saw in preliminary testing).

With the results collected so far I've worked through the tests and constructed some GNU plot graphs to visualise some of the results.

On Friday I had the CS PhD student conference where I presented some of my recent results that I prepared throughout the week. The presentation was primarily based upon my earlier proposal however with more of a focus on the work I've done so far rather then purely what I propose to do for the PhD.

10

Nov

2015

I've updated my script this week to run the latest tests as well as adding support for multiple devices and openflow versions allowing for things to be as automated as possible.

I've run the benchmarks on the Pica and started running the tests on the Brocade however it has not been entirely stable and has failed during testing.

I've been looking closely at the getting encrypted openflow working on the Brocade and HP, the Brocade refuses any client certificates I try to give it however I have been able to disable validation and force an AES cipher suite to get this working. The HP on the other hand will accept client certificates but the negotiation still always seems to fail, I'm unsure why I thinking the issue is with certificate verification on the switch.

Next week I'm going to have the PhD conference so will divert some attention back to that, and continue to run tests in the background.

04

Nov

2015

I've worked on tidying the reactive test and updating the output to include the metrics I want along with adding control options similar to the other tests. Along with this I've also attempted to run all the tests on the HP which did not require any major modifications. However working through configuration of the HP takes some time.

A handful of bugs have been fixed, including one where packets with incorrect IP checksums were being created which made packets take a rate limited path on the HP. I've worked through some negotiation issues in the libfluid library which I have submitted as a pull request. This allows testing to be run on both versions of OpenFlow without having to reconfigure the switch in some cases.

19

Oct

2015

I've spent most of my week working on getting the Accton (as4600) up and running with Open Network Linux. I figured out a solution to control the fans, we have managed to set the fans to a quieter fixed speed using the C API exposed by Open Network Linux Platform Infrastructure (ONLP) library.

Among other things we now have a persistent file system with networking for management and automatic running of scripts to slow the fans etc making it possible to reboot the switch.

Once that was sorted I managed to get OF-DPA running on it. The pipeline is very restrictive, more so then I expected. Using a mix of example code and the documentation I managed to get a version of simplest switch working. (Simplest switch forwards between two ports statically). This code is located here https://github.com/openvapour/simplestswitch . One gotcha with OF-DPA is that it uses the OpenFlow group number to mean something special and outputting packets directly out a port does not seem possible rather this needs to be achieved via a group. Group numbers are bitmasked with specials meanings including the type of group and possibly vlan and/or port id. For instance a l2 unfiltered interface group uses the high bits to indicate the type and the low bits the interface, this essentially behaves like an OpenFlow indirect group.

However I've found packet-ins segfault ofdpa, I currently believe this to be an issue in closed the source code.

I managed to hack together an implementation of my final test - the performance of reactively adding flow mods. However having got side tracked on the Accton so still need to tidy this up a bit and ensure I'm getting all the output I could need. And then look towards running tests.