Module Name: src Committed By: pooka Date: Wed Jan 20 12:09:39 UTC 2010
Modified Files: src/share/man/man9: Makefile Added Files: src/share/man/man9: bpf.9 Log Message: add short description for bpf.9 To generate a diff of this commit: cvs rdiff -u -r1.305 -r1.306 src/share/man/man9/Makefile cvs rdiff -u -r0 -r1.1 src/share/man/man9/bpf.9 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/share/man/man9/Makefile diff -u src/share/man/man9/Makefile:1.305 src/share/man/man9/Makefile:1.306 --- src/share/man/man9/Makefile:1.305 Wed Jan 20 00:39:30 2010 +++ src/share/man/man9/Makefile Wed Jan 20 12:09:39 2010 @@ -1,10 +1,10 @@ -# $NetBSD: Makefile,v 1.305 2010/01/20 00:39:30 dyoung Exp $ +# $NetBSD: Makefile,v 1.306 2010/01/20 12:09:39 pooka Exp $ # Makefile for section 9 (kernel function and variable) manual pages. MAN= accept_filter.9 accf_data.9 accf_http.9 \ altq.9 arc4random.9 arp.9 audio.9 autoconf.9 \ - bcdtobin.9 bcmp.9 bcopy.9 bluetooth.9 boothowto.9 \ + bcdtobin.9 bcmp.9 bcopy.9 bluetooth.9 boothowto.9 bpf.9 \ buffercache.9 bufq.9 bus_dma.9 bus_space.9 byteorder.9 bzero.9 \ callback.9 callout.9 cardbus.9 cnmagic.9 condvar.9 config.9 \ cons.9 copy.9 coredump_write.9 \ Added files: Index: src/share/man/man9/bpf.9 diff -u /dev/null src/share/man/man9/bpf.9:1.1 --- /dev/null Wed Jan 20 12:09:39 2010 +++ src/share/man/man9/bpf.9 Wed Jan 20 12:09:39 2010 @@ -0,0 +1,75 @@ +.\" $NetBSD: bpf.9,v 1.1 2010/01/20 12:09:39 pooka Exp $ +.\" +.\" Copyright (c) 2010 The NetBSD Foundation, Inc. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd January 20, 2010 +.Dt BPF 9 +.Os +.Sh NAME +.Nm bpf +.Nd Berkeley Packet Filter kernel interface +.Sh SYNOPSIS +.In sys/mbuf.h +.In net/bpf.h +.Sh DESCRIPTION +.Nm +is called via an operations vector described by the following struct: +.Pp +.Bd -literal +struct bpf_ops { + void (*bpf_attach)(struct ifnet *, u_int, u_int, struct bpf_if **); + void (*bpf_detach)(struct ifnet *); + void (*bpf_change_type)(struct ifnet *, u_int, u_int); + + void (*bpf_tap)(struct bpf_if *, u_char *, u_int); + void (*bpf_mtap)(struct bpf_if *, struct mbuf *); + void (*bpf_mtap2)(struct bpf_if *, void *, u_int, struct mbuf *); + void (*bpf_mtap_af)(struct bpf_if *, uint32_t, struct mbuf *); + void (*bpf_mtap_et)(struct bpf_if *, uint16_t, struct mbuf *); + void (*bpf_mtap_sl_in)(struct bpf_if *, u_char *, struct mbuf **); + void (*bpf_mtap_sl_out)(struct bpf_if *, u_char *, struct mbuf *); +}; +.Ed +.Pp +This vector is found from +.Vt struct bpf_ops * +.Va bpf_ops , +and is either a stub implementation or a real implementation depending +on if bpf is absent or present in the kernel, respectively. +.Sh CODE REFERENCES +This section describes places within the +.Nx +source tree where the implementation can be found. +All pathnames are relative to +.Pa /usr/src . +.Pp +The +.Nm +implementation is located in +.Pa sys/net/bpf.c , +the stub implementation is in +.Pa sys/net/bpf_stub.c +and the interface is defined in +.Pa sys/net/bpf.h .