Add the Babel routing protocol (RFC 6126)
This patch implements the IPv6 subset of the Babel routing protocol.Based on the patch from Toke Hoiland-Jorgensen, with some heavymodifications and bugfixes.
Thanks to Toke Hoiland-Jorgensen for the original patch.
unsigned [int] -> uint
unsgined char -> byte
Integrated IP functions.
IPv4/IPv6 integrated socket code.
BFD protocol, ready for release.
Supports OSPF and BGP and also statically configured sessions.
Fixes some BFD bugs and makes logging thread-safe.
Implements support for link-local addresses in BGP.
Thanks Matthias Schiffer for the original patch.
Adds %R printf directive for Router ID.
IP address formatting now uses the same rules as formatting of stringswith two exceptions:
o Any non-zero field width is automatically replaced by standard IP address width. This hides dependences on IPv4/IPv6. o %#I generates hexadecimal form of the address....
Added library progdocs.
Defined format specifier `%M' which behaves as `%m', but takes theerror code as an argument.
Use it in socket hooks where we really shouldn't rely on errno containingthe right value or even existing.
Include "lib/string.h" instead of <string.h>. It should give us bzero()and other non-portable functions on all systems.
Killed bug in processing of 'h' prefix. Patch taken from linux-2.1.129.
Implemented snprintf and similar functions. It took a lot of thinking,but the modifications were relatively simple and straightforward.
Oops, forgot '%m'...
Added local version of sprintf (bsprintf and bvsprintf) offering few newformat strings:
%I IP address %#I IP address in hexadecimal %1I IP address padded to full length %m strerror(errno)