NetBSD/sys/nfs
dyoung 08e6f22226 Take steps to hide the radix_node implementation of the forwarding table
from the forwarding table's users:

        Introduce rt_walktree() for walking the routing table and
        applying a function to each rtentry.  Replace most
        rn_walktree() calls with it.

        Use rt_getkey()/rt_setkey() to get/set a route's destination.
        Keep a pointer to the sockaddr key in the rtentry, so that
        rtentry users do not have to grovel in the radix_node for
        the key.

        Add a RTM_GET method to rtrequest.  Use that instead of
        radix_node lookups in, e.g., carp(4).

Add sys/net/link_proto.c, which supplies sockaddr routines for
link-layer socket addresses (sockaddr_dl).

Cosmetic:

        Constify.  KNF.  Stop open-coding LIST_FOREACH, TAILQ_FOREACH,
        et cetera.  Use NULL instead of 0 for null pointers.  Use
        __arraycount().  Reduce gratuitous parenthesization.

        Stop using variadic arguments for rip6_output(), it is
        unnecessary.

        Remove the unnecessary rtentry member rt_genmask and the
        code to maintain it, since nothing actually used it.

        Make rt_maskedcopy() easier to read by using meaningful variable
        names.

        Extract a subroutine intern_netmask() for looking up a netmask in
        the masks table.

        Start converting backslash-ridden IPv6 macros in
        sys/netinet6/in6_var.h into inline subroutines that one
        can read without special eyeglasses.

One functional change: when the kernel serves an RTM_GET, RTM_LOCK,
or RTM_CHANGE request, it applies the netmask (if supplied) to a
destination before searching for it in the forwarding table.

I have changed sys/netinet/ip_carp.c, carp_setroute(), to remove
the unlawful radix_node knowledge.

Apart from the changes to carp(4), netiso, ATM, and strip(4), I
have run the changes on three nodes in my wireless routing testbed,
which involves IPv4 + IPv6 dynamic routing acrobatics, and it's
working beautifully so far.
2007-07-19 20:48:52 +00:00
..
files.nfs remove nqnfs. 2006-12-27 12:10:09 +00:00
krpc_subr.c Kill caddr_t; there will be some MI fallout, but it will be fixed shortly. 2007-03-04 05:59:00 +00:00
krpc.h
Makefile remove nqnfs. 2006-12-27 12:10:09 +00:00
nfs_bio.c remove (void)0; nonsense. 2007-07-17 10:24:10 +00:00
nfs_boot.c Take steps to hide the radix_node implementation of the forwarding table 2007-07-19 20:48:52 +00:00
nfs_bootdhcp.c Fix buid (broken by a fix introduced in the wrong file...) 2007-05-08 09:29:50 +00:00
nfs_bootparam.c Kill caddr_t; there will be some MI fallout, but it will be fixed shortly. 2007-03-04 05:59:00 +00:00
nfs_bootstatic.c Add a new BOOTSTATIC flag, NFS_BOOTSTATIC_NOSTATIC, which causes 2007-07-08 21:08:09 +00:00
nfs_export.c Change the VFS_MOUNT() interface so that the 'data' buffer passed to the 2007-07-12 19:35:32 +00:00
nfs_kq.c Merge some of the less invasive changes from the vmlocking branch: 2007-07-09 20:51:58 +00:00
nfs_node.c nfs_inactive: don't clear NTRUNCDELAYED erroneously. 2007-06-12 09:33:25 +00:00
nfs_serv.c Remove calls to now obsolete vn_start_write() and vn_finished_write(). 2007-04-06 14:28:28 +00:00
nfs_socket.c Merge some of the less invasive changes from the vmlocking branch: 2007-07-09 20:51:58 +00:00
nfs_srvcache.c use mutex and condvar. 2007-06-01 11:56:03 +00:00
nfs_subs.c Fix build when not !NFSSERVER. 2007-07-09 21:29:09 +00:00
nfs_syscalls.c Merge some of the less invasive changes from the vmlocking branch: 2007-07-09 20:51:58 +00:00
nfs_var.h Change the VFS_MOUNT() interface so that the 'data' buffer passed to the 2007-07-12 19:35:32 +00:00
nfs_vfsops.c Make set_statvfs_info() take a parameter for the vfs name instead 2007-07-17 11:19:31 +00:00
nfs_vnops.c Merge some of the less invasive changes from the vmlocking branch: 2007-07-09 20:51:58 +00:00
nfs.h add some #include. 2007-06-02 03:32:51 +00:00
nfsdiskless.h Add a new BOOTSTATIC flag, NFS_BOOTSTATIC_NOSTATIC, which causes 2007-07-08 21:08:09 +00:00
nfsm_subs.h Kill caddr_t; there will be some MI fallout, but it will be fixed shortly. 2007-03-04 05:59:00 +00:00
nfsmount.h Change the VFS_MOUNT() interface so that the 'data' buffer passed to the 2007-07-12 19:35:32 +00:00
nfsnode.h include condvar.h. pointed by Kurt Schreiner. 2007-04-29 14:58:21 +00:00
nfsproto.h remove nqnfs. 2006-12-27 12:10:09 +00:00
nfsrtt.h remove several nqnfs definitions. 2006-12-28 00:39:03 +00:00
nfsrvcache.h use mutex and condvar. 2007-06-01 11:56:03 +00:00
rpcv2.h remove several nqnfs definitions. 2006-12-28 00:39:03 +00:00
xdr_subs.h