Server unicast option support
[odhcp6c.git] / README
1 odhcp6c - Embedded DHCPv6 Client
2
3
4 ** Abstract **
5
6 odhcp6c is a minimal DHCPv6 and RA-client for use in embedded Linux systems
7 especially routers. It compiles to only about 30 KB (-Os -s).
8
9
10 ** Features **
11
12 1. IPv6 bootstrap from different environments with autodetection
13         a) RA only
14         b) RA + stateless DHCPv6
15         c) RA + stateful DHCPv6 (either IA_NA or IA_PD or both)
16
17 2. Handling of non-temporary addresses (IA_NA)
18         a) handling of valid and preferred lifetimes
19         b) automatic fallback to stateless or PD-only mode
20
21 3. Support for DHCPv6 extension
22         a) Reconfigure-Messages
23         b) Prefix Delegation (including handling of valid and preferred lifetimes)
24         c) Prefix Exclusion
25         d) DNS Configuration Options
26         e) NTP Options
27         f) SIP Options
28         g) Information-Refresh Options
29         h) Configurable SOL_MAX_RT
30         i) DS-Lite AFTR-Name Option
31
32 4. Support for requesting and parsing Router Advertisements
33         a) parsing of prefixes, routes, MTU and RDNSS options
34
35
36 ** Compiling **
37
38 odhcp6c uses cmake:
39 * To prepare a Makefile use:  "cmake ." 
40 * To build / install use: "make" / "make install" afterwards.
41 * To build DEB or RPM packages use: "make package" afterwards.
42
43
44 ** State Script **
45
46 The state script is called whenever the DHCPv6 state changes.
47 The script is called with the following parameters: <interface> <state>
48
49
50 States:
51 * started               The DHCPv6 client has been started
52 * bound                 A suitable server was found and addresses or prefixes acquired          
53 * informed              A stateless information request returned updated information
54 * updated               Updated information was received from the DHCPv6 server
55 * ra-updated            Updated information was received from via Router Advertisement
56 * rebound               The DHCPv6 client switched to another server
57 * unbound               The DHCPv6 client lost all DHCPv6 servers and will restart
58 * stopped               The DHCPv6 client has been stopped
59
60
61 Environment:
62 * RDNSS                 A space-separated list of recursive DNS servers
63 * DOMAINS               A space-separated list of DNS search domains
64 * SNTP_IP               A space-separated list of SNTP server IP addresses
65 * SNTP_FQDN             A space-separated list of SNTP server FQDNs
66 * SIP_IP                A space-separated list of SIP servers
67 * SIP_DOMAIN            A space-separated list of SIP domains
68 * OPTION_<num>          Custom option received as base-16
69 * PREFIXES              A space-separated list of prefixes currently assigned
70                                 Format: <prefix>/<length>,preferred,valid[,excluded=<excluded-prefix>/<length>][,class=<prefix class #>]
71 * ADDRESSES             A space-separated list of addresses currently assigned
72                                 Format: <address>/<length>,preferred,valid
73 * RA_ADDRESSES          A space-separated list of addresses from RA-prefixes
74                                 Format: <address>/<length>,preferred,valid
75 * RA_ROUTES             A space-separated list of routes from the RA
76                                 Format: <address>/<length>,gateway,valid,metric
77 * RA_DNS                A space-separated list of recursive DNS servers from the RA
78 * AFTR                  The DS-Lite AFTR domain name
79 * AFTR_IP               The DS-Lite AFTR resolved IPv6 address