freebsd-dev/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 Zap now-unused SHLIB_MINOR 2002-09-28 00:25:32 +00:00
accf_data.c Remove so*_locked(), which were backed out by mistake. 2002-06-18 07:42:02 +00:00
accf_http.c Remove so*_locked(), which were backed out by mistake. 2002-06-18 07:42:02 +00:00
icmp6.h s/__attribute__((__packed__))/__packed/g 2002-09-23 06:25:08 +00:00
icmp_var.h Remove __P. 2002-03-19 21:25:46 +00:00
if_atm.c - Change the newly turned INVARIANTS #ifdef blocks (they were changed from 2002-05-21 18:52:24 +00:00
if_atm.h Remove __P. 2002-03-19 21:25:46 +00:00
if_ether.c Introduce support for Mandatory Access Control and extensible 2002-07-31 16:45:16 +00:00
if_ether.h Fixed some style bugs in the removal of __P(()). Continuation lines 2002-03-24 10:19:10 +00:00
igmp_var.h Remove __P. 2002-03-19 21:25:46 +00:00
igmp.c Replace aux mbufs with packet tags: 2002-10-16 01:54:46 +00:00
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 Remove __P. 2002-03-19 21:25:46 +00:00
in_systm.h Remove __P. 2002-03-19 21:25:46 +00:00
in_var.h Fixed some style bugs in the removal of __P(()). Continuation lines 2002-03-24 10:19:10 +00:00
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 s/__attribute__((__packed__))/__packed/g 2002-09-23 06:25:08 +00:00
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 Increase the max dummynet hash size from 1024 to 65536. Default is still 2002-10-12 07:45:23 +00:00
ip_ecn.c initialize local variable explicitly 2002-04-11 02:14:21 +00:00
ip_ecn.h Remove __P. 2002-03-19 21:25:46 +00:00
ip_encap.c Replace aux mbufs with packet tags: 2002-10-16 01:54:46 +00:00
ip_encap.h Remove __P. 2002-03-19 21:25:46 +00:00
ip_flow.c s/FREE/free/ 2001-11-04 17:35:31 +00:00
ip_flow.h
ip_fw2.c Lower a priority of "session drop" messages. 2002-10-29 08:53:14 +00:00
ip_fw.c Remove (almost all) global variables that were used to hold 2002-06-22 11:51:02 +00:00
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 Remove __P. 2002-03-19 21:25:46 +00:00
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 KSE Milestone 2 2001-09-12 08:38:13 +00:00
raw_ip.c Massive cleanup of the ip_mroute code. 2002-11-15 22:53:53 +00:00
tcp_debug.c It's now sufficient to rely on a nested include of _label.h to make sure 2002-08-15 14:34:45 +00:00
tcp_debug.h make the strings for tcptimers, tanames and prurequests const to silence 2002-08-16 09:07:59 +00:00
tcp_fsm.h WARNS=n and lint(1) silencer. Declare an array of (const) strings 2002-02-03 11:57:32 +00:00
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 Move initialization of snd_recover into tcp_sendseqinit(). 2001-11-21 18:45:51 +00:00
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 Include <sys/mutex.h> and its prerequisite <sys/lock.h> instead of depending 2002-09-05 15:33:30 +00:00
tcp_timer.h make the strings for tcptimers, tanames and prurequests const to silence 2002-08-16 09:07:59 +00:00
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 Implement TCP bandwidth delay product window limiting, similar to (but 2002-08-17 18:26:02 +00:00
tcp.h Include <sys/cdefs.h> so the visibility conditionals are available. 2002-10-02 04:22:34 +00:00
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 Notify functions can destroy the pcb, so they have to return an 2002-06-14 08:35:21 +00:00
udp.h