From owner-freebsd-net Wed Jun 27 21:27:13 2001 Delivered-To: freebsd-net@freebsd.org Received: from sneakerz.org (sneakerz.org [216.33.66.254]) by hub.freebsd.org (Postfix) with ESMTP id 0C33637B401 for ; Wed, 27 Jun 2001 21:27:11 -0700 (PDT) (envelope-from bright@sneakerz.org) Received: by sneakerz.org (Postfix, from userid 1092) id 768A85D010; Wed, 27 Jun 2001 23:27:00 -0500 (CDT) Date: Wed, 27 Jun 2001 23:27:00 -0500 From: Alfred Perlstein To: Brooks Davis Cc: Julian Elischer , Stuart Eichert , net@FreeBSD.ORG, oppermann@monzoon.net Subject: Re: Am I missing something? Message-ID: <20010627232700.K74703@sneakerz.org> References: <20010627170659.B30006@Odin.AC.HMC.Edu> <20010627190245.B12609@Odin.AC.HMC.Edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2i In-Reply-To: <20010627190245.B12609@Odin.AC.HMC.Edu>; from brooks@one-eyed-alien.net on Wed, Jun 27, 2001 at 07:02:45PM -0700 Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org * Brooks Davis [010627 21:02] wrote: > On Wed, Jun 27, 2001 at 08:11:57PM -0700, Julian Elischer wrote: > > I have a netgraph node written (but not yet released by the company that > > asked me to write it) that when hooked to the 'orphans' hook of an > > ethernet node, can filter out arbitrary Ethertypes and send them to > > arbitrary hooks, so, by hooking this node to the ethernet node, > > you can arbitrarily process as many or as few additional ethertypes as you > > need to. > > This doesn't let you hook on the Ethertype of a protocol currently > supported in ether_input without breaking all the others. Personaly, > I'd like to be able to hook IP on one interface while allowing > processing to proceed as normal on the others, but you can't do that > with just an orphin's de-mux node if I'm reading the code correctly. You're not reading it correctly. :( /* Handle ng_ether(4) processing, if any */ if (ng_ether_input_p != NULL) { (*ng_ether_input_p)(ifp, &m, eh); if (m == NULL) return; } since it passes &m, you can set "*mp = NULL" in your handler if you wish to take control of the packet, or leave it as is to allow the normal course of action. -Alfred To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message