• Martin Mareš's avatar
    Routing table core changes to support full route filtering: · e2dc2f30
    Martin Mareš authored
    o  Introduced rte_cow() which should be used for copying on write the
       rte's in filters. Each rte now carries a flag saying whether it's
       a real route (possessing table linkage and other insignia) or a local
       copy. This function can be expected to be fast since its fast-path
       is inlined.
    o  Introduced rte_update_pool which is a linear memory pool used for
       all temporary data during rte_update. You should not reference it directly
       -- instead use a pool pointer passed to all related functions.
    o  Split rte_update to three functions:
    
    	rte_update	The front end: handles all checking, inbound
    			filtering and calls rte_recalculate() for the
    			final version of the route.
    	rte_recalculate	Update the table according to already filtered route.
    	rte_announce	Announce routing table changes to all protocols,
    			passing them through export filters and so on.
    
       The interface has _not_ changed -- still call rte_update() and it will
       do the rest for you automagically.
    o  Use new filtering semantics to be explained in a separate mail.
    e2dc2f30
rt-table.c 9.9 KB