]> git.puffer.fish Git - matthieu/frr.git/commit
lib: prepare table code for reuse by bgp_table
authorAvneesh Sachdev <avneesh@opensourcerouting.org>
Fri, 17 Aug 2012 15:19:48 +0000 (08:19 -0700)
committerDavid Lamparter <equinox@opensourcerouting.org>
Wed, 26 Sep 2012 19:48:49 +0000 (21:48 +0200)
commitf9c1b7bb9b98342f1f3b0bfe3af01844f364dce9
tree350c8e0d98e4dcc53b126c6ce1c7568c440fcb06
parent3eb8ef37bc463f88bfa36bd26fd43f7f6ad36c20
lib: prepare table code for reuse by bgp_table

  * lib/table.[ch]

    - Add a macro (ROUTE_NODE_FIELDS) that expands to all the fields
      of a route_node structure.

    - Add the route_table_delegate_t structure, a function vector
      which allows clients to customize the behavior of one or more
      tables.

      The delegate currently contains the 'create_node' and
      'destroy_node' functions, and hence enables a table to use an
      alternative node structure. The alternative node is expected to
      embed the fields of a route_node using ROUTE_NODE_FIELDS.

    - Add route_table_init_with_delegate() to create a new table with
      a given delegate.

    - Make route_table_init() a thin wrapper around
      route_table_init_with_delegate(). The delegate it passes in
      simply creates/destroys route_node structures as before.

    - Add a user data pointer (info) to the route_table
      structure. This can be used by a client to keep per-table state.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
lib/table.c
lib/table.h