User login

Christopher Lorier's blog

29

Jun

2012

With classes out of the way, I feel like I have finally managed to get enough of a grasp on what is going on in pox to actually have made some progress.

I modified the pox l2 switch controller code to make it use wildcards. There are two versions of this, the one that uses what is available in openvswitch but requires imaginary pox commands and the one that might actually work but does so by hijacking the vlan id field and uses it to differentiate traffic that needs to be checked for source/inport and traffic that needs to be forwarded.

So now I am back up against my constant arch-nemesis of installing things in linux. I think I have openvswitch running, so next is some virtual machines to try to send things through openvswitch. Then, actually trying to get pox to communicate with ovs, which, tbh, I am somewhat apprehensive about.. Plan is to have this all done next week.

08

Jun

2012

Continuing to crawl through pox source code. I have some idea of the commands for communicating with devices now..

I'm slowly getting there.. I think..

01

Jun

2012

This week I investigated openvswitch and pox further.

So with openvswitch I can see how a solution can be made using the nicira extension. And pox has something for the nicira extension, as well as an implementation of a switch using that. So at the moment I am trying to piece together how that all works with my rather limited Python knowledge..

25

May

2012

The last couple of weeks I have read various documents about various things related to openflow, trying to work out what was actually usable and not just mentioned but not actually ever implemented.

In the end I came up with a really, really nasty solution to getting the switch to learn with fewer than n^2 rules, that involved the switch forwarding packets out one port and in another. So I talked to Jamie and Richard about it, and Jamie pointed out that there is support for multiple tables with openvs despite it not being supported in openflow 1.0.

It also turns out openvs has a resubmit command which seems to be how packets are moved to new tables, which for my purposes kinda resolves the need for multiple tables itself.

So next thing is to actually work out how to use this, considering the controller platforms seem to mostly be designed for openflow 1.0 which doesnt have that option.. I think..

11

May

2012

I read the whitepaper and specifications for openflow to start working on a new project to simulate the behaviour of switches. And spoke with Richard about it.

I also gave a talk at the open day about my graphs. Given that highschool kids are not notorious for their enthusiasm towards being lectured I think it went pretty well..

27

Apr

2012

Ok, so today I spent the day testing the code to automatically create partitions with a trigger, and trying to fix a bug with it, but then it turned out that this should not ever be done. In the process I did tidy up the code for setting up the databases.

20

Apr

2012

So last week I got everything to work, set the database filling and apparently it crashed at some point, because the database wasnt very full, so I slowed collectd down a bit. Then I wrote some sql code to get aggregations for the data for a period of a given length over several periods of that length.

This week, I spoke to Nathan about what he was doing, and that made me think of a couple of improvements to how the database is being run. I wrote a new insert trigger so that it will create a new table if it needs to, and then just inserts directly into the new table as opposed to starting with the first table and checking each one until it finds the one it fits..

12

Apr

2012

So I installed everything I needed and am currently trying to get it all running. There seems to be an issue with getting perl collectd plugins to run that I dont think we encountered last time. Did some reading about postgres.

30

Mar

2012

Nice to be back, writing the first of my 6-hour-week-ly reports.

So I'm back doing sql stuff, I spent the morning reacquainting myself with what I did before. And trying to work out if there was a better alternative to postgres. But it became pretty clear that the conclusion I had come to about psql being not able to do what I needed to was ridiculous and it was almost certainly to do with either something either I or the plugin I was using had screwed up.

So now I am working on trying to figure out which of those two it is.

10

Feb

2012

This week I wrote some php to read from the psql database.

It does an alright job. I think one is particularly slow, like 4 seconds per query or something, but the test data is a million rows in one table, whereas if it was being used properly there would be about 30k rows per table, or fewer if you just changed the partitioning parameters.

However there is a big issue with this, that, if you have partitioned tables, to make use of indexing in the subtables in your queries you need to query the subtables directly, rather than querying the main table. Which means partitioning may not make things any faster. You can probably code the constraint exclusion into your queries, which would just be messy but I didnt get as far as looking at how to do that. It seems like the best approach might be to use some other sql database. I didnt get as far as looking into that either..

I also wrote a little note that basically says what I said here in case anyone is interested in doing any more with this, now that my time here is over.

Bye!