freebsd-nq/sys
Luigi Rizzo bbb4330b61 Massive cleanup of the ip_mroute code.
No functional changes, but:

  + the mrouting module now should behave the same as the compiled-in
    version (it did not before, some of the rsvp code was not loaded
    properly);
  + netinet/ip_mroute.c is now truly optional;
  + removed some redundant/unused code;
  + changed many instances of '0' to NULL and INADDR_ANY as appropriate;
  + removed several static variables to make the code more SMP-friendly;
  + fixed some minor bugs in the mrouting code (mostly, incorrect return
    values from functions).

This commit is also a prerequisite to the addition of support for PIM,
which i would like to put in before DP2 (it does not change any of
the existing APIs, anyways).

Note, in the process we found out that some device drivers fail to
properly handle changes in IFF_ALLMULTI, leading to interesting
behaviour when a multicast router is started. This bug is not
corrected by this commit, and will be fixed with a separate commit.

Detailed changes:
--------------------
netinet/ip_mroute.c     all the above.
conf/files              make ip_mroute.c optional
net/route.c             fix mrt_ioctl hook
netinet/ip_input.c      fix ip_mforward hook, move rsvp_input() here
                        together with other rsvp code, and a couple
                        of indentation fixes.
netinet/ip_output.c     fix ip_mforward and ip_mcast_src hooks
netinet/ip_var.h        rsvp function hooks
netinet/raw_ip.c        hooks for mrouting and rsvp functions, plus
                        interface cleanup.
netinet/ip_mroute.h     remove an unused and optional field from a struct

Most of the code is from Pavlin Radoslavov and the XORP project

Reviewed by: sam
MFC after: 1 week
2002-11-15 22:53:53 +00:00
..
alpha Add hints for ISA ATA controllers. At least one Digital AlphaPC 64 has 2002-11-14 14:59:27 +00:00
amd64 MFp4: 2002-11-14 05:22:37 +00:00
arm Add standards visibility conditionals. Change any uses of sigset_t to 2002-10-13 00:31:46 +00:00
boot Document loader tunables hw.pci.enable_io_modes and 2002-11-13 09:43:53 +00:00
cam Panic message strings do not need a trailing \n. 2002-11-14 05:35:57 +00:00
coda Back our kernel support for reliable signal queues. 2002-10-01 17:15:53 +00:00
compat Bring in two sets of changes: 2002-11-05 17:51:56 +00:00
conf Massive cleanup of the ip_mroute code. 2002-11-15 22:53:53 +00:00
contrib network interface and link layer changes: 2002-11-15 00:00:15 +00:00
crypto Make this compilable from userland as well. 2002-11-01 08:56:39 +00:00
ddb - Rename the DDB specific %z printf format to %y. 2002-10-25 19:41:32 +00:00
dev Catch up with sam's changes to network interfaces. 2002-11-15 14:36:33 +00:00
fs Fix instances of macros with improperly parenthasized arguments. 2002-11-09 12:55:07 +00:00
geom Remove harmless but irritating printf. 2002-11-08 15:35:16 +00:00
gnu MFufs 1.33: 2002-10-18 21:41:41 +00:00
i4b network interface and link layer changes: 2002-11-15 00:00:15 +00:00
i386 network interface and link layer changes: 2002-11-15 00:00:15 +00:00
ia64 Do not assume that time_t is an int. 2002-11-15 22:36:57 +00:00
isa Capitalize the first letter of device descriptions 2002-11-11 15:26:08 +00:00
isofs/cd9660 Unbreak MNT_UPDATE when running with cd as root. Detect mountroot by 2002-11-02 20:16:55 +00:00
kern Return EWOULDBLOCK for last thread in kse_release(). 2002-11-15 00:53:59 +00:00
libkern Fix instances of macros with improperly parenthasized arguments. 2002-11-09 12:55:07 +00:00
modules Remove opt_pci.h from SRCS, it doesn't exist anymore. 2002-11-13 17:45:42 +00:00
net Massive cleanup of the ip_mroute code. 2002-11-15 22:53:53 +00:00
netatalk Add more ethernet types and move AppleTalk types into proper location. 2002-09-06 17:02:29 +00:00
netatm - Change the ATM stack functions to use intptr_t instead of int for opaque 2002-11-08 18:27:30 +00:00
netgraph o track changes to ethernet input packet handling 2002-11-14 23:44:37 +00:00
netinet Massive cleanup of the ip_mroute code. 2002-11-15 22:53:53 +00:00
netinet6 plugged memory leakage in some erroneous cases 2002-10-31 19:45:48 +00:00
netipsec FAST_IPSEC fixups: 2002-11-08 23:37:50 +00:00
netipx Fix a sizeof(int) != sizeof(void *) warning. 2002-11-08 21:16:27 +00:00
netkey
netnatm Be consistent about functions being static. 2002-10-16 09:19:17 +00:00
netncp - Change mb_copy_t to take a size_t as the length argument instead of an 2002-11-08 21:26:32 +00:00
netns
netsmb - Change mb_copy_t to take a size_t as the length argument instead of an 2002-11-08 21:26:32 +00:00
nfs Change iov_base's type from char *' to the standard void *'. All 2002-10-11 14:58:34 +00:00
nfsclient Don't examine an un-initialized variable. 2002-10-20 21:52:05 +00:00
nfsserver Permit MAC policies to instrument the access control decisions for 2002-11-04 15:13:36 +00:00
opencrypto correct minor # in make_dev call 2002-11-08 23:07:41 +00:00
pc98 Print real / avail memory in megabytes rather than kilobytes. 2002-11-09 16:19:14 +00:00
pccard
pci o track either_ifattach/ether_ifdetach API changes 2002-11-14 23:49:09 +00:00
posix4 Change the way support for asynchronous I/O is indicated to applications 2002-10-27 18:07:41 +00:00
powerpc Move pmap_collect() out of the machine-dependent code, rename it 2002-11-13 05:39:58 +00:00
rpc
security Introduce a condition variable to avoid returning EBUSY when 2002-11-13 15:47:09 +00:00
sparc64 Don't register the powerfail interrupt as fast in the 2002-11-14 11:29:16 +00:00
sys Make the msg_size, msg_bufx and msg_bufr memebers of struct msgbuf 2002-11-14 16:11:12 +00:00
tools
ufs Do not assume that time_t is an int. 2002-11-15 22:36:57 +00:00
vm Remove dead code that hasn't been needed since the demise of share maps 2002-11-13 19:50:06 +00:00
Makefile