Build: switch on -Wextra, get rid of most of the warnings
There are several unresolved -Wmissing-field-initializers on olderversions of GCC than 5.1, all of them false positive.
KRT: Add krt_scope attribute
Add a new route attribute, krt_scope, to expose the Linux kernel routescope. Constants from /etc/iproute2/rt_scopes (prefixed by "ips_") areexpected to be used with the attribute. Both import and export aresupported.
Also, the patch fixes device route export to the kernel, by setting link...
KRT: Add kernel metric protocol option
Kernel routes with different metrics do not clash with each other,therefore using dedicated metric value is a reliable way to avoidoverwriting routes from other sources (e.g. kernel device routes).
Although kernel route metric could already be set as a route attribute by...
KRT: Forbid path merging on BSD
We support ECMP routes only on Linux. Exported routes are checked inkrt_capable(), but a route generated during path merging avoids thischeck.
Netlink: Allow more than 256 routing tables.
Since 2.6.19, the netlink API defines RTA_TABLE routing attribute toallow 32-bit routing table IDs. Using this attribute to index routingtables at Linux, instead of 8-bit rtm_table field.
KRT: Add support for plenty of kernel route metrics
Linux kernel route metrics (RTA_METRICS netlink route attribute) arerepresented and accessible as new route attributes:
krt_mtu, krt_window, krt_rtt, krt_rttvar, krt_sstresh, krt_cwnd, krt_advmss,krt_reordering, krt_hoplimit, krt_initcwnd, krt_rto_min, krt_initrwnd,...
Changes primary addr selection on BSD to respect SIOCGIFADDR ioctl() result.
Thanks to Alexander V. Chernikov for the original patch.
Makes krt.c much more readable.
Cleanup in sysdep KRT code, part 4.
Adding some files that was accidentally removed(instead of moved) in cleanup part 2.