1. 04 May, 2000 1 commit
  2. 17 Apr, 2000 2 commits
  3. 11 Apr, 2000 1 commit
  4. 10 Apr, 2000 3 commits
  5. 01 Apr, 2000 1 commit
    • Martin Mareš's avatar
      Changed initialization of protocol list -- now we call proto_build() instead · 3991d84e
      Martin Mareš authored
      of 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,
      set to EAP_xxx) and also a callback for naming and formatting of attributes.
      The callback can return one of the following results:
      	GA_UNKNOWN	Attribute not recognized.
      	GA_NAME		Attribute name recognized and put to the buffer,
      			generic code should format the value.
      	GA_FULL		Both attribute name and value put to the buffer.
      Please update protocols generating dynamic attributes to provide
      the attr_class and formatting hook.
  6. 20 Mar, 2000 1 commit
  7. 04 Mar, 2000 3 commits
  8. 01 Mar, 2000 1 commit
  9. 16 Jan, 2000 1 commit
  10. 16 Dec, 1999 1 commit
  11. 01 Dec, 1999 1 commit
  12. 25 Nov, 1999 1 commit
  13. 18 Nov, 1999 2 commits
  14. 04 Nov, 1999 1 commit
  15. 03 Aug, 1999 2 commits
  16. 31 May, 1999 1 commit
  17. 17 May, 1999 1 commit
    • Martin Mareš's avatar
      From now we support multiple tables. The master_table variable is · 0e02abfd
      Martin Mareš authored
      definitely gone. Both rte_update() and rte_discard() have an additional
      argument telling which table should they modify.
      Also, rte_update() no longer walks the whole protocol list -- each table
      has a list of all protocols connected to this table and having the
      rt_notify hook set. Each protocol can also freely decide (by calling
      proto_add_announce_hook) to connect to any other table, but it will
      be probably used only by the table-to-table protocol.
      The default debugging dumps now include all routing tables and also
      all their connections.
  18. 12 Apr, 1999 1 commit
  19. 05 Apr, 1999 1 commit
    • 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.
  20. 03 Apr, 1999 1 commit
    • Martin Mareš's avatar
      More changes to the kernel syncer. · c10421d3
      Martin Mareš authored
      o  Now compatible with filtering.
      o  Learning of kernel routes supported only on CONFIG_SELF_CONSCIOUS
         systems (on the others it's impossible to get it semantically correct).
      o  Learning now stores all of its routes in a separate fib and selects
         the ones the kernel really uses for forwarding packets.
      o  Better treatment of CONFIG_AUTO_ROUTES ports.
      o  Lots of internal changes.
  21. 17 Mar, 1999 1 commit
  22. 04 Mar, 1999 1 commit
  23. 01 Mar, 1999 1 commit
  24. 13 Feb, 1999 1 commit
  25. 20 Dec, 1998 1 commit
    • Martin Mareš's avatar
      Rewrote fib functions to make them insert/delete/asynchronous-walk safe. · 3ab001b9
      Martin Mareš authored
      This is implemented in a way similar to lib/slists.h, but it took some
      more effort to make rehashing not disturb the readers. We do it by just
      taking _highest_ k bits of ipa_hash as our hash value and sorting each
      box by whole ipa_hash().
      Consult FIB_ITERATE_* macros in nest/route.h.
      Implemented fib_check() debugging function and also rewrote the rehashing
      algorithm to use better thresholds and not to waste time by rehashing
      forth and back.
  26. 08 Dec, 1998 1 commit
  27. 07 Dec, 1998 3 commits
    • Martin Mareš's avatar
      Minor rte/rta interface changes: · 04925e90
      Martin Mareš authored
        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()
           which will replace rte->attrs by a cached copy.
        o  In order to support this, one of previously pad bytes in struct rta
           now holds new attribute flags (RTAF_CACHED). If you call rte_update()
           with uncached rta, you _must_ clear these flags. In other cases rta_lookup()
           sets it appropriately.
        o  Added rte_free() which is useful when you construct a rte and then the
           circumstances change and you decide not to use it for an update. (Needed
           for temporary rte's in kernel syncer...)
    • Martin Mareš's avatar
      KRF_* flags moved to krt.h as they are internal to kernel syncer, · 12df4d90
      Martin Mareš authored
      fib->pad0,pad1 renamed to x0,x1 and in case of struct net x0 is reserved
      for kernel syncing as well.
    • Martin Mareš's avatar
      Removed protocol-specific data in rte for protocol static since no · 78d06cf2
      Martin Mareš authored
      such data ever existed.
  28. 20 Oct, 1998 2 commits
  29. 19 Oct, 1998 1 commit
  30. 18 Oct, 1998 1 commit