Where I’ve been…

June 10th, 2009 by Ryan French

So it has been a while since my last post, and while thats nothing really unusual, I actually have things to post about, so I thought I better get round to doing them.

First off, my new job. As I said in my last post I had a pretty quick turn about from the first interview to starting work (phone call on the Tuesday concerning an interview, started work the following Monday). Things are going not too badly here, now that I’m settling into the role. The job is working for a company called TechCertain, who develop, maintain and operate a system which handles the paper work for insurance companies online (issue proposals and policies, automatic quoting/underwriting e.t.c.). My role is the companies Business Analyst. My main job is to work with the clients to determine what it is they need, and then work out how we are going to acheive this. I also do a lot of the companies research and development (more on that later), write the front end for the clients, and manage the development team (read: the other guy who works mostly on the backend haha). The language is VB .net and Microsofts SQL, which is actually pretty funny because the day I started this job I had never worked on or studied either of these, so I pretty much had to learn all of that on top of everything else that comes with a new job.

I mentioned before that the company had some R&D going on. Seems strange for a simple web application company like us to have R&D but it’s true. Currently we are looking into porting our code over to mono, and we are looking into running our service on a cloud rather than the server it is currently on, so at least that is keeping me busy.

In the next few weeks I am also moving into a house up here in Auckland, which will be great because I have been living in my friends parents garage since moving up here (it’s not nearly as bad as it sounds) but it’ll still be nice to have a real room e.t.c.

One last thing. I just wanted to say good work to the team that made Ubuntu Rescue Remix. A friend of mine has an 8 year old Acer Travelmate 240 sitting at home, and recently it started telling him that there was imminent drive failure, and refused to log into windows anymore. Using the rescue remix I was able to create a live cd, boot into the command line, plug in my flash drive, and rescue thousands of files off his laptop for him. Now all he has to do is go through and sort them all manuallly.

What a week…

April 20th, 2009 by Ryan French

Last week I received a phone call on Tuesday about a possible position at a software company in Auckland. The next day I travelled up for an interview and by the time I returned that night I had my first job out of university. I moved up yesterday and started my new job today, so it’s been a very hectic week as I’m sure you can imagine. I am now the Client Services Officer and Business Analyst for TechCertain, a very small company who sells ’software as a service’ to a major insurance vendor here in New Zealand. I’m not entirely sure how much I’m allowed to say of what it is we actually do, so to stay on the safe side of things I’ll leave it up to you to search for more information on them if you are intereseted.

In terms of time spent doing my own things it means I am having to dedicate all my free time to trying to find a place to live, as at the moment I am staying with friends while looking. This basically means that I will have no time for anything until I find a place. Even once this is done I am not sure how much time I will be able to spend on personal projects, as I am not sure how much of my time this job will take.  In saying that if anyone is interested in having a look at the MPLS in FreeBSD code let me know, as I would greatly appreciate some help in not only trying to get the ball rolling on this project again, but also someone to help motivate me into finding the time to work on the project.

Just a Quick Update

March 18th, 2009 by Ryan French

This is just a quick post to let people know that I have joined LinkedIn. If anyone out there wants to then feel free to add me on there.

Also, the job front is looking good. I have a job lined up in Wellington that I shall hopefully hear back on in the next few weeks. and once everything is sorted I will be able to start working on MPLS again.

Thats all for now.

Statistics overload

January 18th, 2009 by Ryan French

So this morning I installed StatPress-Reloaded on my private blog, and within a few hours I was told about Google Analytics. Seeing as I had noticed that this was already installed on my FreeBSD blog, so I have now removed StatPress, and have signed up for GA on both of my blogs. I’m hoping this will give me an idea of who is reading my blog, and checking on my insights into the world.

In other news I shall be posting an update in a few days about where I am at the moment in terms of my life, and why I havent been posting that much since university finished.

The end of an era…

October 28th, 2008 by Ryan French

Last Friday I handed in what was hopefully the last piece of assessment that I will ever have to do for university. It’s not to say that I wouldnt like to go back next year and look at doing a Masters or a PhD, but I feel after 5 years at university it’s about time to move on and start my career. Tomorrow I will be moving back to my home town, where I will be staying with my parents while searching for that elusive first computer science job. I have already had a few places that have been interested, but none of them have worked out for some reason or another, the main one being that I was unable to start until this week, so hopefully now it shouldnt take too long to find one.

So what does this mean for my MPLS project with FreeBSD? Basically I will not have internet for a while, at least until I can get a connection setup at my parents house, but once this is done I will continue to work on MPLS. At this stage I am going to start looking at how to implement the routing table. I was thinking of using a hash map of some form, due to the fact that the MPLS labels means that this will probably be the most efficient way of storing them. Given that I will have a lot of free time on my hands now I will hopefully be able to dedicate a lot more time to this than I have this past year.

The final countdown and what I’m working on

September 24th, 2008 by Ryan French

So I figured that even though the Summer of Code has finished I am still going to keep posting here. Mostly I will be posting about the progress of MPLS in FreeBSD, but I will also write a few other posts about other interesting, and not so interesting depending on your point of view, things that I am up to.

As I am writing this I currently have just under 4 weeks till I have finished university, hopefully for good. I have been going through the process of trying to find a job that I can step into once I complete my degree but unfortunately the graduate IT jobs in New Zealand are few and far between, so much so that I have started applying for jobs overseas.

The biggest problem with this time of year is the amount of work that is due in a matter of a few weeks. I have been working a lot on getting my assignments done. The majority of them are reasonably standard and uninteresting, like the work I have been doing in XNA using Vertex and Pixel Shaders, but some of it is a lot more interesting. The biggest project I have at the moment, besides my Implementation of MPLS in FreeBSD which is due in 5 weeks, is a Distributed File System using FUSE. This file system, if successful, may be looked at for using on the University of Waikato’s cluster computer.

Hopefully within the next week I will have some serious time to go over MPLS. I am up to the stage now of testing the code for receiving and sending of packets, and hopefully that works pretty quickly so I can start on routing table implementation and then maybe even move onto LDP, but I very much doubt I will have the time before the dissertation on the project is due (approximately October 24th).

Final Summer of Code Report

August 18th, 2008 by Ryan French

Summer of Code has now officially finished. Well, at least the coding part of it has. This is my final GSoC report, but hopefully will not be my last post here. As it stands at the moment, I have not managed to get sending and receiving working, but I am very close to it. I honestly am unsure as to why it is not working,  but I believe it may be to do with how I have tied my code into the kernel, and I dont think it is getting initialized or compiled with the right preprocessor defines or something. However, I will still be working on getting this going, as not only is it my dissertation for university this year to do this, but it has become somewhat of a personal challenge to prove to myself that I can do it.

With that in mind I will keep on working on this at every oppurtunity I get, and will definately have at least sending/receiving working by October, which is when the dissertation is due. So here is a run down of what I have accomplished so far for the GSoC, and what I plan to implement in the future.

Accomplished:

MPLS-needle - this is a small tool I built for testing of MPLS. It takes a configuration file and uses that to define and build an MPLS packet, which is then inserted onto the networking stack using a BPF device.

Basic port of OpenBSD/Ayame code - I have been working solidly for the last few months on porting the OpenBSD code, which is based on Ayame, to FreeBSD. This was a much bigger task than I orginally intended. As I have had no previous experience with kernel coding this has involved a huge learning curve, not only in just kernel coding itself, but in how the FreeBSD networking code works, and how it differs to OpenBSD (by the way, it is a lot more than I thought it would be). The code has been ported over and changed accordingly, but still does not work. However, the kernel does compile and run, it just appears that the MPLS code does not run when a packet is received. I think this is because of incorrect #defines, as I’m not entirely sure where I need to define these (in the Makefile or somewhere in my code). I will continue to work on this and attempt to get it working asap.

Future Plans:

Once basic sending/receiving is acheived, I will be attempting to implement the following features. I believe this will be a lot easier as I will be working mostly on my own code, independant of the kernel code itself, but I have been known to be wrong before.

Routing Table Manipulation - create a way to store, insert, edit and delete MPLS routes in a table.

Static Label Switching - being able to receive a packet, swap the label, and send it out using a statically defined route in the routing table.

LDP Implementation - implement the LDP daemon for autmatic label distribution and routing table building.

Tunnels - implement MPLS L2 and L3 tunnels with first virtual interfaces, and then real interfaces.

At least thats the plan for now, and I’m really hoping that it becomes a reality.

I would like to take this chance to thank everyone that has helped me through this transition into kernel hacking and opensource hacking. It has been a lot of fun, with a lot of frustration, but very much worth it. If anyone would like to take a look at my work and provide some feedback, whether it be stuff I need to change, or help on completing my goals, it would be welcomed and very much appreciated. The code can be viewed here on Perforce.

Thank you

-Ryan French.

Weekly Report - 4/8/08

August 3rd, 2008 by Ryan French

I managed to get a few things done this week which and spend a few hours going over FreeBSD networking code and making changes to my own code. I am very close to being able to get the basics of MPLS going, and once that is done the more advanced features will actually be a bit easier as I have the Ayame project to reference those off, whereas at the moment I have no real reference material on how to integrate my MPLS code with the FreeBSD networking code. As I said last week, if anyone has any advice or experience on how to get netisr calling my MPLS code, I think I almost have it, but it would be hugely appreciated as it will save me precious time that I dont really have. I realised this weekend that there is only a month till the end of the Summer of Code, at which point I really need to have at least simple sending/receiving and basic label switching going. Luckily, I am also doing this project as a dissertation for my Post Graduate Diploma in Computer Science this year, so I will be working on it for at elast another month after the summer of code stuff has finished, and I plan on getting a fully working implementation of MPLS going for FreeBSD eventually by completing it once I leave university.

Accomplished Last Week:

- Went through the FreeBSD networking code, trying to figure out where abouts the actual call to the protocol initialising functions are made. It’s not as easy as you would think for someone with almost no previous Operating System code experience to look at this stuff and try and figure it all out, but I’m getting there.

- Made some changes to my own code to use the FreeBSD specific networking routines, rather than the OpenBSD ones, particularly involving if_ethersubr.c and the netisr files.

Plans for Next Week:

- Finally finish figuring out where I am to call the mplsinitr function and getting the protocol registered with netisr. I’ve said this many times before, and  it keeps elluding me, but basically once this is done then the protocol will have a basic functionality and I can actually be semi-happy with the work I have accomplished.

- Figure out what feature is more important to concentrate on next. With so little time remaining in the GSoC I am wanting to make sure I have gotten as many features of the protocol implemented as I can, but I want to make sure I have all the key features that I need implemented as well.

Weekly Report - 24/7/08

July 24th, 2008 by Ryan French

So university is already in it’s second week down here in New Zealand, and things are already getting underway, with my first assignment due today. I’m taking some “interesting” papers this semester. Operating Systems will be really good, as we are learning how to write Linux modules, and we in fact are going to write a file system for Waikato Universities “unique” cluster computer (it has been described as just an office network running fancy software, and in fact it is pretty much just a bunch of Dell computers on an ethernet network), with the main focus being something that supports migration from one node’s hard drive to another. Advanced Communications may or may not actually help me in the real world, I’m not sure, but it’s all just to do with carrier networks and setting up/maintaining a network in a workplace or ISP. For fun I decided my last paper to be “Graphics and Computer Games”, which focuses more on graphics than anything, using C# and Microsofts (sorry for saying a dirty word) XNA package. Sadly, I’m actually already a huge fan of XNA after only a week. I’ve already gone from no previous knowledge to having 3D models loaded on the screen and letting the user control the camera. Yes its that easy.

The Goggle Summer of Code midterm evaluations have been completed, and I passed, despite being able to work much on MPLS for the past while, and not being as far through the project as I had hoped, but thanks to the money I have now been able to cut 2 or 3 days a week off my work at the liquor store, so I can concentrate more on getting this project working. Also, I got myself a 26″ Viewsonic screen.

On to the report.

Accomplished Last Week:

- With the normal start of semester stuff going on I wasnt able to do much more on MPLS, other than try to sort out where I am supposed to call my mplsintr function from. In OpenBSD this is done directly inside netisr, but in FreeBSD this is not the case. If anyone has any ideas on this please leave a comment as it would save me a lot of time.

Plans for Next Week:

 - I have the next 2 days off with no work and no uni, so depending on how much work my lecturers gve me today I will have at least 1 full day to work on MPLS. I am hoping to figure out the netisr problem and have the port completely finished by Sunday.

- Work out my next step and where the port has left me. As far as I can tell, once the port from OpenBSD is done I will be able to send and receive MPLS packets, and switch the label based on a table that is manually setup using the route command. From there I would like to look at setting up automatic route table stuff, using Ayame’s MPLS-TE code as a basis, but it might turn out that there are more pressing features of MPLS that need my attention.

Weekly Report - 17/7/08

July 16th, 2008 by Ryan French

Haven’t done one of these for the past two weeks, due to a very hectic holiday travelling to a few different places to catch up with friends and family while I still had a chance.

Accomplished Last Week:

- Began porting over the Ayame/OpenBSD code to FreeBSD. The problem I’ve come across at the moment is in the differences between OpenBSD and FreeBSD in terms of the netisr stuff. I’m looking into at the moment and should hopefully have it done soon.

- Turned 24. For those of you who know me, you’ll realise that it was quite an accomplishment for me to make it this far through my life and still be alive.

- GSoC midterm evaluations were submitted, only 6 weeks left in the program.

Plans for this week:

- University has started up again for me, and its straight back into it. Luckily it looks like I’m going to be able to work a few less days a week thanks to my GSoC money and having my work employ a few new people, so I should be able to devote a few more days a week to MPLS.

- Finish porting over the OpenBSD code. This will mean I will be able to send and receive MPLS packets, using labels that can be manually entered using the route command. I have to still look into the code a bit more to decipher if the label switching is doing everything I was planning on implementing with it.