BGP multipath support
Kernel option 'merge paths' allows to merge routes exported to kernelprotocol (currently BGP and static routes) to multipath routes.
Moving of mulipath merging code from OSPF to nest
unsigned [int] -> uint
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,...
Add bitfield route attribute type
Fixes some warnings.
Fixes some bugs and uses generic hash implementation.
Merge branch 'master' into add-path
filter/filter.c nest/proto.c nest/rt-table.c proto/bgp/bgp.h proto/bgp/config.Y
Some fixes in filter code.
Thanks to Sergey Popovich for original patches.
Implements ADD-PATH extension for BGP.
Allows to send and receive multiple routes for one network by one BGPsession. Also contains necessary core changes to support this (routingtables accepting several routes for one network from one protocol).It needs some more cleanup before merging to the master branch.
Fixes some missing tabs.
They unintentionally disappeared in 1.3.2.
BGP Extended communities.
Prints full community lists during 'show route all'.
Fix route types in rta_show().
Core multipath support.
Adds igp_metric attribute.
Implements IGP metric comparison for BGP routes.
Implements hostcache and recursive next hops.
Hostcache is a structure for monitoring changes in a routing table thatis used for routes with dynamic/recursive next hops. This is needed forproper iBGP next hop handling.
Implements command that shows memory usage.
Fixes unterminated string for atomic_aggr attribute formatting.
Fixes signedness in format route attributes.
Fixes bug in eattr binary search.
Adds %R printf directive for Router ID.
Fixes serious bug in route attribute handing.
ea_same() sometimes returns true for different route attributes,which caused that hash table in BGP does not work correctly andsome routes were sent with different attributes.
Proper format functions for ORIGINATOR_ID, CLUSTER_LIST
A lot of changes: - metric is 3 byte long now - summary lsa originating - more OSPF areas possible - virtual links - better E1/E2 routes handling - some bug fixes..
I have to do: - md5 auth (last mandatory item from rfc2328) - !!!!DEBUG!!!!! (mainly virtual link system has probably a lot of bugs)...
RTS_OSPF_BONDARY is nonsense, RTS_OSPF_IA must have smaller id than RTS_OSPF_EXT
Grrr, committing too fast.#include "alloca.h" -> #include "lib/alloca.h"
Use #include "alloca.h"
Spelling fixes to progdoc.
Documentation on routing tables and route attributes.
Fixed freeing of non-embedded extended attributes.
Added more convient interface for ea_find.
What is special about int default;? Compiler chokes on that!
Really free attributes.
Killed one more reference to RTS_RIP_EXT.
Added commands `show route protocol <p>' and `show route import <p>' whichshow the routing table as exported to the protocol given resp. as returnedfrom its import control hook.
To get handling of filtered extended attributes right (even in the old`show route where <filter>' command), the get_route_info hook gets an...
Better formatting of router ID's.
Define EAF_ORIGINATED and propagate it properly when merging attribute lists.
Printing of AS paths and community sets.
Export ea_same() and ea_hash().
Changed initialization of protocol list -- now we call proto_build() insteadof calling the protocols manually.
Implemented printing of dynamic attributes in `show route all'.
Each protocol can now register its own attribute class (protocol->attr_class,...
Include "lib/string.h" instead of <string.h>. It should give us bzero()and other non-portable functions on all systems.
Fixed bug in processing of dynamic attributes.
Renamed EAF_INLINE to EAF_TEMP to make the name reflect the real meaning.
Implemented real attribute cache.
Removed RTF_EXTERIOR and RTF_TAGGED (unused).
Added dumping of routing tables (`show route'). This includes filtering.
Allow EA type to be set to 'undefined' which overrides all further definitonsof that EA in the same list and causes ea_find() to fail unless you addEA_ALLOW_UNDEF to the second argument.
ea_sort (resp. ea_do_prune()) removes all undef'd attributes from the list....
Renamed attr->attrs to attr->eattrs.
Removed TOS support. This simplifies many things a lot.
Implemented extended route attributes and all related functions.
struct proto again contains instance name (a copy of proto->cf->name).
Implemented new configuration/reconfiguration interface and defined protocolstate machines. Full explanation will follow soon.
Added source RTS_DUMMY for temporary routes. They should never appearin the main table.
Minor rte/rta interface changes:
o rte can now contain a pointer to both cached and uncached rta. Protocols which don't need their own attribute caching can now just fill-in a rta, link it to rte without any calls to attribute cache and call rte_update()...
Do not segfault on iface == NULL.
Use '%I' instead of dirty address printing hacks.
Dumping of static attributes implemented.
Protocol hooks. All of them may be NULL.
Resource pools are now named.
Added routing table and routing attribute code.