Home | History | Annotate | Download | only in net
History log of /src/sys/net/radix.h
RevisionDateAuthorComments
 1.23  15-Nov-2016  ozaki-r Don't use rt_walktree to delete routes

Some functions use rt_walktree to scan the routing table and delete
matched routes. However, we shouldn't use rt_walktree to delete
routes because rt_walktree is recursive to the routing table (radix
tree) and isn't friendly to MP-ification. rt_walktree allows a caller
to pass a callback function to delete an matched entry. The callback
function is called from an API of the radix tree (rn_walktree) but
also calls an API of the radix tree to delete an entry.

This change adds a new API of the radix tree, rn_search_matched,
which returns a matched entry that is selected by a callback
function passed by a caller and the caller itself deletes the
entry. By using the API, we can avoid the recursive form.
 1.22  27-May-2009  pooka branches: 1.22.22; 1.22.40; 1.22.44;
Make it possible to register delayed radix tree head inits which
will be processed when the radix "subsystem" is initialized -- all
users must be attached before any inits to know the max keylength.
Use of link sets is no longer required, and only attached domains
need to be considered.
 1.21  05-Feb-2009  dyoung branches: 1.21.2;
Cosmetic: break a line, change some spaces to tabs, remove an extra
empty line.
 1.20  11-May-2008  dyoung branches: 1.20.6;
Bzero, Bcmp, and Bcopy are not used any more, so delete them.
 1.19  09-Jun-2007  dyoung branches: 1.19.28; 1.19.30; 1.19.32; 1.19.34;
Get rid of radix_node_head.rnh_walktree, because it is only ever
set to rn_walktree.

Introduce rt_walktree(), which applies a subroutine to every route
in a particular address family. Use it instead of rn_walktree()
virtually everywhere. This helps to hide the routing table
implementation.
 1.18  17-Feb-2007  dyoung branches: 1.18.2; 1.18.6; 1.18.8;
Clean this code up some.

Extract subroutine rn_delete1() to ease RADIX_MPATH integration,
should we ever do that.

Remove RN_DEBUG code that does not compile.

Join some lines of the type

type var1;
type var2;
type var3;

making

type var1, var2, var3.

Break lines of the type if (expr) stmt1; else stmt2; so that normal
people can read them.
 1.17  22-Oct-2006  christos don't leak kernel variable declarations to userland.
 1.16  10-Dec-2005  elad branches: 1.16.20; 1.16.22;
Multiple inclusion protection, as suggested by christos@ on tech-kern@
few days ago.
 1.15  29-May-2005  christos branches: 1.15.2;
- sprinkle const
- remove unneeded casts
- use more mem*() instead of b*() funcs.
 1.14  21-Apr-2004  matt ANSI-fy and some additional de-__P and constification.
 1.13  21-Apr-2004  matt Constify if.c radix.c and route.c (and fix related fallout).
 1.12  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.11  17-Dec-2000  itojun branches: 1.11.24;
fix typo in function name (rn_satsifies_leaf -> satisfies). indent.
split rn_inithead() into two function - i'm putting some hook around here.
 1.10  06-Nov-2000  itojun avoid namespace pollution by radix.h. the #ifndef _KERNEL portion was to
use radix.c in userland compilation, however, noone is using it.
(routed has its own radix.c)
 1.9  02-Apr-1997  christos branches: 1.9.20; 1.9.22; 1.9.32;
Sync with Lite2.
 1.8  13-Feb-1996  christos Net prototypes
 1.7  17-May-1995  mycroft Newer version from CSRG.
 1.6  26-Mar-1995  jtc KERNEL -> _KERNEL
 1.5  29-Jun-1994  cgd New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
 1.4  13-May-1994  mycroft Update to 4.4-Lite networking code, with a few local changes.
 1.3  20-May-1993  cgd add rcs ids to everything, and clean up headers
 1.2  19-Apr-1993  mycroft Add consistent multiple-inclusion protection.
 1.1  21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.3  01-Mar-1998  fvdl Import 4.4BSD-Lite2
 1.1.1.2  01-Mar-1998  fvdl Import 4.4BSD-Lite for reference
 1.1.1.1  21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.9.32.1  20-Feb-2002  he Pull up revision 1.10 (requested by he):
Avoid namespace pollution, only define certain macros under _KERNEL.
 1.9.22.2  05-Jan-2001  bouyer Sync with HEAD
 1.9.22.1  22-Nov-2000  bouyer Sync with HEAD.
 1.9.20.3  30-Nov-1999  itojun bring in latest KAME (as of 19991130, KAME/NetBSD141) into kame branch
just for reference purposes.
This commit includes 1.4 -> 1.4.1 sync for kame branch.

The branch does not compile at all (due to the lack of ALTQ and some other
source code). Please do not try to modify the branch, this is just for
referenre purposes.

synchronization to latest KAME will take place on HEAD branch soon.
 1.9.20.2  06-Jul-1999  itojun KAME/NetBSD 1.4, SNAP kit 1999/07/05.
NOTE: this branch is just for reference purposes (i.e. for taking cvs diff).
do not touch anything on the branch. actual work must be done on HEAD branch.
 1.9.20.1  28-Jun-1999  itojun KAME/NetBSD 1.4 SNAP kit, dated 19990628.

NOTE: this branch (kame) is used just for refernce. this may not compile
due to multiple reasons.
 1.11.24.5  11-Dec-2005  christos Sync with head.
 1.11.24.4  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.11.24.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.11.24.2  18-Sep-2004  skrll Sync with HEAD.
 1.11.24.1  03-Aug-2004  skrll Sync with HEAD
 1.15.2.4  03-Sep-2007  yamt sync with head.
 1.15.2.3  26-Feb-2007  yamt sync with head.
 1.15.2.2  30-Dec-2006  yamt sync with head.
 1.15.2.1  21-Jun-2006  yamt sync with head.
 1.16.22.1  10-Dec-2006  yamt sync with head.
 1.16.20.1  18-Nov-2006  ad Sync with head.
 1.18.8.1  11-Jul-2007  mjf Sync with head.
 1.18.6.1  15-Jul-2007  ad Sync with head.
 1.18.2.2  17-Feb-2007  dyoung Clean this code up some.

Extract subroutine rn_delete1() to ease RADIX_MPATH integration,
should we ever do that.

Remove RN_DEBUG code that does not compile.

Join some lines of the type

type var1;
type var2;
type var3;

making

type var1, var2, var3.

Break lines of the type if (expr) stmt1; else stmt2; so that normal
people can read them.
 1.18.2.1  17-Feb-2007  dyoung file radix.h was added on branch yamt-idlelwp on 2007-02-17 07:46:39 +0000
 1.19.34.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.19.32.3  20-Jun-2009  yamt sync with head
 1.19.32.2  04-May-2009  yamt sync with head.
 1.19.32.1  16-May-2008  yamt sync with head.
 1.19.30.1  18-May-2008  yamt sync with head.
 1.19.28.1  02-Jun-2008  mjf Sync with HEAD.
 1.20.6.1  03-Mar-2009  skrll Sync with HEAD.
 1.21.2.1  23-Jul-2009  jym Sync with HEAD.
 1.22.44.1  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.22.40.1  05-Dec-2016  skrll Sync with HEAD
 1.22.22.1  03-Dec-2017  jdolecek update from HEAD

RSS XML Feed