From owner-freebsd-ipfw Mon Mar 6 18:25:48 2000 Delivered-To: freebsd-ipfw@freebsd.org Received: from fledge.watson.org (fledge.watson.org [204.156.12.50]) by hub.freebsd.org (Postfix) with ESMTP id EF76937BE25 for ; Mon, 6 Mar 2000 18:25:45 -0800 (PST) (envelope-from robert@cyrus.watson.org) Received: from fledge.watson.org (robert@fledge.pr.watson.org [192.0.2.3]) by fledge.watson.org (8.9.3/8.9.3) with SMTP id VAA16734; Mon, 6 Mar 2000 21:26:29 -0500 (EST) (envelope-from robert@cyrus.watson.org) Date: Mon, 6 Mar 2000 21:26:29 -0500 (EST) From: Robert Watson X-Sender: robert@fledge.watson.org Reply-To: Robert Watson To: Luigi Rizzo Cc: Ludo Koren , ipfw@FreeBSD.ORG Subject: Re: ipdivert and ethernet bridging In-Reply-To: <200003061756.SAA57984@info.iet.unipi.it> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-ipfw@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Luigi, I've been reading through the bridge/ipfw code, and can't seem to find a place where eh->ether_type is checked to see if it is ETHERTYPE_IP before the firewall rules are evaluated. I was wondering if the check is not taking place, or if so, where it takes place? net/bridge.c: ... /* * before calling the firewall, swap fields the same as IP does. * here we assume the pkt is an IP one and the header is contiguous */ eh = mtod(m, struct ether_header *); ip = (struct ip *)(eh + 1 ) ; NTOHS(ip->ip_len); NTOHS(ip->ip_id); NTOHS(ip->ip_off); ... Thanks, Robert N M Watson robert@fledge.watson.org http://www.watson.org/~robert/ PGP key fingerprint: AF B5 5F FF A6 4A 79 37 ED 5F 55 E9 58 04 6A B1 TIS Labs at Network Associates, Safeport Network Services To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ipfw" in the body of the message