On Tue, Nov 8, 2011 at 8:03 AM, Vladislav Grishenko <[email protected]> wrote:
>> From: Denys Vlasenko [mailto:[email protected]]
>> On Fri, Nov 4, 2011 at 8:04 AM, Leonid Lisovskiy <[email protected]>
> wrote:
>> > On Fri, Nov 4, 2011 at 4:54 AM, Denys Vlasenko
>> <[email protected]> wrote:
>> >>
>> >> I think that maybe emulating existing dhcp6c tool with its config
>> >> file and command line is not a good idea. This will make DHCP and
>> >> DHCPv6 clients in busybox to be very different.
>> >
>> > Agree, but redesign of applet I was postpone for the future. Seems to
>> > be, this time is come...
>> > But I don't see any way to simplify dhcp6c config file like udhcpc
>> > since we can have several IA/PD.
>>
>> I prefer to follow the model of udhcpc, where one instance of client
> daemon
>> configures one interface.
>
> This will completely break rfc3633 support.

[...reading rfc3633...]

I don't think so. See option -x below:

$ busybox udhcpc6 --help
BusyBox v1.20.0.git (2011-11-07 15:35:32 CET) multi-call binary.

Usage: udhcpc6 [-fbnqvoRB] [-i IFACE] [-r IP] [-s PROG] [-p PIDFILE]
        [-x OPT:VAL]... [-O OPT]... [-P N]

        -i,--interface IFACE    Interface to use (default eth0)
        -p,--pidfile FILE       Create pidfile
        -s,--script PROG        Run PROG at DHCP events (default
/usr/share/udhcpc/default.script)
        -B,--broadcast          Request broadcast replies
        -t,--retries N          Send up to N discover packets
        -T,--timeout N          Pause between packets (default 3 seconds)
        -A,--tryagain N         Wait N seconds after failure (default 20)
        -f,--foreground         Run in foreground
        -b,--background         Background if lease is not obtained
        -n,--now                Exit if lease is not obtained
        -q,--quit               Exit after obtaining lease
        -R,--release            Release IP on exit
        -S,--syslog             Log to syslog too
        -P,--client-port N      Use port N (default 68)
        -O,--request-option OPT Request option OPT from server (cumulative)
        -o,--no-default-options Don't request any options (unless -O is given)
        -r,--request IP         Request this IP address
        -x OPT:VAL              Include option OPT in sent packets (cumulative)
                                Examples of string, numeric, and hex byte opts:
                                -x hostname:bbox - option 12
                                -x lease:3600 - option 51 (lease time)
                                -x 0x3d:0100BEEFC0FFEE - option 61 (client id)
        -v                      Verbose
Signals:
        USR1    Renew lease
        USR2    Release lease




Option -x can be extended to support options with arbitrary format.
Thus, with some coding, IA_PD can be requested via -x.
Then, the second half of work is to export values (in this case, prefix(es),
their lifetime) from server reply to $envvars so that script can use them.


>> >> Maybe we need a udhcpc6 applet which is similar to udhcpc.
>> >>
>> >> For one, it should handle one interface. This simplifies many things.
>> >
>> > One upstream(listen) interface - yes. But simplification to single
>> > downstream (IA, PD) interface seems to be bad idea.
>>
>> Can you elaborate why is it a bad idea?
>
> This is bad idea, because it should be only one and same dhcpv6 client (id)
> which is responsible for:
> 1) receiving/assigning address to interface it running on
> 2) receiving/assigning prefix(es) to sub-interface(s) as per rfs3633

udhcpc handles all configurational tasks by running a script. This is
a VERY generic mechanism. The script certainly can "assign prefix(es)
to sub-interface(s) as per rfs3633". It can do much more than that.
For example, on my machines the script (re)starts ntpd if needed.
Imagine the awkwardness of hard-coding *that* into C code.

-- 
vda
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to