tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: DHCP client with minimal functionality and size



On Thu, 10 Apr 2008, Roy Marples wrote:

On Thursday 10 April 2008 14:56:49 David Brownlee wrote:
So if 57k is "quite a bit", what is "optimal"?

        I think 57K is a good size for a full feature DHCP client.
        Certainly compared to the 350K of dhclient.

        Yes, it would be nice to have a tiny, minimal featured dhcp client
        for specific uses, but that is much less important if your main
        client is 57K as opposed to 350K.

I've been working on dhcpcd more than I'd like since someone said 57k stripped
was quite a bit. I've re-structured the code so that OS specific stuff is now
in small files outside the main code. I've also moved to get the
configuration suff from the DHCP message directly instead of populating a
custom structure. Lastly, some parts of the code have been optimized to make
it smaller.

The end result on NetBSD-4/i386 is ..... 47k un-stripped, 41k stripped :)
I could also save ~600 bytes by merging all the .c files into one and
compiling that. However, I do have one feature to add which may take up a k
or two.

        Thats and even better size :)

It's currently under-going a bit of regression testing to make sure that
nothing is broken after this, but it's looking very good right now. Hopefully
I'll release it next week.

        Is there anything dhclient does that dhcpcd does not? How about
        people migrating who have /etc/dhclient-enter-hooks and/or
        /etc/dhclient-exit-hooks?

That's the main bug bear really. dhcpcd does ALL it's configuration itself
without the need for scripts. dhcpcd can call a script when a dhcp lease is
gained or lost, but it's only supplied with information about the lease it
just gained. This script cannot stop or change the way dhcpcd goes about
configuring the system based on the lease.

However, you can stop dhcpcd from say installing default routes,
touching /etc/resolv.conf or doing any ntp changes through command line
options.

        As other people have mentioned its probably best to have
        the default behaviour of dhcpcd to be changing no more than
        dhclient, to avoid annoying people.

        Can it take the options from a config file also (I know, more
        parsing code, more size...)

Also, the curret dhcpcd is hardcoded to a small list of parameters to request
and make available to the script. One of the goals with the new framework is
to allow the user to request parameters to be made available to the script
which previous dhcpcd didn't care about. This is the missing feature I
mentioned earlier, and it's the one thing that dhclient can to that dhcpcd
currently cannot.

        As a thought rather than having them as optional parameters it could
        always either set them in the environment or pass them in as a list
        of VAR1=value1 VAR2=value2

--
                David/absolute       -- www.NetBSD.org: No hype required --


Home | Main Index | Thread Index | Old Index