freebsd-src/sys/net
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
..
bpf_compat.h
bpf_filter.c
bpf.c o add support for multiple link types per interface (e.g. 802.11 and Ethernet) 2002-11-14 23:24:13 +00:00
bpf.h o add support for multiple link types per interface (e.g. 802.11 and Ethernet) 2002-11-14 23:24:13 +00:00
bpfdesc.h o add support for multiple link types per interface (e.g. 802.11 and Ethernet) 2002-11-14 23:24:13 +00:00
bridge.c track changes to ethernet input handling to no longer strip the Ethernet header 2002-11-14 23:57:09 +00:00
bridge.h network interface and link layer changes: 2002-11-15 00:00:15 +00:00
bsd_comp.c Be consistent about functions being static. 2002-10-16 10:45:53 +00:00
ethernet.h general cleanups mostly aimed at improving portability of drivers 2002-11-14 23:28:47 +00:00
fddi.h network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_arc.h
if_arcsubr.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_arp.h
if_atm.h
if_atmsubr.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_disc.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_dl.h
if_ef.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_ethersubr.c o change input packet handling to eliminate the pointer to the struct 2002-11-14 23:35:06 +00:00
if_faith.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_fddisubr.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_gif.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_gif.h - after gif_set_tunnel(), psrc/pdst may be null. set IFF_RUNNING accordingly. 2002-10-16 19:49:37 +00:00
if_gre.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_gre.h
if_ieee80211.h
if_iso88025subr.c Use if_printf(ifp, "blah") instead of 2002-10-21 02:51:56 +00:00
if_llc.h
if_loop.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_media.c
if_media.h
if_mib.c
if_mib.h
if_ppp.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_ppp.h
if_pppvar.h
if_sl.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_slvar.h
if_sppp.h
if_spppsubr.c Be consistent about functions being static. 2002-10-16 10:45:53 +00:00
if_stf.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_stf.h
if_tap.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_tap.h
if_tapvar.h
if_tun.c network interface and link layer changes: 2002-11-15 00:00:15 +00:00
if_tun.h
if_tunvar.h
if_types.h
if_var.h o add if_nvlans member to track the number of vlans active on an interface 2002-11-14 23:36:28 +00:00
if_vlan_var.h o eliminate separate callback interface for h/w tagged input packets; instead 2002-11-14 23:43:16 +00:00
if_vlan.c o eliminate separate callback interface for h/w tagged input packets; instead 2002-11-14 23:43:16 +00:00
if.c Back out rev 1.150; things are more complicated than this. 2002-11-15 18:42:10 +00:00
if.h o add IF_*bps macros for netbsd compatibility 2002-11-14 23:16:18 +00:00
intrq.c
intrq.h
iso88025.h
net_osdep.c
net_osdep.h
netisr.c
netisr.h
pfil.c
pfil.h
pfkeyv2.h
ppp_comp.h
ppp_deflate.c Be consistent about functions being static. 2002-10-16 10:45:53 +00:00
ppp_defs.h
ppp_tty.c Use if_printf(ifp, "blah") instead of printf("ppp%d: blah", ifp->if_unit). 2002-10-21 03:41:58 +00:00
radix.c Fix instances of macros with improperly parenthasized arguments. 2002-11-09 12:55:07 +00:00
radix.h
raw_cb.c
raw_cb.h
raw_usrreq.c
route.c Massive cleanup of the ip_mroute code. 2002-11-15 22:53:53 +00:00
route.h
rtsock.c
slcompress.c
slcompress.h
slip.h
zlib.c Fix instances of macros with improperly parenthasized arguments. 2002-11-09 12:55:07 +00:00
zlib.h