1 19/08/2011 uClibc has no ifaddrs.h patch by Lonnie
2 slight changes to debugging output when receiving ra's and rs's
4 14/05/2011 Version 1.8 release
6 10/05/2011 removed AdvRDNSSPreference and AdvRDNSSOpen from the manpages
8 06/05/2011 - IgnoreIfMissing now defaults to on
9 - Fixed inf loop in Base6Interface (from Ludwig Nussel)
10 - Modified string regex in scanner.l reducing the compiled
11 size of scanner.o by a factor or 10.
13 04/05/2011 - radvd is useful for advertising ULA's without having a
14 router too (from Ludwig Nussel)
15 - Bumping version number to 1.8alpha in VERSION for testing
17 28/04/2011 Adding DecrementLifetimes patch (from Mark Smith)
19 25/03/2011 Renaming RemoveRoute to FlushRoute (from Mark Smith)
21 22/03/2011 Adding RemoveRoute options (from Mark Smith)
23 20/03/2011 Added DeprecatePrefix option (from Mark Smith)
25 28/02/2011 fixed Debian Bug#615625: radvd: Error in DNSSL parsing
27 26/02/2011 Added Base6Interface option
29 30/01/2011 Added detailed output to radvd --help for the long options.
30 Two sigterms or sigints calls abort.
31 build system cleanup work.
33 22/01/2011 Fixed crash and memory leak in device-bsd44.c when an
34 interface defined in the config file doesn't exist.
35 Patch submitted by Manual Kasper.
37 12/01/2011 Release 1.7.
39 07/01/2011 make dist (for building tar.gz source packages) fixed.
40 - 07/01: AdvSourceLLAddress fixed on FreeBSD when link
41 layer token length is zero.
43 14/12/2010 Deprecate old, pre-RFC5006 parameters.
44 Support RFC6106 by adding DNS Search List support.
47 14/12/2010 Integrate cleanup patches from Reuben Hawkins:
48 - 14/05: patch configure.in to allow OSX 10.6 builds
49 - 05/06: Unnecessary >255 test when using uint8_t
50 - 06/06: fix fscanf parsing on Linux
51 - 10/12: Fix whitespaces; #includes; CLEANFILES
53 - 05/11: Print errors on all exit() codepaths.
55 - 09/12: Add '-c' flag to test configuration.
56 From Pierre Ossman (idea):
57 - 13/12: Remove automake-generated files.
59 04/05/2010 Fix a segmentation fault on reload_config() timer list
60 corruption that only occurs with multiple interfaces.
62 10/03/2010 Fix radvd skipping multiple interfaces when
63 UnicastOnly is on or AdvSendAdvert is off.
64 This got broken in radvd 1.3. Patch from Cedric BAIL.
66 05/03/2010 Release 1.6.
68 05/03/2010 Update Redhat spec and init files from Fedora.
70 28/01/2010 Decrease MSG_SIZE from 4096 to about 1500B. Send buffer
71 uses a smaller size in order to avoid sending out
72 fragmented packets, yet being able to receive full-size
75 28/01/2010 Keep track of buffer size and exit if the number of
76 prefixes/routes/etc. would grow too much. Prevent a memory
77 corruption due to wrong memset. Patches from Jan
78 Görig, Red Hat bug #554125.
80 22/01/2010 On BSD use getifaddrs() also in setup_deviceinfo(),
81 fixes a multiple interfaces problem on NetBSD 5 due to
82 change in data structures. Patch from Michael Stapelberg.
84 07/11/2009 Allow radvd.conf prefix, clients, route, and RDNSS options
85 to be in any order. Patch from Michael Stapelberg.
87 10/09/2009 Release 1.5.
89 07/09/2009 Fix infinite loop/segmentation fault problems when cable
90 plugged out/plugged back in, caused by reload_config()
91 and subsequent timer list corruption. Slightly modified
92 patch from Teemu Torma. For more information, see
93 http://lists.litech.org/pipermail/radvd-devel-l/2009-August/000416.html
95 07/09/2009 Fix IgnoreIfMissing when cable is unplugged at startup.
96 Radvd would keep skipping the interface. Patch from
99 25/08/2009 Fix parallel make, from Robert Buchholz / Gentoo.
101 03/08/2009 Release 1.4. Only restores original behaviour changed in
102 1.3: RAs were accidentally often unicast to solicitors
103 instead of being multicast.
105 07/07/2009 Release 1.3.
107 24/06/2009 Work around unaligned traps on Alpha, patch from:
108 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=456205
110 19/06/2009 Fixes and enhancements from Michael Stapelberg. Add a new
111 'clients' interface definition to allow configuring which
112 address to send advertisements and accept from. Use
113 getifaddrs() on BSD because ioctl didn't work on NetBSD 5.
114 Use int instead of bool to make NetBSD 5 happy.
116 21/01/2009 Add a workaround for Linux in scenarios where libc is
117 providing IPV6_RECV(PKTINFO|HOPLIMIT) has renumbered IPV6_PKTINFO,
118 but kernel doesn't support it yet (<2.6.14). Found out by
119 Freetz (special thanks to Paul Oranje) and OpenWrt projects.
120 See the source code and CVS changelog for more.
122 28/10/2008 Release 1.2.
124 14/10/2008 Accept virtually any interface name (up to 15 chars) instead of
125 forcing a specific naming convention. Patch from
128 If stale radvd.pid file exists, try to overwrite it unless
129 the specified PID exists, from Fedora (Martin Nagy).
131 Define _GNU_SOURCE on Linux, otherwise glibc >= 2.8
134 Remove -Wconversion from default CFLAGS as it is very noisy.
135 Fix some warnings, from Jim Paris.
137 31/03/2008 Update references to RFCs. Give pointer to the "two hour rule".
138 Decrease the default valid and preferred lifetimes from 30/1
139 days to 1day/4hours, respectively. See more info at:
141 http://lists.litech.org/pipermail/radvd-devel-l/2007-October/000282.html
143 04/02/2008 Release 1.1.
145 24/01/2008 Implement privilege separation (Linux only) so that
146 config_interface() works both with a user and root,
147 even after HUP signal. Work by Jim Paris.
149 24/01/2008 The old Linux retrans_timer proc value is given in
150 USER_HZ, not in seconds. Fix that, by Jim Paris.
152 21/01/2008 Fix stderr+syslog logging crash (on non-i386). Analysis and
153 patch by Jim Paris (Debian bug #409600).
155 01/12/2007 Require that interface is also 'RUNNING' instead of just
156 'UP', except if IgnoreIfMissing is enabled. The reason is
157 that at least some recent Linux kernels do not generate
158 link-local addresses before interface is running and as
159 a result, the startup may fail if network cable is unplugged
162 Note: this could break deployments with some very old
163 kernels, see more info at:
165 http://lists.litech.org/pipermail/radvd-devel-l/2007-October/000280.html
167 25/10/2007 Implement automatically selecting and advertising an
168 interface address, see radvd.conf(5) for more. Add
169 a warning about not being able to set interface
170 variables with non-root user. Relax interface naming
173 25/06/2007 Send prefix, route and RDNSS options (matters if there
174 are many RDNSS options) in the same order they appear
175 in the configuration; add support for AdvDefaultLifetime
176 in radvdump (patches from C. Scott Ananian)
178 11/01/2006 Release 1.0.
180 10/09/2006 Perform a static/dynamic code audit; plug some minor
181 bugs (see CVS changelogs for more information) and
182 perform minor clean-up.
184 08/07/2006 Implement MAX_INITIAL_RTR_ADVERT_INTERVAL handling,
185 patch from Yoshifuji Hideaki / USAGI.
187 05/23/2006 Unblock SIGALRM signals at startup. Some scripts/programs
188 seem to run radvd from ALRM-blocked context which breaks
191 05/23/2006 Redefined IgnoreIfMissing: by default, radvd will now
192 try to reinitialize failed interfaces automatically.
193 IgnoreIfMissing is still needed if radvd is started when the
194 interface isn't up, and it also quenches some messages
195 relating to missing interfaces.
197 03/29/2006 Implement RDNSS draft, using non-allocated
198 IANA ND type value 25, by Lauréline Provost,
199 Mickaël Guérin, Adrien Clerc, Gaetan Eleouet,
200 Bahattin Demirplak, Lionel Guilmin (at the
203 03/06/2006 Fix the default STDERR+syslog logging methods, so
204 we don't try to unnecessarily log to STDERR after
207 01/18/2006 radvd-0.9.1 did not initialize AdvDefaultLifetime (etc.)
208 appropriately, unbreak the "clean-up".
210 01/13/2006 Release 0.9.1.
212 12/30/2005 Great cleanup of signed/unsigned values, add
213 -Wall and a number of other warnings to CFLAGS
214 by default. Do not allow signed values for
215 HomeAgentPreference anymore.
217 12/30/2005 Fix a couple of IPv6 Ready Logo Phase-2 IPv6 Core
218 Protocols Self Test issues, patches from Yoshifuji
221 11/13/2005 Create a short FAQ in README file.
223 10/28/2005 Get interface MTU automatically, so that you can
224 use jumboframes and advertise MTU >1500.
226 10/19/2005 Release 0.9.
228 10/18/2005 Transfer sole maintainership of radvd to Pekka Savola.
230 10/18/2005 Make the radvd.conf syntax dump default
231 in radvdump and remove the previous default to
232 reduce code duplication.
234 09/28/2005 Add NEMO Basic support (RFC3961) and fix default
235 HomeAgentLifetime, from Ville Nuorvala.
237 08/18/2005 Implement more robust timer handler, especially
238 because some Linux kernels don't seem to behave
239 all that well; see http://lkml.org/lkml/2005/4/29/163.
240 Based on extensive testing & reports by
241 Tomasz Grobelny. NB: the bug report was caused by
242 a bad timer patch in PLD's kernel package, and this
243 should not occur often with standard kernels.
245 07/24/2005 Implement a new logging method "stderr_syslog" which is
246 now also the default. Everything is logged on syslog,
247 while the most important messages (i.e., start-up failures)
248 are also logged on stderr.
250 07/08/2005 Release 0.8.
252 07/05/2005 Change the more-specific route ND option code
253 from de-facto '9' to the official '24'. Change
254 back in defaults.h if you need old behaviour.
256 07/05/2005 Fix wrongly calculated prefix with Base6to4Interface
257 on ppc and maybe other big endian arches, from
258 Debian #301543 by Sam Hathaway.
260 07/05/2005 Fix Linux-2.6.12-bk4+ error with HUP signal,
261 from YOSHIFUJI Hideaki / USAGI.
263 03/29/2005 Merge a part of MIPv6/non-MIPv6 code, make printing
264 error messages nicer.
266 03/22/2005 Be a bit more informative about config file parsing
269 02/21/2005 Release 0.7.3.
271 02/19/2005 Fix crash when reloading config with AdvSendAdvert off.
273 02/15/2005 Merge a few fixes and improvements from USAGI:
274 - support microsecond scheduling and fix RA intervals
275 - send zero router lifetime when forwarding is disabled
276 - use a more flexible inter-RA delay
278 01/07/2005 Accomodate interface indexes > 9999, from Hagen Fritsch.
280 12/15/2004 Advertise zero Router Lifetime when shutting down;
281 implements a SHOULD in RFC2461 section 6.2.5.
283 10/16/2004 Update Mobile IPv6 to match RFC 3775, from Greg Daley.
285 08/20/2004 Minor documentation cleanups.
287 03/09/2004 Implement "IgnoreIfMissing" interface flag, which can be
288 used on interfaces which aren't enabled when radvd starts
289 but will later become available (e.g., Bluetooth) --
290 and then you wish to send HUP to radvd to activate the
293 02/21/2004 Further cleanups, to fix autoconf/autoheader problems
294 with newer toolchain; mostly by Marko Myllynen.
296 02/20/2004 Clean up a bit: remove old junk from configure.in,
297 rename "log()" to "flog()" to satisfy newer GCCs,
298 allow underscores in the interface names (the last two
299 fixes already committed earlier).
301 01/19/2004 Make radvd check for forwarding status using procfs on
302 Linux; needed with 2.6 kernels. Loosely based on
305 11/21/2003 Add support for Router Preferences and More Specific
306 Routes from Markku Savela <msa@burp.tkv.asdf.org>.
307 NOTE! The specification is not final yet, there will be
308 changes! (Man page, documentation and radvdump support
311 09/11/2003 When starting up, check if the MAC address is all zero
312 (could happen e.g. with bridge interfaces with no attached
313 physical interfaces), and warn if so. For more information,
314 http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=103469
316 06/10/2003 When chrooting, check the possible return code
319 03/08/2003 Add patch from MAEDA Naoaki <maeda.naoaki@jp.fujitsu.com>
320 to discard RS's from the unspecied source address with
321 link-layer address option, as required by RFC2461.
323 10/28/2002 Release 0.7.2:
324 - add support for VLANs (from USAGI)
325 - make it compile better on newer NetBSD's (NetBSD)
326 - fix a syntax error in radvd.conf(5) sample documentation
327 - use IPV6_RECV{HOPLIMIT,PKTINFO} not
328 IPV6_{HOPLIMIT,PKTINFO} if supported
329 - (in Red Hat spec file) don't create radvd gid explicitly
330 - a lot of coding style cleanups
332 01/16/2002 Release 0.7.1.
334 01/12/2002 Update config.{guess,sub} from ftp.gnu.org; update INTRO.
335 Marko Myllynen and Debian bug #115992.
337 01/02/2002 Ensure NULL-termination with strncpy.
339 12/31/2001 Radvdump fixes: eliminate a warning of Prefix Information
340 sections with '-d -f'; add a note that
341 {Min,Max}RtrAdvInterval cannot be obtained with '-f';
342 implement '-e' to be used with '-f' which omits all
343 advertised default settings. Mostly by Marko Myllynen.
345 12/28/2001 Small cleanups. AdvSendAdvert is implicitly off by
346 default. Check configuration file permissions; must
347 not be writable by others, and if non-root,
348 not by self/own group. By Marko Myllynen.
350 12/21/2001 Check via sysctl that IPv6 forwarding is enabled;
351 exit unless debugging is enabled. Triggered by
354 11/22/2001 MinRtrAdvInterval for MIPv6 is 0.05 seconds, not 0.5.
357 11/20/2001 Rework BSD device memory management a bit, minor cleanups.
358 Version bumped to 0.7.0.
360 11/14/2001 Maintainership of radvd transferred from Lars Fenneberg
361 to Pekka Savola and Nathan Lutchansky. Lars' CVS
362 repository adopted, and changes merged from the -pX
365 08/29/2001 Minor change for NetBSD 1.5.1 compatibility.
368 07/20/2001 Support for non-multicast links, like ISATAP.
371 07/03/2001 Minimum MTU has been changed to 1280 in the latest RFC's.
374 06/30/2001 Check for possible buffer overflows; replace strcpy with
375 strncpy. No fatals found. Remove redunant radvd -t check.
378 06/24/2001 Fix 1-byte overflow in /proc/net/igmp6 handling,
379 clean out possible memory garbage when sending RA's
380 (patch from <yoshfuji@linux-ipv6.org>).
382 06/19/2001 When dropping root, also set up supplementary groups
383 properly. On Linux, when sending RA's, check that the
384 interface has joined all-routers multicast group. Add a few
385 RFC2461 MUST sanity checks when receiving datagrams. Clean
386 out non-EUI64 addressing scheme and other minor bits.
389 04/28/2001 Misc cleanup and bugfixes, automake support.
391 03/28/2001 Grammar cleanup. Integrated 6to4 support through
392 "Base6to4Interface" option in prefix configuration. Signal
393 handling fixed by blocking on select() rather than recvmsg()
394 so SIGTERM/HUP take effect immediately now. (Nathan Lutchansky)
396 03/27/2001 Security fixes: close stdin/out and chdir("/") via
397 daemon() to prevent possible exploits, and a flag to allow
398 radvd to set[ug]id to an unprivileged user (from Pekka Savola).
400 02/01/2001 scope_id is not supported in glibc2.1. So it is now
401 compiled conditionally.
403 01/31/2001 Add CC variable to Makefile. Fix bug with IPV6_ADD_MEMBERSHIP
404 handling. Set scope_id when sending packets.
406 12/02/2000 man pages update, rewritten pid file handling, rewritten
407 signal handling (SIGHUP and SIGTERM), gcc warnings cleanup,
408 new radvdump option -f: print received RAs in config file
411 11/19/2000 integrated the last two change entries into the main source
412 (patches by Marko Myllynen), fixed bug in log.c, fixed file
413 description leak in readin_config, rewrote code in timer.c,
414 updated man pages again (from Marko Myllynen, too), PID
415 file support (patch from Marko Myllynen, based on a patch
416 from Tommi.Komulainen@iki.fi)
418 15/08/2000 RFC 2461 updates, Mobile IPv6 extensions added
420 14/07/2000 added RA interval option and modified some default values
423 06/15/99 changed to run with glibc 2.1 on RedHat 6.0.
425 03/03/98 radvd now joins ipv6-allrouters on Linux. Fix contributed
426 by A.N.Kuznetsov <kuznet@ms2.inr.ac.ru>.
428 10/23/97 radvd will now accept any prefix length in its config
429 file but will warn about unusual ones
431 10/19/97 removed backwards compatibility code in recv.c.
432 IPV6_HOPLIMIT support is now assumed to exist.
434 10/19/97 fixed alignment problems in recv.c and send.c.
436 10/16/97 the Makefile install target now uses mkinstalldirs.
438 10/16/97 changed all u_int*_t to uint*_t for better POSIX
439 compliance and portability. Needs 2.1.57-CVS or glibc.
440 BSD seems to need patches.
442 10/16/97 more intelligent configure; tries to figure out
443 where the IPv6 libraries and inclues are (if not in
444 the standard places). Searches in /usr/inet6 and /usr/ipv6.
446 10/15/97 integrated small patches for glibc and BSD from Craig and
449 09/14/97 EUI-64 "support"
451 09/01/97 centralized all includes into includes.h for easier
454 08/25/97 changed all occurences of IPV6_TXINFO/IPV6_RXINFO
457 08/25/97 removed some compatibility stuff for older Linux kernels
459 03/17/97 changed linux/if_arp.h to net/if_arp.h in device-linux.c
460 and configure.in (for glibc compatibility)
462 03/17/97 integrated patch from Philip Blundell <pjb27@cam.ac.uk>
463 into configure.in to check for inet_* in libc first and
464 then for libinet6 (for glibc compatibility).
466 03/16/97 corrected small error in radvd.conf(5) man page and other
469 03/16/97 removed linklocal.c source file from the distribution
470 because it wasn't used anymore
472 03/16/97 added html version of the INTRO, removed ascii version.
474 02/12/97 missing directories are now created on make install
476 01/19/97 now also the rest of a line followed by a '#' is treated
477 as a comment in the config file
479 01/16/97 added IPPROTO_IPV6/IPV6_HOPLIMIT support, so now incoming
480 RS' and RAs are checked if there hoplimit is 255 (on Linux
481 this only works with kernel version 2.1.21 and above)
483 01/15/97 lots of portability cleanups; radvd is now using autoconf
484 for automatic configuration; removed support for the
487 01/05/97 integrated BSD 4.4 patches from Craig <cmetz@inner.net>
489 12/21/96 release of version 0.3
491 12/15/96 the AdvSendAdvert flag works now
493 12/14/96 added radvdump, dumps all received RAs in a human
496 12/13/96 rewrote radvd to use new advanced API headers
498 12/08/96 added radvd.conf(5) man page
500 12/03/96 changed RAW_CHECKSUM to IPV6_CHECKSUM for kernels
503 11/24/96 added checking of received RAs according to RFC 1970
505 11/20/96 rewrote the default handling, now it should conform
508 11/17/96 release of version 0.2
510 11/17/96 added -h (--help) and -f (--facility) option
512 11/17/96 added setsockopt(..., SOL_IPV6, IPV6_MULTICAST_HOPS), so
513 that radvd works for kernel versions >2.1.7 (without this
514 you get "NDISC: fake router advertisment received" on your
517 11/17/96 added a man page for radvd(8)
519 11/17/96 some minor filename changes
521 11/13/96 first release of this version of in.radvd (0.1)