]> git.ipfire.org Git - thirdparty/bird.git/commit
Routing table core changes to support full route filtering:
authorMartin Mares <mj@ucw.cz>
Mon, 5 Apr 1999 20:25:03 +0000 (20:25 +0000)
committerMartin Mares <mj@ucw.cz>
Mon, 5 Apr 1999 20:25:03 +0000 (20:25 +0000)
commite2dc2f30efd65cf3da4db150fae695978388e247
treea3f95159dd62141fa6d350dbd8ff6f055dff291b
parent9e0e485e50ea74c4f1c5cb65bdfe6ce819c2cee2
Routing table core changes to support full route filtering:

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.
nest/route.h
nest/rt-table.c