[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Incomplete first draft of my GSoC proposal
From: |
Ludovic Courtès |
Subject: |
Re: Incomplete first draft of my GSoC proposal |
Date: |
Tue, 10 Mar 2015 14:02:36 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) |
Rohan Prinja <address@hidden> skribis:
> Project name
> ------------
>
> Implementing a DHCP client in Guile Scheme
>
> Summary
> -------
>
> We want to have a DHCP client written in Guile Scheme. Specifically:
> 1. The implementation will comply with IETF RFC 2131 [1]
> 2. The client will be bundled as a Guix package [2], which installs a
> command-line program similar to ISC’s dhclient (8) utility. [4,5]
“Similar to ISC’s dhclient” includes things like being able to store
leases in persistent storage. reusing them when the DHCP server does not
respond, and automatically handling lease renewal upon expiration.
ISC’s dhclient supports DHCPv6 as well. The library must be designed
with the ability to support DHCPv6 in mind–that is, DHCPv4 assumptions
must not be hardwired. As I wrote before, it would be wonderful if you
could implement it, but the priority should be DHCPv4 and the basic
client functionality.
Perhaps these points can be clarified in the proposal.
> 3. The client code should be modular, so that some of its functions can be
> invoked from within GNU dmd’s [6] proposed event loop.
> 4. The client should be runnable as a dmd service, as described in the dmd
> manual [6]
Perfect.
> Benefits
> --------
>
> Currently the only DHCP client implementation in the Guix package list is the
> ISC implementation, which is written in C. The aim of this project is to
> deliver a Guile Scheme implementation of a DHCP client satisfying the
> conditions outlined in the abstract. The motivation for this is that GNU dmd
> should be able to easily call DHCP library functions from its event handlers
> in response to various network events. Since dmd is written in Guile Scheme,
> we want our DHCP library to be written in Guile Scheme as well.
>
> How users benefit: this project is related to dmd gaining an event loop so
> that it can properly handle events - including DHCP events - rather than
> simply waiting for the client. dmd performing faster and better is a win for
> the user.
To be clear, the DHCP client library is useful independently of dmd (and
of Guix actually.) The dmd service is GuixSD is the main use case
though, obviously.
> Deliverables
> ------------
>
> 1. A module written in Guile Scheme, implemeting RFC 2131.
> 2. A command-line program available as a Guix package, which calls the
> module's functions.
> 3. A dmd service for the DHCP client.
> 4. (TODO: discuss this with Ludo) Integration of the module with dmd's event
> loop.
Sounds good to me.
#4 is quite broad, but this is fine IMO: it may involve work on the dmd
side, as well as on the GuixSD side, which is where services are defined
(see ‘dhcp-client-service’ in gnu/services/networking.scm in Guix.)
Thank you!
Ludo’.