Module Name:    src
Committed By:   christos
Date:           Sat Jan 15 15:37:15 UTC 2022

Modified Files:
        src/share/man/man9: pfil.9

Log Message:
PR/56629: Andreas Gustafsson: Update documentation about the filter head
maintainance functions.


To generate a diff of this commit:
cvs rdiff -u -r1.38 -r1.39 src/share/man/man9/pfil.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/pfil.9
diff -u src/share/man/man9/pfil.9:1.38 src/share/man/man9/pfil.9:1.39
--- src/share/man/man9/pfil.9:1.38	Wed Jan 17 03:34:15 2018
+++ src/share/man/man9/pfil.9	Sat Jan 15 10:37:15 2022
@@ -1,4 +1,4 @@
-.\"	$NetBSD: pfil.9,v 1.38 2018/01/17 08:34:15 uwe Exp $
+.\"	$NetBSD: pfil.9,v 1.39 2022/01/15 15:37:15 christos Exp $
 .\"
 .\" Copyright (c) 1996 Matthew R. Green
 .\" All rights reserved.
@@ -24,13 +24,13 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd January 17, 2018
+.Dd January 15, 2022
 .Dt PFIL 9
 .Os
 .Sh NAME
 .Nm pfil ,
-.Nm pfil_head_register ,
-.Nm pfil_head_unregister ,
+.Nm pfil_head_create ,
+.Nm pfil_head_destroy ,
 .Nm pfil_head_get ,
 .Nm pfil_hook_get ,
 .Nm pfil_add_hook ,
@@ -46,32 +46,32 @@
 .In sys/mbuf.h
 .In net/if.h
 .In net/pfil.h
+.Ft pfil_head_t *
+.Fn pfil_head_create "int type" "void *key"
 .Ft int
-.Fn pfil_head_register "struct pfil_head *ph"
-.Ft int
-.Fn pfil_head_unregister "struct pfil_head *ph"
-.Ft struct pfil_head *
-.Fn pfil_head_get "int af" "u_long dlt"
+.Fn pfil_head_destroy "pfil_head_t *ph"
+.Ft pfil_head_t *
+.Fn pfil_head_get "int type" "void *key"
 .Ft struct packet_filter_hook *
-.Fn pfil_hook_get "int dir" "struct pfil_head *ph"
+.Fn pfil_hook_get "int dir" "pfil_head_t *ph"
 .Ft int
-.Fn pfil_add_hook "int (*func)()" "void *arg" "int flags" "struct pfil_head *ph"
+.Fn pfil_add_hook "pfil_func_t func" "void *arg" "int flags" "pfil_head_t *ph"
 .Ft int
-.Fn pfil_remove_hook "int (*func)()" "void *arg" "int flags" "struct pfil_head *ph"
+.Fn pfil_remove_hook "pfil_func_t func" "void *arg" "int flags" "pfil_head_t *ph"
 .Ft int
 .Fn (*func) "void *arg" "struct mbuf **mp" "struct ifnet *" "int dir"
 .Ft int
-.Fn pfil_run_hooks "struct pfil_head *ph" "struct mbuf **mp" "struct ifnet *ifp" "int dir"
+.Fn pfil_run_hooks "pfil_head_t *ph" "struct mbuf **mp" "struct ifnet *ifp" "int dir"
 .Ft int
-.Fn pfil_add_ihook "void (*ifunc)()" "void *arg" "int flags" "struct pfil_head *ph"
+.Fn pfil_add_ihook "pfil_ifunc_t ifunc" "void *arg" "int flags" "pfil_head_t *ph"
 .Ft int
-.Fn pfil_remove_ihook "void (*ifunc)()" "void *arg" "int flags" "struct pfil_head *ph"
+.Fn pfil_remove_ihook "pfil_ifunc_t ifunc" "void *arg" "int flags" "pfil_head_t *ph"
 .Ft void
 .Fn (*ifunc) "void *arg" "unsigned long cmd" "void *ptr"
 .Ft void
-.Fn pfil_run_addrhooks "struct pfil_head *ph" "unsigned long" "struct ifaddr *ifa"
+.Fn pfil_run_addrhooks "pfil_head_t *ph" "unsigned long" "struct ifaddr *ifa"
 .Ft void
-.Fn pfil_run_ifhooks "struct pfil_head *ph" "unsigned long" "struct ifnet *ifp"
+.Fn pfil_run_ifhooks "pfil_head_t *ph" "unsigned long" "struct ifnet *ifp"
 .Sh DESCRIPTION
 The
 .Nm
@@ -80,25 +80,42 @@ incoming or outgoing packet for a partic
 These hooks may be used to implement a firewall or perform packet
 transformations.
 .Pp
-Packet filtering points are registered with
-.Fn pfil_head_register .
-Filtering points are identified by a key
-.Vt ( void * )
-and a data link type
+Packet filtering points are created with
+.Fn pfil_head_create .
+Filtering points are identified by a
+data link
 .Vt ( int )
-in the
-.Vt pfil_head
-structure.
-Packet filters use the key and data link type to look up the filtering
-point with which they register themselves.
-The key is unique to the filtering point.
-The data link type is a
+.Fa type
+and a
+.Vt ( void * )
+.Fa key .
+If a packet filtering point already exists for that data link
+.Fa type
+and
+.Fa key
+then the
+.Fn pfil_head_create
+function returns
+.Dv NULL .
+Packet filters use the
+.Fn pfil_head_get 
+function specifying the data link
+.Fa type
+and the
+.Fa key
+to look up the filtering point with which they register themselves.
+The 
+.Fa key
+is unique to the filtering point.
+The data link
+.Fa type
+is a
 .Xr bpf 4
 .Dv DLT_ Ns Ar type
 constant indicating what kind of header is present on the packet
 at the filtering point.
-Filtering points may be unregistered with the
-.Fn pfil_head_unregister
+Filtering points may be destroyed with the
+.Fn pfil_head_destroy
 function.
 .Pp
 Packet filters register/unregister themselves with a filtering point
@@ -109,8 +126,11 @@ and
 functions, respectively.
 The head is looked up using the
 .Fn pfil_head_get
-function, which takes the key and data link type that the packet filter
-expects.
+function, which takes the data link
+.Fa type
+and the
+.Fa key 
+that the packet filter expects.
 Filters may provide an argument to be passed to the filter when
 invoked on a packet.
 .Pp

Reply via email to