Ops... forgot the OK from claudio@ 2015-07-19 12:27 GMT-06:00 Renato Westphal <ren...@cvs.openbsd.org>: > CVSROOT: /cvs > Module name: src > Changes by: ren...@cvs.openbsd.org 2015/07/19 12:27:59 > > Modified files: > usr.sbin/ldpd : kroute.c lde.h lde_lib.c ldpd.h > > Log message: > Rework kroute.c to send only the best routes to lde. > > This is major rework of the kroute.c code. The idea is remove complexity > from the lde process by making kroute.c advertise only the lowest priority > routes of each prefix. > > kroute.c now keeps track of all routes using three different structures: > kroute_prefix, kroute_priority and kroute_node. > > kroute_prefix represents a prefix and contains an ordered list of > priorities (kroute_priority) and for each priority there is a list of > nexthops (kroute_node). Arranging the routes using these three structures > allows for the writing of a simpler code, easier to understand. > > Whenever a route is removed, if there's another route for the same prefix, > but with a lower priority, this route is immediately sent to lde. > > Additional fixes: > * On RTM_CHANGE, remove the old route before installing the new one; > * On IMSG_CTL_KROUTE_ADDR, show all nexthops for multpath routes; >
-- Renato Westphal