Fix kinky formatting of prefix comparisons.
Export metric_to_kernel().
Add disambiguation algorithm.
Add const modifiers.
Use the disambiguation algorithm.
kernel_netlink: take IPV6_SUBTREES into account.

The linux kernel should be able to deal correctly with source-sensitive ipv6
route entries since 3.11 (when it is configured with IPV6_SUBTREES).  This patch
modify the kernel so that ipv6 route entries sent into the kernel are not pushed
in a different routing table.

The behavior for v4 doesn't change.
Don't insert ipv6 disambiguation routes if IPV6_SUBTREES is defined.

Since the kernel behavior is the one desired for ipv6 (match by destination
first, then source), we don't install disambiguation route entries for ipv6.
The behavior for v4 doesn't change.
Fix bug when rules were modified by third parties.

When restarting network on openwrt, the rules were flushed.  In
this patch, we ask the kernel for rule changes, and try to
reinstall (or flush) the rules, as it should be.
Add option to announce all routes with default source.

This is not safe in general, but might be usefull (for example
for gateways). In order to avoid loops, if a route (d,s) is
announced as (d,0), no (d,0) routes will be allowed in our
routing table, but it come from kernel.
Fix memory corruption.
Fix kinky formatting of prefix comparisons.
Allow changing source on incoming routes.
Add source-sensitive routing examples in manpages.
Print message contents when a packet couldn't be parsed.
Add option to print the babel version number.