From owner-freebsd-hackers@FreeBSD.ORG Fri Aug 29 02:54:47 2003 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F22E816A4BF for ; Fri, 29 Aug 2003 02:54:47 -0700 (PDT) Received: from mail.renet.ru (mail.renet.ru [195.161.130.1]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0830943F93 for ; Fri, 29 Aug 2003 02:54:46 -0700 (PDT) (envelope-from vys@renet.ru) Received: from renet.ru (fox.renet.ru [195.161.130.4]) by mail.renet.ru (8.12.6/8.12.9) with ESMTP id h7T9sgKS072347 for ; Fri, 29 Aug 2003 13:54:42 +0400 (MSD) Message-ID: <3F4F22DD.80202@renet.ru> Date: Fri, 29 Aug 2003 13:54:37 +0400 From: "Vladimir Yu. Stepanov" User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.5a) Gecko/20030826 X-Accept-Language: ru, en-us, en MIME-Version: 1.0 To: freebsd-hackers@freebsd.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: Bug FreeBSD BPF driver X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 09:54:48 -0000 Hello ! In file sys/net/bpf.c CVS revision 1.95 introduce a error. It is wrong if a program use not default setting flag BIOCGSEESENT. Locally generated packet may be copy in user space if flag BIOCGSEESENT set to one. http://vys.renet.ru/patchs/freebsd-5.1-bpf-1.2.patch This patch required to allow more effective usage of BPF filter. It marks every packet as "Incoming" or "Outgoing", in dependence of its direction (for given interface). Then, software which uses BPF filter can skip additional checking. After applying the patch, BPF filter interface still compatible with old software, but BPF_MINOR_VERSION has been changed. The structures bpf_hdr and related C code have been changed: - added field 'bh_flags' in 'bpf_hdr' structure with the following values: * BPF_DIRECT_INCOMING (0x4000) * BPF_DIRECT_OUTGOING (0x8000) this numbers (0x4000,0x8000) select for future export flags M_BCAST and M_MCAST in user space. - removed SIZEOF_BPF_HDR as not necessary. -- SY. Vladimir Yu. Stepanov