[PATCH v2] dhcp6c: DHCPv6 client

Leonid Lisovskiy lly.dev at gmail.com
Tue Nov 8 10:15:06 UTC 2011


2011/11/8 Denys Vlasenko <vda.linux at googlemail.com>:
>
> [...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.
>

As I remember right, we reach agreement that all real interface
operations should performed by external script, yesterday.
The rest is:

1) Automated renew. In DHCPv4 it performed automatically by udhcpc
after 1/2 lease period expired. Why to change this behavior in DHCPv6?
It simply requires to remember a list of IA-NA IA-PD id's & lifetimes
and chain of events.

2) Calculation of complete prefix & corresponding IPv6 address by
EUI-64 rules, based on SLA(site-level aggregator) info provided in
config. This can be moved to external script, but IMHO it is much
easier do in C code.


Leonid


More information about the busybox mailing list