1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-19 15:33:56 +00:00
freebsd/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
bpf_filter.c
bpf.c Fix bpf devices so select() recognizes that they are always writable. 2001-04-04 23:27:35 +00:00
bpf.h
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
fddi.h
hostcache.c Use <sys/queue.h> macro api rather than fondle its implementation detals. 2001-02-03 11:46:35 +00:00
hostcache.h
if_arp.h
if_atm.h
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
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
if_mib.h
if_ppp.c Quieten gcc. 2001-01-31 08:27:09 +00:00
if_ppp.h
if_pppvar.h
if_sl.c Exterminate the use of PSEUDO_SET() with extreme prejudice. 2001-01-31 07:58:58 +00:00
if_slvar.h
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
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
if_tapvar.h
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
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
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
pfil.c Mechanical change to use <sys/queue.h> macro API instead of 2001-02-04 13:13:25 +00:00
pfil.h
pfkeyv2.h Sync with recent KAME. 2001-06-11 12:39:29 +00:00
ppp_comp.h
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
radix.c
radix.h
raw_cb.c
raw_cb.h
raw_usrreq.c
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
rtsock.c adjust mbuf length right in route_output(). 2001-07-04 11:29:55 +00:00
slcompress.c
slcompress.h
slip.h
zlib.c
zlib.h