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;