From owner-freebsd-net Tue Apr 25 9:53:35 2000 Delivered-To: freebsd-net@freebsd.org Received: from luxren2.boostworks.com (luxren2.boostworks.com [194.167.81.214]) by hub.freebsd.org (Postfix) with ESMTP id A152E37BD42; Tue, 25 Apr 2000 09:53:27 -0700 (PDT) (envelope-from root@boostworks.com) Received: from boostworks.com (root@oldrn.luxdev.boostworks.com [192.168.1.99]) by luxren2.boostworks.com (8.9.1/8.9.1) with ESMTP id SAA40276; Tue, 25 Apr 2000 18:52:15 +0200 (CEST) Message-Id: <200004251652.SAA40276@luxren2.boostworks.com> Date: Tue, 25 Apr 2000 18:52:24 +0200 (CEST) From: Remy Nonnenmacher Reply-To: remy@boostworks.com Subject: Re: Proposal for ethernet, bridging, netgraph To: archie@whistle.com Cc: csg@waterspout.com, julian@elischer.org, pavel@alum.mit.edu, nsayer@sftw.com, luigi@FreeBSD.ORG, freebsd-net@FreeBSD.ORG In-Reply-To: <200004251615.JAA32979@bubba.whistle.com> MIME-Version: 1.0 Content-Type: TEXT/plain; CHARSET=US-ASCII Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org On 25 Apr, Archie Cobbs wrote: > C. Stephen Gunn writes: >> > OK, here's a patch ready for review & test.. this patch does one >> > thing, which is move the calls to BPF and BRIDGE'ing out of each >> > Ethernet driver and into ether_input(). >> >> Why not also modify ether_input() to remove the Ethernet header >> when appropriate? Instead of the monkey business to add the Ethernet >> Header back on. >> >> There are a couple of places in ether_input() that do this already, >> and you're proposing another for passing the packet to bpf. >> >> I proposed this a few weeks ago, but never cleaned up my patch >> for submission. >> >> It would certainly prevent some of the kludges to deal with the >> Ethernet Header for things that want a peek at it, like VLANs. > > I started doing that, but there are some reasons not too.. > > 1. Less code changes => fewer new bugs > > 2. NFS requires that the IP packet be longword aligned (or something). > If you start the mbuf with a 14-byte Ethernet header, then this > is broken (?? is this still true ??) > > 3. Some code actually reads the header and the payload into different > buffers. Putting them together, and then separating them again later > would be slower than it is now. > > But the main reason was #1 - i.e., "one thing at a time" :-) > This means that bridge_in() must receive the ether header as a parameter instead of extracting it. Also true for the forwarder part of the bridge code..... To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message