freebsd-nq/sys/net
Hajimu UMEMOTO 9a70151652 As commented in defined in sys/net/route.c, rt_fixchange() has a bad
effect, which would cause unnecessary route deletion:

 * Unfortunately, this has the obnoxious
 * property of also triggering for insertion /above/ a pre-existing network
 * route and clones.  Sigh.  This may be fixed some day.

The effect has been even worse, because recent versions of route.c set
the parent rtentry for cloned routes from an interface-direct route.
For example, suppose that we have an interface "ne0" that has an IPv4
subnet "10.0.0.0/24".  Then we may have a cloned route like 10.0.0.1
on the interface, whose parent route is 10.0.0.0/24 (to the interface
ne0).  Now, when we add the default route (i.e. 0.0.0.0/0),
rt_fixchange() will remove the cloned route 10.0.0.1.  The (bad) effect
also prevents rt_setgate from configuring rt_gwroute, which would not
be an intended behavior.

As suggested in the comments to rt_fixchange(), we need stricter check
in the function, to prevent unintentional route deletion.

This fix also solve the "IPV6 panic?" problem in nd6_timer().

Submitted by:	JINMEI Tatuya <jinmei@isl.rdc.toshiba.co.jp>
MFC after:	4 days
2001-07-25 19:31:43 +00:00
..
bpf_compat.h Small fix for bpf compat: 2000-12-27 22:20:13 +00:00
bpf_filter.c Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
bpf.c Fix bpf devices so select() recognizes that they are always writable. 2001-04-04 23:27:35 +00:00
bpf.h The advent of if_detach, allowing interface removal at runtime, makes it 2000-03-19 05:42:34 +00:00
bpfdesc.h Add mutexes to the entire bpf subsystem to make it MPSAFE. 2001-02-16 17:10:28 +00:00
bridge.c Remove unused variable 2001-06-15 07:31:15 +00:00
bridge.h MFS: bridge/ipfw/dummynet fixes (bridge.c will be committed separately) 2001-02-02 00:18:00 +00:00
bsd_comp.c Undo part of the tangle of having sys/lock.h and sys/mutex.h included in 2001-05-01 08:13:21 +00:00
ethernet.h Const'ify parameters to ethers(3) routines as appropriate. 2000-07-18 22:44:52 +00:00
fddi.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
hostcache.c Use <sys/queue.h> macro api rather than fondle its implementation detals. 2001-02-03 11:46:35 +00:00
hostcache.h Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
if_arp.h Make the ng_ether(4) node type dynamically loadable like the rest. 2000-06-26 23:34:54 +00:00
if_atm.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
if_atmsubr.c Fix warning; remove unused variable 2001-06-15 07:32:25 +00:00
if_disc.c This file was a horrible mixture of styles old and new. 2001-06-16 10:47:34 +00:00
if_dl.h The "sdl_family" field in a "struct sockaddr_dl" will be equal 2000-03-01 02:46:25 +00:00
if_ef.c Another round of the <sys/queue.h> FOREACH transmogriffer. 2001-02-04 16:08:18 +00:00
if_ethersubr.c Do not perform arp send/resolve on an interface marked NOARP. 2001-06-15 21:00:32 +00:00
if_faith.c unbreak building kernel without option INET6 2001-07-05 14:42:54 +00:00
if_faith.h unbreak building kernel without option INET6 2001-07-05 14:42:54 +00:00
if_fddisubr.c Do not perform arp send/resolve on an interface marked NOARP. 2001-06-15 21:00:32 +00:00
if_gif.c gif(4) and stf(4) modernization: 2001-07-02 21:02:09 +00:00
if_gif.h gif(4) and stf(4) modernization: 2001-07-02 21:02:09 +00:00
if_ieee80211.h Currently, each wireless networking driver has it's own control program 2001-05-26 09:27:08 +00:00
if_iso88025subr.c Do not perform arp send/resolve on an interface marked NOARP. 2001-06-15 21:00:32 +00:00
if_llc.h
if_loop.c Sync with recent KAME. 2001-06-11 12:39:29 +00:00
if_media.c Currently, each wireless networking driver has it's own control program 2001-05-26 09:27:08 +00:00
if_media.h Currently, each wireless networking driver has it's own control program 2001-05-26 09:27:08 +00:00
if_mib.c Previous commit changing SYSCTL_HANDLER_ARGS violated KNF. 2000-07-04 11:25:35 +00:00
if_mib.h
if_ppp.c Quieten gcc. 2001-01-31 08:27:09 +00:00
if_ppp.h
if_pppvar.h Remove some #if NFOO > 0 that are always true because of config rules. 2000-01-29 16:56:24 +00:00
if_sl.c Exterminate the use of PSEUDO_SET() with extreme prejudice. 2001-01-31 07:58:58 +00:00
if_slvar.h The slip driver used to allocate a mbuf cluster without attaching 2000-08-18 08:02:31 +00:00
if_sppp.h Sync with recent KAME. 2001-06-11 12:39:29 +00:00
if_spppsubr.c Fix warning: 848: warning: label `nosupport' defined but not used 2001-06-15 07:33:09 +00:00
if_stf.c gif(4) and stf(4) modernization: 2001-07-02 21:02:09 +00:00
if_stf.h sync with kame tree as of july00. tons of bug fixes/improvements. 2000-07-04 16:35:15 +00:00
if_tap.c Send the remains (such as I have located) of "block major numbers" to 2001-03-26 12:41:29 +00:00
if_tap.h Add the tap driver. 2000-07-20 17:01:10 +00:00
if_tapvar.h Change to support vmware... SIOCSIFADDR on the character device 2000-07-25 23:50:30 +00:00
if_tun.c Close a race where we were releasing the unit resource at the start 2001-06-20 10:06:28 +00:00
if_tun.h Implement TUN[GS]IFHEAD ioctls. Passing a non-zero int to TUNSIFHEAD 2000-01-23 01:47:12 +00:00
if_tunvar.h Support /dev/tun cloning. Ansify if_tun.c while I'm there. 2001-06-01 15:51:10 +00:00
if_types.h Add recently assigned interface types. 2001-04-04 14:18:57 +00:00
if_var.h Add kernel infrastructure for network device cloning. 2001-07-02 20:49:25 +00:00
if_vlan_var.h Use the IANA assignment IFT_L2VLAN directly instead of indirecting through 2001-07-24 00:03:51 +00:00
if_vlan.c Eliminate the panic, reported by Daniel Sobral, which occurs when 2001-07-24 17:14:37 +00:00
if.c Add kernel infrastructure for network device cloning. 2001-07-02 20:49:25 +00:00
if.h Add kernel infrastructure for network device cloning. 2001-07-02 20:49:25 +00:00
intrq.c Insert entropy harvesting calls for network traffic. By 2001-02-18 17:54:52 +00:00
intrq.h Redo the intrq.c idea as 2000-01-27 23:37:39 +00:00
iso88025.h - Define payload length constants for 4Mbps and 16Mbps. 2001-03-18 05:41:07 +00:00
net_osdep.c Sync with recent KAME. 2001-06-11 12:39:29 +00:00
net_osdep.h Sync with recent KAME. 2001-06-11 12:39:29 +00:00
netisr.h Remove the last of the MD netisr code. It is now all MI. Remove 2000-12-05 00:36:00 +00:00
pfil.c Mechanical change to use <sys/queue.h> macro API instead of 2001-02-04 13:13:25 +00:00
pfil.h Replace nonexistent !defined(_LKM) by !defined(KLD_MODULE) 2000-08-01 00:40:32 +00:00
pfkeyv2.h Sync with recent KAME. 2001-06-11 12:39:29 +00:00
ppp_comp.h Remove bogus undocumented macros used to control conditional assembly. 2000-10-27 08:39:41 +00:00
ppp_deflate.c Undo part of the tangle of having sys/lock.h and sys/mutex.h included in 2001-05-01 08:13:21 +00:00
ppp_defs.h Sync with recent KAME. 2001-06-11 12:39:29 +00:00
ppp_tty.c * Rename M_WAIT mbuf subsystem flag to M_TRYWAIT. 2000-12-21 21:44:31 +00:00
radix.c Initialize rn_mklist in rn_newpair(). The undocumented assumption 2000-10-27 20:50:14 +00:00
radix.h A couple months ago, Kirk and I were doing a walkthrough of the radix-tree 2000-04-23 04:00:00 +00:00
raw_cb.c
raw_cb.h Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
raw_usrreq.c Move suser() and suser_xxx() prototypes and a related #define from 2000-10-29 16:06:56 +00:00
route.c As commented in defined in sys/net/route.c, rt_fixchange() has a bad 2001-07-25 19:31:43 +00:00
route.h When a connection is being dropped due to a listen queue overflow, 2000-07-21 23:26:37 +00:00
rtsock.c adjust mbuf length right in route_output(). 2001-07-04 11:29:55 +00:00
slcompress.c Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
slcompress.h Pass me the pointy hat. 2000-04-04 09:20:53 +00:00
slip.h
zlib.c Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
zlib.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00