GSoC?



Hello all!

Is N-M involved/interested in the Google Summer of Code this year? In
previous years, I see that N-M participated in GSoC through the Linux
Foundation. Will that be happening again this year?

If so, awesome! I've been wanting to apply to GSoC for a long time, and
N-M is one project I'm quite interested in.

Below, I have a few "preliminary project proposals". I'd be delighted if
someone could let me know if any of these ideas are sensible. I plan to
pick the best one and develop it into a full proposal.

Autobiography: CS major, math minor, working through my 3rd year. I
spent my last two summers working on programming projects for professors
through the Union College summer undergrad research program, the results
of which are posted at [1]. I'm a major FOSS enthusiast, and for some
time I've been itching to become a contributor; I'm interested in pretty
much anything that will help free software succeed on the desktop. :) Up
until now, however, academics have always gotten in the way, so I
haven't managed to do much more than dabble in it (tracking down an
elusive kernel regression [2] is my best accomplishment so far).
However, I'm hoping that GSoC can give me the kick that I need. :)

Preliminary proposals follow:


=============================
1. Improving DHCP lease reuse

This is essentially a continuation of what I started at [3].

NM already helps dhclient maintain separate lease databases for each
connection, and this is already used to speed up lease renewal when
connecting to a network we've seen before. However, dhclient also has
support for testing and reusing unexpired leases in the case that we are
unable to contact a DHCP server, and by making N-M more "correct" in its
usage of dhclient, we can take advantage of this. This would make N-M
really robust when dealing with DHCP servers, enough so to survive even
the junk from my college's IT department. ("If anyone can get an IP out
of those things, N-M will! So install Linux already!" :)

According to the dhclient-script(8) manpage, dhclient-scripts are
expected to do things like return with nonzero exit status if the IP
address we've been given is already used by someone else (e.g. as
indicated by arping -D). And in the case where no DHCP server has been
reached but unexpired leases are available, the dhclient-script is run
(with $reason=TIMEOUT) and given a config from an unexpired lease, and
the script check if the given config is usable (e.g. we can ping the
specified router). This is the mechanism that dhclient uses to re-use
existing leases when no DHCP servers are reachable. Currently, the
"script" supplied by NM (callouts/nm-dhcp-client.c) unconditionally
returns with exit status zero, so none of this happens yet.


====================
2. UserSettings work

We have a couple of problems with how user-specific connections are
managed right now, particularly in that it doesn't work with fast user
switching and in that it's tricky for apps to manipulate user-defined
connections without actually being the NM user settings service. This
project would be about addressing at least one of those problems.

I would use the GSoC "community bonding" period as a chance to try and
brainstorm up the best way to do this. I do share Andrey Borzenkov's
concern [4] that the "standard" plan may lead to duplicated effort in
each of the client apps (nm-applet, knetworkmanager, etc.), and in the
case of fast-user-switching, I'm worried about what would happen if a
bugged or malicious user settings service refused to give up
org.freedesktop.NetworkManagerUserSettings when expected. However, if I
don't get any good ideas by the time coding starts, I'd plan to follow
the "standard" plan outlined in [5] and [6].

I'm pretty new to D-Bus, but I know from my summer research experience
that I can get up to speed with such things pretty quickly, so I'm
pretty sure I could do at least the fast-user-switching half of this.


============================
3. Noncellular modem support

This technology is indeed quite obsolete in many circles, but there are
a considerable number of people still stuck with it, either because they
can't afford anything better or because they are in an area where
old-school dial-up is the only 'net connection available. Last fall, I
volunteered for an organization that "recycles" old computers and gives
them away to people in need [7], and of the people we give computers to,
the majority are dial-up users. I'm hoping to convince this organization
to install GNU/Linux on the machines they give out, and having
first-class noncellular dial-up support in N-M would be a major help. :)

I admit that, out of all my proposals here, this is the project I have
the least background knowledge for; I don't know very much about how
these old-school modems work. However, I do have tons of hardware to
test with, coupled with a definite willingness to teach myself all about
it. :)


=======

Thanks very much!

Have a good one,
Daniel


[1] http://daniel.gnoutcheff.name/
[2] https://bugzilla.kernel.org/show_bug.cgi?id=11703#c53
[3] http://mail.gnome.org/archives/networkmanager-list/2010-January/msg00051.html
[4] http://mail.gnome.org/archives/networkmanager-list/2010-March/msg00095.html
[5] http://mail.gnome.org/archives/networkmanager-list/2010-March/msg00089.html
[6] http://mail.gnome.org/archives/networkmanager-list/2010-February/msg00161.html
[7] http://www.pcrenew.org/


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]