freebsd-nq/sys/netinet
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
..
libalias
accf_data.c
accf_http.c
icmp6.h
icmp_var.h
if_atm.c
if_atm.h
if_ether.c
if_ether.h
igmp_var.h
igmp.c
igmp.h
in_cksum.c
in_gif.c last arg of in6?_gif_output() is not used any more. 2002-10-17 17:47:55 +00:00
in_gif.h last arg of in6?_gif_output() is not used any more. 2002-10-17 17:47:55 +00:00
in_pcb.c temporarily disallow FAST_IPSEC and INET6 to avoid potential panics; 2002-11-08 23:50:32 +00:00
in_pcb.h Turn off duplicate lock checking for inp locks because udp_input() 2002-11-12 20:44:38 +00:00
in_proto.c FAST_IPSEC fixups: 2002-11-08 23:37:50 +00:00
in_rmx.c
in_systm.h
in_var.h
in.c fixed a kernel crash by "ifconfig stf0 inet 1.2.3.4" 2002-10-22 22:50:38 +00:00
in.h Renumber IPPROTO_DIVERT out of the range of valid IP protocol numbers. 2002-10-29 16:46:13 +00:00
ip6.h
ip_divert.c Renumber IPPROTO_DIVERT out of the range of valid IP protocol numbers. 2002-10-29 16:46:13 +00:00
ip_dummynet.c track changes to not strip the Ethernet header from input packets 2002-11-14 23:46:04 +00:00
ip_dummynet.h
ip_ecn.c
ip_ecn.h
ip_encap.c
ip_encap.h
ip_flow.c
ip_flow.h
ip_fw2.c Lower a priority of "session drop" messages. 2002-10-29 08:53:14 +00:00
ip_fw.c
ip_fw.h Oops, forgot to commit this file. This is part of the fix 2002-10-24 22:32:13 +00:00
ip_gre.c track bpf changes 2002-11-14 23:45:13 +00:00
ip_gre.h de-__P(). 2002-10-16 22:27:27 +00:00
ip_icmp.c Fix two instances of variant struct definitions in sys/netinet: 2002-10-20 22:52:07 +00:00
ip_icmp.h Fix two instances of variant struct definitions in sys/netinet: 2002-10-20 22:52:07 +00:00
ip_id.c
ip_input.c Massive cleanup of the ip_mroute code. 2002-11-15 22:53:53 +00:00
ip_mroute.c Massive cleanup of the ip_mroute code. 2002-11-15 22:53:53 +00:00
ip_mroute.h Massive cleanup of the ip_mroute code. 2002-11-15 22:53:53 +00:00
ip_output.c Massive cleanup of the ip_mroute code. 2002-11-15 22:53:53 +00:00
ip_var.h Massive cleanup of the ip_mroute code. 2002-11-15 22:53:53 +00:00
ip.h Fix two instances of variant struct definitions in sys/netinet: 2002-10-20 22:52:07 +00:00
ipprotosw.h
raw_ip.c Massive cleanup of the ip_mroute code. 2002-11-15 22:53:53 +00:00
tcp_debug.c
tcp_debug.h
tcp_fsm.h
tcp_input.c a better solution to building FAST_IPSEC w/o INET6 2002-11-10 17:17:32 +00:00
tcp_output.c Fix oops in my last commit, I was calculating a new length but then not 2002-10-16 19:16:33 +00:00
tcp_reass.c a better solution to building FAST_IPSEC w/o INET6 2002-11-10 17:17:32 +00:00
tcp_seq.h
tcp_subr.c Fix two instances of variant struct definitions in sys/netinet: 2002-10-20 22:52:07 +00:00
tcp_syncache.c Fix instances of macros with improperly parenthasized arguments. 2002-11-09 12:55:07 +00:00
tcp_timer.c
tcp_timer.h
tcp_timewait.c Fix two instances of variant struct definitions in sys/netinet: 2002-10-20 22:52:07 +00:00
tcp_usrreq.c Unbreak the automatic remapping of an INADDR_ANY destination address 2002-10-24 02:02:34 +00:00
tcp_var.h
tcp.h
tcpip.h
udp_usrreq.c Implement a new IP_SENDSRCADDR ancillary message type that permits 2002-10-21 20:40:02 +00:00
udp_var.h
udp.h