From owner-freebsd-net@FreeBSD.ORG Thu Oct 16 16:00:11 2003 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 38A7B16A4B3; Thu, 16 Oct 2003 16:00:11 -0700 (PDT) Received: from pit.databus.com (p70-227.acedsl.com [66.114.70.227]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1E05D43FBD; Thu, 16 Oct 2003 16:00:10 -0700 (PDT) (envelope-from barney@pit.databus.com) Received: from pit.databus.com (localhost [127.0.0.1]) by pit.databus.com (8.12.9p2/8.12.9) with ESMTP id h9GN09YL010584; Thu, 16 Oct 2003 19:00:09 -0400 (EDT) (envelope-from barney@pit.databus.com) Received: (from barney@localhost) by pit.databus.com (8.12.9p2/8.12.9/Submit) id h9GN09lY010583; Thu, 16 Oct 2003 19:00:09 -0400 (EDT) (envelope-from barney) Date: Thu, 16 Oct 2003 19:00:09 -0400 From: Barney Wolff To: Robert Watson Message-ID: <20031016230009.GB10115@pit.databus.com> References: <20031016200604.72938.qmail@web41501.mail.yahoo.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i X-Scanned-By: MIMEDefang 2.37 cc: freebsd-net@freebsd.org Subject: Re: Question about bridging code X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Oct 2003 23:00:11 -0000 On Thu, Oct 16, 2003 at 05:18:24PM -0400, Robert Watson wrote: > > My conclusion from my BPF bridge experience was that prototyping in > userspace made it a lot easier to experiment with changes, and > dramatically reduced the development time. On the other hand, it did > terrible things to performance on high bandwidth tests, and because we > weren't using mbufs in userspace, made it harder to port to the kernel. > One nice benefit, though, was that we had TCP/IP people programming TCP/IP > stuff without having to teach them about mbuf semantics or kernel > debugging :-). It's actually not so hard to get kernel mbuf-oriented code running in userspace. I did a userspace PPP implementation in 1994, and when it came time to do VJ compression I took the BSD kernel VJ code (from lbl.gov, if I recall correctly), defined some of the mbuf fields in my own structs, and it compiled and worked correctly without changing a single line of the VJ code. That project would never have survived if every bug had caused a kernel panic. The code is still running in commercial service today. -- Barney Wolff http://www.databus.com/bwresume.pdf I'm available by contract or FT, in the NYC metro area or via the 'Net.