From owner-freebsd-bugs Sat Apr 1 09:46:27 1995 Return-Path: bugs-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id JAA22071 for bugs-outgoing; Sat, 1 Apr 1995 09:46:27 -0800 Received: from irbs.com ([199.182.75.129]) by freefall.cdrom.com (8.6.10/8.6.6) with ESMTP id JAA22062 for ; Sat, 1 Apr 1995 09:46:24 -0800 Received: (from jc@localhost) by irbs.com (8.6.11/8.6.6) id MAA10720; Sat, 1 Apr 1995 12:45:52 -0500 From: John Capo Message-Id: <199504011745.MAA10720@irbs.com> Subject: Re: tun driver To: gary@palmer.demon.co.uk (Gary Palmer) Date: Sat, 1 Apr 1995 12:45:51 -0500 (EST) Cc: freebsd-bugs@FreeBSD.org In-Reply-To: <197.796702281@palmer.demon.co.uk> from "Gary Palmer" at Apr 1, 95 03:11:21 am X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Length: 1374 Sender: bugs-owner@FreeBSD.org Precedence: bulk Gary Palmer writes: > > I've now changed to using the tun driver from kermit&slattach, and boy, > what an improvement! especially the -auto feature :-) I have been using iijppp for about a month now and have found and fixed a number of bugs related to the auto mode. They have not made it back into the distribution yet. > > HOWEVER (yes, it had to come :-( ), it seems to reboot the machine (note: > no panic message) if it tries to add a route to the tables which already > existed. It's caught me about 3 times tonight already. > > Anyone else seen this? This is with a kernel from ~2 days ago. > This problem is not specific to the tun driver. I get spontaneous reboots with routed, gated, pppd, and route at times. There is something evil in the route cloning. Interfaces coming and going or deleting an active default route causes a reboot. Disable route cloning and I believe your problem will go away. My current method is to disable this statement in in_rmx.c:in_addroute() /* * For IP, all unicast non-host routes are automatically cloning. if(!(rt->rt_flags & (RTF_HOST | RTF_CLONING))) { struct sockaddr_in *sin = (struct sockaddr_in *)rt_key(rt); if(!IN_MULTICAST(ntohl(sin->sin_addr.s_addr))) { rt->rt_flags |= RTF_PRCLONING; } } */ I would be very interested to know if this works for you. John Capo