faucet

I don't really have too much to say about this one.

As part of an assignment for COMP514 (ISPs and Carriers), I needed to take a look at Software Defined Networking (SDN). SDN is a relatively new way of thinking about how computer networks are managed, and has a large potential. At this stage, it's not ready for widespread deployment, but it is being played around with by network engineers. While I don't expect it to overtake traditional networking, I do think that it could become widely used, as it will reduce the potency of vendor lock-in.

Faucet is a project started by WAND, a research group at the University of Waikato. It's an OpenFlow controller, based on Ryu (an implementation of OpenFlow in Python). For my assignment, I had to add something to it, chosen from a list.

The repository sitting in my account is a fork of REANNZ/faucet. If you're actually thinking of using it for SDN, use that version. It will actually get updated.

This was my first time actually writing anything in Python. I've found that as I've learned more programming languages, thoughout my education, it becomes easier to learn the next one. The main difference between Python and (nearly) everything else I have written in is its syntax, but since indentation is something that comes naturally to me (and anyone else who writes code often) it didn't turn out to be that much of an issue.

The main problem, as with starting on any project, was figuring out which place to start. However, once I figured out where to jump in, it was mostly plain sailing from there. Getting to work with more serious code was an interesting experience, and having to get my head around how it worked will be useful for when I finish here and start working.