Author Archives: Michael

Introduction to OpenFlow and Software Defined Networking

To start off my independent study, I read through the OpenFlow papers posted at http://openflow.marist.edu/documentation.html. I started by reading the OpenFlow white paper, which was the original proposal for the OpenFlow standard. This white paper is definitely the best introduction to OpenFlow, as it describes how it should work and the purpose of it. I then read the OpenFlow 1.31 Spec to see what OpenFlow is becoming capable of doing; I then read the OpenFlow 1.0 Spec to find out what the equipment here at Marist College can use.

I’ve also been reading about OFTest, used for validating OpenFlow switches, and OF-Config, which is being developed into a configuration and management protocol. It’s my understanding that OF-Config is very much a work-in-progress and as such may not be the most useful right now.

Right now I’m working on setting up Mininet in order to start using OpenFlow! I’m going to begin with the Mininet Walkthrough and the OpenFlow Tutorial to learn the ropes.

I’m working on a 15″ MacBook Pro with Retina display, so I can’t use VirtualBox (as it isn’t supported on this model at present) so I’m using VMware Fusion 5 for Mac. Here’s where to download a Mininet VM!

General reading on the subject:

Clicking through links in a generic DetailView

Creating views in Django without much background in it can be a daunting task. Since I am working on an application to view and track fiber optic cables on campus, I wanted to be able to see what LAN rooms are in a building that I’m viewing using a generic DetailView.

To accomplish this, I found out that you can call on model relationships in order to see which models have a foreign key for the selected building.

Here is where I called the DetailView generic view in urls.py:

from django.views.generic import DetailView
...

# Buildings
    url(r'^buildings/(?P<pk>\d+)/$',
        DetailView.as_view(
            model=Building,
            template_name='fiberdb/buildings_detail.html')),

Here is what I placed in my template for buildings_detail.html to do this:

<ul>
    {% for lanroom in building.lanroom_set.all %}
    <li><a href="/lanrooms/{{ lanroom.id }}/">{{ lanroom.lan_room_name }}</a></li>
    {% endfor %}
</ul>

Calling lanroom_set.all on the building passed through to the template lets me list all of the LAN rooms in that building right on its DetailView page!

Final output looks like this:

Donnelly Hall

It took some hunting online to find the best way to do this, and this is what worked for me in the end! It’s worth noting that this will probably not be the most efficient way to access the database in this scenario, as it seems to require n+1 queries for the number of LAN rooms, but right now I am building things out before they are optimized.

Building an inventory system with Django

Originally posted on Tuesday, February 5, 2012 on michaelrudden.tumblr.com

I am currently working on building an inventory system for Marist College’s Networking department in order to track fiber around campus. I decided to use Django because I’ve never worked with it before and it is a powerful framework for developing web applications. Code for this is on my GitHub page! I also discovered Bootstrap, from Twitter, and am using that for a good looking front end. Now I just need to keep working on my views and soon I’ll have a great, functioning app that serves an important purpose.

Software Defined Networking

Originally posted on Tuesday, February 5, 2013 on michaelrudden.tumblr.com

I am doing an independent study in Software Defined Networking with Rob Cannistra here at Marist College. So far I’ve been reading about OpenFlow and its specifications at http://openflow.marist.edu . Marist College has done a lot with OpenFlow as part of their IBM Joint Study, and they have a lot of their accomplishments listed on that site. As part of my study I will be working with many of these people and hopefully contributing to the community at large! It’s a very exciting time to be on the bleeding edge of computer networking.

Anticipation on the eve of my move west

Originally posted on Friday, May 11, 2012 on michaelrudden.tumblr.com

Now that the spring 2012 semester is finally coming to a close, I find myself preparing for the next chapter in my path to a career. In mid-March I accepted an offer to do a summer internship with a leading tech company out in Folsom, California. I will be working as a network specialist intern, and I see this as a tremendous opportunity to further my knowledge of networking and work with a company I’ve long admired.

I just finished taking a course on internetworking at my school, along with a course on Internet security. Internetworking afforded ample opportunity to work hands-on with Cisco routers and switches, and I learned so much in that course that potentially having the chance to build on that foundation and gain valuable work experience has me incredibly excited.

I’ve set a lot of goals for this summer, and it’s my time to shine! I’ve got a feeling this summer will be one of personal and professional growth, and I’m going to make the most of it!

Using WordPress as a blogging platform

I’ve decided to migrate my blog from tumblr to WordPress for more advanced features and general ease of use. Previously, I was using tumblr and using their JSON API in order to embed blog posts into the website I built last spring, but now I will be overhauling my website and the advanced features offered here are awesome. This change was inspired by a lot of recommendations from family and peers!

I will be keeping this up-to-date with my studies and works in technology, and my independent study in Software Defined Networking!