Use streams for iterating over routes.
Use streams for iterating over xroutes.
Remove tab characters.
Don't directly modify a neighbour in parse_hello_subtlv()
Silently ignore unknown sub-TLVs

This is a MUST according to the Babel Extension Mechanism draft
(Section 2.2.3).
Remove unused (and bad-written) function header.
Use modern netlink constants (replace RTM* by RTNL*).
Fix indentation.
Fix all indentation problems in babeld.
Make code fits in 80 columns.
Fix router ID printing.

format_address() will print 16 octets, but a router ID is only 8 octets long.
Filter: Rename "result" to "add_metric".

The field "result" is in fact an additional cost.
Add function to compare prefixes, with an enumeration.
Kernel-side implementation of source-specific routing.

Since the linux kernel isn't able to use the source address in
routes, we emulate it using multiple routing tables and
associated rules.
Implement table rules changes with netlink.
Change data structures and related functions to hold source prefixes.
Add a message type for source-specific routes.

This adds a new message type, parses it when receiving
and formats it when sending.

This also try to deal with request. No source-specific
request exists: a router which receive a request for
a route should send every installed routes that
satisfied the destination. This explain some ugly
pieces of code.
Fix interoperability with non-ss routers.

If we change the buffered destination prefix or router ID
in a ss-update TLV, then next update TLVs will depends on
it.  This cause some interoperability problems in some
cases, and can cause wrong messages in others.

The current solution should not be definitive: we should
send all non-source-specific update in group, but the
announce-with-default-source-prefix option introduce
non-source-specific updates.
Improve route printing with "from" field.
Add local interface source-specific printing.

It also update the route's id.